MediaWiki扩展:随机展示
天下维客,你可以修改的网络知识库
| MediaWiki扩展简明教程 | Inputbox帮助文档 | 使用Spam黑名单 | 内容折叠隐藏 | 动态文章列表 | 指定图片链接 |
| 代码高亮处理 | 预置初始编辑文本 | 页面访问限制 | 所见即所得编辑器 | QQ在线信息 | |
| 交流:扩展使用 | 投票与评分 | 内容随机展示 | wikitex | 改进设想 | ...更多 |
| 加入google地图和51地图标注功能 | Ajax五颗星评分插件 |
This extension allows for randomly-generated content inside your wiki; e.g. rotating images, random greetings, etc.
The code in this page will only work in MediaWiki 1.5 and above. (Alternate version for 1.4.x)
Algorithm 05:57, 8 September 2005 (UTC)
<?php # Wiki random selection extension # Randomly chooses one of the given options to display. # Usage: <choose><option>A</option><option>B</option></choose> # Optional parameter: <option weight="3"> == 3x weight given $wgExtensionFunctions[] = "wfChooseExt"; function wfChooseExt() { global $wgParser; $wgParser->setHook( "choose", "renderChosen" ); } function renderChosen( $input ) { # Prevent caching global $wgParser; $wgParser->disableCache(); # Choose an option at random $len = preg_match_all("/<option(?:(?:\\s[^>]*?)?\\sweight=[\"']?([^\\s>]+))?" . "(?:\\s[^>]*)?>([\\s\\S]*?)<\\/option>/", $input, $out); $r = 0; for($i=0; $i<$len; $i++) { if(strlen($out[1][$i])==0) $out[1][$i] = 1; else $out[1][$i] = intval($out[1][$i]); $r += $out[1][$i]; } if($r <= 0) return ""; $r = mt_rand(1,$r); for($i=0; $i<$len; $i++) { $r -= $out[1][$i]; if($r <= 0) { $input = $out[2][$i]; break; } } # Render chosen text global $wgUser, $wgTitle; $parserOptions = ParserOptions::newFromUser( $wgUser ); $localParser = new Parser(); $input = $localParser->parse($input, $wgTitle, $parserOptions, false); return $input->mText; } ?>
| MediaWiki扩展简明教程 | Inputbox帮助文档 | 使用Spam黑名单 | 内容折叠隐藏 | 动态文章列表 | 指定图片链接 |
| 代码高亮处理 | 预置初始编辑文本 | 页面访问限制 | 所见即所得编辑器 | QQ在线信息 | |
| 交流:扩展使用 | 投票与评分 | 内容随机展示 | wikitex | 改进设想 | ...更多 |
| 加入google地图和51地图标注功能 | Ajax五颗星评分插件 |



