在MediaWiki 1.26.2中,我如何获取部分页面标题以在#ifexist语句中使用它?
我需要链接到MediaWiki中的不同但相关的文章,如果页面存在或不存在则提醒用户。为此,我做了以下事情:
我有一个名为ARTICLE_NAME
的网页。与之关联的是名为Notes:ARTICLE_NAME
的页面。 "注意:"不是命名空间,而是ARTICLE_NAME
的字符串。由于策略限制,我无法为Notes创建命名空间。
在ARTICLE_NAME页面中,以下代码检查是否存在备注:
{{#ifexist: Notes:{{PAGENAME}} | {{alert_box}} | }
因此,如果ARTICLE_NAME
有一个相关的Notes:ARTICLE_NAME
页面,我会收到一个很好的自定义提醒框,突出显示该事实并链接到该页面。
当我尝试反向时,我的问题就开始了。在Notes:ARTICLE_NAME
页面中,如果有名为ARTICLE_NAME
的页面,我需要注释显示警告框。代码
{{#ifexist: {{PAGENAME}} | {{alert_box}} | }
没有任何因为{{PAGENAME}}
带来Notes:ARTICLE_NAME
预期。
我怎样才能得到"注意事项后的所有内容:",使用{{PAGENAME}}
而不是#ifexist
来检查Name: System.Net.IPAddress
MethodTable: 71c3d860
EEClass: 71a299f0
Size: 40(0x28) bytes
File: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
Fields:
MT Field Offset Type VT Attr Value Name
727e821c 40018b1 4 System.Int64 1 instance 4294967295 m_Address
727f2248 40018b2 14 System.String 0 instance 00000000 m_ToString
71c42030 40018b6 1c System.Int32 1 instance 2 m_Family
727e1994 40018b7 18 System.UInt16[] 0 instance 022c20a8 m_Numbers
727e821c 40018b8 c System.Int64 1 instance 0 m_ScopeId
727f3aa4 40018b9 20 System.Int32 1 instance 0 m_HashCode
71c3d860 40018ad 7ec System.Net.IPAddress 0 static 022c1ff8 Any
71c3d860 40018ae 7f0 System.Net.IPAddress 0 static 022c203c Loopback
71c3d860 40018af 7f4 System.Net.IPAddress 0 static 022c2080 Broadcast
71c3d860 40018b0 7f8 System.Net.IPAddress 0 static 022c2080 None
71c3d860 40018b3 7fc System.Net.IPAddress 0 static 022c20c4 IPv6Any
71c3d860 40018b4 800 System.Net.IPAddress 0 static 022c2108 IPv6Loopback
71c3d860 40018b5 804 System.Net.IPAddress 0 static 022c214c IPv6None
代码?
答案 0 :(得分:0)
将#pos
与#ifeq
合并。
示例:
{{#ifeq:{{#pos:text1|text2}}| |text1 does not contain text2|text1 contains text2}}
答案 1 :(得分:0)
所以在找到方法之后我找到了一种方法:从页面名称中删除Notes:
,然后将其放在#ifexist
上。
{{#replace: {{PAGENAME}}|Notes:|}}
这样它就什么都不替换Notes:
。我创建了一个名为ARTICLE_TITLE
的神奇单词,因此注释的代码是:
{{#ifexist: :{{ARTICLE_TITLE}} | {{Alert_box}} | }}