Physikerwelt has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/197429

Change subject: Update to new hook
......................................................................

Update to new hook

MathFormulaRendered was replaced by MathFormulaPostRender
in I201f80bbee16617ef88417a2430261167aaca4ae

Change-Id: I468a95851e6acdb8186a06b0a2ac73499cc4611f
---
M MathSearch.hooks.php
M MathSearch.php
2 files changed, 36 insertions(+), 42 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MathSearch 
refs/changes/29/197429/1

diff --git a/MathSearch.hooks.php b/MathSearch.hooks.php
index 169c1c2..6f94ec2 100644
--- a/MathSearch.hooks.php
+++ b/MathSearch.hooks.php
@@ -58,14 +58,6 @@
                }
        }
 
-       private static function curId2OldId( $curId ){
-               $title = Title::newFromID( $curId );
-               if ( $title ){
-                       return Title::newFromID( $curId )->getLatestRevID();
-               } else {
-                       return 0;
-               }
-       }
        /**
         * Updates the formula index in the database
         *
@@ -106,51 +98,54 @@
         * #math{$id}.
         * @param int $id
         * @param MathRenderer $renderer
+        * @param int $revId
         * @return bool true if an ID has been assigned manually,
         * false if the automatic fallback math{$id} was used.
         */
-       private static function setMathId( &$id, MathRenderer $renderer) {
+       private static function setMathId( &$id, MathRenderer $renderer, 
$revId) {
                if ( $renderer->getID() ){
                        $id = $renderer->getID();
                        return true;
                } else {
-                       $id = "math{$id}";
+                       $id = self::generateMathAnchorString( $revId, $id, '' );
                        return false;
                }
        }
 
        /**
         * Callback function that is called after a formula was rendered
-        * @param MathRenderer $Renderer
+        * @param Parser $parser
+        * @param MathRenderer $renderer
         * @param string|null $Result reference to the rendering result
-        * @param int $revId
-        * @param int $eid
         * @return bool
         */
-       static function updateMathIndex( MathRenderer $Renderer, &$Result = 
null, $revId = 0, $eid = 0 ) {
+       static function updateMathIndex( Parser $parser, MathRenderer 
$renderer, &$Result = null ) {
+               $revId = $parser->getRevisionId();
+               $eid = $parser->nextLinkID();
                if ( $revId > 0 ) { // Only store something if a pageid was set.
                        // Use manually assigned IDs whenever possible
                        // and fallback to automatic IDs otherwise.
-                       if ( ! self::setMathId( $eid , $Renderer ) ){
+                       if ( ! self::setMathId( $eid , $renderer, $revId ) ){
                                $Result = preg_replace( 
'/(class="mwe-math-mathml-(inline|display))/', "id=\"$eid\" \\1", $Result );
                        }
-                       self::updateIndex( $revId , $eid , 
$Renderer->getInputHash() , $Renderer->getTex() );
+                       self::updateIndex( $revId , $eid , 
$renderer->getInputHash() , $renderer->getTex() );
                }
                return true;
        }
 
        /**
         * Callback function that is called after a formula was rendered
-        * @param MathRenderer $Renderer
+        * @param Parser $parser
+        * @param MathRenderer $renderer
         * @param string|null $Result reference to the rendering result
-        * @param int $pid
-        * @param int $eid
         * @return bool
         */
-       static function addIdentifierDescription( MathRenderer $Renderer, 
&$Result = null, $pid = 0, $eid = 0 ) {
-               self::setMathId( $eid , $Renderer );
-               $mo = MathObject::cloneFromRenderer($Renderer);
-               $mo->setRevisionID($pid);
+       static function addIdentifierDescription( Parser $parser, MathRenderer 
$renderer, &$Result = null ) {
+               $revId = $parser->getRevisionId();
+               $eid = $parser->nextLinkID();
+               self::setMathId( $eid , $renderer, $revId );
+               $mo = MathObject::cloneFromRenderer($renderer);
+               $mo->setRevisionID($revId);
                $mo->setID($eid);
                $Result = preg_replace_callback("#<(mi|mo)( 
([^>].*?))?>(.*?)</\\1>#u", array( $mo , 'addIdentifierTitle' ), $Result);
                return true;
@@ -158,15 +153,16 @@
 
        /**
         * Callback function that is called after a formula was rendered
-        * @param MathRenderer $Renderer
+        * @param Parser $parser
+        * @param MathRenderer $renderer
         * @param string|null $Result reference to the rendering result
-        * @param int $pid
-        * @param int $eid
         * @return bool
         */
-       static function addLinkToFormulaInfoPage( MathRenderer $Renderer, 
&$Result = null, $pid = 0, $eid = 0 ) {
-               self::setMathId( $eid , $Renderer );
-               $url = SpecialPage::getTitleFor( 'FormulaInfo' )->getLocalUrl( 
array( 'pid' => $pid, 'eid' => $eid ) );
+       static function addLinkToFormulaInfoPage( Parser $parser, MathRenderer 
$renderer, &$Result = null ) {
+               $revId = $parser->getRevisionId();
+               $eid = $parser->nextLinkID();
+               self::setMathId( $eid , $renderer, $revId );
+               $url = SpecialPage::getTitleFor( 'FormulaInfo' )->getLocalUrl( 
array( 'pid' => $revId, 'eid' => $eid ) );
                $Result = "<span><a href=\"$url\" id=\"$eid\" 
style=\"color:inherit;\">$Result</a></span>";
                return true;
        }
@@ -178,20 +174,20 @@
         * <code>$wgHooks['MathFormulaRendered'] = 
array('MathSearchHooks::onMathFormulaRenderedNoLink');</code>
         * in your local settings
         *
-        * @param MathRenderer $Renderer
+        * @param Parser $parser
+        * @param MathRenderer $renderer
         * @param null $Result
-        * @param int $pid
-        * @param int $eid
-        * @return boolean (true)
+        * @return bool
         */
-       static function onMathFormulaRenderedNoLink( $Renderer, &$Result = 
null, $pid = 0, $eid = 0 ) {
-               if ( $pid > 0 ) { // Only store something if a pageid was set.
-                       self::updateIndex( $pid, $eid, 
$Renderer->getInputHash(), $Renderer->getTex() );
+       static function onMathFormulaRenderedNoLink( Parser $parser, 
MathRenderer $renderer, &$Result = null ) {
+               $revId = $parser->getRevisionId();
+               $eid = $parser->nextLinkID();
+               if ( $revId > 0 ) { // Only store something if a pageid was set.
+                       self::updateIndex( $revId, $eid, 
$renderer->getInputHash(), $renderer->getTex() );
                }
                if ( preg_match( '#<math(.*)?\sid="(?P<id>[\w\.]+)"#', $Result, 
$matches ) ) {
                        $rendererId = $matches['id'];
-                       $oldId = self::curId2OldId( $pid );
-                       $newID = self::generateMathAnchorString( $oldId, $eid, 
'' );
+                       $newID = self::generateMathAnchorString( $revId, $eid, 
'' );
                        $Result = str_replace( $rendererId, $newID, $Result );
                }
                return true;
@@ -259,7 +255,6 @@
                        return '';
                }
                wfDebugLog('MathSearch','Render mquery tag.');
-               wfProfileIn( __METHOD__ );
                //TODO: Report %\n problem to LaTeXML upstream
                $content = preg_replace( '/%\n/', '', $content );
                $renderer = new MathLaTeXML( $content );
@@ -269,7 +264,6 @@
                $renderer->render( );
                $renderedMath = $renderer->getHtmlOutput();
                $renderer->writeCache();
-               wfProfileOut( __METHOD__ );
 
                return array( $renderedMath, "markerType" => 'nowiki' );
        }
diff --git a/MathSearch.php b/MathSearch.php
index 555a219..5a82ede 100644
--- a/MathSearch.php
+++ b/MathSearch.php
@@ -69,8 +69,8 @@
 $wgSpecialPages['DisplayTopics'] = 'SpecialDisplayTopics';
 
 $wgHooks['LoadExtensionSchemaUpdates'][] = 
'MathSearchHooks::onLoadExtensionSchemaUpdates';
-$wgHooks['MathFormulaRendered']['updateIndex'] = 
'MathSearchHooks::updateMathIndex';
-$wgHooks['MathFormulaRendered']['addLink'] = 
'MathSearchHooks::addLinkToFormulaInfoPage';
+$wgHooks['MathFormulaPostRender']['updateIndex'] = 
'MathSearchHooks::updateMathIndex';
+$wgHooks['MathFormulaPostRender']['addLink'] = 
'MathSearchHooks::addLinkToFormulaInfoPage';
 $wgHooks['UnitTestsList'][] = 'MathSearchHooks::onRegisterUnitTests';
 $wgHooks['ParserFirstCallInit'][] = 'MathSearchHooks::onParserFirstCallInit';
 

-- 
To view, visit https://gerrit.wikimedia.org/r/197429
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I468a95851e6acdb8186a06b0a2ac73499cc4611f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MathSearch
Gerrit-Branch: master
Gerrit-Owner: Physikerwelt <w...@physikerwelt.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to