ダーツ情報ネットワークサイト「9darts.net」 - ダーツ情報満載! Home > webnote for xoops > xoops > theme(テーマ)&template(テンプレート) > xugj_block.phpを利用して他のモジュールのblock内容を表示する URLメール送信 RSS FEED
新着情報 9darts.netのご案内 初心者用ページ ダーツプレイヤー用ページダーツスポット用ページダーツ関連サプライヤー用ページ webdesiner/ウェブデザイナー用ページ
スマートフォン用サイトβ版 6/22より運用開始 - Phoenix(2010-06-20 02:47:03)               Revolution2010 のエントリーがスタート!(2010-06-20 02:41:04)               定期メンテナンス日の追加-Phoenix(2010-06-20 02:07:04)               【重要】iPhoneアプリ「DARTSLIVE」不具合(2010-06-20 01:51:44)               「COUNT-UP COLLECTION」女の子募集! - DARSLIVE(2010-06-20 01:41:01)               6/17(木)発売「SUPER DARTS DVD VOL.4」(2010-06-20 01:06:42)               web応答速度向上(2010-06-19 23:55:02)               2010 PERFECT 第五戦 仙台結果速報(2010-06-05 19:15:05)               2010 PERFECT 第五戦仙台 エントリー状況更新(2010-06-01 12:10:38)               MJ Tournament 10th Anniversary 大会結果(2010-06-01 11:13:28)               

Option

バナー掲載申込

メインメニュー
商品紹介
アクセスカウンタ
3844580
昨日: 8338 -:- 今日: 0633
モバイル用サイト
xugj_block.phpを利用して他のモジュールのblock内容を表示する by webnote
トップ  >  xoops  >  theme(テーマ)&template(テンプレート)  >  xugj_block.phpを利用して他のモジュールのblock内容を表示する
xugj_block.phpを利用すれば、他のモジュールのブロック内容を表示することができます。
これを使えば、ほとんどのことが解決できそう。

「xugj_blockプラグイン」の入手法やインストールなど詳しいことは,「GIJOEさんのxugj_blockに関する記事」をご覧ください。

http://xoops.peak.ne.jp/modules/news/index.php?page=article&storyid=416

基本構文


<{xugj_block file="☆" func="○" opt="□" item="△"}>


  • ☆:モジュールのブロックphpファイルまでのパスを,modulesから書く。

  • ○:ブロックの表示関数名(末尾が「_show」となっている)

  • □:オプションの指定(ブロックのオプション設定画面と対応している)

  • △:アサインする名前。「block」とすると,テンプレートのコードをそのまま利用できる。



必要な情報の集め方


情報収集のためのキーワードを調べる



  1. 利用したいブロックの設定画面を開く


  2. 一部のモジュールをのぞき,ブロック設定画面に,「このブロックのテンプレートを編集する」があるので,これをクリックすると,テンプレート名が分かる。

  3. xoops_version.phpを開き,先ほどのテンプレート名から先頭の「モジュールディレクトリ名部分+アンダーバー(_)」を除いて検索する。



テンプレート名での検索の例


bulletinの「最新ニュース」ブロック。テンプレート名は「bulletin_block_new.html」。この場合は,「block_new.html」や「_new.html」を検索語とする。



検索結果


$modversion['blocks'][$i]['file']        = "blocks.php";
$modversion['blocks'][$i]['name'] = constant($constpref.'_BNAME4');
$modversion['blocks'][$i]['description'] = constant($constpref.'_BDESC4');
$modversion['blocks'][$i]['show_func'] = "b_bulletin_new_show";
$modversion['blocks'][$i]['edit_func'] = "b_bulletin_new_edit";
$modversion['blocks'][$i]['options'] = "$mydirname|published DESC|10|255|0";
$modversion['blocks'][$i]['template'] = "{$mydirname}_block_new.html";
$modversion['blocks'][$i]['can_clone'] = true ;

この結果から,分かること。




  • file:"modules/モジュールディレクトリ名/blocks/blocks.php"

  • func:"b_bulletin_new_show"

  • opt:"$mydirname|published DESC|10|255|0"

    「opt」の部分は,「$mydirname」部分を公開側のモジュールディレクトリ名に,「|(縦棒)」を「,(カンマ)」に置き換える。下記のようになる。

    opt:"モジュールディレクトリ名,published DESC,10,255,0"

  • item(またはassign):好きな名前を指定できる。「block」を指定すると,テンプレートコードをそのまま使えるので便利かもしれない。



