CINXE.COM
r49575 MediaWiki - Code Review archive
<html> <head> <title>r49575 MediaWiki - Code Review archive</title> <meta charset="utf-8"> <link rel="stylesheet" href="../ext.codereview.styles.css"/> </head> <body> <h1>r49575 MediaWiki - Code Review archive</h1> <div id="mw-content-text" class="mw-body-content"><form action="/wiki/Special:Code/MediaWiki/49575" method="post"><table class="mw-codereview-meta"><tr><td>Repository:</td><td><a href="https://www.mediawiki.org/wiki/Special:Code/MediaWiki" title="Special:Code/MediaWiki">MediaWiki</a></td></tr> <tr><td>Revision:</td><td>< <a href="./49574.html" title="Special:Code/MediaWiki/49574">r49574</a> | <b>r49575</b> | <a href="./49576.html" title="Special:Code/MediaWiki/49576">r49576</a> ></td></tr> <tr><td>Date:</td><td>21:46, 16 April 2009</td></tr> <tr><td>Author:</td><td><a href="https://www.mediawiki.org/wiki/Special:Code/MediaWiki/author/catrope" title="Special:Code/MediaWiki/author/catrope">catrope</a></td></tr> <tr><td>Status:</td><td>reverted (<a href="#code-comments">Comments</a>) </td></tr> <tr><td>Tags:</td><td></td></tr> <tr><td>Comment:</td><td><div class="mw-codereview-message">(<a class="external" href="https://bugzilla.wikimedia.org/show_bug.cgi?id=6092">bug 6092</a>) Add parser function equivalents of {{REVISIONID}}, {{REVISIONTIMESTAMP}} (and friends) and {{REVISIONUSER}} magic words. These parser functions are marked as expensive and cache their results</div></td></tr> <tr><td>Modified paths:</td><td><div class='mw-codereview-paths mw-content-ltr'><ul> <li><b>/trunk/phase3/RELEASE-NOTES</b> (modified) (<a href="https://www.mediawiki.org/w/index.php?title=Special:Code/MediaWiki&path=%2Ftrunk%2Fphase3%2FRELEASE-NOTES" title="Special:Code/MediaWiki">history</a>)</li> <li><b>/trunk/phase3/includes/parser/CoreParserFunctions.php</b> (modified) (<a href="https://www.mediawiki.org/w/index.php?title=Special:Code/MediaWiki&path=%2Ftrunk%2Fphase3%2Fincludes%2Fparser%2FCoreParserFunctions.php" title="Special:Code/MediaWiki">history</a>)</li> </ul></div> </td></tr> </table> <h2>Diff <small>[<a href="https://www.mediawiki.org/w/index.php?title=Special:Code/MediaWiki/49575&action=purge" title="Special:Code/MediaWiki/49575">purge</a>]</small></h2><div class='mw-codereview-diff' id='mw-codereview-diff'><table class="mw-codereview-diff"><tr id="1" class="patchedfile"><td colspan="3">Index: trunk/phase3/includes/parser/CoreParserFunctions.php</td></tr> <tr id="5"><td class="linenumbers">—</td><td class="linenumbers">—</td><td class="chunkdelimiter"><span>@@ -66,6 +66,13 @@</span></td></tr> <tr id="6"><td class="linenumbers">67</td><td class="linenumbers">67</td><td class="unchanged"><span> $parser->setFunctionHook( 'talkpagenamee', array( __CLASS__, 'talkpagenamee' ), SFH_NO_HASH );</span></td></tr> <tr id="7"><td class="linenumbers">68</td><td class="linenumbers">68</td><td class="unchanged"><span> $parser->setFunctionHook( 'subjectpagename', array( __CLASS__, 'subjectpagename' ), SFH_NO_HASH );</span></td></tr> <tr id="8"><td class="linenumbers">69</td><td class="linenumbers">69</td><td class="unchanged"><span> $parser->setFunctionHook( 'subjectpagenamee', array( __CLASS__, 'subjectpagenamee' ), SFH_NO_HASH );</span></td></tr> <tr id="9"><td class="linenumbers"> </td><td class="linenumbers">70</td><td class="ins"><ins>+ $parser->setFunctionHook( 'revisionid', array( __CLASS__, 'revisionid' ), SFH_NO_HASH );</ins></td></tr> <tr id="10"><td class="linenumbers"> </td><td class="linenumbers">71</td><td class="ins"><ins>+ $parser->setFunctionHook( 'revisiontimestamp',array( __CLASS__, 'revisiontimestamp'), SFH_NO_HASH );</ins></td></tr> <tr id="11"><td class="linenumbers"> </td><td class="linenumbers">72</td><td class="ins"><ins>+ $parser->setFunctionHook( 'revisionday', array( __CLASS__, 'revisionday' ), SFH_NO_HASH );</ins></td></tr> <tr id="12"><td class="linenumbers"> </td><td class="linenumbers">73</td><td class="ins"><ins>+ $parser->setFunctionHook( 'revisionday2', array( __CLASS__, 'revisionday2' ), SFH_NO_HASH );</ins></td></tr> <tr id="13"><td class="linenumbers"> </td><td class="linenumbers">74</td><td class="ins"><ins>+ $parser->setFunctionHook( 'revisionmonth', array( __CLASS__, 'revisionmonth' ), SFH_NO_HASH );</ins></td></tr> <tr id="14"><td class="linenumbers"> </td><td class="linenumbers">75</td><td class="ins"><ins>+ $parser->setFunctionHook( 'revisionyear', array( __CLASS__, 'revisionyear' ), SFH_NO_HASH );</ins></td></tr> <tr id="15"><td class="linenumbers"> </td><td class="linenumbers">76</td><td class="ins"><ins>+ $parser->setFunctionHook( 'revisionuser', array( __CLASS__, 'revisionuser' ), SFH_NO_HASH );</ins></td></tr> <tr id="16"><td class="linenumbers">70</td><td class="linenumbers">77</td><td class="unchanged"><span> $parser->setFunctionHook( 'tag', array( __CLASS__, 'tagObj' ), SFH_OBJECT_ARGS );</span></td></tr> <tr id="17"><td class="linenumbers">71</td><td class="linenumbers">78</td><td class="unchanged"><span> $parser->setFunctionHook( 'formatdate', array( __CLASS__, 'formatDate' ) );</span></td></tr> <tr id="18"><td class="linenumbers">72</td><td class="linenumbers">79</td><td class="unchanged"><span> $parser->setFunctionHook( 'groupconvert', array( __CLASS__, 'groupconvert' ), SFH_NO_HASH );</span></td></tr> <tr id="19"><td class="linenumbers">—</td><td class="linenumbers">—</td><td class="chunkdelimiter"><span>@@ -411,6 +418,90 @@</span></td></tr> <tr id="20"><td class="linenumbers">412</td><td class="linenumbers">419</td><td class="unchanged"><span> return '';</span></td></tr> <tr id="21"><td class="linenumbers">413</td><td class="linenumbers">420</td><td class="unchanged"><span> return $t->getSubjectPage()->getPrefixedUrl();</span></td></tr> <tr id="22"><td class="linenumbers">414</td><td class="linenumbers">421</td><td class="unchanged"><span> }</span></td></tr> <tr id="23"><td class="linenumbers"> </td><td class="linenumbers">422</td><td class="ins"><ins>+ /*</ins></td></tr> <tr id="24"><td class="linenumbers"> </td><td class="linenumbers">423</td><td class="ins"><ins>+ * Functions to get revision informations, corresponding to the magic words</ins></td></tr> <tr id="25"><td class="linenumbers"> </td><td class="linenumbers">424</td><td class="ins"><ins>+ * of the same names</ins></td></tr> <tr id="26"><td class="linenumbers"> </td><td class="linenumbers">425</td><td class="ins"><ins>+ */</ins></td></tr> <tr id="27"><td class="linenumbers"> </td><td class="linenumbers">426</td><td class="ins"><ins>+ static function revisionid( $parser, $title = null ) {</ins></td></tr> <tr id="28"><td class="linenumbers"> </td><td class="linenumbers">427</td><td class="ins"><ins>+ static $cache = array ();</ins></td></tr> <tr id="29"><td class="linenumbers"> </td><td class="linenumbers">428</td><td class="ins"><ins>+ $t = Title::newFromText( $title );</ins></td></tr> <tr id="30"><td class="linenumbers"> </td><td class="linenumbers">429</td><td class="ins"><ins>+ if ( is_null( $t ) )</ins></td></tr> <tr id="31"><td class="linenumbers"> </td><td class="linenumbers">430</td><td class="ins"><ins>+ return '';</ins></td></tr> <tr id="32"><td class="linenumbers"> </td><td class="linenumbers">431</td><td class="ins"><ins>+ if ( $t->equals( $parser->getTitle() ) ) {</ins></td></tr> <tr id="33"><td class="linenumbers"> </td><td class="linenumbers">432</td><td class="ins"><ins>+ // Let the edit saving system know we should parse the page</ins></td></tr> <tr id="34"><td class="linenumbers"> </td><td class="linenumbers">433</td><td class="ins"><ins>+ // *after* a revision ID has been assigned.</ins></td></tr> <tr id="35"><td class="linenumbers"> </td><td class="linenumbers">434</td><td class="ins"><ins>+ $parser->mOutput->setFlag( 'vary-revision' );</ins></td></tr> <tr id="36"><td class="linenumbers"> </td><td class="linenumbers">435</td><td class="ins"><ins>+ wfDebug( __METHOD__ . ": {{REVISIONID}} used, setting vary-revision...\n" );</ins></td></tr> <tr id="37"><td class="linenumbers"> </td><td class="linenumbers">436</td><td class="ins"><ins>+ return $parser->getRevisionId();</ins></td></tr> <tr id="38"><td class="linenumbers"> </td><td class="linenumbers">437</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="39"><td class="linenumbers"> </td><td class="linenumbers">438</td><td class="ins"><ins>+ if ( isset( $cache[$t->getPrefixedText()] ) )</ins></td></tr> <tr id="40"><td class="linenumbers"> </td><td class="linenumbers">439</td><td class="ins"><ins>+ return $cache[$t->getPrefixedText()];</ins></td></tr> <tr id="41"><td class="linenumbers"> </td><td class="linenumbers">440</td><td class="ins"><ins>+ elseif ( $parser->incrementExpensiveFunctionCount() ) {</ins></td></tr> <tr id="42"><td class="linenumbers"> </td><td class="linenumbers">441</td><td class="ins"><ins>+ $a = new Article( $t );</ins></td></tr> <tr id="43"><td class="linenumbers"> </td><td class="linenumbers">442</td><td class="ins"><ins>+ return $cache[$t->getPrefixedText()] = $a->getRevIdFetched();</ins></td></tr> <tr id="44"><td class="linenumbers"> </td><td class="linenumbers">443</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="45"><td class="linenumbers"> </td><td class="linenumbers">444</td><td class="ins"><ins>+ return '';</ins></td></tr> <tr id="46"><td class="linenumbers"> </td><td class="linenumbers">445</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="47"><td class="linenumbers"> </td><td class="linenumbers">446</td><td class="ins"><ins>+ static function revisiontimestamp( $parser, $title = null ) {</ins></td></tr> <tr id="48"><td class="linenumbers"> </td><td class="linenumbers">447</td><td class="ins"><ins>+ static $cache = array ();</ins></td></tr> <tr id="49"><td class="linenumbers"> </td><td class="linenumbers">448</td><td class="ins"><ins>+ $t = Title::newFromText( $title );</ins></td></tr> <tr id="50"><td class="linenumbers"> </td><td class="linenumbers">449</td><td class="ins"><ins>+ if ( is_null( $t ) )</ins></td></tr> <tr id="51"><td class="linenumbers"> </td><td class="linenumbers">450</td><td class="ins"><ins>+ return '';</ins></td></tr> <tr id="52"><td class="linenumbers"> </td><td class="linenumbers">451</td><td class="ins"><ins>+ if ( $t->equals( $parser->getTitle() ) ) {</ins></td></tr> <tr id="53"><td class="linenumbers"> </td><td class="linenumbers">452</td><td class="ins"><ins>+ // Let the edit saving system know we should parse the page</ins></td></tr> <tr id="54"><td class="linenumbers"> </td><td class="linenumbers">453</td><td class="ins"><ins>+ // *after* a revision ID has been assigned. This is for null edits.</ins></td></tr> <tr id="55"><td class="linenumbers"> </td><td class="linenumbers">454</td><td class="ins"><ins>+ $parser->mOutput->setFlag( 'vary-revision' );</ins></td></tr> <tr id="56"><td class="linenumbers"> </td><td class="linenumbers">455</td><td class="ins"><ins>+ wfDebug( __METHOD__ . ": {{REVISIONTIMESTAMP}} or related parser function used, setting vary-revision...\n" );</ins></td></tr> <tr id="57"><td class="linenumbers"> </td><td class="linenumbers">456</td><td class="ins"><ins>+ return $parser->getRevisionTimestamp();</ins></td></tr> <tr id="58"><td class="linenumbers"> </td><td class="linenumbers">457</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="59"><td class="linenumbers"> </td><td class="linenumbers">458</td><td class="ins"><ins>+ if ( isset( $cache[$t->getPrefixedText()] ) )</ins></td></tr> <tr id="60"><td class="linenumbers"> </td><td class="linenumbers">459</td><td class="ins"><ins>+ return $cache[$t->getPrefixedText()];</ins></td></tr> <tr id="61"><td class="linenumbers"> </td><td class="linenumbers">460</td><td class="ins"><ins>+ elseif ( $parser->incrementExpensiveFunctionCount() ) {</ins></td></tr> <tr id="62"><td class="linenumbers"> </td><td class="linenumbers">461</td><td class="ins"><ins>+ $a = new Article( $t );</ins></td></tr> <tr id="63"><td class="linenumbers"> </td><td class="linenumbers">462</td><td class="ins"><ins>+ return $cache[$t->getPrefixedText()] = $a->getTimestamp();</ins></td></tr> <tr id="64"><td class="linenumbers"> </td><td class="linenumbers">463</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="65"><td class="linenumbers"> </td><td class="linenumbers">464</td><td class="ins"><ins>+ return '';</ins></td></tr> <tr id="66"><td class="linenumbers"> </td><td class="linenumbers">465</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="67"><td class="linenumbers"> </td><td class="linenumbers">466</td><td class="ins"><ins>+ static function revisionday( $parser, $title = null ) {</ins></td></tr> <tr id="68"><td class="linenumbers"> </td><td class="linenumbers">467</td><td class="ins"><ins>+ $timestamp = self::revisiontimestamp( $parser, $title );</ins></td></tr> <tr id="69"><td class="linenumbers"> </td><td class="linenumbers">468</td><td class="ins"><ins>+ if ( $timestamp == '' ) return '';</ins></td></tr> <tr id="70"><td class="linenumbers"> </td><td class="linenumbers">469</td><td class="ins"><ins>+ return intval( substr( $timestamp, 6, 2 ) );</ins></td></tr> <tr id="71"><td class="linenumbers"> </td><td class="linenumbers">470</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="72"><td class="linenumbers"> </td><td class="linenumbers">471</td><td class="ins"><ins>+ static function revisionday2( $parser, $title = null ) {</ins></td></tr> <tr id="73"><td class="linenumbers"> </td><td class="linenumbers">472</td><td class="ins"><ins>+ $timestamp = self::revisiontimestamp( $parser, $title );</ins></td></tr> <tr id="74"><td class="linenumbers"> </td><td class="linenumbers">473</td><td class="ins"><ins>+ if ( $timestamp == '' ) return '';</ins></td></tr> <tr id="75"><td class="linenumbers"> </td><td class="linenumbers">474</td><td class="ins"><ins>+ return substr( $timestamp, 6, 2 );</ins></td></tr> <tr id="76"><td class="linenumbers"> </td><td class="linenumbers">475</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="77"><td class="linenumbers"> </td><td class="linenumbers">476</td><td class="ins"><ins>+ static function revisionmonth( $parser, $title = null ) {</ins></td></tr> <tr id="78"><td class="linenumbers"> </td><td class="linenumbers">477</td><td class="ins"><ins>+ $timestamp = self::revisiontimestamp( $parser, $title );</ins></td></tr> <tr id="79"><td class="linenumbers"> </td><td class="linenumbers">478</td><td class="ins"><ins>+ if ( $timestamp == '' ) return '';</ins></td></tr> <tr id="80"><td class="linenumbers"> </td><td class="linenumbers">479</td><td class="ins"><ins>+ return intval( substr( $timestamp, 4, 2 ) );</ins></td></tr> <tr id="81"><td class="linenumbers"> </td><td class="linenumbers">480</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="82"><td class="linenumbers"> </td><td class="linenumbers">481</td><td class="ins"><ins>+ static function revisionyear( $parser, $title = null ) {</ins></td></tr> <tr id="83"><td class="linenumbers"> </td><td class="linenumbers">482</td><td class="ins"><ins>+ $timestamp = self::revisiontimestamp( $parser, $title );</ins></td></tr> <tr id="84"><td class="linenumbers"> </td><td class="linenumbers">483</td><td class="ins"><ins>+ if ( $timestamp == '' ) return '';</ins></td></tr> <tr id="85"><td class="linenumbers"> </td><td class="linenumbers">484</td><td class="ins"><ins>+ return substr( $timestamp, 0, 4 );</ins></td></tr> <tr id="86"><td class="linenumbers"> </td><td class="linenumbers">485</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="87"><td class="linenumbers"> </td><td class="linenumbers">486</td><td class="ins"><ins>+ static function revisionuser( $parser, $title = null ) {</ins></td></tr> <tr id="88"><td class="linenumbers"> </td><td class="linenumbers">487</td><td class="ins"><ins>+ static $cache = array();</ins></td></tr> <tr id="89"><td class="linenumbers"> </td><td class="linenumbers">488</td><td class="ins"><ins>+ $t = Title::newFromText( $title );</ins></td></tr> <tr id="90"><td class="linenumbers"> </td><td class="linenumbers">489</td><td class="ins"><ins>+ if ( is_null( $t ) )</ins></td></tr> <tr id="91"><td class="linenumbers"> </td><td class="linenumbers">490</td><td class="ins"><ins>+ return '';</ins></td></tr> <tr id="92"><td class="linenumbers"> </td><td class="linenumbers">491</td><td class="ins"><ins>+ if ( $t->equals( $parser->getTitle() ) ) {</ins></td></tr> <tr id="93"><td class="linenumbers"> </td><td class="linenumbers">492</td><td class="ins"><ins>+ // Let the edit saving system know we should parse the page</ins></td></tr> <tr id="94"><td class="linenumbers"> </td><td class="linenumbers">493</td><td class="ins"><ins>+ // *after* a revision ID has been assigned. This is for null edits.</ins></td></tr> <tr id="95"><td class="linenumbers"> </td><td class="linenumbers">494</td><td class="ins"><ins>+ $parser->mOutput->setFlag( 'vary-revision' );</ins></td></tr> <tr id="96"><td class="linenumbers"> </td><td class="linenumbers">495</td><td class="ins"><ins>+ wfDebug( __METHOD__ . ": {{REVISIONUSER}} used, setting vary-revision...\n" );</ins></td></tr> <tr id="97"><td class="linenumbers"> </td><td class="linenumbers">496</td><td class="ins"><ins>+ return $parser->getRevisionUser();</ins></td></tr> <tr id="98"><td class="linenumbers"> </td><td class="linenumbers">497</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="99"><td class="linenumbers"> </td><td class="linenumbers">498</td><td class="ins"><ins>+ if ( isset( $cache[$t->getPrefixedText()] ) )</ins></td></tr> <tr id="100"><td class="linenumbers"> </td><td class="linenumbers">499</td><td class="ins"><ins>+ return $cache[$t->getPrefixedText()];</ins></td></tr> <tr id="101"><td class="linenumbers"> </td><td class="linenumbers">500</td><td class="ins"><ins>+ elseif ( $parser->incrementExpensiveFunctionCount() ) {</ins></td></tr> <tr id="102"><td class="linenumbers"> </td><td class="linenumbers">501</td><td class="ins"><ins>+ $a = new Article( $t );</ins></td></tr> <tr id="103"><td class="linenumbers"> </td><td class="linenumbers">502</td><td class="ins"><ins>+ return $cache[$t->getPrefixedText()] = $a->getUserText();</ins></td></tr> <tr id="104"><td class="linenumbers"> </td><td class="linenumbers">503</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="105"><td class="linenumbers"> </td><td class="linenumbers">504</td><td class="ins"><ins>+ return '';</ins></td></tr> <tr id="106"><td class="linenumbers"> </td><td class="linenumbers">505</td><td class="ins"><ins>+ }</ins></td></tr> <tr id="107"><td class="linenumbers">415</td><td class="linenumbers">506</td><td class="unchanged"><span> </span></td></tr> <tr id="108"><td class="linenumbers">416</td><td class="linenumbers">507</td><td class="unchanged"><span> /**</span></td></tr> <tr id="109"><td class="linenumbers">417</td><td class="linenumbers">508</td><td class="unchanged"><span> * Return the number of pages in the given category, or 0 if it's nonexis-</span></td></tr> <tr id="110" class="patchedfile"><td colspan="3">Index: trunk/phase3/RELEASE-NOTES</td></tr> <tr id="114"><td class="linenumbers">—</td><td class="linenumbers">—</td><td class="chunkdelimiter"><span>@@ -165,6 +165,8 @@</span></td></tr> <tr id="115"><td class="linenumbers">166</td><td class="linenumbers">166</td><td class="unchanged"><span> to allow extensions to update caches in similar way as MediaWiki invalidates</span></td></tr> <tr id="116"><td class="linenumbers">167</td><td class="linenumbers">167</td><td class="unchanged"><span> a cached MonoBook sidebar</span></td></tr> <tr id="117"><td class="linenumbers">168</td><td class="linenumbers">168</td><td class="unchanged"><span> * Special:AllPages: Move hardcoded styles from code to CSS</span></td></tr> <tr id="118"><td class="linenumbers"> </td><td class="linenumbers">169</td><td class="ins"><ins>+* (bug 6092) Add parser function equivalents of {{REVISIONID}},</ins></td></tr> <tr id="119"><td class="linenumbers"> </td><td class="linenumbers">170</td><td class="ins"><ins>+ {{REVISIONTIMESTAMP}} (and friends) and {{REVISIONUSER}} magic words</ins></td></tr> <tr id="120"><td class="linenumbers">169</td><td class="linenumbers">171</td><td class="unchanged"><span> </span></td></tr> <tr id="121"><td class="linenumbers">170</td><td class="linenumbers">172</td><td class="unchanged"><span> === Bug fixes in 1.15 ===</span></td></tr> <tr id="122"><td class="linenumbers">171</td><td class="linenumbers">173</td><td class="unchanged"><span> * (bug 16968) Special:Upload no longer throws useless warnings.</span></td></tr> </table> </div> <h2 id='code-references'>Follow-up revisions</h2> <table border='1' class='wikitable'><tr><th>Revision</th><th>Commit summary</th><th>Author</th><th>Date</th></tr><tr class='mw-codereview-status-deferred'><td><a href="./51424.html" title="Special:Code/MediaWiki/51424">r51424</a></td><td>Reverted <a href="./49575.html" title="Special:Code/MediaWiki/49575">r49575</a>, {{revisionid:...}} due to unresolved CR comments and the gen...</td><td><a href="https://www.mediawiki.org/wiki/Special:Code/MediaWiki/author/tstarling" title="Special:Code/MediaWiki/author/tstarling">tstarling</a></td><td>17:09, 3 June 2009</td></tr></table><h2 id='code-referenced'>Past revisions this follows-up on</h2> <table border='1' class='wikitable'><tr><th>Revision</th><th>Commit summary</th><th>Author</th><th>Date</th></tr><tr class='mw-codereview-status-old'><td><a href="./16659.html" title="Special:Code/MediaWiki/16659">r16659</a></td><td>* (<a class="external" href="https://bugzilla.wikimedia.org/show_bug.cgi?id=6092">bug 6092</a>) Introduce magic words {{REVISIONDAY}}, {{REVISIONDAY2}, {{REVISI...</td><td><a href="https://www.mediawiki.org/wiki/Special:Code/MediaWiki/author/collinj" title="Special:Code/MediaWiki/author/collinj">collinj</a></td><td>17:20, 26 September 2006</td></tr></table><h2 id='code-comments'>Comments</h2> <div class='mw-codereview-comments'><div class="mw-codereview-comment" id="c2219" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2219" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Melancholie" class="mw-userlink" title="User:Melancholie"><bdi>Melancholie</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Melancholie" class="mw-redirect mw-usertoollinks-talk" title="User talk:Melancholie">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Melancholie" class="mw-usertoollinks-contribs" title="Special:Contributions/Melancholie">contribs</a>)</span>   05:31, 17 April 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>Is there now a magic word + parser function, or does the magic word just get "imported"? See <a class="external text" href="https://bugzilla.wikimedia.org/show_bug.cgi?id=6092#c23">https://bugzilla.wikimedia.org/show_bug.cgi?id=6092#c23</a> </p></div></div> <div class="mw-codereview-comment" id="c2221" style="margin-left: 48px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2221" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Catrope" class="mw-userlink" title="User:Catrope"><bdi>Catrope</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Catrope" class="mw-usertoollinks-talk" title="User talk:Catrope">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Catrope" class="mw-usertoollinks-contribs" title="Special:Contributions/Catrope">contribs</a>)</span>   09:39, 17 April 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>See the bug, comment 24. </p></div></div> <div class="mw-codereview-comment" id="c2258" style="margin-left: 48px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2258" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Happy-melon" class="mw-userlink" title="User:Happy-melon"><bdi>Happy-melon</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Happy-melon" class="mw-usertoollinks-talk" title="User talk:Happy-melon">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Happy-melon" class="mw-usertoollinks-contribs" title="Special:Contributions/Happy-melon">contribs</a>)</span>   13:25, 20 April 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>What have I got to do with it?? :D </p></div></div> <div class="mw-codereview-comment" id="c2220" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2220" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Melancholie" class="mw-userlink" title="User:Melancholie"><bdi>Melancholie</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Melancholie" class="mw-redirect mw-usertoollinks-talk" title="User talk:Melancholie">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Melancholie" class="mw-usertoollinks-contribs" title="Special:Contributions/Melancholie">contribs</a>)</span>   05:32, 17 April 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p><code>{{REVISIONUSER}}</code> (<nowiki> ;-) </p></div></div> <div class="mw-codereview-comment" id="c2265" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2265" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Spidern" class="mw-userlink" title="User:Spidern"><bdi>Spidern</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/w/index.php?title=User_talk:Spidern&action=edit&redlink=1" class="new mw-usertoollinks-talk" title="User talk:Spidern (page does not exist)">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Spidern" class="mw-usertoollinks-contribs" title="Special:Contributions/Spidern">contribs</a>)</span>   03:06, 21 April 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>Oh , you silly person you. </p></div></div> <div class="mw-codereview-comment" id="c2266" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2266" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Zzyzx11" class="mw-userlink" title="User:Zzyzx11"><bdi>Zzyzx11</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Zzyzx11" class="mw-usertoollinks-talk" title="User talk:Zzyzx11">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Zzyzx11" class="mw-usertoollinks-contribs" title="Special:Contributions/Zzyzx11">contribs</a>)</span>   03:12, 21 April 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>How in the world did <i><b>I</b></i> get into this conversation? </p></div></div> <div class="mw-codereview-comment" id="c2269" style="margin-left: 48px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2269" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Zzyzx11" class="mw-userlink" title="User:Zzyzx11"><bdi>Zzyzx11</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Zzyzx11" class="mw-usertoollinks-talk" title="User talk:Zzyzx11">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Zzyzx11" class="mw-usertoollinks-contribs" title="Special:Contributions/Zzyzx11">contribs</a>)</span>   03:24, 21 April 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>I mean is way better than me... especially when that user saved the entire Wikipedia on 20211206235204 :D </p></div></div> <div class="mw-codereview-comment" id="c2272" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2272" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Voice_of_All" class="mw-redirect mw-userlink" title="User:Voice of All"><bdi>Voice of All</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Voice_of_All" class="mw-redirect mw-usertoollinks-talk" title="User talk:Voice of All">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Voice_of_All" class="mw-usertoollinks-contribs" title="Special:Contributions/Voice of All">contribs</a>)</span>   07:02, 21 April 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p><a href="https://www.mediawiki.org/w/index.php?title=Template:REVISION_USER&action=edit&redlink=1" class="new" title="Template:REVISION USER (page does not exist)">Template:REVISION USER</a> fun :D </p></div></div> <div class="mw-codereview-comment" id="c2356" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2356" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Brion_VIBBER" class="mw-userlink" title="User:Brion VIBBER"><bdi>Brion VIBBER</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Brion_VIBBER" class="mw-usertoollinks-talk" title="User talk:Brion VIBBER">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Brion_VIBBER" class="mw-usertoollinks-contribs" title="Special:Contributions/Brion VIBBER">contribs</a>)</span>   00:31, 29 April 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>There's a lot of code duplication here; I'd recommend refactoring the code a bit so it's easier to maintain. </p></div></div> <div class="mw-codereview-comment" id="c2522" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2522" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Kronoxt" class="mw-userlink" title="User:Kronoxt"><bdi>Kronoxt</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Kronoxt" class="mw-usertoollinks-talk" title="User talk:Kronoxt">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Kronoxt" class="mw-usertoollinks-contribs" title="Special:Contributions/Kronoxt">contribs</a>)</span>   01:19, 15 May 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>Are you talking about me?? Hoe I got implicated in that... anyways. </p></div></div> <div class="mw-codereview-comment" id="c2523" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2523" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Kronoxt" class="mw-userlink" title="User:Kronoxt"><bdi>Kronoxt</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Kronoxt" class="mw-usertoollinks-talk" title="User talk:Kronoxt">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Kronoxt" class="mw-usertoollinks-contribs" title="Special:Contributions/Kronoxt">contribs</a>)</span>   02:12, 15 May 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>&EDIT : **How I got involved in that </p></div></div> <div class="mw-codereview-comment" id="c2730" style="margin-left: 48px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2730" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Shinjiman" class="mw-userlink" title="User:Shinjiman"><bdi>Shinjiman</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Shinjiman" class="mw-usertoollinks-talk" title="User talk:Shinjiman">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Shinjiman" class="mw-usertoollinks-contribs" title="Special:Contributions/Shinjiman">contribs</a>)</span>   15:29, 1 June 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>Me too, how I got involved in that? </p></div></div> <div class="mw-codereview-comment" id="c2717" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2717" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Splarka" class="mw-userlink" title="User:Splarka"><bdi>Splarka</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Splarka" class="mw-usertoollinks-talk" title="User talk:Splarka">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Splarka" class="mw-usertoollinks-contribs" title="Special:Contributions/Splarka">contribs</a>)</span>   08:19, 30 May 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>Hey, Someone should make sure this can't be used as <a href="https://www.mediawiki.org/w/index.php?title=Template:CURRENTUSER&action=edit&redlink=1" class="new" title="Template:CURRENTUSER (page does not exist)">Template:CURRENTUSER</a> by giving an invalid/bad/deleted/hidden title. </p></div></div> <div class="mw-codereview-comment" id="c2776" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2776" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Capmo" class="mw-userlink" title="User:Capmo"><bdi>Capmo</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Capmo" class="mw-usertoollinks-talk" title="User talk:Capmo">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Capmo" class="mw-usertoollinks-contribs" title="Special:Contributions/Capmo">contribs</a>)</span>   07:08, 4 June 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>Hey, it took me 20min to understand why you were all talking about me, lol! Especially , you naughty boy! </p></div></div> <div class="mw-codereview-comment" id="c2923" style="margin-left: 0px"><div class="mw-codereview-comment-meta"><a href="./49575.html#c2923" title="Special:Code/MediaWiki/49575">#</a>Comment by <a href="https://www.mediawiki.org/wiki/User:Pinky" class="mw-userlink" title="User:Pinky"><bdi>Pinky</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Pinky" class="mw-usertoollinks-talk" title="User talk:Pinky">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Pinky" class="mw-usertoollinks-contribs" title="Special:Contributions/Pinky">contribs</a>)</span>   01:27, 16 June 2009 </div><div class="mw-codereview-comment-text mw-content-ltr"><p>test ~~~ </p></div></div></div><h2 id='code-changes'>Status & tagging log</h2> <ul class='mw-codereview-changes'><li>17:15, 3 June 2009 <a href="https://www.mediawiki.org/wiki/User:Tim_Starling" class="mw-userlink" title="User:Tim Starling"><bdi>Tim Starling</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Tim_Starling" class="mw-usertoollinks-talk" title="User talk:Tim Starling">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Tim_Starling" class="mw-usertoollinks-contribs" title="Special:Contributions/Tim Starling">contribs</a>)</span> changed the <b>status</b> of r49575 <i>[<b>removed:</b> fixme <b>added:</b> reverted]</i></li> <li>00:31, 29 April 2009 <a href="https://www.mediawiki.org/wiki/User:Brion_VIBBER" class="mw-userlink" title="User:Brion VIBBER"><bdi>Brion VIBBER</bdi></a> <span class="mw-usertoollinks">(<a href="https://www.mediawiki.org/wiki/User_talk:Brion_VIBBER" class="mw-usertoollinks-talk" title="User talk:Brion VIBBER">talk</a> | <a href="https://www.mediawiki.org/wiki/Special:Contributions/Brion_VIBBER" class="mw-usertoollinks-contribs" title="Special:Contributions/Brion VIBBER">contribs</a>)</span> changed the <b>status</b> of r49575 <i>[<b>removed:</b> new <b>added:</b> fixme]</i></li></ul></form></div> </body> </html>