タイトル書式によりブロックのタイトルを削除する

提供: GeeklogJpWiki

  • 作者:Tsuchi
  • ダウンロード:http://www.geeklog.jp/filemgmt/index.php?id=379
  • Geeklog 1.4.1、1.5 および 1.6 で活用可能。
  • 1.6からはfunctions.phpの内容が変わっていますが、「修正後」の内容をphpとして問題のでない場所に追加することによって同じように動作します。

タイトルによる見栄え変更は以下の修正で可能ですが,携帯での閲覧時にはタイトルが表示されます。 そのため,ブロック毎に見栄えを変更するによる修正をおすすめします。


タイトルの先頭文字が半角ピリオド(.)ならタイトルを表示しない

functions.php をハックして,タイトルの先頭文字が半角ピリオド(.)ならタイトルを表示しないテンプレート(blockheader-left-notitle.thtml,blockheader-right-notitle.thtml)に変更します。

本体側をハックしないでテーマだけで対応できる利点があります。

テーマファイル内のfunctions.php を以下のように修正します。

修正前:

$result = DB_query ("SELECT onleft,name FROM {$_TABLES['blocks']} WHERE is_enabled = 1");
$nrows = DB_numRows ($result);
for ($i = 0; $i < $nrows; $i++) {
    $A = DB_fetchArray ($result);
        if ($A['onleft'] == 1) {
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-left.thtml,blockfooter-left.thtml';
        } else {
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-right.thtml,blockfooter-right.thtml';
    }
}

修正後:

//@@@@@タイトルの先頭文字が半角ピリオド(.)ならタイトルを表示しないテンプレートにする
//@@@@@$result = DB_query ("SELECT onleft,name FROM {$_TABLES['blocks']} WHERE is_enabled = 1");
$result = DB_query ("SELECT onleft,name,title FROM {$_TABLES['blocks']}");

$nrows = DB_numRows ($result);
for ($i = 0; $i < $nrows; $i++) {
    $A = DB_fetchArray ($result);
    if ($A['onleft'] == 1) {
        if ( strncasecmp($A['title'],".",1) == 0){
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-left-notitle.thtml,blockfooter-left.thtml';
        } else {
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-left.thtml,blockfooter-left.thtml';
        }
    } else {
        if ( strncasecmp($A['title'],".",1) == 0){
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-right-notitle.thtml,blockfooter-right.thtml';
        } else {
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-right.thtml,blockfooter-right.thtml';
        }
    }
}

なお,blockheader-left-notitle.thtml,blockheader-right-notitle.thtmlをblockheader-left.thtml,blockheader-right.thtmlを元に変更してしてください。

タイトルの先頭文字が半角#(シャープ)ならdivも表示しない

さらに,タイトルの先頭文字が半角#(シャープ)ならdivも表示しないテンプレート(blockheader-left-nodiv.thtml,blockfooter-left-nodiv.thtml)にする場合は,以下のように修正して,テンプレートを追加してください。

//@@@@@タイトルの先頭文字が半角ピリオド(.)ならタイトルを表示しないテンプレートにする
//@@@@@タイトルの先頭文字が半角#(シャープ)ならdivも表示しないテンプレートにする
//@@@@@$result = DB_query ("SELECT onleft,name FROM {$_TABLES['blocks']} WHERE is_enabled = 1");
$result = DB_query ("SELECT onleft,name,title FROM {$_TABLES['blocks']}");

$nrows = DB_numRows ($result);
for ($i = 0; $i < $nrows; $i++) {
    $A = DB_fetchArray ($result);
    if ($A['onleft'] == 1) {
        if ( strncasecmp($A['title'],".",1) == 0){
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-left-notitle.thtml,blockfooter-left.thtml';
        } else if ( strncasecmp($A['title'],"#",1) == 0){
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-left-nodiv.thtml,blockfooter-left-nodiv.thtml';
        } else {
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-left.thtml,blockfooter-left.thtml';
        }
    } else {
        if ( strncasecmp($A['title'],".",1) == 0){
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-right-notitle.thtml,blockfooter-right.thtml';
        } else if ( strncasecmp($A['title'],"#",1) == 0){
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-right-nodiv.thtml,blockfooter-right-nodiv.thtml';
        } else {
            $_BLOCK_TEMPLATE[$A['name']] = 'blockheader-right.thtml,blockfooter-right.thtml';
        }
    }
}
個人用ツール