d3モジュールの場合,xoops_version.phpにテンプレート名が書かれていない場合がある。しかし,ブロックテンプレート名とfunc名に共通点があるので,それを手がかりに探せる。たとえば,


テンプレート名:d3blog_block_latest_entries.html

func名:func名:b_d3blog_latest_entries_show

いまの場合,「latest_entries」が検索語になる。この方法は,テンプレート名が分かっている場合でも使える。



実際の使い方例


使用例を示した方が分かると思うので,いくつか紹介。



picoの最新のコンテンツリストを表示する


公開側のモジュール名を「manual」としてインストールした場合。




  • ブロック名:コンテンツ一覧

  • モジュールディレクトリ名:manual

  • テンプレート名:manual_block_list.html

  • 検索語:_list

  • 検索ファイル:trust/modules/pico/xoops_version.php



結果


$modversion['blocks'][3] = array(
'file' => 'blocks.php' ,
'name' => constant($constpref.'_BNAME_LIST') ,
'description' => '' ,
'show_func' => 'b_pico_list_show' ,
'edit_func' => 'b_pico_list_edit' ,
'options' => "$mydirname||o.created_time DESC|10||0" ,
'template' => '' , // use "module" template instead
'can_clone' => true ,
) ;

検索結果より以下が分かる。




  • file="modules/manual/blocks/blocks.php"

  • func="b_pico_list_show"

  • opt="$mydirname||o.created_time DESC|10||0" → "manual,,o.created_time DESC,10,,0"

  • item="block"……好きな名前を付けていい



xugj_blockのコード


<{xugj_block file="modules/manual/blocks/blocks.php" func="b_pico_list_show" opt="manual,,o.created_time DESC,10,,0"  item="block"}>


表示のためのコード


該当するテンプレートのコードをそのまま流用



<ul class="pico_block_menu">
<{foreach from=$block.contents item=content}>
<li style="line-height:1.2; margin:4px 0px;">
<a href="<{$block.mod_url}>/<{$content.link}>" title="<{$content.cat_title}>(<{$content.created_time_formatted}>)">

<{$content.subject|strip_tags|truncate:"128"}>
&nbsp;
(<{$content.cat_title}>)
&nbsp;
<{$content.created_time_formatted}>
</a>
<{if $content.body}>

<br />
<{$content.body|strip_tags|truncate:"100"}>
<{/if}>
</li>
<{/foreach}>

</ul>

d3blogの最新エントリを表示する


公開側のモジュール名を「leaf」としてインストールした場合



  • ブロック名:最新のエントリ

  • モジュールディレクトリ名:leaf(d3モジュールなので好きな名前を使える)

  • テンプレート名:leaf_block_latest_entries.html

  • 検索語:latest_entries

  • 検索ファイル:trust/modules/d3blog/xoops_version.php




検索結果



$modversion['blocks'][$m]['file'] = 'blocks.php';
$modversion['blocks'][$m]['name'] = constant($constpref.'_LATEST_ENTRIES');
$modversion['blocks'][$m]['description'] = constant($constpref.'_LATEST_ENTRIES_DESC');
$modversion['blocks'][$m]['show_func'] = 'b_d3blog_latest_entries_show';
$modversion['blocks'][$m]['edit_func'] = 'b_d3blog_latest_entries_edit';
$modversion['blocks'][$m]['template'] = '';
$modversion['blocks'][$m]['options'] = $mydirname.'|5|25|Y/m/d|1|0|0|0|';
$modversion['blocks'][$m]['can_clone'] = true ;


検索結果より以下が分かる



  • file="modules/leaf/blockx/blocks.php"

  • func="b_d3blog_latest_entries_show"

  • opt="$mydirname.'|5|25|Y/m/d|1|0|0|0|'" → "leaf,5,25,Y/m/d,1,0,0,0,"

  • item="block"……好きな名前を付けていい。



xugj_blockの書き方


<{xugj_block file="modules/leaf/blocks/blocks.php" func="b_d3blog_latest_entries_show" opt="leaf,5,25,Y/m/d,1,0,0,0," item="block"}>


表示のためのコード


リスト形式の部分だけを利用する場合



<ul class="<{$block.mydirname}>BlockLatestEntries">
<{foreach item=entry from=$block.entries}>
<li>
<a href="<{$block.mod_url}>/details.php?bid=<{$entry.bid}>">

