| @技術/プログラミング

 SafariやP_BLOG用のバナーを使わせてもらっている trifles さんを覗いていたら、記事タイトルに記事のPermalinkをリンクする方法が紹介されていた(trifles : 記事タイトルから個別ページにリンク)。他のブログツールでも記事タイトルにPermalinkをつける方法が一般的になりつつあるみたいだし、この方法を真似してHack。

 triflesさんでは各記事のフッター部分に表示されるPermalinkをそのまま記事タイトルに移す方法が紹介されていた。しかしこれだとフッター部分のPermalinkに記事のタイトルが表示されるようになるので、フッター部分のPermalinkは表示しないようにしなければならない。これはちょっと嫌なので、僕は以下のような方法をとった。

 すなわち、簡単なんだけど、Permalinkに関する部分をコピーして$permalinkとは別に$permalink_ftという変数を定義し、これをフッター部分に表示するようにするのである。ちなみにHackするのはinclude/fnc_logs.inc.php

    // Permanent Link Title
    if (empty($id)) {
        $permalink = '<a href="'.$cd.'/article.php?id='.$row['id'].'" title="'.
                     $lang['permalink_title_1'] . htmlspecialchars(strip_tags($row['name'])) . $lang['permalink_title_2'].
                     '" rel="Bookmark">' . $article_title . '</a> ';
        $read_more = '<p class="read-more"><a href="' . $cd . '/article.php?id=' . $row['id'] . '" title="' . $row['name'] . '">' . $lang['more'] . '</a></p>';
        $row['comment'] = preg_replace('/<!-- ?more ?-->.*<!-- ?/more ?-->/is', $read_more, $row['comment']);
        $row['comment'] = preg_replace('/<!-- ?more ?-->.*/is', $read_more, $row['comment']);
    } else {
        $permalink = $article_title;
    }
    
    // Permanent Link Footer
    if (empty($id)) {
        $permalink_ft = '<a href="'.$cd.'/article.php?id='.$row['id'].'" title="'.
                     $lang['permalink_title_1'] . htmlspecialchars(strip_tags($row['name'])) . $lang['permalink_title_2'].
                     '" rel="Bookmark">Permalink</a> ';
        $read_more = '<p class="read-more"><a href="' . $cd . '/article.php?id=' . $row['id'] . '" title="' . $row['name'] . '">' . $lang['more'] . '</a></p>';
        $row['comment'] = preg_replace('/<!-- ?more ?-->.*<!-- ?/more ?-->/is', $read_more, $row['comment']);
        $row['comment'] = preg_replace('/<!-- ?more ?-->.*/is', $read_more, $row['comment']);
    } else {
        $permalink_ft = '';
    }

 というようにし、フッターの出力部分を以下のようにする。

        $article_footer =<<<EOD
<div class="a-footer">
{$permalink_ft}{$email_link}
{$trackback}
{$comment}{$admin_button}
</div>
EOD;

 これで思い通りの出力になった。あとはCSSをいじれば終了である。しかしこの改変、kazさんがご自身でテスト運用中のLOGGIXで記事タイトル=Permalinkとなるよう仕様変更されたということなので(JAM LOG : システムを更新、その他)、近日中にP_BLOG本体に反映されるかも知れない。そういうわけなので僕の下手くそな説明を読んで意味が分からない人は何もやらない方が良いかも知れないです。参考にならなくてスミマセン。

 いやー、それにしてもちょっとP_BLOGはいろいろいじりすぎてしまったなー。バージョンアップのときが怖いです :-(