PmWikiZhCn / 自定义配置

你可以自定义 /local/config.php/pub/css/local.css配置文件。任何的组和页面有都可以通过自己的配置文件和配置的css文件来自定义。

本页将描述配置文件如何使用,。详见:PmWiki中文手册,包括:

  • Skins - Change the look and feel of part or all of PmWiki
  • 国际化 - Language internationalisation of web pages
  • Custom Markup - Using the Markup() function for custom wiki syntax; migration to PHP 5.5
  • InterMaps - Interwiki links definition and use

local/config.php

从一开始,PmWiki为Wiki管理员充分自定义自己的Wiki而生。所以 pmwiki.php核心配置文件大量使用了PmWiki.Variables 来方便自定义。

简单的配置变量通常是1 (或者 TRUE)。这里以开启调试模式(?action=diag)和开启phpinfo功能(?action=phpinfo):

$EnableDiag = 1;

你可以看到有些命令行开头有一个井号(#),此外,一些PmWiki自有变量的值通常是“1”或“0” (true或false)。 这里有一个设置如何限制搜索蜘蛛索引页面的例子, (详见:限制Robots):

# Remove the default "rel='nofollow'" attribute for external links.
$UrlLinkFmt = "<a class='urllink' href='\$LinkUrl' title='\$LinkAlt'>\$LinkText</a>"

这个“scripts/”也有许多自定义功能。 PmWiki插件同样包含了许多自定义功能,下载上传到“cookbook/”文件夹中。 这些插件通常都有安装使用说明。

这些插件通常需要在“config.php”配置文件中,像下面这样添加进去:

include_once("cookbook/recipefile.php");

include_once("scripts/scriptfile.php");

在config.php中添加好保存后才可以启用。

一些像“scripts/stdconfig.php”的插件将会自动启用,除非你在“local/config.php”配置文件中,像这样$EnableStdConfig=0;把它的值设置为0,才会关闭它。

config.php指令

推荐设置以下指令:

  • 如果需要,请定义$ScriptUrl和$PubDirUrl。
  • 定义任何页面数据类型,比如SQLiteCompressedPageStorePerGroupSubDirectories
  • 增加 include_once scripts/xlpage-utf-8.php,
  • next call XLPage() which needs the definitive (rw) $WikiDir already set in order to find the wiki page containing the translations,
  • 增加include authuser.php (如果需要),使PmWiki支持设置一些组和页面的访问权限。
  • 增加其它脚本插件功能。
  • 任何直接调用的函数功能都在config.php,例如: ResolvePageName(), CondAuth(), PageTextVar(), PageVar(), RetrieveAuthPage(), 或者其他一些config.php文件结尾的。

说明 '这些指令并不是必须的,属于可选config.php配置。

config.php的字符编码

请使用UTF-8编码,保存时选择"without Byte Order Mask (BOM)"类型。

pub/css/local.css

你可以自定义这些基础CSS风格,它将默认覆盖掉主题中设置的CSS样式。例如:

  h1, h2, h3, h4, h5 { color: #880000; } /*dark red titles*/
  a { text-decoration: none; } /* don't underline links */

不要修改pmwiki.php或其它核心文件。

你不应该直接编辑“pmwiki.php”这个核心文件,而应该通过把编辑内容放在scripts/目录中的方式使用。这样不仅不宜出错,而且利于后续的版本升级。一些设置应该通过“config.php”配置文件设置。你也可以创建自己的插件,只需要在config.php文件中像这样 include_once(...)启用就可以了。如果你制作了一个不错的插件,建议联系pmwiki邮件列表?或者通过 Cookbook来提交你的插件,让更多人因您而受益。

FAQ

目录“local”中没有“config.php”。

把"docs/sample-config.php" 复制到"local"并重命名"config.php".。你可以移除掉注释符号 "#" 来添加命令功能。详见Group Customizations

我能把“Main.HomePage”($DefaultPage)换成其他的吗?

只要开启 $DefaultPage 就可以设置你想要的默认首页了。你也应该看看 $DefaultGroup$DefaultName 的配置变量。想要设置默认首页,只需添加类似下面的内容:

$DefaultPage = 'ABC.StartPage';

How do I get the group / page name in a local configuration file (e.g. local/config.php)?

使用最新版。

## Get the group and page name
$pagename = ResolvePageName($pagename);
$page = PageVar($pagename, '$FullName');
$group = PageVar($pagename, '$Group');
$name = PageVar($pagename, '$Name');

可以删除自带的wikilib.d文件夹吗?

以Site.*和SiteAdmin.*开头的文件不可以删除。以PmWiki* 开头的文档可以删除。

如何自定义404错误页面呢?

请编辑Site.PageNotFound页面。