Help:Calendar format/zh-hans

From semantic-mediawiki.org
< Help:Calendar format
Calendar formatHelp:Calendar format/zh-hans
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
目录

日历格式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 的日历页面之上,可以看到正在使用之中的日历格式的一个例子。



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

Help:Calendar format zh-hans 1.6.0