注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

神魔破杜梓的叨叨堂

Programming every day!

 
 
 

日志

 
 
 
 

Mediawiki 插件 My Blog: 列出所有发布过日志的用户  

2008-07-18 12:30:49|  分类: My Tech |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

我想看看某位用户的Blog,而My Blog只能以URL http://yourwiki/index.php?title=Special:ListSubBlogs/User:username 的方式访问特定用户的Blog,因此无法知道所有发布过日志的用户。于是乎参考My Blog提供的两个PHP文件,我实现了这个功能。

源代码:SpecialPagesListBlogs.php

<?php $wgExtensionFunctions[] = "loadSpecialListBlogs";
require_once("includes/SpecialPage.php");
class SpecialListBlogs extends SpecialPage {
        function SpecialListBlogs() {
                SpecialPage::SpecialPage('ListBlogs', '', false);
                $this->includable(true);
        }
        function execute( $parent = null ) {
                global $wgRequest, $wgOut, $wgUser;
                $wgOut->setArticleRelated( false );
                $fname = 'listblogs';
                // Handle Errors
                /*$target = $this->including()   $wgRequest->getVal( 'title' ) :
                                (isset( $parent )   $parent : $wgRequest->getVal( 'target' ));
                if (is_null($target)) {
                       return;
                }
                $target = Title::newFromURL( $target );*/
                $skin = $wgUser->getSkin();
#                if (!$this->including()) {
                        // Start Page
                 $wgOut->setPagetitle("Blog List" );
                 $wgOut->addWikiText("__NOTOC__");
#                        $wgOut->addHTML('< ' . $skin->makeKnownLinkObj($target, '', '' ) . "<br />\n");
#                }
                // Do query
                $dbr =& wfGetDB( DB_READ );
                $result = $dbr->query("SELECT distinct(substring(page_title,1,locate(\"/BlogEntry\",page_title)-1)) as user_name FROM siloonpage where page_title like '%BlogEntry%';",$fname);
                // Output results
                if ( 0 == $dbr->numRows( $result ) ) {
                  $d = date( 'Y F d H:i:s T' );
                  $wgOut->addWikiText("Currently No user write blogs.");
                  return;
                }
                $rows = array();
                $d = date( 'Y F d H:i:s T' );

                //修改index.php的路径以适应你的网站
                while ($row = $dbr->fetchObject($result)) {
                    $wgOut->addHTML('');
                    $user1 = $row->user_name;
                    $wgOut->addHTML
                            (
                                "<table width=100% border=0 cellpadding=5 cellspacing=0 ><tr><td>".
                                "<a href=\"/index.php title=Special:ListSubBlogs/User:$user1\">$user1's Blog</a>".
                                "<td></tr></table>"
                            );
                }
                $dbr->freeResult($result);
                $wgOut->addHTML($prevnext);
        }
}
function loadSpecialListBlogs()
{
        SpecialPage::addPage(new SpecialListBlogs);
}
?>

使用:

1.在LocalSettings.php中包含 require_once("extensions/MyBlog/SpecialPagesListBlogs.php");

注意路径哦!得修改成自己的。

2.在Mediawiki:SideBar 中添加? **blogs-url|blogs

3.编辑 Mediawiki:blogs-url 页 设置其内容为? Special:ListBlogs

4.编辑 Mediawiki:blogs 页 设置其内容为 Blog List

OK, 现在,你可以通过 左侧导航中的 "Blog List" 浏览到所有已发布过blog的用户了。

  评论这张
 
阅读(437)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017