Calendar format/zh-hans | |
---|---|
在日历上显示关联有日期时间的页面 | |
更多信息 | |
提供者: | Semantic Result Formats(语义结果格式)/zh-hans |
添加版本: | 1.4.0 |
移除版本: | 依然支持 |
需求: | 无 |
格式名称: | calendar |
启用?表明安装相应扩展时是否默认启用该结果格式。 | 是"是" is not recognized as a Boolean (true/false) value. |
作者: | Yaron Koren |
分类: | time |
目录 | |
Contents |
日历格式calendar,作为Semantic MediaWiki扩展的组成部分, 可用来在日历上显示具有某个与之相关联的日期时间的页面,如事件。
参数[edit]
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
lang | 文本 | no | 日历显示语言的代码 |
template | 文本 | 空白 | 输出显示模板的名称 |
userparam | 文本 | 空白 | 使用模板时,向模板调用所传递的取值 |
color | 文本 | 空白 | 标记日历项的颜色 |
colors | 文本 | 空白 | 每个日期属性的显示颜色(示例:"Start date=>green,End date=>#09c") |
startmonth | 文本 | 12 | 月,日历显示初始化为(默认为当前月) |
startyear | 文本 | 2024 | 年,日历显示初始化为(默认为当前年) |
使用方法[edit]
应当采用如下方式来调用日历格式的查询:
{{#ask: [[Category:Events]] [[Has date::>{{#calendarstartdate:}}]] [[Has date::<{{#calendarenddate:}}]] |? Has date |format=calendar }}
换言之,所查询的日期属性同时还应当用于筛选日期:#calendarstartdate和#calendarenddate将返回的分别是任何特定月份的第一个日期和最后一个日期(实际上是最后日期之后的那一天)。这样,传递进来并为日历所要显示的就将仅仅是当前月份之内的那些日期,而不是全部的日期。
关于创建此类查询的一些注解:
- 确保在#calendarstartdate和#calendarenddate解析器函数调用之中包含上英文冒号':';否则,这些函数将不起作用。
- 不必担心比较操作符是'<'和'>'而不是'<='和'>=';这些解析器函数返回值的设置,已使这一点不成问题。
- 亦可添加一个"sort="参数,如"sort=Has date",这样,就会依据事件发生的时间,对每天当中的时间加以排序(这里,假设属性"Has date"在这种情况下同时也包含有某个时间取值)。
显示选项[edit]
通过在查询之中添加颜色选项,可设定标记条目时所要使用的颜色:
|color=red
Semantic Compound Queries(语义组合查询)扩展可分别采用不同的颜色来显示每套事件。
模板选项template = <模板名称>,可用于更改日历项(calendar item)/事件的显示:
|format=calendar |template= <...>
关于所采用的模板的详情,请参见Archive:Template format/zh-hans。
截至SRF 1.6版,您还可以在包含了Semantic Result Formats(语义结果格式)之后,通过在LocalSettings.php之中设置变量$srfgFirstDayOfWeek,针对整个当前的维基站点,设定作为一周之始的那一天(默认值为星期日/周日)。 比如,如果当前使用的是英语维基站点的话,要将其变为星期一/周一,可添加下列片段:
$srfgFirstDayOfWeek = 'Monday';
请注意:必须采用当前维基站点的语言来设定这一天。
高速缓存事项[edit]
对于既往版本的Semantic Result Formats(语义结果格式,SRF),除非至少在那些含有日历的页面之上手工禁用MediaWiki高速缓存功能,日历并不会得到正确的显示。目前,已经在源代码之中对此进行了修复;如果这对您来说仍是个问题,请升级到最新版本的SRF。
更改结果数量限值[edit]
嵌入式查询所显示结果数量的默认限值为20。 如果您在任何月份当中拥有超过20个事件的话, 则应当向查询当中添加一个限值参数'limit=',并且采用某个大于您所拥有的最大数量的数值。比如:
{{#ask: [[Category:Events]] [[Has date::>{{#calendarstartdate:}}]] [[Has date::<{{#calendarenddate:}}]] |? Has date |format=calendar |limit=300 }}
如果在任何月份当中您所拥有事件的数量都大于500,就需要采用第二步 - 在包含了Semantic MediaWiki之后,请在您的文件当中添加如下一行:
$smwgQMaxInlineLimit = 1000;
(该取值可以是任何大于您每个月所拥有事件的最大数量的数值。)
示例[edit]
在Discourse DB 的日历页面之上,可以看到正在使用之中的日历格式的一个例子。