Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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 如何在MediaWiki中创建新功能?-不是分机_Php_Function_Mediawiki - Fatal编程技术网

Php 如何在MediaWiki中创建新功能?-不是分机

Php 如何在MediaWiki中创建新功能?-不是分机,php,function,mediawiki,Php,Function,Mediawiki,在MediaWiki中,我想创建一个名为getFooterLinks2的新函数,而不是getFooterLinks函数,该函数位于向量皮肤的VectorTemplate.php文件中 此外,我感兴趣的是,该函数将打印数据库中的数据,我不想将其作为扩展 我应该执行哪些文件、函数和步骤?我已经开发PHP十多年了,但对MediaWiki的工作方式不太熟悉 我试图找到一本指南来解释MediaWiki在哪里调用它的功能,但是我迷路了,不管我读了哪本指南,也不管我在网上挖了多少 这是现在的代码: <?

在MediaWiki中,我想创建一个名为getFooterLinks2的新函数,而不是getFooterLinks函数,该函数位于向量皮肤的VectorTemplate.php文件中

此外,我感兴趣的是,该函数将打印数据库中的数据,我不想将其作为扩展

我应该执行哪些文件、函数和步骤?我已经开发PHP十多年了,但对MediaWiki的工作方式不太熟悉

我试图找到一本指南来解释MediaWiki在哪里调用它的功能,但是我迷路了,不管我读了哪本指南,也不管我在网上挖了多少

这是现在的代码:

<?php
    foreach ( $this->getFooterLinks() as $category => $links ) {
?>
<ul id="footer-<?php echo $category ?>">
<?php
    foreach ( $links as $link ) {
?>
         <li id="footer-<?php echo $category ?>-<?php echo $link ?>"><?php $this->html( $link ) ?></li>
<?php
    }
?>
</ul>

>

    最简单的方法是使用前面提到的内置配置选项,否则我不确定您希望“控制”哪些其他功能

    要添加新链接,请将其放入
    LocalSettings.php

    $wgHooks['SkinTemplateOutputPageBeforeExec'][] = function($sk, &$tpl) {
        $tpl->set( 'termsofuse', $sk->footerLink('termsofuse', 'termsofusepage'));
        $tpl->data['footerlinks']['places'][] = 'termsofuse';
        return true;
    };
    
    只要您记住它们,您对
    termsofuse
    termsofusepage
    使用什么并不重要。完成此操作后,在wiki上创建一个名为
    MediaWiki:termsofuse
    的新页面,并在该页面中输入您想要的链接文本。还可以创建一个标题为
    MediaWiki:termsofusepage
    的页面,并在该页面中输入您要链接到的页面名称,例如,如果您想转到主页写入
    main\u页面

    要删除默认链接

    MediaWiki:Privacy

    MediaWiki:Disclaimers

    订单


    它们应该按照您添加它们的顺序,但是默认链接是先添加的,所以会在自定义链接之前添加。您可以通过将默认链接重新创建为具有相同功能的自定义链接来解决此问题(如果您需要默认链接)。

    您希望该功能具体做什么?您希望从数据库打印哪些数据,以及将其打印到何处?你想改变页脚的外观吗?我不想弄乱页脚的外观,我可以在CSS的帮助下轻松完成。我想编辑其中的网站。添加和删除其中的链接。我找不到页脚中的站点的打印位置。所以我决定简单地创建一个绕过它的函数,这样我就可以更好地控制它了。谢谢Dylan,我以前读过这个文档。但我不明白,我仍然不明白。如果我理解的话,它可能会帮助我。也许通过它,我可以创建一个单独的文件来管理页脚菜单,但我觉得这篇文档需要事先了解MediaWiki的工作方式,而正是在这一点上我迷失了方向。请您向我解释每行代码的放置位置,以及可用于删除和添加页脚菜单链接的功能。如果您能够准确地告诉我您希望对页脚执行的操作,则意味着我可以为您提供所需的确切答案。在任何页脚菜单中,当您安装MediaWiki时,有三个默认站点:1)隐私。2) 大约。3) 免责声明。我想编辑它的网站,根据我的需要。例如:删除隐私和免责声明,保留页面,并按照我希望的顺序添加更多指向我需要的站点和页面的链接。
    $wgHooks['SkinTemplateOutputPageBeforeExec'][] = function($sk, &$tpl) {
        $tpl->set( 'termsofuse', $sk->footerLink('termsofuse', 'termsofusepage'));
        $tpl->data['footerlinks']['places'][] = 'termsofuse';
        return true;
    };