科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件用自定义插件扩展Mediawiki

用自定义插件扩展Mediawiki

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Mediawiki 是一个应用于包括WIKIMEDIA在内的许多网站的高效的PHP WIKI程序,它的可扩展性与安全性,以及其极其简易的应用性使得用户很轻松的为它编写插件程序。

作者:builder.com.cn 2007年3月9日

关键字: PHP Mediawiki

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共19页)

Mediawiki 是一个应用于包括WIKIMEDIA在内的许多网站的高效的PHP WIKI程序,它的可扩展性与安全性,以及其极其简易的应用性使得用户很轻松的为它编写插件程序。

假如你想把自己的生活经历在WIKI里发表,WIKI 的程序文件经常会发生变化,并且WIKI一定要反映其内部文件的情况。你可以编写一个插件来解决这个现象。这些插件的目录位于
extensions/ subdirectory等目录下,有许多插件可以下载。如果你具备对PHP基本的了解,你就可以写出自己貌似与WIKI程序无缝对接的插件来。

下面的内容将会显示通过WIKI页面所提交的内容,这个文件一定要在服务器端具有可读的属性。

<?php

// Add the hook function call to an array defined earlier in the wiki code execution.

$wgExtensionFunctions[] = "wfFile";

// This is the hook function. It adds the tag to the wiki parser and tells it what callback function to use.

function wfFile() {

global $wgParser;

# register the extension with the WikiText parser

$wgParser->setHook( "file", "renderFile" );

}

# The callback function for converting the input text to HTML output

function renderFile( $input ) {

$file = NULL;

if (isset($input))

{

switch($input)

{

case "/tmp/status";

$file = "/tmp/status";

break;

case "/var/lib/foo":

$file = "/var/lib/foo";

break;

}

}

if (file_exists($file))

{

$data = file($file);

$data = implode($data, "");

} else {

$data = "Invalid version";

}

$return= "

" . $data . "

";

return $return;

}

?>

如果你没有把输入的内容进行过滤的话,一定要当心了。因为这个插件可能会具有危险性,在这段代码里,我们明确检测到如果$input 这个变量是一个或两个文件时,如:/var/lib/foo or /tmp/status,如果两者都不是,这个$file 变量就不会被设置并且仍然为NULL。如果提交的文件名是这两个文件中的任意一个,它就会被检索到然后返回MEDIAWIKI显示出来。

将以下内容增加到LocalSettings.php 文件中,用来包含扩展文件。(假设这个文件起名 PLUGIN——FILE.PHP)

include("./extensions/plugin_file.php");

最后,要想在MEDIAWIKI里应用这个插件,你需要用以下代码创建或编辑一个页面:

/tmp/status

我们通过$wgParser->setHook的调用来使用插件程序,我们用相关的功能来定义这个文件

如你能看到的,这个例子十分的简单,能够为一个网站添加自己编写的代码,这将给你扩展自己的WIKI带来无限的可能。

责任编辑:德东

查看本文国际来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章