首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在MediaWiki扩展中访问编辑前后的页面内容

在MediaWiki扩展中访问编辑前后的页面内容,通常涉及到对MediaWiki的钩子(Hooks)和API的使用。以下是关于这个问题的基础概念、优势、类型、应用场景以及可能遇到的问题和解决方案。

基础概念

  • MediaWiki钩子(Hooks):钩子是MediaWiki提供的一种机制,允许开发者在特定的事件发生时执行自定义代码。
  • MediaWiki API:MediaWiki提供了一个强大的API,允许开发者以编程方式访问和操作wiki的内容。

优势

  • 灵活性:通过钩子和API,开发者可以轻松地定制和扩展MediaWiki的功能。
  • 可维护性:将自定义逻辑与核心代码分离,有助于保持代码的可维护性。

类型

  • 钩子类型:根据事件的性质,钩子可以分为多种类型,如ArticleSaveComplete(文章保存完成时触发)等。
  • API类型:MediaWiki API提供了多种接口,如query(查询页面内容)、edit(编辑页面)等。

应用场景

  • 内容监控:通过钩子监听文章保存事件,可以实时获取编辑前后的页面内容,用于内容监控或审计。
  • 自动化处理:在文章保存后,自动执行某些操作,如更新相关页面、发送通知等。

可能遇到的问题及解决方案

问题1:无法获取编辑前的页面内容

原因:在钩子中,可能只能获取到编辑后的页面内容。

解决方案: 一种可能的解决方案是使用MediaWiki的revision表。在钩子中,通过查询revision表,获取编辑前的页面内容。

代码语言:txt
复制
$revId = $article->getLatestRevID();
$rev = Revision::newFromID( $revId );
$oldContent = $rev->getText();

问题2:钩子执行顺序问题

原因:多个扩展可能注册了同一个钩子,导致执行顺序不确定。

解决方案: MediaWiki允许为钩子指定优先级。通过设置不同的优先级,可以控制钩子的执行顺序。

代码语言:txt
复制
wfRunHooks( 'ArticleSaveComplete', array( $article ), 100 );

问题3:API调用限制

原因:频繁的API调用可能会触发MediaWiki的限流机制。

解决方案: 优化API调用策略,如合并多个请求、使用缓存等。此外,可以考虑使用MediaWiki的job系统来异步处理耗时任务。

参考链接

请注意,以上代码示例和解决方案可能需要根据具体的MediaWiki版本和扩展环境进行调整。在实际开发中,建议参考官方文档和社区资源以获取更详细的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android Gradle 插件】Gradle 扩展属性 ② ( 定义根目录 build.gradle 扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )

文章目录 一、定义根目录 build.gradle 扩展属性 二、扩展属性示例 Android Plugin DSL Reference 参考文档 : Android Studio 构建配置官方文档...build.gradle 扩展属性 ---- org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org.../current/javadoc/org/gradle/api/Project.html 如果将 ext 扩展属性放到 Android 工程根目录下 build.gradle 构建脚本 , 则所有的...Module 模块下 build.gradle 都可以获取到该扩展属性值 ; Module 下 build.gradle 可以使用 rootProject.扩展属性名 来访问定义根目录...build.gradle 定义扩展属性值 ; 二、扩展属性示例 ---- 根目录下 build.gradle 定义扩展属性 : // 定义扩展属性 , 其中变量对所有子项目可见 ext {

2.9K20

搭建属于你自己维基站点:MediaWiki

curl -O http://releases.wikimedia.org/mediawiki/1.24/mediawiki-1.24.1.tar.gz 这里你可以浏览器,打开以上链接,查看其当前最新版本...设置 MediaWiki 下面我们将来设置 MediaWiki,以便它可以被正常使用 。打开浏览器访问 Droplet 主页:http://你服务器 IP 。...在下一个页面,将需要你填写 wiki 详细信息,例如名称等。你还可以在此页面上,为 wiki 创建管理用户。 大多数设置,我们都可以保持不变。...最简单方法,是在你自己计算机上打开该文件,复制其内容并将其粘贴到服务器 。...我们先来打开服务器上文件: nano /var/www/html/LocalSettings.php 现在,使用文本编辑器打开 LocalSettings.php 文件,并将内容复制到 SSH 终端

