http://www.mediawiki.org/wiki/Special:Code/MediaWiki/67220

Revision: 67220
Author:   daniel
Date:     2010-06-02 15:38:48 +0000 (Wed, 02 Jun 2010)

Log Message:
-----------
yet another try at efficient variable substitution

Modified Paths:
--------------
    trunk/extensions/DataTransclusion/DataTransclusionHandler.php

Modified: trunk/extensions/DataTransclusion/DataTransclusionHandler.php
===================================================================
--- trunk/extensions/DataTransclusion/DataTransclusionHandler.php       
2010-06-02 15:38:03 UTC (rev 67219)
+++ trunk/extensions/DataTransclusion/DataTransclusionHandler.php       
2010-06-02 15:38:48 UTC (rev 67220)
@@ -133,18 +133,37 @@
     }
 
     static function renderTemplate( $parser, $title, $record ) {
+           //XXX: use cached & preparsed template. $template doesn't have the 
right type, it seems
+           /*
+           list( $text, $title ) = $parser->getTemplateDom( $title );
+           $frame = $parser->getPreprocessor()->newCustomFrame( $record );
+           $text = $frame->expand( $template );
+           */
+
+           //XXX: trying another way. but $piece['parts'] needs to be a 
PPNode. how to do that?
+           /*
+           $frame = $parser->getPreprocessor()->newCustomFrame( $record );
+
+           $piece = array();
+
+           if ( $title->getNamespace() == NS_TEMPLATE ) $n = "";
+           else $n = $title->getNsText() . ":";
+
+           $piece ['title'] = $n . $title->getText();
+           $piece['parts'] = $record;
+           $piece['lineStart'] = false; //XXX: ugly. can't know here whether 
the brace was at the start of a line
+
+           $ret = $parser->braceSubstitution( $piece, $frame );
+           $text = $ret[ 'text' ];
+           */
+
+           //dumb and slow, but works
            $p = new Article( $title );
            if ( !$p->exists() ) return false;
 
            $text = $p->getContent(); 
            $text = $parser->replaceVariables( $text, $record );
 
-           //FIXME: use cached & preparsed template. figure out how to...
-           /*
-           list( $text, $title ) = $parser->getTemplateDom( $title );
-           $frame = $parser->getPreprocessor()->newCustomFrame( $record );
-           $text = $frame->expand( $template );
-           */
            return $text;
     }
 



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

Reply via email to