トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/23

ページの作成や編集にはユーザ登録が必要です。

Calendar

  • 投稿者: ななしさん2改め、イタリアーナ
  • カテゴリ: 修正
  • 優先度: 低
  • 状態: リリース済
  • 日時: 2003年07月08日 20時46分45秒

 内容

BugTrack-wiki/61で出ていた内容ですが作ってみました。

カレンダを表示します。

{{calendar カレンダ名}}

カレンダの「」をクリックすると前月、「」をクリックすると翌月、年月をクリックするとその月のカレンダとページ内容を一覧表示します。また、カレンダの日付をクリックすると該当する日付のページを表示(ページが存在しない場合は編集画面を表示)します。

オプションで編集画面で初期表示されるテンプレートページを指定することができます。

{{calendar カレンダ名,テンプレートとなるページ名}}

また、表示位置を指定することも出来ます。

{{calendar カレンダ名,テンプレートとなるページ名,(center|right|left)}}

例:

{{calendar 予定表}}
{{calendar 予定表,予定表テンプレート,center}}
{{calendar 予定表, ,right}}

CSSで表示形式を変更することが出来ます。使用しているクラス名は以下の通り。
タグ クラス 説明
div plugin_calendar プラグインの出力全体をカバーしています。
tr navi year/month の部分。
tr week 曜日の部分。
td today 今日の日付。
td have 予定のある日付。

例:

