Wiki Calendar: Difference between revisions

Jump to navigation Jump to search
2,145 bytes removed ,  8 January 2025
m
Text replacement - ": Image:Owl icon.jpg " to "{{Tips}} "
m (1個修訂)
 
m (Text replacement - ": Image:Owl icon.jpg " to "{{Tips}} ")
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Calendar navigation}}
<< [[MediaWiki]]/[[MediaWiki extensions|擴充套件]]


這是 '''DPL Calendar''' 的官方中文網頁。
提供使用者能自由編輯的活動訊息行事曆。


== 概說 (Concept) ==
{{Software version| software=MediaWiki | url=http://www.mediawiki.org/ | version=1.11.0 }}
*如果您運用數個極受歡迎的外掛,則您即可以wiki語法來產生一個行事曆。(If you combine the power of some popular extensions it is possible to write a calendaring application completely in wiki code.)
*它相較於使用php程式設計的方式更為有彈性。(This is very flexible compared to php programming.)
 
==結構(Architecture)==
 
{{#wgraph: svg| thumb=90 |
node Current_events {type cal}
 
node 2007-09-28-Event_A {}
node YYYY-10-04-Event_B  {}
  node 2007-10-19-Event_C  {}
 
node Event                                    {type tpl}
node CatEvent                                  {type category label Events}
node CatHoliday                                {type category label Holiday}
edge Event CatEvent                            {type cat}
node Event_template                            {type editsample}
node Event_intro                              {type editintro}
edge Event_intro          Event_template      {kind rightnear type editintro}
edge 2007-09-28-Event_A  Event                {type incl}
edge YYYY-10-04-Event_B  Event                {type incl}
edge YYYY-10-04-Event_B  CatHoliday          {type catgeory}
edge 2007-10-19-Event_C  Event                {type incl}
edge Event_template      2007-09-28-Event_A  {type edit}
edge Event_template      YYYY-10-04-Event_B  {type edit}
edge Event_template      2007-10-19-Event_C  {type edit}
edge Event_template      Event                {type incl}
 
edge Current_events      Calendar_month      {type incl}
 
node Calendar_month                            {type tpl}
node CalendarSingle                            {type tpl}
node Calendar_link                            {type tpl}
edge Calendar_month      2007-09-28-Event_A  {type dpl}
edge Calendar_month      YYYY-10-04-Event_B  {type dpl}
edge Calendar_month      2007-10-19-Event_C  {type dpl}
edge Calendar_month      CalendarSingle      {type incl}
edge CalendarSingle      Calendar_link        {type incl}
edge CalendarSingle      Current_events      {type link label 'next month<br>prev. month' }
 
node Calendar/MonthStartMon                    {type tpl}
node Calendar/MonthStartTue                    {type tpl}
 
edge CalendarSingle    Calendar/MonthStartMon {type incl}
edge CalendarSingle    Calendar/MonthStartTue  {type incl}
 
nodetype tpl        {color yellow    }
nodetype category  {color lightgreen}
nodetype cal        {color lightblue }
nodetype editsample {color lightcyan }
nodetype editintro  {color lightcyan }
nodetype *          {color #ffdddd bordercolor darkgray}
 
edgetype incl  {color darkgray}
edgetype link  {color blue}
edgetype cat  {color darkgreen}
edgetype dpl  {color red thickness 4 label 'DPL query'}
edgetype edit  {linestyle dotted color blue}
 
node.fontname helvR10
}}
* Templates are in yellow.
* The pages describing an event are in red. Their names must start with the date of the event (format: YYYY-MM-DD) or with 'YYYY-' plus month and day (for recurring yearly events).
* We use two edit helpers (in cyan) when event pages are created.
* The entry page for the calendar (''Current events'') is in blue.
* Categories are in green.
 
The design is as follows:
# The user calls the entry page [[Current events zh-tw]]. Be careful if you change its name: The name of this page must be passed as an argument (named 'basepage') to the template 'Calendar month'.
# The basepage can be called by the user without any arguments. Then it uses a date function to calculate the current month. It can also be called from another calendar page - in which case the desired year & month are passed as parameters via the [[Call extension]]. There are more parameters for [[Current events]] - see the explanation below.
# Template 'Calendar month' ...
#* shows the calendar box. The calendar box contains the titles of the event pages (the first part of the titles´ names which contain the resp. date is suppressed). Below the calendar there is an optional event list which shows either all events of the current month or all events regardless of month.
#* expects a 'purpose' parameter. If this parameter is set it acts as a filter, i.e. only events will be shown which belong to a category with the name of the 'purpose'. This allows you to have several calendars in parallel
#* uses a DPL query to find all articles in category 'Event' which belong to the selected year/month
#* shows the selected articles in a list, together with some selected chapters (like Participants ..) and with their categories
#* offers a link to create new events (using the edit template "Event template")


* official: [http://www.mediawiki.org/wiki/Extension:DPL_Calendar Extension:DPL Calendar - MediaWiki]
** 本文件修改自[http://semeb.com/dpldemo/index.php?title=Calendar_zh-tw DPL Calendar 的官方中文網頁]
** 缺點: 缺乏iCal格式輸出,無法匯出至其他[[Calendar|行事曆網站服務]](ex: 30boxes, Google calendar)。


== 安裝(Installation) ==
== 安裝(Installation) ==


=== 安裝外掛(Install extensions) ===
=== 安裝擴充套件(Install extensions) ===


您需要:
您需要:
# 從本站下載 (經由 [[Download]]頁面下載後解壓縮)  
# 從DPL Calendar官方網站 [http://semeb.com/dpldemo/index.php?title=Download Download]頁面下載後解壓縮)  
#* DPL 外掛
#* DPL 擴充套件
#* Call 外掛
#* Call 擴充套件
#* Inputbox 外掛 (此版本與官方版本有些許的差異)
#* Inputbox 擴充套件 (此版本與官方版本有些許的差異)
#從 mediawiki.org:
#從 mediawiki.org:
#* [[mw:Extension:VariablesExtension]]
#* [http://www.mediawiki.org/wiki/Extension:VariablesExtension Extension:VariablesExtension]
#* [[mw:Extension:StringFunctions]] -- 於本站內的版本[[StringFunctions extension|StringFunctions]]則為小幅度功能增強版本,其可使用正則表達式( regular expressions); 雖然並非必須,但還是建議您使用本站所提供之版本。
#* [http://www.mediawiki.org/wiki/Extension:StringFunctions Extension:StringFunctions] -- 於DPL Calendar官方網站內的版本[http://semeb.com/dpldemo/index.php?title=StringFunctions_extension StringFunctions]則為小幅度功能增強版本,可使用正則表達式( regular expressions); 雖然並非必須,但還是建議您使用DPL Calendar官方網站所提供之版本。
#* [http://meta.wikimedia.org/wiki/Help:ParserFunctions#Installation Extension:ParserFunctions]
#* [http://meta.wikimedia.org/wiki/Help:ParserFunctions#Installation Extension:ParserFunctions]


The process of installation is the same as always: create a directory per extension in the 'extension' folder and put a 'require_once' statement into your LocalSettings.php.
The process of installation is the same as always: create a directory per extension in the 'extension' folder and put a 'require_once' statement into your LocalSettings.php.
<pre>
require_once('extensions/DynamicPageList/DynamicPageList2.php');
require_once('extensions/Call/Call.php');
require_once('extensions/Inputbox/inputbox.php');
require_once('extensions/Variables/Variables.php');
require_once('extensions/StringFunctions.php');
require_once('extensions/ParserFunctions/ParserFunctions.php');
</pre>


===安裝行事曆樣板(Install Calendar Templates)===
===安裝行事曆樣板(Install Calendar Templates)===
Line 106: Line 42:
  [[Template:Calendar month zh-tw]]
  [[Template:Calendar month zh-tw]]
  [[Template:CalendarSingle zh-tw]]
  [[Template:CalendarSingle zh-tw]]
  [[Template:Calendar link]]
  [[Template:Calendar link zh-tw]]
  [[Template:Calendar/MonthStartMon]]
  [[Template:Calendar/MonthStartMon]]
  [[Template:Calendar/MonthStartTue]]
  [[Template:Calendar/MonthStartTue]]
Line 117: Line 53:
  [[Template:(!]]
  [[Template:(!]]
  [[Template:!)]]
  [[Template:!)]]
  [[Event template]]
  [[Template:活動模版]]
  [[Event intro]]
  [[Event intro]]
  [[Template:Event]]
  [[Template:Event]]
  [[Template:Create Event]]
  [[Template:新增活動]]
[[Talk:Calendar zh-tw]]
  [[Calendar zh-tw/Demo]]
  [[Calendar zh-tw/Demo]]
  [[Template:DPL Calendar code generater zh-tw]]
  [[Wiki Calendar]]
[[Calendar zh-tw]]
[[Calendar]]
</small>
</small>


以下是英文版 (Followed pages are English version)
模版說明
<small>
* [[Current events zh-tw]]: 行事曆的入口頁
[[Current events]]
** [[Template:Calendar month zh-tw]]
[[Template:Calendar month]]
** [[Template:CalendarSingle zh-tw]]: 呈現單月的行事曆
[[Template:CalendarSingle]]
* [[Template:Calendar link zh-tw]]: 行事曆的日期連結(連結至[[Template:新增活動]])
[[Template:Calendar link]]
* [[Template:新增活動]]: 輸入活動名稱的文字方框
[[Template:Calendar/MonthStartMon]]
* [[Template:活動模版]]: 空白活動模版
[[Template:Calendar/MonthStartTue]]
* [[Event intro]]: [[Template:活動模版]]輸入活動資訊時的上方輔助說明文字
[[Template:Calendar/MonthStartWed]]
* [[Template:Event]]: 個別活動的呈現模版
[[Template:Calendar/MonthStartThu]]
 
[[Template:Calendar/MonthStartFri]]
[[Template:Calendar/MonthStartSat]]
[[Template:Calendar/MonthStartSun]]
[[Template:!]]
[[Template:(!]]
[[Template:!)]]
[[Event template]]
[[Event intro]]
[[Template:Event]]
[[Template:Create Event]]
</small>


=== 使用方式(Using the calendar) ===
=== 使用方式(Using the calendar) ===
Line 155: Line 77:
*請依照下列的命名規範:頁面名稱須以日期(date)為起首 (如"YYYY-MM-DD"其後再加些簡短的描述。
*請依照下列的命名規範:頁面名稱須以日期(date)為起首 (如"YYYY-MM-DD"其後再加些簡短的描述。
*:例如: "2007-10-31 一些重要的事情"
*:例如: "2007-10-31 一些重要的事情"
*請記得該文件須隸屬於'Events'此一分類(category),如果您在文件的第一行使用了"Event"樣板,則其自動完成此一設定。
*請記得該文件須隸屬於'Events'此一分類(category),如果您在文件的第一行使用了[[:Template:Event|"Event"樣板],則其自動完成此一設定。
*如有必要,您請可另行增加其他分類 (像是<tt><nowiki>[[Category:假日]]</nowiki></tt> ),這樣的話該資訊亦會顯示於行事曆下方的表格(event table)之中。
*如有必要,您請可另行增加其他分類 (像是<tt><nowiki>[[Category:假日]]</nowiki></tt> ),這樣的話該資訊亦會顯示於行事曆下方的表格(event table)之中。
** 以[http://wiki.planetoid.info/index.php/Special:Call/Calendar_month_zh-tw%2CeventList%3Dall%2Cbasepage%3DCurrent_events%2Cyear%3D2008%2Cmonth%3D02%2Cpurpose%3D demo]行事曆為例,在網址的 purpose%3D 或 purpose= 加上事件的分類,就能篩選為該分類的行事曆 (ex:[http://wiki.planetoid.info/index.php/Special:Call/Calendar_month_zh-tw%2CeventList%3Dall%2Cbasepage%3DCurrent_events%2Cyear%3D2008%2Cmonth%3D02%2Cpurpose%3DLIS 類別為 LIS 的行事曆])。
* 您可以'YYYY'的方式來定義每年一度重複性(yearly recurring events)的記事。
* 您可以'YYYY'的方式來定義每年一度重複性(yearly recurring events)的記事。
*:例如"YYYY-12-24 耶誕夜"
*:例如"YYYY-12-24 耶誕夜"
Line 166: Line 89:
=== 客製化Customizing ===
=== 客製化Customizing ===


如您想要客製化此一行事曆,請您撥冗查閱一下DPL的使用手冊(DPL manual)特別是[[include]] 參數及[[format]] 參數。在我們的範例中[[Template:calendar month zh-tw]], 設有:
如您想要客製化此一行事曆,請您撥冗查閱一下DPL的使用手冊(DPL manual)特別是[http://semeb.com/dpldemo/index.php?title=Include include] 參數及[http://semeb.com/dpldemo/index.php?title=Format format] 參數。在我們的範例中[[Template:calendar month zh-tw]], 設有:
<pre>#Summary,#Participants,#Location</pre>
<pre>#Summary,#Participants,#Location</pre>
<pre>#主旨,#參加人員,#地點</pre>
<pre>#主旨,#參加人員,#地點</pre>
Line 174: Line 97:
You could modify the name of sections, the number of sections or even take the parameters of a template inside the event page. Again, see the DPL manual.
You could modify the name of sections, the number of sections or even take the parameters of a template inside the event page. Again, see the DPL manual.


==[[Calendar zh-tw/Demo|Demo]]==
{{:Calendar zh-tw/Demo}}
==行事曆程式碼產生器(中文版)==
==行事曆程式碼產生器(中文版)==
{{DPL Calendar code generater zh-tw}}
[http://semeb.com/dpldemo/index.php?title=Calendar_zh-tw#.E8.A1.8C.E4.BA.8B.E6.9B.86.E7.A8.8B.E5.BC.8F.E7.A2.BC.E7.94.A2.E7.94.9F.E5.99.A8.28.E4.B8.AD.E6.96.87.E7.89.88.29 行事曆程式碼產生器(中文版)]: 透過 wiki 語法產生行事曆 (僅適用於 Mediawiki 和 DPL calendar 套件)
 
{{Tips}} 如果你想尋找「php行事曆程式碼」,可以點選[[OpenSource for Educators]]裡面有開放原始碼的專案檔案庫,或者直接查看針對這些專案網站的自訂搜尋結果 [http://www.google.com/custom?cx=010660376355600943635:fiv-qk6ts9a&q=%22php+calendar%22&sa=Search&cof=AH%3Aleft%3BCX%3ASearch%2520free%2520icons%3BDIV%3A%23cccccc%3BFORID%3A1%3BGFNT%3A%23666666%3BL%3Ahttp%3A%2F%2Fplanetoid%2Einfo%2Fimages%2Flogo_of_custom_search%2Egif%3BLH%3A100%3BLP%3A1%3BS%3Ahttp%3A%2F%2Fwiki%2Eplanetoid%2Einfo%2Findex%2Ephp%2FFree_icon_resources%3B&adkw=AELymgX9RGoVsVqDLnZE2geG1QvBnjWNZr4E3EKdcYst8Kw_sCvKAS4gGHTY8M5ovjl9q18EcwjTmlTRR49LYw1JeXqY3KXn7Erdq2dAQmb5himJ4Kx-rSE&hl=en&client=pub-8270368572690590 &quot;php calendar&quot; - Google Search]。
 
[[Category:MediaWiki]]

Navigation menu