【问题标题】:Mediawiki skin creation - Javascripts don't get loadedMediawiki 皮肤创建 - 未加载 Javascript
【发布时间】:2015-04-05 02:57:52
【问题描述】:

尝试为 Mediawiki 制作新皮肤。 CSS 文件正在加载,但不是 JavaScript 文件。在 script.js 文件中,我只有一个简单的 alert 语句,但是页面加载后什么都没有发生。

NewSkin.php 文件:

<?php    
if( !defined( 'MEDIAWIKI' ) ) {
   die( 'This is a skin to the MediaWiki package and cannot be run standalone.' );
}    
$wgExtensionCredits['skin'][] = array(
    'path'       => __FILE__,
    'name'       => 'newskin',
    'url'        => 'http://exmaple.com/',
    'version'    => '1.2-alpha',
    'author'     => array(
        'Author Name',      
        ),
    'descriptionmsg' => 'newskin-desc'
);    
$wgValidSkinNames['newskin'] = 'NewSkin';    
$wgAutoloadClasses['SkinNewSkin'] = __DIR__ . '/NewSkin.skin.php';    
$wgMessagesDirs['SkinNewSkin'] = __DIR__ . '/i18n';    
$wgResourceModules['skins.newskin'] = array(
    'styles'         => array(
        'newskin/resources/bootstrap.css',
        'newskin/resources/styles.css',     
    ),
    'scripts'  => array(
        'newskin/resources/jquery.js',
        'newskin/resources/script.js',            
    ),
    'remoteBasePath' => &$GLOBALS['wgStylePath'],
    'localBasePath'  => &$GLOBALS['wgStyleDirectory']
);
?>

NewSkin.skin.php 文件:

<?php
class SkinNewSkin extends SkinTemplate {

    var $skinname = 'newskin', $stylename = 'newskin',
        $template = 'NewSkinTemplate', $useHeadElement = true;

    public function initPage( OutputPage $out ) {
        parent::initPage( $out );

        /* Assures mobile devices that the site doesn't assume traditional
         * desktop dimensions, so they won't downscale and will instead respect
         * things like CSS's @media rules */
        $out->addHeadItem( 'viewport',
            '<meta name="viewport" content="width=device-width, initial-scale=1" />'
        );
        $out->addModuleScripts('skins.newskin');
    }

    /**
     * @param $out OutputPage object
     */
    function setupSkinUserCss( OutputPage $out ) {
        parent::setupSkinUserCss( $out );
        $out->addModuleStyles( 'skins.newskin' );       
    }   
}

class NewSkinTemplate extends BaseTemplate {    
    public function execute() { 
        $this->html( 'headelement' ); 
        $this->html( 'bodytext' );  
    }
}
?>

【问题讨论】:

  • jquery.js 只是 jQuery 吗?如果是这样,请将其删除(mediawiki 内置了 jQuery)。
  • 是的,但是,除此之外,我还需要导入 bootstrap.js 和另一个 custom.js。不确定我在这里缺少什么。
  • 嗯,我看不出 PHP 代码有什么问题。您的 JavaScript 控制台中是否有任何错误?
  • 我尝试从矢量皮肤中复制代码并进行翻译。这似乎对我有用。
  • 您也可以发布您的 JavaScript 代码吗?

标签: javascript php mediawiki skin


【解决方案1】:

有什么地方可以检查js错误吗?

如果您正在使用引导程序构建 Mediawiki 皮肤,那么您可以从现有的皮肤之一开始。我开发了皮肤 MediaWikiBoostrap (https://github.com/nasirkhan/mediawiki-bootstrap) 我希望这能帮助您解决问题。

【讨论】:

    猜你喜欢
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多