我使用MediaWiki和SMW扩展程序在私人环境中组织我的小组正在创建的虚构世界。我有一些我喜欢的功能,而且我想知道那里是否有扩展,或者是否可以制作我自己的扩展,这将让我做我想做的事。
基本上,用简单的英语...我想知道宇宙在特定时间点(或持续时间)发生的事情。
我希望让用户能够提供日期(简单到一年,或根据需要精确)或持续时间,并返回每个持续时间重叠的事件。
例如。
用户输入日期(在本例中为部分)309 BCE。 Wiki返回事件1和事件4,因为给定日期在两者的持续时间内。
这将允许我的创作者查询特定日期(并希望持续时间)并发现已经发生的事件,因此他们可以根据已经建立的内容调整他们的作品。它是一个简单的冲突检查器。
如果没有可用的扩展程序可以解决这个问题,那么在我可以研究的任何地方都有这样的东西吗?我从未在PHP中处理日期。我是一名普通的商业编码员,我从未做过复杂的应用程序。
答案 0 :(得分:1)
SMW中没有内置的“持续时间”数据类型,因此最简单的方法可能是使用一个date property作为开始日期,一个作为结束日期(注意它必须是{{ 1}} / BC
,而不是AD
/ BCE
或类似的):
CE
然后您可以查询具有开始日期之前的每个事件,以及某个日期之后的结束日期:
[[Event starts at::3200 BC]]
[[Event ends at::198 BC]]
请注意,{{#ask:[[Event starts at::<1000 BC]] [[Event ends at::>1000 BC]]}}
实际上意味着SMW查询语法中的“大于或等于”。