问题标签 [mediawiki-extensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - **不**使用解析器函数将跟踪类别添加到 MediaWiki 扩展中的页面
我想将跟踪类别添加到我的 wiki 上的特定页面,运行 MW 1.24。我知道我可以使用 Parser::addTrackingCategory() 或 ParserOptions::addCategory() 来做到这一点,但我能找到的唯一使用它们的例子是在解析器函数中(如 extension:Maps 中所示) ,我没有使用。
我使用的扩展是ApprovedRevs衍生的;基本上它所做的就是为项目分配一个页面,并允许简单的批准。这一切都是在实际页面内容(附加数据库表)之外完成的,因此没有解析器函数/标记。
我尝试过使用很多钩子:ParserAfterTidy、ContentGetParserOutput、OutputPageParserOutput 和其他一些钩子。虽然第一个至少显示页面上的类别,但该页面实际上并未包含在跟踪类别中(显示为空)。
我的代码(缩写)是这样的:
我为此跟踪类别添加了适当的消息;此时,我可以看到页面上的类别,并且可以看到在 中列出的跟踪类别Special:TrackingCategories
。
我现在确实发现从 MW 1.25 开始,还有一个名为ContentAlterParserOutput的附加钩子,例如在Extension:CommonsMetadata中使用,这似乎完全允许 - 但我仍然仅限于 MediaWiki 1.24 ......有什么想法吗?
javascript - 如何为我的 MediaWiki 安装编写 Marvin 扩展?
Marvin JS(从http://dl.chemaxon.com/marvinjs/15.2.16/marvinjs-15.2.16-all.zip下载)是一个基于 JavaScript 的化学结构编辑程序,我希望能够嵌入到我本地服务器上的 MediaWiki 文章。我已经阅读了https://www.mediawiki.org/wiki/Manual:Developing_extensions但我对 PHP 的理解非常初级,所以它并不是特别有用。
我想要这样的扩展来创建以下解析器扩展标记:
<marvin src = URL width = W height = H></marvin>
其中 URL 是 Marvin JS 程序正在加载的文件的位置(在本地服务器上),W 是小程序的宽度,H 是它的高度。
迄今为止,我通过其他方式将 Marvin JS 添加到文章中的努力
我已经看到了几个如何将此小程序嵌入 HTML 页面的示例,并且由于我缺乏 PHP 知识,我知道编写扩展对我来说非常困难,我确实尝试通过 AddScriptCss 扩展将这个小程序作为小部件嵌入,两者都让我失望了。
AddScriptCss
对于我添加的扩展安装后的 AddScriptCss:
到一篇文章并在我保存后在页面上收到此输出:
将 URL 的其余部分添加到 src 字段(例如http://127.0.0.1/mediawiki/)似乎并不能解决这个问题。打开“开发者工具”(我正在使用 Chrome)显示两个错误:
我还看到这个Mediawiki Extension add Javascript in Header stackoverflow question 所以我尝试遵循第二个答案(Mediawiki Extension add Javascript in Header),在替换并保存页面后script
,addHeadItem
我剩下的就是我的原始维基文本,除了超链接的 URL。
小部件
就小部件而言,我尝试添加:
到 Widget:Marvin,然后我添加{{#widget:Marvin}}
到一个没有结果的页面(字面意思;当我在保存此编辑后加载页面时,那里什么都没有)。这是一个屏幕截图,显示了在此页面上打开开发人员工具时出现的屏幕。
xml - 使用 xmlpipe2 支持编译 Sphinx
我没有对我正在使用的计算机的 root 访问权限,所以我不能简单地使用包管理器来安装我需要的程序。因此,我一直在从源代码编译它们。我已经成功编译了 Apache 和 PHP,并托管了一个 wiki。我现在想在 MediaWiki 设置中使用 SphinxSearch。
我正在使用 SQLite 作为数据库,并且有使用 SphinxSearch 和 SQLite的说明,这需要使用 libexpat 编译 SphinxSearch。
我一直在尝试让 SphinxSearch 使用 XML 支持进行编译,但我似乎无法获得它。我在网上找到的唯一帮助说像这样安装 libexpat 和 libexpat-dev
但是,由于我不是 root,我不能简单地那样安装。所以我从源代码编译了 libexpat:
哪个编译 libexpat 非常好。接下来,我将 libexpat 添加到LD_LIBRARY_PATH
and中,C_INCLUDE_PATH
如下所示:
然后我去编译Sphinx:
但是,configure 的输出给出:
那么,您知道如何让 Sphinx 找到包含“XML_Parse”的库吗?
更新:所以我能够通过在 VM 中编译来解决它(有关更多详细信息,请参阅下面我发布的答案),但对于应该是一个简单问题的问题来说,这是一个相当冗长的解决方案。因此,如果有人发布了更好的解决方案,我会将其标记为最佳答案。
forms - 表单可以在现有的 Mediawiki 页面中插入预先格式化的文本吗?
我希望不熟练的用户能够在“成员查找”页面中进行个人条目,我已将其实现为标准 Mediawiki 标记中的表格。
我有一个庞大的用户群,其中大部分不是熟练的 Mediawiki 编辑。他们都有编辑权限,只是没有技能或兴趣。如果我告诉他们去编辑原始标记,他们不会。
理想的解决方案是一个带有几个文本框和下拉菜单的表单,然后“提交”会在页面的指定位置插入一个新的文本行。如果在提交更改之前必须通过实时编辑页面,则可以信任用户遵循“继续单击提交”指令。
我知道这需要延期。(如果我错了,我会很高兴得到纠正。)
技术限制:
- IT 策略要求将扩展标记为稳定。
- 我有管理员,但我不是服务器管理员;我将不得不请管理员安装扩展,如果必须配置的文件无法从 wiki 中完成,我将不得不每次都提出请求。因此,理想情况下,一旦初始安装完成,该扩展让我可以完全在 wiki 内实现表单。
到目前为止,我发现了两个有希望的选择。我无法确定我找到的扩展是否可以完成这项工作;他们似乎专注于创建全新的页面,但也承诺提供更大的灵活性。我也无法判断他们是否有隐藏的依赖关系或者需要大量的服务器端。
其他看起来太有限或需要太多服务器端的稳定扩展(再次,我很高兴得到纠正):
- 输入框- 似乎只有一组预定的表单功能
- FormProc - 不清楚它的功能,可能需要服务器端?
- Boiler Room 和 FormInputMik 似乎做了一些完全不同的事情。
- 表单扩展列表- 我浏览过,这些是我的研究发现的最好的。我可能错过了一个。
这不是一个“哪个最好”的问题,尽管我欢迎就易用性提出意见。问题,简短的形式:
我列出的任何工具都可以真正完成我描述的工作,如果没有,你知道有什么工具可以吗?
mediawiki - 在 MediaWiki 上显示编辑计数
我想在用户页面上显示编辑/贡献的数量。有没有办法做到这一点?
我尝试使用此处提到的链接:http://en.wikipedia.org/wiki/Help: User_contributions
因此,如果按照此操作,我会得到一个类似这样的 URL:
如果我使用它,它会显示一个具有正确编辑计数的页面。但它显示为 XML,如:
在这个 XML 页面上,我可以看到正确的编辑计数。但我只想将其显示为不同页面上的计数。类似于“编辑总数:728 ”。我们正在使用 MediaWiki 1.15.5-7。
reference - MediaWiki QuickTemplate 类 - 在哪里可以找到参考资料?
我是 MediaWiki 皮肤设计的新手。我发现这两个函数被大量使用。
这些用于自定义模板类的 execute() 函数中,如$this->html($str)
和$this->text($str)
我对他们的功能很满意。但是,到目前为止,我还没有找到通过 $str 参数提供的字符串参数列表的参考。我已经看到它们在具有各种参数的模板中使用,例如$this->html( 'headelement' )
, 或$this->text( 'pageLanguage' )
. 我的问题是我们如何确切地知道论点是'headelement'
什么?是否有此类论点的完整列表?不确定我是否遗漏了文档的某些部分。
tabs - MediaWiki:向页面添加新标签
在 MediaWiki 中,当您创建新页面时,我会在页面顶部看到名为 Page 和 Discussion 的选项卡。我对 MediaWiki 并不熟悉,但我想知道您是否可以在“讨论”旁边添加一个附加选项卡,以链接到讨论页面或链接到新页面。
不确定我是否正确传达了这一点,但实际上,我想将其他页面添加到同一个命名空间并在顶部有一个选项卡以访问该页面。
[页] [讨论] [苹果] [橙子] [梨子]
mediawiki - Extract content from Wikipedia to Mediawiki
Is there a way to get the intro content from wikipedia page to my mediawiki page? I was thinking of using wikipedia's api but i dont know how to parse the url on my page and also with templates. I just want a query that will display the introduction part of a wikipedia page on my page?d
php - 访问 MediaWiki 扩展
目前我正在与 MediaWiki 合作。我按照教程https://www.digitalocean.com/community/tutorials/how-to-install-mediawiki-on-ubuntu-14-04
并在我的 Ubuntu 14.04 系统上成功安装了它。当我重新启动 Apace 服务器时,一切正常,我可以完美地看到主页。
现在我正在尝试使用 WikiEditor 扩展。它已经安装在/var/www/html/extensions
文件夹中。我还修改LocalSettings.php
了文件/var/www/html/
夹中的文件并附加了以下行。
当我浏览到 时localhost/index.php/Special:Version
,我可以看到那里列出的 WikiEditor。但是当我去的时候localhost/index.php/Special:WikiEditor
,它说“没有这样的页面”。
所以我想知道访问 MediaWiki 扩展的完整 url。
mediawiki - 更改为非现有 MediaWiki 页面显示的页面
如果维基页面不存在,我想更改显示的页面内容。参见例如:
目前我的wiki只显示“此页面中当前没有文本。您可以在其他页面中搜索此页面标题,搜索相关日志,或编辑此页面”。