Help:日历格式

From semantic-mediawiki.org
Jump to: navigation, search
日历格式
在日历上显示关联有日期时间的页面
进一步的信息
提供方: Semantic Result Formats(语义结果格式)
最低版本: 1.4.0
最高版本: 依然支持
要求:
格式名称: calendar
作者: Yaron Koren
类别: time
目录

日历格式calendar,作为Semantic MediaWiki扩展的组成部分, 可用来在日历上显示具有某个与之相关联的日期时间的页面,如事件。

参数

参数 类型 默认 说明
lang 文本 no 日历显示语言的代码
template 文本 空白 <srf-paramdesc-template>
userparam 文本 空白 <srf-paramdesc-userparam>
color 文本 空白 <srf-paramdesc-color>
colors 文本 空白 每个日期属性的显示颜色(示例:"Start date=>green,End date=>#09c")
startmonth 文本 10 月,日历显示初始化为(默认为当前月)
startyear 文本 2016 年,日历显示初始化为(默认为当前年)

使用方法

应当采用如下方式来调用日历格式的查询:

{{#ask:
  [[Category:Events]]
  [[Has date::>{{#calendarstartdate:}}]]
  [[Has date::<{{#calendarenddate:}}]]
  |? Has date
  |format=calendar
}}

换言之,所查询的日期属性同时还应当用于筛选日期:#calendarstartdate#calendarenddate将返回的分别是任何特定月份的第一个日期和最后一个日期(实际上是最后日期之后的那一天)。这样,传递进来并为日历所要显示的就将仅仅是当前月份之内的那些日期,而不是全部的日期。

关于创建此类查询的一些注解:

  • 确保在#calendarstartdate和#calendarenddate解析器函数调用之中包含上英文冒号':';否则,这些函数将不起作用。
  • 不必担心比较操作符是'<'和'>'而不是'<='和'>=';这些解析器函数返回值的设置,已使这一点不成问题。
  • 亦可添加一个"sort="参数,如"sort=Has date",这样,就会依据事件发生的时间,对每天当中的时间加以排序(这里,假设属性"Has date"在这种情况下同时也包含有某个时间取值)。

显示选项

通过在查询之中添加颜色选项,可设定标记条目时所要使用的颜色:

|color=red

Semantic Compound Queries(语义组合查询)扩展可分别采用不同的颜色来显示每套事件。

模板选项template = <模板名称>,可用于更改日历项(calendar item)/事件的显示:

|format=calendar
|template= <...>

关于所采用的模板的详情,请参见模板格式

截至SRF 1.6版,您还可以在包含了Semantic Result Formats(语义结果格式)之后,通过在LocalSettings.php之中设置变量$srfgFirstDayOfWeek,针对整个当前的维基站点,设定作为一周之始的那一天(默认值为星期日/周日)。 比如,如果当前使用的是英语维基站点的话,要将其变为星期一/周一,可添加下列片段:

$srfgFirstDayOfWeek = 'Monday';

请注意:必须采用当前维基站点的语言来设定这一天。

高速缓存事项

对于既往版本的Semantic Result Formats(语义结果格式,SRF),除非至少在那些含有日历的页面之上手工禁用MediaWiki高速缓存功能,日历并不会得到正确的显示。目前,已经在源代码之中对此进行了修复;如果这对您来说仍是个问题,请升级到最新版本的SRF。

更改结果数量限值

嵌入式查询所显示结果数量的默认限值为20。 如果您在任何月份当中拥有超过20个事件的话, 则应当向查询当中添加一个限值参数'limit=',并且采用某个大于您所拥有的最大数量的数值。比如:

{{#ask:
  [[Category:Events]]
  [[Has date::>{{#calendarstartdate:}}]]
  [[Has date::<{{#calendarenddate:}}]]
  |? Has date
  |format=calendar
  |limit=300
}}

如果在任何月份当中您所拥有事件的数量都大于500,就需要采用第二步 - 在包含了Semantic MediaWiki之后,请在您的文件当中添加如下一行:

$smwgQMaxInlineLimit = 1000;

(该取值可以是任何大于您每个月所拥有事件的最大数量的数值。)

示例

Discourse DB 的日历页面之上,可以看到正在使用之中的日历格式的一个例子。



本文档页面适用于SMW从1.6.0版到最新版本的所有版本。
      其他语言: deenfr

Help:Calendar format zh-hans 1.6.0