X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Flogging%2FLogEntry.php;h=8427adbb35d4d4a7ecc8eef47ea778e46ebb5552;hb=8d1c5a70f753fe6b7d2533a30b07fe03e6583a1d;hp=66c2bde1a9f298399de22990348f6a8ab1cf3d76;hpb=5bc573f7709cdfa609b89cd6790059ec42bfe9fe;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/logging/LogEntry.php b/includes/logging/LogEntry.php index 66c2bde1a9..8427adbb35 100644 --- a/includes/logging/LogEntry.php +++ b/includes/logging/LogEntry.php @@ -115,6 +115,28 @@ abstract class LogEntryBase implements LogEntry { public function isLegacy() { return false; } + + /** + * Create a blob from a parameter array + * + * @param array $params + * @return string + * @since 1.26 + */ + public static function makeParamBlob( $params ) { + return serialize( (array)$params ); + } + + /** + * Extract a parameter array from a blob + * + * @param string $blob + * @return array + * @since 1.26 + */ + public static function extractParams( $blob ) { + return unserialize( $blob ); + } } /** @@ -224,14 +246,14 @@ class DatabaseLogEntry extends LogEntryBase { public function getParameters() { if ( !isset( $this->params ) ) { $blob = $this->getRawParameters(); - wfSuppressWarnings(); - $params = unserialize( $blob ); - wfRestoreWarnings(); + MediaWiki\suppressWarnings(); + $params = LogEntryBase::extractParams( $blob ); + MediaWiki\restoreWarnings(); if ( $params !== false ) { $this->params = $params; $this->legacy = false; } else { - $this->params = $blob === '' ? array() : explode( "\n", $blob ); + $this->params = LogPage::extractParams( $blob ); $this->legacy = true; } } @@ -516,7 +538,7 @@ class ManualLogEntry extends LogEntryBase { 'log_title' => $this->getTarget()->getDBkey(), 'log_page' => $this->getTarget()->getArticleID(), 'log_comment' => $comment, - 'log_params' => serialize( (array)$this->getParameters() ), + 'log_params' => LogEntryBase::makeParamBlob( $this->getParameters() ), ); if ( isset( $this->deleted ) ) { $data['log_deleted'] = $this->deleted; @@ -584,7 +606,7 @@ class ManualLogEntry extends LogEntryBase { $this->getSubtype(), $this->getTarget(), $this->getComment(), - serialize( (array)$this->getParameters() ), + LogEntryBase::makeParamBlob( $this->getParameters() ), $newId, $formatter->getIRCActionComment() // Used for IRC feeds );