wkyInstallerはオープンソースを簡単にインストール。ひろろんが広島からオープンソースを使う人たちに愛と平和を届けます
Register Now!
Login
Welcome to Hiroron Labs
金曜日, 7月 30 2010 @ 07:15 午前 JST
   

Geeklog TIPS ブロック用 MYハック

Tag: Geeklog ハック TIPS ブロック lib-common.php

いつもはwikiの「ブロックテンプレートでPHPを使う」を参考にしつつその他必要な追加改造を毎回思い出しながらしてたのですが、今回まとめてみました。
これは毎回サイト製作を行う場合に必ずやっているブロック表示用のMY標準ハックです。

【ブロックハックの概要】
  • ブロックテンプレートでPHPを使えるよにする(wikiのまんま)
  • ブロックへブロックIDも出力({block_id}を使えるようにする)
  • タイトルの先頭が .(ドット) ならタイトル<H2>を表示しない。(wikiのまんま)



lib-common.php (1433行付近: COM_startBlock)
function COM_startBlock( $title='', $helpfile='', $template='blockheader.thtml' )
{
    global $_CONF, $LANG01, $_IMAGE_TYPE;
    global $_TABLES; // 20080724 blockid by hiroron

    $block = new Template( $_CONF['path_layout'] );
    $block->set_file( 'block', $template );

    $block->set_var( 'site_url', $_CONF['site_url'] );
    $block->set_var( 'layout_url', $_CONF['layout_url'] );
    $block->set_var( 'block_title', stripslashes( $title ));
    // <blockid> 20080724 by hiroron
    $block_id = DB_getItem(  $_TABLES['blocks'] , 'name', "title = '" .  stripslashes( $title ) . "'");
    $block->set_var( 'block_id', $block_id);
    // </blockid> 20080724 by hiroron

    if( !empty( $helpfile ))
    {
        $helpimg = $_CONF['layout_url'] . '/images/button_help.' . $_IMAGE_TYPE;
        if( !stristr( $helpfile, 'http://' ))
        {
            $help = '<a class="blocktitle" href="' . $_CONF['site_url'] . '/help/' . $helpfile
                . '" target="_blank"><img src="' . $helpimg
                . '" border="0" alt="?"></a>';
        }
        else
        {
            $help = '<a class="blocktitle" href="' . $helpfile
                . '" target="_blank"><img src="' . $helpimg
                . '" border="0" alt="?"></a>';
        }

        $block->set_var( 'block_help', $help );
    }

    $block->parse( 'startHTML', 'block' );

    // <exec php> 20080724 by hiroron
    // return $block->finish( $block->get_var( 'startHTML' ));
    $tmp = $block->finish( $block->get_var( 'startHTML' ));
    ob_start();
    eval( '?>' . $tmp );
    $retval = ob_get_contents();
    ob_end_clean();
    return $retval;
    // </exec php> 20080724 by hiroron
}


次にブロックテンプレートを修正します。
blockheader.thtml
<!-- blockheader.thtml { -->

<div class="block-center" id="{block_id}">
<?php if ( 0 != strncasecmp("{block_title}",".",1) ) { ?>
  <h2>{block_title}{block_help}</h2>
<?php } ?>
  <div class="block-center-content">

<!-- } blockheader.thtml -->

blockheader-left.thtml
<!-- blockheader-left.thtml { -->

    <div class="block-left" id="{block_id}">
<?php if ( 0 != strncasecmp("{block_title}",".",1) ) { ?>
      <h2>{block_title}{block_help}</h2>
<?php } ?>
      <div class="block-left-content">

<!-- } blockheader-left.thtml -->

blockheader-right.thtml
<!-- blockheader-right.thtml { -->

    <div class="block-right" id="{block_id}">
<?php if ( 0 != strncasecmp("{block_title}",".",1) ) { ?>
      <h2>{block_title}{block_help}</h2>
<?php } ?>
      <div class="block-right-content">

<!-- } blockheader-right.thtml -->


こういったMYハックも、wkyGeeklogInstaller用のレシピで、できるようにならないかなぁ~

Story Options

Trackback

Trackback URL for this entry: http://hiroron.com/trackback.php/20080726121746717

No trackback comments for this entry.
Geeklog TIPS ブロック用 MYハック | 0 comments | Create New Account
The following comments are owned by whomever posted them. This site is not responsible for what they say.

Books on writing

多言語切り替え

日本語

sponsor

The sponsor is being recruited.

テーマのお試し

新着情報

STORIES

No new stories

COMMENTS last 2 days

No new comments

TRACKBACKS last 2 days

No new trackback comments

LINKS last 2 weeks

No recent new links

NEW FILES last 14 days

No new files
No new comments

DOKUWIKI Last 14 Days

No New Items

User Functions

:

:

Don't have an account yet? Sign up as a New User
Lost your password?