Top | 日本の山岳データベース | GPS 入門 | 装備品 | 本棚 | 技術研究本部 | ブログ || 旧ウェブサイト

やまだらけブログ

山のニュースや山に関する新製品の情報、やまだらけの活動報告をブログ形式でお伝えします。

ブログをブログらしく変更。スニペット自作

2012年5月21日 08:25

当ブログをもう少しブログらしく変更しました。サイドバーを配置して、タグ一覧を表示。MODX という CMS を使用しているのですが、普通のブログのような過去記事へのリンクには Reflect とかいうスニペット(PHPコードによる拡張機能)を使えばいい、という情報がいっぱい出てきます。しかし、どうやら古い MODX の情報のようで最近のものには当てはまらないようです。

ブログ機能自体は Ditto というスニペットでうまくいっています。日付によるフィルターも Ditto の DateFilter で可能なようです。具体的には (id)_year(id)_month というパラメータを URL に追加で渡せばよいようです。(id) は Ditto で指定した ID です。このブログでは blog という ID を使用していますので、たとえば 2012 年 4 月の記事へのリンクは ?blog_year=2012&blog_month=4をブログの URL につければ OK。具体的には http://yamadarake.jp/blog.html?blog_year=2012&blog_month=4 となります。

このリンクを月ごとに表示すればいいだけですので、簡単なスニペットを作ってみました。

<?php
/* YMArchive */
if(!$num) $num=6;
if(!$parent) $parent=0;
$now = new DateTime();
$year = $now->format('Y');
$month = $now->format('n');
$url = $modx->makeUrl($parent, '', '', 'full');
for($i=0; $i < $num; $i++){
  print '<a href="' . $url . '?' . $id . '_year=' . $year 
     . '&' . $id . '_month=' . $month
     . '">' . $year . ' 年 ' . $month . ' 月</a><br/>';

  $month--;
  if($month == 0) {$month=12; $year--;}
}
?>

使い方は簡単で YMArchive という名前でスニペットとして保存して

[!YMArchive?
&id=`blog`
&parent=`(元ページのURLのID)`
&num=`2`!]

こんな感じで呼び出しています。過去記事が該当する年・月にあるかなどは一切考えないので、そこだけ注意してください。

タグ:





(申し訳ありません、当ブログではコメントやトラックバックができません。ご意見・コメントなどはメールでお願いします。その際、ブログで紹介してもよいかもあわせて教えていただければ、ブログの記事としてコメントを紹介したりします。)