div.plugin_calendar th { text-align:center; }
div.plugin_calendar td { text-align:right; }
div.plugin_calendar td.today { background-color:#fdc; }
div.plugin_calendar td.have a { font-weight:bold; }

 コメント

  • 私もカレンダをMenu(サイドバー)に入れてはみ出ないようにと云う目的で、ほぼ同様の修正をしてました。私の場合は<table class="calender">...と吐くようにしていました。カレンダ自体はtableで出力されますが、カレンダだけtableと別のスタイルにしたいということもあり得るのでtableの方にもクラスの設定があった方がいいと思います。- BJM(と) (2003年07月10日 04時54分05秒)
  • 参考までに、カレンダーをサイドバーに長さの絶対単位指定(ptとかcmなど)を使用せずに、ウィンドウサイズに依存せずにうまく入れる設定例を以下に示します。
div.main {
margin-left: 12.5em;
}
div.sidebar {
/* sidebar.width x sidebar.font-size =~ main.margin-left
  になるように調整 */
width           : 15em;
font-size       : 0.8em; 
}
div.sidebar .calendar {
/* calendar.font-size x 20(カレンダーの概算桁数) =~ sidebar.width
  になるように調整 */
font-size: 0.75em;
}

ここで、「長さ指定emはその要素のfont-sizeを参照する。ただし、font-sizeを指定する文脈では親要素のfont-sizeを参照する」という規則を利用しています。

  • なお、スタイルのクラス名に_は使えないようです。-にするか、抜いた方がいいです。 - BJM(と) (2003年07月10日 05時05分05秒)
  • はじめまして、イタリアーナさん。私の方でも現在CalendarHandlerに手を入れています(複数月表示と最近の予定一覧の追加)。まとまったら、一度上げる予定です。変更内容の衝突を避けたいのですが、イタリアーナさんのほうに修正の予定はありますか? - Aki (2003年07月10日 07時12分03秒)
  • クラス名を"-"でつないだ奴を作りました。calendar2.zip(411) 。"_"って問題があったのですね、知りませんでした。ご指摘ありがとうございます。 - イタリアーナ (2003年07月10日 13時14分04秒)

申し遅れました、皆様はじめまして。FSWikiの拡張性の高さ、ソースの綺麗さに惚れて使い始めたイタリアーナと申します。よろしくお願いいたします。

それでは本題。table のスタイルは以下の様に限定して指定することが出来るので、このままでもいいかなーっと思っているのですが、いかがでしょうか?>BJM(と)さん

div.plugin-calendar table { ... }

それで、一応私がやりたかったことは達成されてはいるのですが、タグのクラス指定の部分でもう少し修正が入るかもしれません。お待ちいただくか、その部分を含めて修正・変更していただけるなら、私の作業はこれで完了にしようかと思うのですが、いかがでしょうか?>Akiさん

  • こんばんは、イタリアーナさん。div.plugin-calendar table { ... }でいけるのをうっかり失念しておりました。……でも、カレンダーが複数月表示するというシチュエーションでは、先月・来月を少し小さく表示したいといったことも考えられますので、div、table両方ともあった方がいいように思えます。ということで、この問題はAkiさんにお任せするということでいかがでしょう。 - BJM(と) (2003年07月10日 23時20分10秒)
  • 了解しました > イタリアーナさん ; 現在鋭意作成中です。 - Aki (2003年07月11日 20時18分42秒)
  • ところで、CPANこういうものを見つけたので、試してみようかと思っています。これについての評判を知らないのですが、どなたかご存知でしたら教えてください - Aki (2003年07月11日 20時27分43秒)
  • 最近の予定一覧は便利そうですね、楽しみにしております。>Akiさん - イタリアーナ (2003年07月11日 23時51分58秒)
  • なお、CSSのクラス選択子に半角アンダスコア _ が使えない理由に付いては、CSS2の構文及び基本データ型あたりに書かれています - Aki (2003年07月12日 11時31分44秒)
  • ええとカレンダのスタイルについては以前から要望があったので取り込みたいのですが、これはAkiさんのが出るまで待ったほうがよいのでしょうか。 - たけぞう (2003年07月16日 21時04分50秒)
  • 作業が遅れていて申し訳ありません。実はCPAN/CalendarMonthを使ってカレンダ表示部分を実装し直そうとしていたのですが、依存ライブラリが多く追いきれなかったため、断念しました(iswebだとTaintチェック(?)に引っかかる)。週末までにCalendarMonth無しの版に巻き戻して、こちらにcommitさせます。[1] - Aki (2003年07月17日 06時02分52秒)
  • 遅くなりましたが、暫定版ができました。最近の予定一覧と、表示月指定オプションの追加による複数月表示対応機能を追加しています calendar-20030718.zip(390) - Aki (2003年07月18日 01時55分42秒)
  • futurecalendar 試してみました。べ、便利!完成が楽しみです。 - イタリアーナ (2003年07月20日 20時26分03秒)
  • オプションの center, left, right ですが、外す方向で修正できないでしょうか? table タグのalign属性は廃止予定属性なので、外すか、class属性として追加し、ユーザ定義CSSで表示位置を制御するといった方向にしたほうがHTML 4.01 Strict化のために良いと思うのです - Aki (2003年07月22日 12時51分46秒)
  • オプションの center, left, rightを外した版です。何点かの機能強化があります。calendarプラグインの出力はdivで囲われますが、future/month/recentcalendarは囲われていません。必要なら、囲うよう修正します。また、オプションの希望があれば、指定位置も含めて検討した後に、復活させます。なお、機能強化の詳細については試験運用中のサイトにあるヘルプをご覧下さい。 FSWiki-calendar-20030722.zip(423) - Aki (2003年07月22日 18時19分41秒)
  • dev8 で取り込まれたのですね。お疲れ様です[2] > たけぞうさん - Aki (2003年07月22日 22時45分48秒)
  • 3.4.2でリリースしました。 - たけぞう (2003年07月26日 22時34分36秒)
  • CalendarHandler.pmの124行目付近なのですが、
my $login = $wiki->get_login_info();
if (not $have_plan) {
    if (!defined($login) || $login->{type}!=0) {
        $buf .= "$mday</td>";
    } else {
        $buf .= "<a href=\"".$wiki->config('script_name')."?page=".&Util::url_encode($page);
        $buf .= "&amp;template=".&Util::url_encode($template) if defined $template;
        $buf .= "\">$mday</a></td>";
    }
} else {
    $buf .= "<a href=\"".$wiki->config('script_name')."?page=".&Util::url_encode($page);
    $buf .= "\">$mday</a></td>";                      
}       
  • ログインユーザー以外編集できない場合、日付に対してリンクをはらないほうが良い感じがしました。見てる方がデータの無い日付をクリックして編集できません画面が出るのが不自然でしたので、どうでしょう。 - AMON (2004年03月12日 14時20分02秒)
お名前: コメント:
  • [1]commitしました
  • [2]あ、ヘルプも少し直っている(w
FSWiki-calendar-20030722.zip calendar-20030718.zip calendar.zip calendar2.zip

最終更新時間:2004年03月12日 14時22分21秒