カレンダーのリンクをwikipedia風にしたい

バージョン1.4.7
投稿者kiyi?
状態完了
投稿日2007-09-14 (金) 14:25:38

メッセージ

カレンダーのリンクについてです。
Wikipediaのカレンダーで4月1日をクリックすると4月1日のページに飛びますが、calendar2でのリンクは

上位階層/2007-04-01

というようになっています。すでに作った4月1日のページにリンクさせるようなプラグインがほしいです。

コメント

  • #calendar2(*)ってこと? -- 2007-09-14 (金) 22:38:22
  • なんだ、そういうことじゃないみたいだな。ここに至る経緯があるのなら、リンクしておいてくれよ。質問箱4/155 -- 2007-09-14 (金) 22:42:45
  • リンク先のページ名が yyyy-mm-dd というフォーマットなのを mm-dd になるように改造すればいいだけだよね。-- 2007-09-15 (土) 00:31:46
  • リンクありがとうございます。遅レスですみませんが、mm-ddならcalendar2.inc.phpの106行目辺りの$dtの代入を変えれば出来るのですが、mm月dd日という形が希望です。 -- kiyi? 2007-09-19 (水) 10:50:08
    • こういうこと?
      -		$dt     = sprintf('%4d-%02d-%02d', $year, $m_num, $day);
      +		$dt     = sprintf('%02d月%02d日', $m_num, $day);
      でも、次の月や前の月へのリンクはどうなるの?$prev_date_str とか$next_date_str とか。あと、年をまたぐ時。 -- 2007-09-20 (木) 15:22:22
  • $prev_date_str とかは$dtに依存するのですか。67行目や70行目辺りを見ると違うように思えるのですが・・・。間違っていたらすみません。 -- kiyi? 2007-09-20 (木) 15:41:54
    • ごめんなさい、線で打ち消したとこは関係なかったです。むしろ、150行目あたりの今日の日記があるかを見る場所、
      	if ($today_view) {
      		$tpage = $prefix . sprintf('%4d-%02d-%02d', $today['year'],
      			$today['mon'], $today['mday']);
      		$r_tpage = rawurlencode($tpage);
      		if (is_page($tpage)) {
      			$_page = $vars['page'];
      			$get['page'] = $post['page'] = $vars['page'] = $tpage;
      			$str = convert_html(get_source($tpage));
      			$str .= '<hr /><a class="small" href="' . $script .
      				'?cmd=edit&amp;page=' . $r_tpage . '">' .
      				$_calendar2_plugin_edit . '</a>';
      			$get['page'] = $post['page'] = $vars['page'] = $_page;
      		} else {
      			$str = sprintf($_calendar2_plugin_empty,
      				make_pagelink(sprintf('%s%4d-%02d-%02d', $prefix,
      				$today['year'], $today['mon'], $today['mday'])));
      		}
      		$ret .= '  </td>' . "\n" .
      			'  <td valign="top">' . $str . '</td>' . "\n" .
      			' </tr>'   . "\n" .
      			'</table>' . "\n";
      	}
      にあるsprintf() の部分を上と同じような感じで修正する必要があります。
      ただ、ページ名に年を示すパーツが入っていないので、2006年の9月1日と2007年の9月1日、さらには2008年の…、がみんな「09月01日」というページになってしまう気が。これを回避するにはせめて「yyyy年/mm月dd日」でないと…。 2007-09-20 (木) 16:22:49
  • 2007年9月1日も3000年9月1日も同じ9月1日にしたいです。106行目辺りの$dtを
    $dt     = sprintf('%02d月%02d日', $m_num, $day);
    という風にすると、カレンダーの日付が1日から31日まで全く表示されなくなるので、どうしたらよいのでしょうか。-- kiyi? 2007-09-20 (木) 16:35:30
    • 変更点はこれ1行だけですよね。こちらでは全て表示され「上位階層/mm月dd日」というリンクになっています(文字コードのことを先に言われてしまった)。あれ、それともリンク先が「mm月dd日」でないとこまるのかな? -- 2007-09-20 (木) 16:50:22
  • 推測ですが、保存時に文字コードを EUC-JP (UTF-8 版 PukiWiki なら UTF-8) にしていないのでは? -- 通りすがり? 2007-09-20 (木) 16:44:58
  • 今やってみるとできました。アドバイスありがとうございます。 -- kiyi? 2007-09-21 (金) 10:02:03

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-08 (月) 16:13:52
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u2. HTML convert time: 0.366 sec.

OSDN