Php Mediawiki扩展在标题中添加Javascript

Php Mediawiki扩展在标题中添加Javascript,php,javascript,mediawiki,Php,Javascript,Mediawiki,嗨,我的问题是我不能加载一些javascript文件@我的特殊页面扩展名。 我尝试了addscript和其他一些方法,但唯一发生的事情是javascript被取消了,因为mediawiki软件没有js 在我的扩展名文件夹中有一个新的.js文件,我只想在我的特殊页面上访问它 下面是一些代码(大部分是特殊页面的示例) MyExentions.php <?php if (!defined('MEDIAWIKI')) { echo <<<EOT To install my

嗨,我的问题是我不能加载一些javascript文件@我的特殊页面扩展名。 我尝试了addscript和其他一些方法,但唯一发生的事情是javascript被取消了,因为mediawiki软件没有js

在我的扩展名文件夹中有一个新的.js文件,我只想在我的特殊页面上访问它

下面是一些代码(大部分是特殊页面的示例)

MyExentions.php

<?php
if (!defined('MEDIAWIKI')) {
    echo <<<EOT
To install my extension, put the following line in LocalSettings.php:
require_once( "$IP/extensions/MyExtension/MyExtension.php" );
EOT;
    exit( 1 );
}

$wgExtensionCredits['specialpage'][] = array(
    'path' => __FILE__,
    'name' => '-',
    'author' => 'Thomas Döring',
    'descriptionmsg' => '-',
    'version' => '0.0.1',
);

$dir = dirname(__FILE__) . '/';
$wgAutoloadClasses['SpecialMyExtension'] = $dir . 'SpecialMyExtension.php'; 
$wgExtensionMessagesFiles['MyExtension'] = $dir . 'MyExtension.i18n.php';
$wgExtensionMessagesFiles['MyExtensionAlias'] = $dir . 'MyExtension.alias.php'; 
$wgSpecialPages['MyExtension'] = 'SpecialMyExtension'; 
事件作为$event)
{
$html.=''.$event['title'.''.$event['start'.'';
}
$html.=”;
$html.=”;
$output->addHTML($html);
}
其他的
{
$wikitext='Datei nicht gefunden!';
$output->addWikiText($wikitext);
}
}
}
?>

希望您能帮助我。

addScript在1.16版及之前的版本中工作。在1.17及更高版本中,应使用addHeadItem:

$wgHooks['ParserBeforeTidy'][] = 'wgAddJquery';

function wgAddJquery(&$parser, &$text) {

  global $addJqueryScripts;
  if ($addJqueryScripts === true) return true;

  $parser->mOutput->addHeadItem(
    '<script language="JavaScript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>'
  );

  $addJqueryScripts = true;

  return true;

}
$wgHooks['ParserBeforeTidy'][]='wgAddJquery';
函数wgAddJquery(&$parser,&$text){
全局$addJqueryScripts;
if($addJqueryScripts===true)返回true;
$parser->mOutput->addHeadItem(
''
);
$addJqueryScripts=true;
返回true;
}

我在皮肤文件中的函数setupSkinUserCss中添加了它 $out->addHeadItem('maketree.js',”

”;

你的代码在哪里包含添加JS的方法?你知道吗?你把这个AddHeadItem放在哪里?在皮肤中?只是一个附录:根据较新的插件约定,您可以将钩子注册放在
MyExtention.php
,如下所示:
$wgHooks['ParserBeforeTidy'][='MyExtention::wgAddJquery'
和函数
wgAddJQuery()
作为
MyExtention.hooks.php
中的静态方法。这对我很有效,我没有改变
LocalSettings.php
,也没有绑定到特定的皮肤。
$wgHooks['ParserBeforeTidy'][] = 'wgAddJquery';

function wgAddJquery(&$parser, &$text) {

  global $addJqueryScripts;
  if ($addJqueryScripts === true) return true;

  $parser->mOutput->addHeadItem(
    '<script language="JavaScript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>'
  );

  $addJqueryScripts = true;

  return true;

}
<script type='text/javascript' src='/js/mktree.js'></script>");