本页是THBWiki的编辑帮助文档
- 欢迎来到THBWiki!如果您是第一次来到这里,请点击右上角注册一个帐户
- 有任何意见、建议、求助、反馈都可以在 讨论板 提出
- THBWiki以专业性和准确性为目标,如果你发现了任何确定的错误或疏漏,可在登录后直接进行改正
帮助:时长扩展
跳到导航
跳到搜索
|
时长扩展是一个提供时长显示、格式化及运算功能的Mediawiki插件,在有SMW(1.9或以上)的环境下,还可以定义时长类型以储存时长信息。然后还把链接属性类型和货币扩展的代码十分随便地放了进去,两个SMW类型都不能直接运行,都必须手动修改一下部分的SMW代码。
安装
- 你需要最新版本(1.4.1)的
DurationExtension.zip
。 - 解压到
extensions
目录下。 - 在
LocalSettings.php
末尾加上require_once( "$IP/extensions/DurationExtension/DurationExtension.php" );
。 - 如要使用SMW类型,需要修改几个地方,详见SMW安装。
- 安装完成。
调用函数
durformat
转换时长格式,具体可用格式为:
- $O,以小时为单位的时长
- $I,以分钟为单位的时长
- $E,以秒为单位的时长
- $i,以分钟为单位的时长(向下取整)
- $e,以秒为单位的时长(向下取整)
- $H,时长的小时部分(前导零)
- $M,时长的分钟部分(前导零)
- $S,时长的秒部分(前导零)
- $D,时长的小数部分,唯存在时才显示小数点,可能会返回空值所以在某些格式中不能单独使用
- $h,时长的小时部分
- $m,时长的分钟部分
- $s,时长的秒部分
- $d,时长的小数部分,取整并后导零至四位
- 格式
{{#durformat: 时长字串 | 显示格式(默认为MEDIAWIKI) }}
- 例子
{{#durformat:01:23:45.678|SHORT}}
→83:45
{{#durformat:01:23:45.678|LONG}}
→01:23:45.0000
{{#durformat:01:23:45.678|$h小时$m分钟}}
→1小时23分钟
{{#durformat:01:23:45.678|$E秒}}
→5025秒
duralter
时长四则运算,具体可用显示格式可以参照#durformat。
- 格式
{{#duralter: 时长字串1 | 时长字串2 | 模式 | 显示格式 }}
模式可以是+、-、*或/。
- 例子
{{#duralter:01:23:45.678|09:87.65|-|MEDIAWIKI}}
→01:13:18
{{#duralter:03:15.05|3|*|SHORT}}
→09:45
{{#duralter:10:00|3:00|/|PLAIN}}
→3.333333
dursum
时长加总,具体可用显示格式可以参照#durformat。
- 格式
{{#dursum: 时长字串列表 | 分隔符(默认为,) | 显示格式 }}
- 例子
{{#dursum:0:1,2:0,3:40,0:40,5:6,6:02,4:37,2:28,1:09:04}}
→01:33:38
durage
计算年龄。
- 格式
{{#durage: 生日日期(会被自动当成UTC时间,需要设定时区时必须加上) | 当前时区(默认为UTC) }}
- 例子
{{#durage:1977-03-18 +0900|Asia/Shanghai}}
→47
durnow
调用PHP函数microtime,返回当前Unix时间戳和微秒数。
- 格式
{{#durnow:}}
- 例子
{{#durnow:}}
→1739097010.0974
redititle
显示重定向到该页面的标题。
- 格式
{{#redititle: 页面名称(默认为本页) | 分隔符(默认为,) | 模式 }}
模式可以link、strip和self,用空格分隔,link会生成链接,strip会把完全被原标题包含的标题去掉,self会显示原页面标题。
- 例子
{{#redititle:Comic Market|,}}
→Comiket,Comike,CM,コミックマーケット,コミケット,コミケ,コミ
{{#redititle:Comic Market|,|link strip self}}
→Comic Market,Comiket,Comike,CM,コミックマーケット,コミケット,コミケ,コミ
convertspec
把不适合作为标题的字符替换成对应的全形字符
- 格式
{{#convertspec: 字串 }}
- 例子
{{#convertspec:0#1<2>3[4]5{{!}}6{7}8:9}}
→0#1<2>3[4]5|6{7}8:9
inoutro
若字串为空,显示默认值,否则显示前缀、字串和后缀。
- 格式
{{#inoutro: 字串 | 前缀 | 后缀 | 默认值 }}
- 例子
{{#inoutro:字串|前缀|后缀|默认值}}
→前缀字串后缀
{{#inoutro:|前缀|后缀|默认值}}
→默认值
addlink
简单分析输入的字串,根据字串的内容生成内链或外链。
- 格式
{{#addlink: 字串 }}
- 例子
{{#addlink:沙盒}}
→沙盒
{{#addlink:[沙盒]}}
→沙盒
{{#addlink:[[沙盒]]}}
→沙盒
{{#addlink:https://thwiki.cc/ THBWiki}}
→THBWiki
{{#addlink:[[https://thwiki.cc/ THBWiki]]}}
→THBWiki
htmlencode
对字串进行HTML编码,内部调用了wfEscapeWikiText
函数,和后面带e的原生函数(如pagenamee)调用的是同一个函数。效果比htmlspecialchars复杂,从wfEscapeWikiText
的原代码中可以看到替换了什么字,做了什么处理。
function wfEscapeWikiText( $text ) {
static $repl = null, $repl2 = null;
if ( $repl === null ) {
$repl = array(
'"' => '"', '&' => '&', "'" => ''', '<' => '<',
'=' => '=', '>' => '>', '[' => '[', ']' => ']',
'{' => '{', '|' => '|', '}' => '}', ';' => ';',
"\n#" => "\n#", "\r#" => "\r#",
"\n*" => "\n*", "\r*" => "\r*",
"\n:" => "\n:", "\r:" => "\r:",
"\n " => "\n ", "\r " => "\r ",
"\n\n" => "\n ", "\r\n" => " \n",
"\n\r" => "\n ", "\r\r" => "\r ",
"\n\t" => "\n	", "\r\t" => "\r	", // "\n\t\n" is treated like "\n\n"
"\n----" => "\n----", "\r----" => "\r----",
'__' => '__', '://' => '://',
);
// We have to catch everything "\s" matches in PCRE
foreach ( array( 'ISBN', 'RFC', 'PMID' ) as $magic ) {
$repl["$magic "] = "$magic ";
$repl["$magic\t"] = "$magic	";
$repl["$magic\r"] = "$magic ";
$repl["$magic\n"] = "$magic ";
$repl["$magic\f"] = "$magic";
}
// And handle protocols that don't use "://"
global $wgUrlProtocols;
$repl2 = array();
foreach ( $wgUrlProtocols as $prot ) {
if ( substr( $prot, -1 ) === ':' ) {
$repl2[] = preg_quote( substr( $prot, 0, -1 ), '/' );
}
}
$repl2 = $repl2 ? '/\b(' . join( '|', $repl2 ) . '):/i' : '/^(?!)/';
}
$text = substr( strtr( "\n$text", $repl ), 1 );
$text = preg_replace( $repl2, '$1:', $text );
return $text;
}
- 格式
{{#htmlencode: 字串 }}
htmldecode
对字串进行HTML解码,内部调用了html_entity_decode
函数,FLAG使用了ENT_QUOTES | ENT_XML1
。
- 格式
{{#htmldecode: 字串 }}
urlencodequery
对URL Query字串进行URL编码,编码时符合Query结构的“&”和“=”不会被编码。
- 格式
{{#urlencodequery: 字串 }}
- 例子
{{#urlencodequery: a=灵梦&b=魔理沙 }}
→a=%E7%81%B5%E6%A2%A6&b=%E9%AD%94%E7%90%86%E6%B2%99
{{#urlencodequery: circle==NeutraL=&year=2010 }}
→circle=%3DNeutraL%3D&year=2010
{{#urlencodequery: circle=Azure&Sands&year=2010 }}
→circle=Azure%26Sands&year=2010
特殊属性:处理时间
储存计算页面所耗费的CPU时间。