<{$entry.title}>
</a>
<span>(<{$entry.date}>)</span>
<{if $block.show_contents and $entry.contents}>
<div><{$entry.contents}></div>

<{if $entry.readMore}>
<span class="readMore">
<a href="<{$block.mod_url}>/details.php?bid=<{$entry.bid}>" title="<{$block.lang_readmore}>">
<{$block.lang_readmore}>

</a>
</span>
<{/if}>
<{/if}>
</li>
<{/foreach}>

</ul>



myalbumのブロック「最近の画像」を利用する例



  • ブロック名:最近の画像

  • モジュールディレクトリ名:myalbum

  • テンプレート名:myalbum_block_topnews.html

  • 検索語:topnews

  • 検索ファイル:html/modules/myalbum/xoops_version.php



検索結果



$modversion['blocks'][2]['file'] = "myalbum_topnews.php";
$modversion['blocks'][2]['name'] = _ALBM_BNAME_RECENT . $mydirnumber ;
$modversion['blocks'][2]['description'] = "Shows recently added photos";
$modversion['blocks'][2]['show_func'] = "b_myalbum_topnews_show";
$modversion['blocks'][2]['edit_func'] = "b_myalbum_topnews_edit";
$modversion['blocks'][2]['options'] = "$mydirname|5|20|0|1||1";
$modversion['blocks'][2]['template'] = "myalbum{$mydirnumber}_block_topnews.html" ;
$modversion['blocks'][2]['can_clone'] = true ;


上記コードより以下が分かる



  • file="modules/myalbum/blocks/myalbum_topnews.php"

  • func="b_myalbum_topnews_show"

  • opt="$mydirname|5|20|0|1||1" → "myalbum,5,20,0,1,,1"

  • item="oyoyo"(一般的なblockでなくoyoyoにしてみた)



xugj_blockの書き方


<{xugj_block file="modules/myalbum/blocks/myalbum_topnews.php" func="b_myalbum_topnews_show" opt="myalbum,5,20,0,1,,1" item="oyoyo"}>


表示のためのコード


元のテンプレートコードを参考にしている


<ul>
<{foreach item=photo from=$oyoyo.photo}>
<li>
<a href="<{$oyoyo.mod_url}>/photo.php?lid=<{$photo.lid}>&amp;cid=<{$photo.cid}>">

<{$photo.title}>
</a>
(<{$photo.date}>)
</li>
<{/foreach}>
</ul>

※元のコードの「$block」を「$oyoyo」に置き換えている。







◆お気に入り・ブックマーク登録>>






プリンタ用画面




友達に伝える



















前

Smarty|xoops_block プラグイン


カテゴリートップ

SmartyPlugin



次

XoopsUsersプラグインの使い方











  • XoopsUsersプラグインの使い方

    (2008-5-21)
    ユーザーに関するいろいろな情報を簡単に取り出せる便利なプラグイン
    XoopsUsersプラグインの使い方
    同じ作者が以前「suin_user」プラグインというのを公開してい




  • xugj_blockプラグインの使い方
    (2008-5-16)



  • Smarty|xoops_block プラグイン

    (2007-9-8)
    ブロックをどこでも好きなところに表示できるプラグインです。
    xoops_block Smarty プラグイン

    まず,「下手な考え休むに似たり」同様「下手な説明





  • suin_user プラグイン

    (2007-9-5)
    ユーザーIDから,ユーザー名や本名,メールアドレスなどを取り出すことができます。
    suin_user|プラグイン

    suin_user Smarty Plugi





プリンタ用画面
友達に伝える
投票数:70 平均点:3.14
前
要検討◆コンテンツ(モジュール)ごとにRSSを変更する
カテゴリートップ
theme(テーマ)&template(テンプレート)
次
テンプレートを利用して利用区分ごとに表示を変える


[PR]ドロップシッピング&情報商材紹介



ステップ式【簡単ドロップシッピング術】で素人でも主婦でも簡単にネットショップ経営者になれる!!!
『ドロップシッピング』ってご存知ですか?知らなければそれまでですが・・・

infotop(インフォトップ)』で情報を紹介して大金をゲット!
ログイン
ユーザ名:
 
パスワード:
 
パスワード紛失 | 新規登録


ワンタン(渡部紘士)ダーツ上達法DVD

9darts.net広告