Php Mediawiki扩展在标题中添加Javascript
嗨,我的问题是我不能加载一些javascript文件@我的特殊页面扩展名。 我尝试了addscript和其他一些方法,但唯一发生的事情是javascript被取消了,因为mediawiki软件没有js 在我的扩展名文件夹中有一个新的.js文件,我只想在我的特殊页面上访问它 下面是一些代码(大部分是特殊页面的示例) MyExentions.phpPhp 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
<?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>");