问题标签 [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 的 Facebook 扩展仅适用于 Firefox,不适用于 chrome。$facebook->getUser() 返回 0
让我们解释一下这个问题。会有点长,感谢您的耐心等待。
背景:
有一个名为 Mediawiki 的框架,被 Wikipedia 使用。还有一个名为 Facebook login 的 3rd-party 扩展,它声称我可以允许人们通过 Facebook 帐户登录到 Mediawiki 网站。
问题:
它们都是用 PHP 编写的。我的 Mediawiki 网站环境是
对于 Facebook 登录扩展,我从 github github.com/garbear/facebook-mediawiki 获得了最新版本
它在 Chrome 中不起作用,但在 Firefox 中运行良好。
我的调试故事:
首先,官方 Github repo 遗漏了一个名为ExternalUser.php的文件,我从 [path_to_mediawiki]/include 复制它并将其放入此扩展程序中。
http://d.pr/f/F0MC这个链接是我的工作版本。它仅适用于 Firefox,但不适用于 Chrome
为什么我问 facebook->getUser() return 0:
我通过打印一些错误日志来检查变量的值来跟踪整个扩展。
Chrome 和 Firefox 之间的唯一区别是:
当我在谷歌浏览器上测试它时,在弹出窗口中输入我的 Facebook 用户名和密码后,单击“登录”按钮。当我刷新 Facebook 网站时,它已经显示为“已登录”状态。但是,在我的 mediawiki 网站中,页面在登录页面中一直自动刷新,并且无法重定向到“已经登录”状态和页面。
所以,我想 Chrome 中的 session/cookies 设置可能有问题。我检查了我的 Chrome 设置,一切都是默认设置。我卸载了 Chome 并重新安装了它,但我仍然遇到同样的问题。
我的下一步是(必须)调试这个扩展。在花了整整 2 天调试这个扩展之后,我假设我找到了与这个问题相关的确切代码。
在FacebookInit.php第 46 行
要调试,让我们将其修改为
附加语句将变量写入$facebook->getUser()
apache error.log
当我在 Firefox 上尝试这个时,它会返回一个正整数,对于马克扎克伯格来说是 4,对于其他人来说是 12345678。但是当我在 Chrome 上尝试这个时,它总是会返回 0。
我已经尝试了 Stack OverFlow 上的大多数解决方案:
- Facebook PHP SDK 在 Firefox 中有效,但在 Chrome 中无效 未解决,OP 使用 JavaScript 而不是 PHP
- getUser() 返回 0 建议下载新版本的 Facebook PHP SDK。我做到了,但这并没有解决我在 Chrome 中的问题。
- Facebook API:getUser() 总是返回 0这告诉我要包含 Facebook.php。当然,原代码已经包含了它。
- Facebook 应用程序在 IE 中无法正常运行设置请求 HEAD。虽然这可能可以解决 IE 中的问题,但它不能解决我在 Chrome 中的问题
- Facebook Connect - 登录弹出窗口后无限循环挂起将变量cookie设置为 true。它不起作用。
如果有人知道我还可以尝试什么,我将不胜感激。
php - 像 MediaWiki 中的页面一样存储内容
我已经开始使用 MediaWiki 开发一个网站。我设计了一个上传页面(我没有使用MediaWiki的默认上传页面Special:upload
)。我手动创建了它,并执行了我的操作,例如在单独的表(不是 MediaWiki 的现有表)中上传图像和存储详细信息。
现在我需要将图像组的详细信息存储在特定页面中,MediaWikidatabase
以获取该图像组的历史记录、修订等,我发现上传的图像存储在下表中:
- 图片——当前版本
- oldimage — 用于旧版本
和页面存储在下表中:
- page — 获取当前页面详细信息
- 修订版——用于旧页面版本
谁能解释一下如何将内容存储到 MediaWiki 数据库中并手动从数据库中获取所有 MediaWiki 功能?
php - 调试空的 PHP 会话
我正在尝试使用SAMLAuth扩展和 SimpleSAMLPHP 将 SAML 身份验证添加到 MediaWiki 安装。身份验证直接从 SimpleSAMLPHP (/authenticate.php?as=mywiki) 工作,但是当我尝试通过 wiki 登录时,我从 SimpleSAMLPHP 得到“状态信息丢失”。
我正在使用内置的 PHP 状态,这会导致 SimpleSAMLPHP 使用状态 ID 写入 cookie 并$_SESSION
用于存储。当我查看 指定的目录时session.phpsession.savepath
,我可以看到在成功和失败的情况下都创建了正确 ID 的会话文件。在成功的情况下,会话文件将填充序列化的会话数据。但是,在失败的情况下,会话文件是空的。在随后的请求中,会话显然无法加载。
编写会话的代码是:
我可以通过调试日志确认$session
在这两种情况下都填充了 的值。
所以我的问题是:什么会导致会话文件被创建但为空,因为我正在写入$_SESSION
并且相同的代码在从不同的文件调用时有效?这可能是由于会话未正确初始化或关闭造成的吗?如果在设置之前写入输出,我会期望看到这种行为$_SESSION
吗?
php - PHP 从 5.2 升级到 5.3 后出现 FlaggedRevs 错误
升级后上传新文件时出现错误:
MediaWiki 版本 1.15.5。
php - 在 mediawiki 页面上添加下一个和上一个按钮
我有一个包含以下类别的 mediawiki 站点:角色、敌人、武器、盟友。每个类别都有一个页面列表(例如,在字符中,我有 char1、char2 等)。
假设我目前正在查看 char2 页面,我想要一个下一个/上一个按钮,以便我可以直接查看 char3 或 char1。
我可以只使用 [char3|next page] 和 [char1|previous page] 但问题是我有这么多页面,以至于硬编码每个页面以链接到其他页面可能会很乏味和痛苦,如果我决定添加一个页面“new_char “它恰好在列表的中间(mediawiki 以字母数字顺序输出它们 0-9 然后 az),我将不得不再次浏览这些页面并对所有内容进行硬编码。
摘要:我想我正在寻找一种无需硬编码链接即可动态链接到上一页/下一页的方法。
在此站点中,页面按字母顺序排列,因此添加页面并不一定意味着它将转到列表的末尾。
html - how is that link box called
Sometimes I see boxes in web pages that contain links in different font sizes. The most-often visited links are in bigger fontsize, the "less important" links are in smaller font size. I would call this box the "weighted size link box", but google does not understand this.
I want to have a mediawiki extension for this box, so can you tell me how this box is named?
php - 有什么方法可以在 MediaWiki 的 ajax 挂钩中获取正确初始化的 wiki 解析器?
在扩展中使用$wgAjaxExportList
,是否可以获得适当的 wiki 解析器?
到目前为止,我已经尝试了以下内容:
但是,这不能正常工作。
现在我知道有一个用于解析 wikicode 的 javascript api:http ://www.mediawiki.org/wiki/API:Parsing_wikitext
但我不希望使用它,因为这意味着我将不得不执行多个 ajax 请求。
有没有更好的方法从扩展中的 ajax 请求解析服务器端的 wiki 文本?
mediawiki - 如何生成 API 索引?
我们将 MediaWiki 用于 C#/Java/Javascript 编程 API 的散文文档。API 方法和属性列在大约 20 个按主题分组的 wiki 页面上(例如前端/客户端-服务器-交互/后端)。
我需要的是类似于Sphinx API Index的所有 API 方法的字母索引。如何做到这一点?
mediawiki - MediaWiki 扩展的链接回调
从 MediaWiki UI 中的链接回调到扩展的最实用方法是什么?
我有一个扩展,它将在历史和差异页面中添加一个链接(例如“报告”),这需要在我的扩展中运行代码。
是否有可能有一个“通用”回调 URL(例如index.php/PageName?action=report&edit=123
)或者我需要创建一个完整的特殊页面(index.php/Special:Report?edit=123`)来处理这个并执行我自己的代码?此后除了报告成功或失败之外,将不再有任何 UI。
php - Mediawiki SphinxSearch 扩展杀死 Apache
我正在尝试基于 Mediawiki 为我的公司建立知识库。
我已经在我自己的 VDS(debian、apache 2.2.16. php 5.3.3.7)上安装并配置了 Mediawiki 1.21.2 。我使用了 Sphinx 搜索引擎和 SphinxSearch Mediawiki 扩展。
但现在我尝试在生产虚拟服务器(CentOS、apache 2.2.15+nginx 1.0.15、php 5.3.3 和 Mediawiki 1.21.3)上做同样的事情,但在搜索时遇到了一些问题:
当我发出一个应该明确返回一些值的搜索请求时,nginx 显示502 Bad Gateway错误。如果没有要返回的信息,则会显示通常的 MediaWiki 消息。
在apache 日志中,我看到以下内容:
在站点的错误日志中,只有一些关于 StrictStandart 的警告:
然后转到mediawiki 日志文件:
让我们strace apache:
我的技能太差,无法从中做出决定,所以我很乐意提供任何建议。