X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Ffilerepo%2FFileRepoStatus.php;h=6f28b104bca13d72a6ceb2954ba20b1c1d4c66e3;hb=493fc3dfe34e9de701bfd4ab27ce8ebbddcbf71f;hp=972b2e466e3830f8ea757b1f3f820756b002c4ed;hpb=f8b9f0759b76d1a8585be992f09532c1ad400314;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/filerepo/FileRepoStatus.php b/includes/filerepo/FileRepoStatus.php index 972b2e466e..6f28b104bc 100644 --- a/includes/filerepo/FileRepoStatus.php +++ b/includes/filerepo/FileRepoStatus.php @@ -1,23 +1,39 @@ value = $value; return $result; } - - function __construct( $repo = false ) { - if ( $repo ) { - $this->cleanCallback = $repo->getErrorCleanupFunction(); - } - } - - function setResult( $ok, $value = null ) { - $this->ok = $ok; - $this->value = $value; - } - - function isGood() { - return $this->ok && !$this->errors; - } - - function isOK() { - return $this->ok; - } - - function warning( $message /*, parameters... */ ) { - $params = array_slice( func_get_args(), 1 ); - $this->errors[] = array( - 'type' => 'warning', - 'message' => $message, - 'params' => $params ); - } - - /** - * Add an error, do not set fatal flag - * This can be used for non-fatal errors - */ - function error( $message /*, parameters... */ ) { - $params = array_slice( func_get_args(), 1 ); - $this->errors[] = array( - 'type' => 'error', - 'message' => $message, - 'params' => $params ); - } /** - * Add an error and set OK to false, indicating that the operation as a whole was fatal + * @param $repo FileRepo */ - function fatal( $message /*, parameters... */ ) { - $params = array_slice( func_get_args(), 1 ); - $this->errors[] = array( - 'type' => 'error', - 'message' => $message, - 'params' => $params ); - $this->ok = false; - } - - protected function cleanParams( $params ) { - if ( !$this->cleanCallback ) { - return $params; - } - $cleanParams = array(); - foreach ( $params as $i => $param ) { - $cleanParams[$i] = call_user_func( $this->cleanCallback, $param ); - } - return $cleanParams; - } - - protected function getItemXML( $item ) { - $params = $this->cleanParams( $item['params'] ); - $xml = "<{$item['type']}>\n" . - Xml::element( 'message', null, $item['message'] ) . "\n" . - Xml::element( 'text', null, wfMsgReal( $item['message'], $params ) ) ."\n"; - foreach ( $params as $param ) { - $xml .= Xml::element( 'param', null, $param ); - } - $xml .= "type}>\n"; - return $xml; - } - - /** - * Get the error list as XML - */ - function getXML() { - $xml = "\n"; - foreach ( $this->errors as $error ) { - $xml .= $this->getItemXML( $error ); - } - $xml .= "\n"; - return $xml; - } - - /** - * Get the error list as a wikitext formatted list - * @param string $shortContext A short enclosing context message name, to be used - * when there is a single error - * @param string $longContext A long enclosing context message name, for a list - */ - function getWikiText( $shortContext = false, $longContext = false ) { - if ( count( $this->errors ) == 0 ) { - if ( $this->ok ) { - $this->fatal( 'internalerror_info', - __METHOD__." called for a good result, this is incorrect\n" ); - } else { - $this->fatal( 'internalerror_info', - __METHOD__.": Invalid result object: no error text but not OK\n" ); - } - } - if ( count( $this->errors ) == 1 ) { - $params = array_map( 'wfEscapeWikiText', $this->cleanParams( $this->errors[0]['params'] ) ); - $s = wfMsgReal( $this->errors[0]['message'], $params ); - if ( $shortContext ) { - $s = wfMsg( $shortContext, $s ); - } elseif ( $longContext ) { - $s = wfMsg( $longContext, "* $s\n" ); - } - } else { - $s = ''; - foreach ( $this->errors as $error ) { - $params = array_map( 'wfEscapeWikiText', $this->cleanParams( $error['params'] ) ); - $s .= '* ' . wfMsgReal( $error['message'], $params ) . "\n"; - } - if ( $longContext ) { - $s = wfMsg( $longContext, $s ); - } elseif ( $shortContext ) { - $s = wfMsg( $shortContext, "\n* $s\n" ); - } - } - return $s; - } - - /** - * Merge another status object into this one - */ - function merge( $other, $overwriteValue = false ) { - $this->errors = array_merge( $this->errors, $other->errors ); - $this->ok = $this->ok && $other->ok; - if ( $overwriteValue ) { - $this->value = $other->value; + function __construct( $repo = false ) { + if ( $repo ) { + $this->cleanCallback = $repo->getErrorCleanupFunction(); } - $this->successCount += $other->successCount; - $this->failCount += $other->failCount; } }