MediaWiki中的自动顺序文章命名
我正在尝试向公司wiki添加一个部分,该部分将作为基于Documentum的数据仓库的前端(因为没有搜索功能,内部组织也很差)。其思想是使用元数据和直接链接为每个文档创建一个文章存根,并使用语义Mediawiki跟踪和组织系统中的文章 我使用语义表单来管理文章的创建(在使用API从几个电子表格中进行初始推送之后),但我也希望自动化文章的命名,以便系统从头到尾控制用户的手。所有标题都是MBMA-00001之类的,因此我希望MBMA页面上有一个按钮,按下该按钮时,搜索类别:MBMA,确定系统中当前最大的MBMA-n数,并将用户带到一个语义表单模板,其中MBMA-n+1已输入为标题MediaWiki中的自动顺序文章命名,mediawiki,semantic-mediawiki,Mediawiki,Semantic Mediawiki,我正在尝试向公司wiki添加一个部分,该部分将作为基于Documentum的数据仓库的前端(因为没有搜索功能,内部组织也很差)。其思想是使用元数据和直接链接为每个文档创建一个文章存根,并使用语义Mediawiki跟踪和组织系统中的文章 我使用语义表单来管理文章的创建(在使用API从几个电子表格中进行初始推送之后),但我也希望自动化文章的命名,以便系统从头到尾控制用户的手。所有标题都是MBMA-00001之类的,因此我希望MBMA页面上有一个按钮,按下该按钮时,搜索类别:MBMA,确定系统中当前最
诸如和之类的扩展似乎不支持此功能,但我是否可以添加另一个扩展来支持此功能?或者我必须弄清楚如何编写自己的吗?我想说的是,您可能需要创建自己的,因为您的需求看起来非常专业,但后来我遇到了一个扩展,它似乎与它们完全匹配
还有一个,您可能更喜欢。上面链接的模板正是我所需要的,但实际上并没有按照编写的那样工作。对于将来有此需求的其他人,这里有一个经过清理和更正的版本,它删除了有问题的字符串函数,并且工作得非常完美:
{{#if: {{{form|}}}
| {{#ifexist: Form:{{{form|}}}
|
| <strong class="error">Warning! The form "{{{form|}}}" may not be a valid form name!</strong>
}}
|
}}<!---
-->{{#if: {{{form|}}}
| {{#ifeq: {{lc:{{NS:{{{namespace|}}} }} }}
| {{lc:{{{namespace|}}} }}
|
| <strong class="error">Warning! "{{{namespace}}}" may not be a valid namespace name!</strong>
}}
|
}}<!---
-->The next document number is '''<!--
-->{{#if: {{{namespace|}}} | {{{namespace|}}}: }}{{{prefix|}}}<!--
-->{{padleft:<!----------- (X+1) => 0000(X+1)
-->{{#expr:<!---------- 0000X+1 => (X+1)
-->{{replace|<!----- "Namespace:prefix0000X" => "0000X"
-->{{replace|<!-- "*[[Namespace:prefix0000X]]" => "Namespace:prefix0000X"
-->{{#dpl:<!-- return pages named "*[[Namespace:prefix0000X]]"
-->titleregexp =^{{{prefix|}}}[0-9]{{{{pad|5}}}}$<!--
-->| namespace = {{{namespace|}}}<!--
-->| order = descending<!--
-->| mode = userformat<!--
-->| format = ,%PAGE%<!--
-->| noresultsheader = {{padleft:0|{{{pad|5}}}|0}}<!--
-->| count = 1
}}
|/^([^{{!}}]+\{{!}}){1}([^\]]+).*/
|\2
}}
| {{#if: {{{namespace|}}} | {{{namespace|}}}:}}{{{prefix|}}}
|
}}
+1
}}
| {{{pad|5}}}
| 0
}}'''
----
{{#if: {{{form|}}}
| {{#forminput: {{{form|}}}
| {{{width|20}}}
| {{{prefix|}}}<!--
-->{{padleft:<!----------- (X+1) => 0000(X+1)
-->{{#expr:<!---------- 0000X+1 => (X+1)
-->{{replace|<!----- "Namespace:prefix0000X" => "0000X"
-->{{replace|<!-- "*[[Namespace:prefix0000X]]" => "Namespace:prefix0000X"
-->{{#dpl:<!-- return pages named "*[[Namespace:prefix0000X]]"
-->titleregexp =^{{{prefix|}}}[0-9]{{{{pad|5}}}}$<!--
-->| namespace = {{{namespace|}}}<!--
-->| order = descending<!--
-->| mode = userformat<!--
-->| format = ,%PAGE%<!--
-->| noresultsheader = {{padleft:0|{{{pad|5}}}|0}}<!--
-->| count = 1
}}
|/^([^{{!}}]+\{{!}}){1}([^\]]+).*/
|\2
}}
|{{#if: {{{namespace|}}} | {{{namespace|}}}:}}{{{prefix|}}}
|
}}
+1
}}
| {{{pad|5}}}
| 0
}}
| {{{buttonlabel|Add}}}
| {{#if: {{{namespace|}}} | namespace = {{{namespace|}}} }}
}}
| <includeonly><strong class="error">Warning! You haven't specified a SemanticForm for page creation! Please specify a SemanticForm name.</strong></includeonly>
}}<noinclude>{{documentation}}</noinclude>
{{{#if:{{{{{form}}}
|{{{ifexist:Form:{{{Form}}}
|
|警告!表单“{{{form}}}”可能不是有效的表单名称!
}}
|
}}{{#如果:{{{形式}}}
|{{{ifeq:{{lc:{{NS:{{{{namespace}}}}}
|{{lc:{{{namespace}}}}
|
|警告!{{{namespace}}“可能不是有效的命名空间名称!
}}
|
}}下一个文件号是“下一个文件号”的下一个文件号是“下一个文件号”的下一个文件号是“{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}\\\\\\\55555555;}}}}}}}}}}}}{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{124;}}}}}}顺序=降序|模式=用户格式|格式=,%PAGE%| noresultsheader={{padleft:0}{{pad | 5}}}}}|计数=1
}}
|/^([^{{!}}]+\{{!}}){1}([^\]]+).*/
|\2
}}
|{{{if:{{namespace}}}{{{namespace}}}}}}}}{{{prefix}}}}
|
}}
+1
}}
|{{{pad | 5}}}
| 0
}}'''
----
{{#如果:{{{形式}}}
|{{{forminput:{{{form}}}
|{{{宽度| 20}}}
|}{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}}}}}}}}{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}{{{{{{{{{{{{{}}}}}}}{{{{{{{{{{{{{{{{}}}}}}}}}}}{{{{{{{{{{{{{{{{}}}}}}}}}{{{{{{{{{{{}}}}}}}}}}{{{{{{{{{{{{{{}}}}}}}}}}}}{{{{{{{{{}}}}}}}}}}}}}}}}{{{{{{{{{| pad | 5}}}| 0}| count=1
}}
|/^([^{{!}}]+\{{!}}){1}([^\]]+).*/
|\2
}}
|{{{if:{{namespace}}}{{{namespace}}}}}}}}{{{prefix}}}}
|
}}
+1
}}
|{{{pad | 5}}}
| 0
}}
|{{{按钮标签|添加}}}
|{{{#if:{{{namespace}}}}{namespace={{{namespace}}}}
}}
|警告!您尚未为页面创建指定语义表单!请指定语义表单名称。
}}{{文档}}
和文档子页:
{{documentation subpage}}
{{intricate template}}
== Parameters ==
All parameters to the template are optional.
{| class="wikitable"
|-
! form
| Specifies a SemanticForm name, which will handle the pages you create.
|-
! namespace
| Specifies a Namespace, which the new page will belong to.
|-
! prefix
| Specifies a title fragment, which will prefix the generated number
|-
! pad
| The number of digits required in the page number. The default value is "5".
|-
! width
| Sets the width of the input box. The default value is "20".
|-
! buttonlabel
| Sets the text of the Create button. The default value is "Add".
|}
== Example ==
<pre><nowiki>{{DPLSNMakerSF
| form = MBMA Document
| namespace =
| prefix = MBMA-
| pad = 5
| width = 30
| buttonlabel = Create
}}
</nowiki></pre>
== See also ==
[[mw:extension:DPL Page Name S/N Maker (using SemanticForms)]]
{{文档子页面}
{{复杂模板}}
==参数==
模板的所有参数都是可选的。
{| class=“wikitable”
|-
!表格
|指定语义表单名称,该名称将处理您创建的页面。
|-
!命名空间
|指定新页将属于的命名空间。
|-
前缀
|指定标题片段,该片段将作为生成的编号的前缀
|-
衬垫
|页码中所需的位数。默认值为“5”。
|-
!宽度
|设置输入框的宽度。默认值为“20”。
|-
!按钮标签
|设置创建按钮的文本。默认值为“添加”。
|}
==示例==
{{DPLSNMakerSF
|表格=MBMA文件
|名称空间=
|前缀=MBMA-
|pad=5
|宽度=30
|按钮标签=创建
}}
==另见==
[[mw:extension:DPL页面名称序列号生成器(使用语义表单)]]
Brilliant,这正是我需要的。谢谢