Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 尝试将parserHook添加到mediawiki时出错_Php_Mediawiki - Fatal编程技术网

Php 尝试将parserHook添加到mediawiki时出错

Php 尝试将parserHook添加到mediawiki时出错,php,mediawiki,Php,Mediawiki,我正在运行Mediawiki 1.23并使用Syntaxhighlight插件。90%的情况下,我们使用SQL作为指定语言。例如: <syntaxhighlight lang="sql"> select 'foo'; </syntaxhighlight> 在SyntaxHighlight_SeSHi.php中,我添加了第三个setHook: function efSyntaxHighlight_GeSHiSetup( &$parser ) { $p

我正在运行Mediawiki 1.23并使用Syntaxhighlight插件。90%的情况下,我们使用SQL作为指定语言。例如:

<syntaxhighlight lang="sql">
   select 'foo';
</syntaxhighlight>
在SyntaxHighlight_SeSHi.php中,我添加了第三个setHook:

function efSyntaxHighlight_GeSHiSetup( &$parser ) {
    $parser->setHook( 'source', array( 'SyntaxHighlight_GeSHi', 'parserHook' ) );
    $parser->setHook( 'syntaxhighlight', array( 'SyntaxHighlight_GeSHi', 'parserHook' ) );
    $parser->setHook( 'sql', array( 'SyntaxHighlight_GeSHi', 'parserHookSql' ) );
    return true;
}
最后,在SyntaxHighlight_SeSHi.class.php中,我尝试保留来自解析器的所有值,但添加(或替换)了“lang”值,然后调用原始的parserHook:

class SyntaxHighlight_GeSHi {
    private static $initialised = false;
    private static $languages = null;

    public static function parserHookSql( $text, $args = array(), $parser ) { 
        $args['lang']='sql';
        self::parserHook($text,$args,$parser);
    }

    public static function parserHook( $text, $args = array(), $parser ) {
        global $wgSyntaxHighlightDefaultLang, $wgUseSiteCss, $wgUseTidy;
        wfProfileIn( __METHOD__ );
        self::initialise();
        ...
        ...
当我这样做时,页面呈现,但是
sql
标记中呈现的文本是“UNIQ088c1443c530026e-sql-0000000 7-QINU”,所以我显然做错了什么


所以我的PHP有任何帮助,或者我扩展mediawiki的方式不对。。。无论哪种情况,请提前感谢

哇,您正在使用来自未来的MediaWiki?;)这可以解释很多。但是没有,只有1.23。更新了问题。是的。非常感谢。真不敢相信我错过了!
return self::parserHook($text,$args,$parser);
class SyntaxHighlight_GeSHi {
    private static $initialised = false;
    private static $languages = null;

    public static function parserHookSql( $text, $args = array(), $parser ) { 
        $args['lang']='sql';
        self::parserHook($text,$args,$parser);
    }

    public static function parserHook( $text, $args = array(), $parser ) {
        global $wgSyntaxHighlightDefaultLang, $wgUseSiteCss, $wgUseTidy;
        wfProfileIn( __METHOD__ );
        self::initialise();
        ...
        ...
return self::parserHook($text,$args,$parser);