Physikerwelt has uploaded a new change for review.
https://gerrit.wikimedia.org/r/150642
Change subject: Modularize Hooks
......................................................................
Modularize Hooks
Change-Id: Ibe4c0aface343b4b7a2175098ac39b2e15c1c8b1
---
M FormulaInfo.php
M MathSearch.hooks.php
M MathSearch.php
3 files changed, 52 insertions(+), 12 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MathSearch
refs/changes/42/150642/1
diff --git a/FormulaInfo.php b/FormulaInfo.php
index 85556ae..5244cb6 100644
--- a/FormulaInfo.php
+++ b/FormulaInfo.php
@@ -53,6 +53,7 @@
$wgOut->addWikiText( "No occurrences found clean up the
database to remove unused formulae" );
}
}
+
public function DisplayInfo( $pid, $eid ) {
global $wgMathDebug, $wgOut;
/* $out Output page find out how to get that variable in a
static context*/
@@ -66,16 +67,21 @@
}
$pagename = (string)$article->getTitle();
- $out->addWikiText( "* Page found:
[[$pagename#math$eid|$pagename]] (eq $eid) ", false );
+ $out->addWikiText( "* Page found: [[$pagename#$eid|$pagename]]
(eq $eid) ", false );
$out->addHtml( '<a href="/index.php?title=' . $pagename .
'&action=purge&mathpurge=true">(force rerendering)</a>' );
/* @var $mo MathObject */
$mo = MathObject::constructformpage( $pid, $eid );
+ if ( !$mo ) {
+ $out->addWikiText( 'Cannot find the equation data in
the database.' );
+ return false;
+ }
$out->addWikiText( "Occurrences on the following pages:" );
wfDebugLog( "MathSearch", var_export( $mo->getAllOccurences(),
true ) );
// $wgOut->addWikiText('<b>:'.var_export($res,true).'</b>');
$out->addWikiText( 'TeX (as stored in database):
<syntaxhighlight lang="latex">' . $mo->getTex() . '</syntaxhighlight>' );
$out->addWikiText( 'MathML (' . self::getlengh(
$mo->getMathml() ) . ') :', false );
+ // TODO: Add logo
$out->addHtml( '<a href="/wiki/Special:MathSearch?mathpattern='
. urlencode( $mo->getTex() ) . '&searchx=Search"><img
src="http://wikidemo.formulasearchengine.com/images/FSE-PIC.png" width="15"
height="15"></a>' );
$out->addHtml( $mo->getMathml() );
# $log=htmlspecialchars( $res->math_log );
diff --git a/MathSearch.hooks.php b/MathSearch.hooks.php
index c013f04..5db2d6e 100644
--- a/MathSearch.hooks.php
+++ b/MathSearch.hooks.php
@@ -98,6 +98,27 @@
}
/**
+ * Changes the specified defaultID given as argument ID to
+ * either the manually assignedID from the MathTag or
+ * prefixes it with "math" to increase the probability of
+ * having a unique id that can be referenced via the anchor
+ * #math{$id}.
+ * @param int $id
+ * @param MathRenderer $renderer
+ * @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) {
+ if ( $renderer->getID() ){
+ $id = $renderer->getID();
+ return true;
+ } else {
+ $id = "math{$id}";
+ return false;
+ }
+ }
+
+ /**
* Callback function that is called after a formula was rendered
* @param MathRenderer $Renderer
* @param string|null $Result reference to the rendering result
@@ -105,17 +126,14 @@
* @param int $eid
* @return bool
*/
- static function onMathFormulaRendered( MathRenderer $Renderer, &$Result
= null, $pid = 0, $eid = 0 ) {
+ static function updateMathIndex( MathRenderer $Renderer, &$Result =
null, $pid = 0, $eid = 0 ) {
if ( $pid > 0 ) { // Only store something if a pageid was set.
// Use manually assigned IDs whenever possible
// and fallback to automatic IDs otherwise.
- if ( $Renderer->getID() ){
- $id = $Renderer->getID();
- } else {
- $id = 'math'.$eid;
- $Result = preg_replace(
'/(class="mwe-math-mathml-(inline|display))/', "id=\"$id\" \\1", $Result );
+ if ( ! self::setMathId( $eid , $Renderer ) ){
+ $Result = preg_replace(
'/(class="mwe-math-mathml-(inline|display))/', "id=\"$eid\" \\1", $Result );
}
- self::updateIndex( $pid , $id ,
$Renderer->getInputHash() , $Renderer->getTex() );
+ self::updateIndex( $pid , $eid ,
$Renderer->getInputHash() , $Renderer->getTex() );
}
return true;
}
@@ -128,15 +146,30 @@
* @param int $eid
* @return bool
*/
- static function addIdentifierAndSpecialPageLink( MathRenderer
$Renderer, &$Result = null, $pid = 0, $eid = 0 ) {
- $url = SpecialPage::getTitleFor( 'FormulaInfo' )->getLocalUrl(
array( 'pid' => $pid, 'eid' => $eid ) );
+ static function addIdentifierDescription( MathRenderer $Renderer,
&$Result = null, $pid = 0, $eid = 0 ) {
+ self::setMathId( $eid , $Renderer );
$mo = MathObject::cloneFromRenderer($Renderer);
$mo->setPageID($pid);
$mo->setID($eid);
$Result = preg_replace_callback("#<(mi|mo)(
([^>].*?))?>(.*?)</\\1>#u", array( $mo , 'addIdentifierTitle' ), $Result);
- $Result = '<a href="' . $url . '" id="math' . $eid . '"
style="color:inherit;">' . $Result . '</a>';
return true;
}
+
+ /**
+ * Callback function that is called after a formula was rendered
+ * @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 ) );
+ $Result = "<a href=\"$url\" id=\"$eid\"
style=\"color:inherit;\">$Result</a>";
+ return true;
+ }
+
/**
* Alternative Callback function that is called after a formula was
rendered
* used for test corpus generation for NTCIR11 Math-2
diff --git a/MathSearch.php b/MathSearch.php
index 60a46cb..5452183 100644
--- a/MathSearch.php
+++ b/MathSearch.php
@@ -74,7 +74,8 @@
$wgAPIModules['mathquery'] = 'MathSearchApi';
$wgHooks['LoadExtensionSchemaUpdates'][] =
'MathSearchHooks::onLoadExtensionSchemaUpdates';
-$wgHooks['MathFormulaRendered'][] = 'MathSearchHooks::onMathFormulaRendered';
+$wgHooks['MathFormulaRendered']['updateIndex'] =
'MathSearchHooks::updateMathIndex';
+$wgHooks['MathFormulaRendered']['addLink'] =
'MathSearchHooks::addLinkToFormulaInfoPage';
$wgHooks['UnitTestsList'][] = 'MathSearchHooks::onRegisterUnitTests';
$wgGroupPermissions['user']['MathDebug'] = true;
--
To view, visit https://gerrit.wikimedia.org/r/150642
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibe4c0aface343b4b7a2175098ac39b2e15c1c8b1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MathSearch
Gerrit-Branch: master
Gerrit-Owner: Physikerwelt <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits