Revision: 50381 Author: nikerabbit Date: 2009-05-09 20:07:18 +0000 (Sat, 09 May 2009)
Log Message: ----------- * quick hack for diffs Modified Paths: -------------- trunk/extensions/Translate/TranslateEditAddons.php trunk/extensions/Translate/tag/TranslatablePage.php Modified: trunk/extensions/Translate/TranslateEditAddons.php =================================================================== --- trunk/extensions/Translate/TranslateEditAddons.php 2009-05-09 19:45:58 UTC (rev 50380) +++ trunk/extensions/Translate/TranslateEditAddons.php 2009-05-09 20:07:18 UTC (rev 50381) @@ -327,6 +327,38 @@ } } + global $wgEnablePageTranslation; + if ( $wgEnablePageTranslation && $group instanceof WikiPageMessageGroup ) { + // TODO: encapsulate somewhere + $page = TranslatablePage::newFromTitle( $group->title ); + $rev = $page->getTransRev( "$key/$code" ); + $latest = $page->getMarkedTag(); + if ( $rev !== $latest ) { + $oldpage = TranslatablePage::newFromRevision( $group->title, $rev ); + $oldtext = null; + $newtext = null; + foreach ( $oldpage->getParse()->getSectionsForSave() as $section ) { + if ( $group->title->getPrefixedText() .'/'. $section->id === $key ) { + $oldtext = $section->getTextForTrans(); + } + } + + foreach ( $page->getParse()->getSectionsForSave() as $section ) { + if ( $group->title->getPrefixedText() .'/'. $section->id === $key ) { + $newtext = $section->getTextForTrans(); + } + } + + if ( $oldtext !== $newtext ) { + wfLoadExtensionMessages( 'PageTranslation' ); + $diff = new DifferenceEngine; + $diff->setText( $oldtext, $newtext ); + $boxes[] = $diff->getDiff( wfMsgHtml('tpt-diff-old'), wfMsgHtml('tpt-diff-new') ); + $diff->showDiffStyle(); + } + } + } + // Definition if ( $en !== null ) { $label = " ({$group->getLabel()})"; Modified: trunk/extensions/Translate/tag/TranslatablePage.php =================================================================== --- trunk/extensions/Translate/tag/TranslatablePage.php 2009-05-09 19:45:58 UTC (rev 50380) +++ trunk/extensions/Translate/tag/TranslatablePage.php 2009-05-09 20:07:18 UTC (rev 50381) @@ -57,6 +57,7 @@ } if ( !is_string($this->text) ) throw new MWException( 'We have no text' ); + $this->init = true; return $this->text; } @@ -67,6 +68,12 @@ return $this->revision; } + public function setRevision( $revision ) { + $this->revision = $revision; + $this->source = 'revision'; + $this->init = false; + } + // Public functions // public function getParse() { @@ -202,7 +209,7 @@ 'rt_revision' => $revision ); $dbw->delete( 'revtag', $conds, __METHOD__ ); - if ( $value !== null ) $conds['rt_value'] = serialize($value); + if ( $value !== null ) $conds['rt_value'] = serialize(implode('|',$value)); $dbw->insert( 'revtag', $conds, __METHOD__ ); } @@ -314,7 +321,7 @@ $rev = $this->getTransrev( $key .'/' . $collection->code ); foreach ( $markedRevs as $r ) { if ( $rev === $r->rt_revision ) break; - $changed = unserialize($r->rt_value); + $changed = explode( '|', unserialize($r->rt_value) ); // Get a suitable section key $parts = explode( '/', $key ); @@ -330,7 +337,7 @@ return $total/$count; } - protected function getTransRev( $suffix ) { + public function getTransRev( $suffix ) { $id = $this->getTagId( 'tp:transver' ); $title = Title::makeTitle( NS_TRANSLATIONS, $suffix ); _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs