php - Mediawiki 扩展在标题中添加 Javascript

标签 php javascript mediawiki

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

在我的扩展文件夹中有一个 new.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'; 

SpecialMyExtension.php

 <?php
 class SpecialMyExtension extends SpecialPage {
    function __construct() {
            parent::__construct( 'MyExtension' );
    }

    function execute( $par ) {
            $request = $this->getRequest();
            $output = $this->getOutput();
            $this->setHeaders();

            # Get request data from, e.g.
            $param = $request->getText('param');

            # Do stuff
            # ...

            if(file_exists("extensions/TimeLine/TimeLine/data.xml"))
            {
                    $data = simplexml_load_file("extensions/TimeLine/TimeLine/data.xml");

                    foreach($data->event as $event)
                    {
                        $html.="<tr><td>".$event['title']."</td><td>".$event['start']."</td></tr>";
                    }
                    $html.="</table>";

                    $html.="<a href=\"javascript:hello()\">klick</a>";

                    $output->addHTML($html);

                 }
                 else
                 {
                    $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;

}

关于php - Mediawiki 扩展在标题中添加 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12999403/

相关文章:

javascript - 使用可视化 ChartEditor 时将 google Chart 保存为图像;

javascript - 跨域 XML POST

PHP 警告 : PHP Startup: Unable to load dynamic library '...' failed to map segment from shared object: Cannot allocate memory in Unknown on line 0

php - 语言翻译语法

php - 喜欢/不喜欢像 FB 这样的系统

php - 用户订单的股票期权价格变化(买/卖)

javascript - 表单提交未包含在表单中的输入元素

mediawiki - 有没有简单的方法制作令人愉悦的mediawiki表?

python - 我可以使用 pywikipedia 来获取页面的文本吗?

php - Pdo select 查询以不适当的方式返回列值(unicode 问题)