3.2K60
  • 一个小团队使用知识管理方案与工具

    公司使用 Mediawiki 进行内部知识管理也有一段时间了,使用过一段时间发现问题不少。...其中最让人抓狂应该就是 Mediawiki 插件了,虽然数量很多,但安装过程五花八门异常,有时候就是一种灾难;其次,Mediawiki 书写体验一般,尤其对于不熟悉 wiki 语法童鞋,上手慢...,虽然说有支持 markdown 和其他编辑插件,但安装过程那种酸爽……,有时候真的是一个接着一个坑!...知识管理:创造,分享,评论以及编辑内容和主题。 企业:良好企业安全性,可用性和可扩展性。 办公:文件搜索,浏览和编辑。 SharePoint:可与 SharePoint 结合。...来跟踪页面内容变更; 定制:颜色,风格,整个站点布局都可以定制; Atlassian 2004-3-12 发布了 Confluence 1.0,截止 2020-8-4,Confluence 最新版本为

    1.4K30

    【玩转腾讯云】七.基于CVM快速搭建部署属于自己维基百科

    或者“完毕”以后代表执行成功,如下图所示 image.png 3.2 访问BT页面 ①打开浏览器,浏览器输入服务器中产生Bt-Panel地址,访问进入宝塔页面 ==================...安装配置mediawiki知识库 5.1 访问安装页面 我们通过浏览器访问进入到mediawiki知识库安装向导访问地址构成为“您域名+mediawiki-1.34.1/" 如下图进入到安装页面...,此页面提示我们要安装PHPfileinfo模块,我们登陆到宝塔管理页面去安装下PHPfileinfo模块 image.png 宝塔页面——软件商店——应用搜索——PHP-7.2,点击“设置...”按钮 image.png php-7.2管理——安装扩展——fileinfo,点击安装 image.png 提示,咨询我们是否要安装fileinfo,我们点击确定,安装fileinfo扩展 image.png...image.png 5.10 正式访问MediaWiki知识库 image.png 输入我们配置向导账号密码,并点击登陆,进入管理页面 image.png 如下图所示,已进入到相关Media Wiki

    4.3K1516

    开源维基百科文档系统mediawiki

    MediaWiki 是使用 PHP 编写免费开源 Wiki 系统。MediaWiki 已使用超过350种语言进行了本地化,其可靠性和强大功能集为其赢得了庞大而充满活力第三方用户和开发者社区。...系统特点: 记录所有的改动版本,能方便查阅历史更新记录,这使得开放性编辑成为可能。 可以自定义监视列表,针对监视指定页面的更改。 允许使用模板,方便对相同内容重复使用、更新。...支持分类,并根据分类不同文章之间自动产生关联。 允许每个用户自行选择系统外观和用户脚本。 维基百科国知道少一些,主要是网站在国内访问不同,本人是使用翻墙网站也没有访问到维基百科官网。...国内百科大家普遍知道是百度百科,最近两年开始越来越多百科产品出现。互动百科、知乎也都开始讲自己内容做大做强。...Wiki是一种万维网上开放且可供多人协同创作超文本系统,由沃德·坎宁安于1995年首先开发。沃德·坎宁安将wiki定义为“一种允许一群用户用简单描述来创建和连接一组网页社会计算系统”。

    3.3K30

    xwiki功能-导入

    可以XWiki内完成以下几种导入: 在你xwiki导入XWiki页面(XAR格式) 导入Office文档并且把他们转化为wiki页面 从其他wiki导入内容 导入其他类型数据(Microsoft Excel...还要注意是XWiki支持页面写各种语法(HTML,wiki语法等),因此也可以直接从其他wiki页面内容导入到XWiki页面(提供XWiki支持其他wiki语法)。...这将意味着需要通过你页面导入内容页面。此外,XWiki WYSIWYG编辑器只支持XWiki语法,所以你不得不使用wiki编辑器来编辑这些页面。...此外,如果你想从MediaWiki导入,这里有Google代码还未发布,你需要从源代码自己来构建。...导入其他类型数据 以下是XWiki扩展库里相关数据导入几个扩展: Microsoft Excel CSV SharePoint Blogs

    90110

    用Python搭建一个校园维基网站(一)

    主要需求为 百科搜索 百科标签分类 人人皆可参与编辑 界面简洁大方直观 其实有一个很好技术选型,那就是开源wikihow 英文、中文,它UI简洁不失美观,单维基页面的展示很清晰,而且是基于某种...Wagtail后台管理界面漂亮而且强大,有良好权限管理系统,页面、图片和文档管理功能以及富文本编辑功能。文本内容搜索上可以集成elasticsearch,非常方便。...由于单人开发而且业务逻辑比较简单明确,没有考虑前后端分离,而是利用django模板功能,SEO方面有一定优势。...此外,由于之前内容发布使用WordPress博客系统,需要导入原来原生HTML内容,维基页面要兼容原生html,所以目前游客权限较低,修改后需要提交审核。...markdown编辑功能暂时没有加上,不过有开源插件,使用很方便。 效果图 ? 移动端首页 ? PC端首页 ? 标签页 ? 搜索结果页面 ? PC端单维基页面 ? 移动端单维基页面 ?

    2.9K101

    Ubuntu 16.04上安装MediaWiki

    介绍 MediaWiki是一个流行免费wiki软件包。它与维基百科使用软件相同,是完全动态,可以LAMP堆栈上运行,利用PHP语言和MySQL数据库后端。...下载并解压MediaWiki 将您工作目录更改为ApacheDocumentRoot并下载最新版本MediaWiki撰写本文时,MediaWiki最新稳定版本是1.29.0版。...您可以访问MediaWiki主页找到最新版本下载位置。...在这种情况下,维基将位于example.com/mediawiki/。您可以将Wiki复制到public_html/层次结构任何可公开访问位置。...设置页面包含完成安装所需一切。 从上面的数据库部分,您将需要: - 数据库名称 - 数据库用户名 - 数据库用户密码。 通过MediaWiki超级用户访问MySQL数据库,可以创建新帐户。

    3.1K50

    LDAP 集成之 Dokuwiki 篇

    WikiPedia 支持多种语言,可以自由编辑,不过一般会要求提供必要参考资料及链接来佐证。百度百科则只支持中文,对于编辑条目也有比较高要求,一般来说是由专门的人员编写、审核。...设置 LDAP   登录成功后,可以如上步图中所示点击右上角管理按钮进入管理页面。   这里可以先点击扩展管理器确认一下 LDAP Auth Plugin 插件是否已预安装。...如下图所示是 LDAP 认证部分配置,实际页面的比较靠后位置可以找到。   ...上图是默认配置,我们需要填一下其中一些条目,内容如下(其他保持默认即可): 条目 内容 server ldap.example.com usertree ou=People,dc=example,dc...另外,为了保证 LDAP 管理员用户可以访问 Dokuwiki 管理页面,这里也需要指定超级用户(superuser)用户名。

    1.1K10

    如何部署 MediaWiki

    MediaWiki是一个流行免费wiki软件包。它与维基百科使用软件相同,是完全动态,可以LAMP堆栈上运行,利用PHP语言和MySQL数据库后端。...下载并解压MediaWiki 将您工作目录更改为ApacheDocumentRoot并下载最新版本MediaWiki撰写本文时,MediaWiki最新稳定版本是1.29.0版。...在这种情况下,维基将位于example.com/mediawiki/。您可以将Wiki复制到public_html/层次结构任何可公开访问位置。...设置页面包含完成安装所需一切。 从上面的数据库部分,您将需要: - 数据库名称 - 数据库用户名 - 数据库用户密码。 通过MediaWiki超级用户访问MySQL数据库,可以创建新帐户。...如果您计划拥有大量用户或内容,请考虑将第二个腾讯云CVM服务器设置为专用数据库服务器。 安装完成后,MediaWiki将使用安装过程配置创建一个LocalSettings.php文件。

    3.7K119

    10分钟拥有自己Wikipedia

    花和尚在MITBBS一篇 "我System Design总结" 文章获得超过8万访问量,并被多家网站和博客转载。 引子 相信你一定用过Wikipedia。它简单明了页面使内容容易查找和阅读。...MediaWiki有700多个配置设置和超过1800个扩展,可以使各种特性被添加或更改。...MediaWiki root directory; git add; git commit; git push; 这时,当你访问heroku网址时,你应该已经能看到这个页面了: ?...具体步骤如下: 注册并登录bitnami(https://app.bitnamihosting.com)和AWS(https://aws.amazon.com); AWS Console,添加一个IAM...小结 对小编而言,MediaWiki已经成为记录blog和注意事项等不可或缺工具,比如"跟花和尚学系统设计"系列所有文章均是MediaWiki上完成

    4.1K60

    xwiki介绍-Rendering

    作用: 把给定语法一些文本输入内容转换成另一种语法输出内容 通用架构 Parser: 解析一个给定语法一些文本输入,并生成一个XDOM对象(一个抽象语法树) Renderer: 取XDOM作为输入并产生一些输出...该特性允许,比如有一个强大WYSIWYG编辑器,当编辑wiki页面时不会丢失信息。...另一个用例是以html导入Office文档,并将其转化XWiki Syntax 2.0不会丢失信息 获得解析后结果作为抽象语法树(称为XDOM),可以用于访问解析后得到所有结构化元素 能通过Transformation...每个块元素(段落,表格单元格,列表项,表头...)可以分布多行 支持组,即能在其他内容里包含内容(相对于HTML里DIV) 所有的元素可以有相关参数 用于XWiki Enteprise有好几年了,...: 使用XWiki Rendering把用wiki语法编写内容生成DocBook Jahia: "Jahia Wiki 模块"使用XWiki Rendering Grail XWiki Rendering

    85320

    使用 Docker 部署 MediaWiki

    MediaWiki 0 简介 MediaWiki 是 Wikipedia 使用网站解决方案开源版,以个人观点来看,Wiki 在这个时代显得不够时尚,且不支持 MarkDown 等新兴标记语言,另外页面的组织方式采用了自己一套管理语言...1 使用 docker 安装 MediaWiki 第一部分命令除非特殊说明,都需要 root 权限。...另外 -p 将 MediaWiki docker 80 端口和 docker 宿主机上 80 端口绑定在了一起。...浏览器访问 docker 宿主机 IP 就可以访问刚刚建好 MediaWiki 网站了。不过要保证宿主机上 80 端口没有被其他程序占用,不然 docker run 命令无法执行成功。...# apt install php, php-pear # pear install mail, net_smtp 2.5 限制用户权限 如果不想开放 Wiki 公开注册,并且未登陆时,限制可见页面的话

    2.3K40

    Mediawiki 生成google sitemap

    首先,看扩展: Extension:Google Sitemap 扩展页面看到下面的说明: Note: Since MediaWiki 1.6, the MediaWiki core has a Google...自mediawiki 1.6版本,mediawiki 核心已经包含了一个google site map 生成器,是个命令行工具,包含下面的参数 Options --help 显示帮助  generateSitemap.php...,需要自己修改下代码,或者从svn签出最新代码--server=mediawiki服务器 e.g. http://en.wikipedia.org最好指定这个参数,不然会读取服务器名字...其中sitemap-index-codingwiki-codingwiki_.xml是sitemap索引页面,将这个页面提交给google就可以了 ?...PS,codingwiki.info使用是burstvps,$5.95/MONTH,性价比不错,有需要同学可以点下面的链接去购买,用paypal支付就可以 https://service.burst.net

    2K80

    博客系统知多少:揭秘那些不为人知学问(三)

    RSS文件扩展名可通常是 .rss 或 .xml,也可以不定义拓展名(如MoongladeRSS)。内容为近期发表博客文章XML描述,包括标题、时间、作者、分类、摘要(也可以是全文)等信息。...浏览器一旦识别这个文件,会自动将你博客注册到搜索引擎列表里去。然后读者就可以直接在浏览器地址栏里搜索关键词,并显示博客自己搜索结果页面。 ? (图:地址栏搜索我博客内容) ?...保证pingback请求没问题后,请求B页面,抓取B网页title内容、BIP地址,记录到自己数据库,并和A文章关联。...客户端里可以完整编辑文章、插入图片、设置分类,甚至可以将博客主题同步到客户端。...5.12 阅读器视图 大部分浏览器和客户端都有阅读器视图,可以让读者与博客网站页面风格完全不一样视图中阅读文章。例如,我博客某篇文章正常页面长这样: ?

    85710

    MediaWiki安装

    MediaWiki可以方便让你搭建自己wiki,公司内部使用非常方便 官网: https://www.mediawiki.org/wiki/MediaWiki 安装MediaWiki必要环境 PHP...1.修改logo图片 默认logo比较难看,可以更换logo: /usr/www/wiki/resources/assets/wiki.png 2.Mediawiki新窗口打开外链 Mediawiki...默认是原窗口打开外链,对于国内很多站长来说,更喜欢新窗口中打开外链(让用户留在网站是大部分站长想做)。...新版Mediawiki设置很简单,LocalSettings.php 文件设置: $wgExternalLinkTarget = ‘_blank’; 就我所知,从1.14开始就支持这种方法设置了,...有个问题没有确认:就是发现wiki和其他网站共用一个php-fpm另一个网站会乱码 本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点

    93810
    领券