ホーム | ブログトップ | ウィキ | 掲示板 | Thickbox Gallery 2 | checkPennJS | 全国ゴルフ場マップ

« Pivot 1.22 - nofollow… | Home | 日本語化パッチ… »

livearchive_list カテゴリ別ページ

Friday 21 January 2005 at 09:43 am

1.20で実装されたライブエントリを使用すると、livearchive_list テンプレートタグでカテゴリ別のページが生成されるようになりました。例えば、

<div class="block">
    <h3>カテゴリ</h3>
    <p>[[livearchive_list]]</p>
</div>

とテンプレートに追加することで、カテゴリ毎のリンクを作成してくれます。ただし、登録されているすべてのカテゴリリンクが作成されてしまいます。複数のウェブログを作成している場合は不便かもしれません。
更に重大な問題があります。カテゴリ名を $_GET を使用して受け渡すため、日本語のカテゴリでブラウザが IE であると、変な感じに文字化けすることがあります。対策としては、Firefox に乗り換える;-) もしくは、文字化けしないよう urlencode による対策をします。具体的には、pivot/modules/module_snippets.php の snippet_livearchive_list 関数を以下のように変更します。

function snippet_livearchive_list ($filename="", $format="", $weblog="", $template="") {
    global $Weblogs, $Current_weblog, $Cfg, $Paths, $allcats;
    if ($filename == "") { $filename = $Paths['pivot_url']."archive.php"; }
    if ($format == "") {
        // 2005/01/21 Changed by Davilin
        $format = "<a href='%file%?c=%cat_encode%&w=%weblog%&t=%template%'>%cat%</a><br />";
    }
    $allcats = cfg_cats();
    if ($weblog == "current") {
        // get cats from current weblog..
        $cats = array();
        foreach($Weblogs[$Current_weblog]['sub_weblog'] as $subweblog) {
            $cats = array_merge($cats, $subweblog['categories']);
        }
    } else if ( ($weblog != "") && (isset($Weblogs[$weblog])) ) {
        // get cats from a specific weblog..
        $cats = array();
        foreach($Weblogs[$weblog]['sub_weblog'] as $subweblog) {
            $cats = array_merge($cats, $subweblog['categories']);
        }
    } else {
        // get all cats..
        $cats = explode("|", $Cfg['cats']);
    }
    usort($cats, "category_simplesort");
    foreach ($cats as $cat) {
        // skip cats if it's 'not-public'.
        if ($allcats[$cat]['hidden'] == 1) { continue; }
        // skip if name is empty
        if ($cat == "") { continue; }
        $my_output = $format;
        $my_output = str_replace('%file%', $filename, $my_output);
        $my_output = str_replace('%cat%', $cat, $my_output);
        // 2005/01/21 Changed by Davilin
        $my_output = str_replace('%cat_encode%', urlencode($cat), $my_output);
        $my_output = str_replace('%weblog%', $weblog, $my_output);
        $my_output = str_replace('%template%', $template, $my_output);
        $output .= $my_output;
    }
    return $output;
}

davilin | Pivot日本語化 | comments(0) / trackbacks(0)
使用タグ:

trackbacks(0):

Trackback link:

トラックバック用URLを生成するには、JavaScriptを有効にしてください。

comments(0):
コメント投稿フォーム
名前
電子メール
URL
情報を記憶する

コメントスパム対策のクイズですが、実は長女の名前だったりします。
 

Emoticons コメント

注意: 使用できるタグは <b> と <i> のみです。URLやメールアドレスはそのまま記述すればリンクになります。