* @ingroup FileAbstraction
*/
class LocalFile extends File {
- const VERSION = 10; // cache version
+ const VERSION = 11; // cache version
const CACHE_FIELD_MAX_LEN = 1000;
function getCacheFields( $prefix = 'img_' ) {
static $fields = [ 'size', 'width', 'height', 'bits', 'media_type',
'major_mime', 'minor_mime', 'metadata', 'timestamp', 'sha1', 'user',
- 'user_text', 'description' ];
+ 'user_text' ];
static $results = [];
if ( $prefix == '' ) {
- return $fields;
+ return array_merge( $fields, [ 'description' ] );
}
-
if ( !isset( $results[$prefix] ) ) {
$prefixedFields = [];
foreach ( $fields as $field ) {
$prefixedFields[] = $prefix . $field;
}
+ $prefixedFields += CommentStore::newKey( "{$prefix}description" )->getFields();
$results[$prefix] = $prefixedFields;
}
$this->dataLoaded = true;
$this->extraDataLoaded = true;
+ $this->description = CommentStore::newKey( "{$prefix}description" )
+ // $row is probably using getFields() from self::getCacheFields()
+ ->getCommentLegacy( wfGetDB( DB_REPLICA ), $row )->text;
+
$array = $this->decodeRow( $row, $prefix );
foreach ( $array as $name => $value ) {
if ( $this->historyLine == 0 ) { // called for the first time, return line from cur
$this->historyRes = $dbr->select( 'image',
- [
- '*',
- "'' AS oi_archive_name",
- '0 as oi_deleted',
- 'img_sha1'
+ self::selectFields() + [
+ 'oi_archive_name' => $dbr->addQuotes( '' ),
+ 'oi_deleted' => 0,
],
[ 'img_name' => $this->title->getDBkey() ],
$fname
return false;
}
} elseif ( $this->historyLine == 1 ) {
- $this->historyRes = $dbr->select( 'oldimage', '*',
+ $this->historyRes = $dbr->select(
+ 'oldimage',
+ OldLocalFile::selectFields(),
[ 'oi_name' => $this->title->getDBkey() ],
$fname,
[ 'ORDER BY' => 'oi_timestamp DESC' ]
function upload( $src, $comment, $pageText, $flags = 0, $props = false,
$timestamp = false, $user = null, $tags = []
) {
- global $wgContLang;
-
if ( $this->getRepo()->getReadOnlyReason() !== false ) {
return $this->readOnlyFatalStatus();
}
// Trim spaces on user supplied text
$comment = trim( $comment );
- // Truncate nicely or the DB will do it for us
- // non-nicely (dangling multi-byte chars, non-truncated version in cache).
- $comment = $wgContLang->truncate( $comment, 255 );
$this->lock(); // begin
$status = $this->publish( $src, $flags, $options );
);
if ( isset( $status->value['revision'] ) ) {
- /** @var $rev Revision */
+ /** @var Revision $rev */
$rev = $status->value['revision'];
// Associate new page revision id
$logEntry->setAssociatedRevId( $rev->getId() );
// This relies on the resetArticleID() call in WikiPage::insertOn(),
// which is triggered on $descTitle by doEditContent() above.
if ( isset( $status->value['revision'] ) ) {
- /** @var $rev Revision */
+ /** @var Revision $rev */
$rev = $status->value['revision'];
$updateLogPage = $rev->getPage();
}