删除MediaWiki类别页面中的字母索引

[ 2010-03-14 15:47 by LajiCF | 访问:697 次 | 4条评论 | 查看评论 发表评论 ]

貌似我好久没折腾MediaWiki了,这东西确实好用,不过小问题确实蛮多。除了那非智能的中文搜索,还有一堆小缺点滴。比如说这个:分类页面的首字母索引问题。

原始的MediaWiki分类页面是这样的。

image

怎么样,很挫吧,要是分类里有中文页面那就更挫了。。

image

于是乎我就像把这些首字母索引给去掉,其实方法挺简单,修改MediaWiki主目录下includes文件夹中的CategoryPage.php就行了。

Mediawiki分类页面中默认的文章列表有两种,一种是三列的,一种是单列的,分别对应CategoryPage.php文件中的columnList和shortList两个函数。把首字母索引给去掉的修改也很简单:

在columnList函数中把

$r .= “<h3>” . htmlspecialchars( $articles_start_char[$index] ) . “$cont_msg</h3>\n<ul>”;

替换成$r .= “<ul>”;

在shortList函数中把

//$r = ‘<h3>’ . htmlspecialchars( $articles_start_char[0] ) . “</h3>\n”;注释

掉然后把$r .= ‘<ul><li>’.$articles[0].’</li>’;替换成$r .= “”;

接着把

if ($articles_start_char[$index] != $articles_start_char[$index - 1])
{
$r .= “</ul><h3>” . htmlspecialchars( $articles_start_char[$index] ) . “</h3>\n<ul>”;
}

注释掉就行了

把修改完的CategoryPage.php替换掉原来的,刷新页面,OK。顺便把原来的三列改成两列的模式。效果见下图,相比原来那肯定顺眼多了。

image

image

 

PS:

1.16版的MediaWiki修改方法类似

还是修改CategoryPage.php这个文件

在columnList函数中

注释掉第408-414行

然后在shortList函数中

把第439行和443-446行注释

然后将440行的

$r .= ‘<ul><li>’ . $articles[0] . ‘</li>’;

替换成

$r = ‘<ul><li>’ . $articles[0] . ‘</li>’;

附已修改好的1.16版的CategoryPage.php 下载

About LajiCF

life is ...
This entry was posted in Computer, MediaWiki and tagged , . Bookmark the permalink.
  1. 您好,感谢您的博文为我提供借鉴.但是您的文章中有一处小错误:

    然后把$r .= ‘’.$articles[0].’’;替换成$r = ‘’.$articles[0].’’;

    正确的应该是:

    掉然后把$r .= ‘’.$articles[0].’’;替换成$r .= “”;

  2. 您好,我又回来了.您本页中贴的分类修改方法是基于1.9.3版本的吗?我刚将内部网络中一个mediawiki升级到1.16版本,在categorypage.php中就找不到columnlist函数中的以下语句了:
    $r .= “” . htmlspecialchars( $articles_start_char[$index] ) . “$cont_msg\n”;

    请教我该如何修改?谢谢

    • @wanght, 我用的MediaWiki版本是1.15的,博客中已经更新1.16版MediaWiki的修改方法,见文章里的最后部分。