maincategory_list 利用時の注意
2005年4月25日 18:22 | コメント (2) | トラックバック (0)
メインカテゴリーをリスト表示する {maincategory_list} を利用している人はそれほど多く無いかもしれませんが、この独自タグの利用には注意が必要です。
テンプレートに {maincategory_list} を利用すると、言うまでもなくその部分にメインカテゴリーのリストが表示されますが、記事編集画面で「公開して保存」を押すという通常の記事作成作業を行っただけでは、個別記事ページの該当部分がすっぽり空白になってしまいます。 {maincategory_list} を有効にするには再構築作業を行う必要があります。
原因
sb の制作者 takkyun 氏 (2005/03/11 13:48 のコメントより)によると {maincategory_list} は JavaScript での書き出しが行われていない事が関係しているであろうとのことです。逆に言えば、再構築作業では JavaScript を用いずにページ生成を行っているため、この不具合が発生しないという事になります。
対策
最初に書いた通り再構築作業を行うのが確実な対応策ですが、ここで「公開して保存」でのページ作成の仕組みと、再構築時のオプションを理解しておく必要があります。
公開して保存
「公開して保存」を使用した場合、個別記事における前後記事へのリンクを書き換える必要があるため、ある記事を「公開して保存」するとその前後の記事も JavaScript によって書き換えが行われます。
再構築オプション
再構築のオプションは通常「全てを再構築する」が選択されていますが、記事件数と処理時間を考慮して「アーカイブの再構築 (最新:1-100) 」などを選択する事もできます。 1-100 などの数字は記事 ID ではなく最新の記事から数えて100番目までという意味なので、古い記事を当時の日付のまま編集した場合などは注意が必要です。
最新記事から100番目までの記事だ、と確信できる場合は「アーカイブの再構築 (最新:1-100) 」を使っても大丈夫ですが、それがあやふやな場合はオプションを利用せず「全てを再構築する」を選択した方が無難です。
保存形式が「個別エントリーをhtml保存 [Individual]」以外の場合
sb では個別記事をあらかじめ html として書き出しておくか否かの選択が可能です。標準は html 保存する設定になっており、たいていの人はそのまま利用していると思いますが、これを Monthly または None にしている場合、個別記事ページは常に JavaScript によって書き出されます。
上記の説明を読めば分かる通り、この場合再構築を行っても不具合を解消する事は不可能なので、テンプレートに {maincategory_list} を利用している場合、個別記事ページには表示されません。「設定を Individual に変更する」「テンプレートに {maincategory_list} を使用しない」「個別記事ページの該当部分が空白になっても気にしない」いずれかの対処法(最後のは対処法?)が必要です。
Studio Ponytai では現在ページ上部のタブを {maincategory_list} を使って表示させているので、この不具合を確認する事ができます。 http://www.studio-ponytail.com/sb.cgi?eid=200 (JavaScript 書き出しによる個別記事ページのアドレス)を見れば、タブ({maincategory_list} 部分)がごっそり無くなっている事が分かると思います。
コメント(2)
youko
2005年4月27日 12:58
はじめまして、sb関連の記事をいつも興味深く拝見しています。
エート、トップのWhat's New ?からこちらの記事へ飛ぼうとしたのですが、飛べなかったので一応ご報告しようかと…。(仕様?ならすみません…)
またお邪魔しますね(^^)
コメントを投稿する
コメントの投稿には JavaScript が必要です。
ブラウザの JavaScript 機能を有効にしてください。
投稿ボタンを押してもエラーになりますのでご注意ください。
トラックバック(0)
トラックバックURL : http://www.studio-ponytail.com/mt/mt-tb.cgi/98
Kaz.
2005年4月27日 20:54
> youko さん
ご指摘ありがとうございます。
少し前から What's New のリンクに
独自タグ {site_cgi} を使用していたのですが
entry ブロックで使用すると
最初の一つにしか書き出されないようでそれが原因でした。
不具合の無い {site_cgi} を使用しない方式に戻しました。
テンプレートいじりにも多少慣れて来て
確認しなかった慢心にまんまとやられました。
このコメントに返信する