PukiWiki / calendar3


PukiWiki

calendar3

calendar3_opt (1).jpg

PukiWiki標準プラグインcalendarとcalendar2がありますが、個人的にデスクトップカレンダーの様なモノが欲しかった*1 ので作ってみました。

斉藤家:Plugin/cal.inc.phpにもっと高機能なカレンダー兼スケジューラプラグインがあります。そちらをお勧めします。*2

と思ったら斉藤家:Plugin/cal.inc.phpPukiWiki Plus!に移行されたので、calender_task.inc.phpの方がPukiWiki向きです。

久しぶりにpukiwikiを弄りだしたのですがこのcalendar3はPukiWiki1.4.7では動作しないようです。↑におすすめした>斉藤家:Plugin/cal.inc.phpもダメのようです。
今現在=pukiwiki1.4.7で動作するこういったカレンダー系のプラグインではcalendar9.inc.phpが一番よいように思えます。(2010.9.22追記)

変幻自在なPukiWikiですが、これでちょっとはグループウエアっぽいPukiWikiが出来るかな?

こんなんが欲しかったんですぅ。→
クリックすると拡大します。

ソース

htmlがちょっとだけ分かる程度の私ですので、多分かなりめちゃくちゃなところがあると思います。よって本家になど、とてもとても揚げることは出来ません。 :d
それでももしかしたらこの様なモノが欲しいって人がいるかもしれないと思って一応ココに置いておきます。


どなたか問題点など指摘して頂けると大変嬉しいです。

ちなみに私の環境は

内容

calendar2をひな形にcalendar3は作っています。以下その相違点です。

今日の内容表示を常にオフにする

calendar2.inc.phpはデフォルトでカレンダー右横に今日の内容を表示するようになっているが、その月の予定内容をカレンダーに表示するcalendar3では必要ないし、前月や翌月のリンクを辿るとエラー*3でるのでデフォルトでオフにする。calendar3.inc.phpの最初の

$today_view = FALSE;

をTRUEからFALESにしておく。設置したcalendar3も引数はoffにしておいた方が良いみたい。

calendar3.inc.php81行目辺りの

<table class="style_calendar" cellspacing="1"  border="0" summary="calendar body">
  <tr>
    <td class="style_td_caltop2" colspan="7">
  • <table class=...以下に続くwidthの指定は無しにする。
  • <tr height="30">は高さを30ピクセルで制御する。
  • <td class="style_td...はカレンダー上部の「年月、その前後の月へのリンク、カレンダーを設置したページへのリンク」が表示されているデータ要素の属性の設定だが、デフォルトだと文字が小さいのでstyle_td_caltop2とした。 style_td_caltop2はpukiwiki/skin/default.ja.cssを編集して465行目辺りの/* calendar*.inc.php */ の下辺りに
    .style_td_caltop2
    {
            padding:5px;
            margin:1px;
            color:inherit;
            background-color:#EEF5FF;
            font-size:100%;
            text-align:center;
    }
    と記述しておく。

日にちのセルを制御

125行目あたりの

if (is_page($page)) {
    $link = "<a href=\"$script$r_page\"title=\"$s_page\"><strong>$day</strong></a>";
}
else {
    $link = "<a class=\"small\" href=\"$script?cmd=edit&amp;page=$r_page&amp;refer=
  $r_base\" title=\"$s_page\">$day</a>";
                }

の下辺りに各々の日にちの内容を表示させるため

// 各々の日付に内容を表示

$strr = convert_html(get_source($s_page));

//

を記述し、それ以下に続く箇所を下記の様に直す

$ret .= "     <td class=\"$style\" valign=\"top\" height=\"100\" width=\"100\">
       \n      $link <div id=related align=\"left\">$strr</div>\n     </td>\n";
$day++;
$wday = ++$wday % 7;
  • <td class=\"$style\" valign=\"top\" height=\"100\" width=\"250\">は日付セルの属性。valign=\"top\"でセル上部表示として、height=\"100\" width=\"250\"でセルの大きさを制御。
  • link <div id=related align=\"left\">strr</div>\nは日にちの内容の表示の仕方を制御。div id=relatedとすることでフォントサイズを80%にした。

自動リンクを無効

120行目辺りの

if (is_page($page)) {
   $link = "<a href=\"$script?$r_page\" title=\"$s_page\"><strong>$day</strong></a>";
}
else {
  $link = "<a class=\"small\" href=\"$script?cmd=edit&amp;page=$r_page\" title=\"$s_page\">$day</a>"; 
   }

r_pagerefer=r_base\は、元ページへの自動リンクだが、カレンダーで表示した時に目障りなので

<a class=\"small\" href=\"$script?cmd=edit&amp;page=$r_page&amp;refer=$r_base\" title=\"$s_page\">

の様にr_pagerefer=r_base\を削除して自動リンクを無効にしました。

ご意見

  • parse errorがでました。コメント中の全角スペースあたりが原因のようです。 -- imi? 2006-02-24 15:03:01 (金)
  • imi様。放置状態(日本放置協会所属)なのにコメント頂きありがとうございます。 -- yasu 2006-02-27 09:39:37 (月)
  • 参考に改造させていただきましたm(__)m 自作プラグイン/calender_task-- phantomo? 2006-10-12 07:56:53 (木)
  • >phantomo
    ありがとうございます。upkさんはPukiWiki plus!に移行されたのでPukiWiki用が出来て良かったです(素人の私の作ったのはダメダメですからw) -- .punto 2006-10-12 10:23:04 (木)
  • いえいえ、.puntoさんのcalender3が無ければ私も創作意欲?!(苦笑)が沸かなかったので・・。これは便利!と改造させていただきましたm(__)m -- phantomo? 2006-10-12 20:27:20 (木)
  • とても便利に使わせて頂いております。ありがとうございます。
    calendar9.inc.phpのように祝日対応が出来れば最高なのですが、可能でしょうか?
    (会社で使わせて頂いているのですが、calendar9.inc.phpは高機能すぎて、おぢさま達が使いこなせないのです…。贅沢&厚かましい要望ですみません) -- ぺんぎん? 2008-01-11 16:44:24 (金)
  • べんぎんさん、コメントありがとうございます。レスが遅くなってスミマセン。
    祝日に関しては齋藤家public_holiday.phpを私は使わせて貰っております。 -- yasu 2008-01-29 10:13:35 (火)
  • yasuさま、レスありがとうございます。これは便利そうですね。試してみます:)教えてくださってありがとうございます。 -- ぺんぎん? 2008-02-13 10:04:55 (水)
  • すみません、pukiwikiになんて書けばカレンダーが表示されるんでしょうか? -- 2008-10-14 11:21:17 (火)
  • >名無しさん
     #calと書けば表示されます。 -- yasu 2008-10-15 09:28:09 (水)

''スパムが多いのでコメント欄を閉じて凍結しました。2008.12.2


*1 そのほかにココにも書いてありますが...
*2 現在は配布も公開も停止しております。
*3 「リンク先はありません」とブラウザくんに言われてしまう。一端戻って今一度トライすると成功したりする