ウェブディレクション ユーザビリティ SEO アクセス解析 デザイン制作 システム webapi使い方サンプル 見本になるサイト

xoopsの各ブロックのタイトル文字とタイトルバー、テンプレートのレイアウトを消す方法

xoopsでブロックを設定すると、必ずコンテンツ内容とタイトルを入力することになりますが、それらは、webページとして表示されるときには、テンプレートで設定したレイアウトで出てきてしまいます。

すべてのブロックがテンプレートで設定した形でいいという時はそれで良いですが、
「あるブロックはテンプレートと同じレイアウトで見せたいけど、他の特定のブロックはそのブロック用にレイアウトしたHTMLをいれたい。」とか、
「ブロックに入れたコンテンツの内容は表示したいけどタイトルは表示したくない」
なんてときはないでしょうか?

例えば、
「あるブロックはテンプレートと同じレイアウトで見せたいけど、他の特定のブロックはそのブロック用にレイアウトしたHTMLをいれたい。」

の場合は
普通にコンテンツの内容のなかにHTMLをいれても、そのブロックで設定したタイトルが、テンプレートのレイアウト通りに表示され、その中にコンテンツにいれたHTMLがでてきてしまいますので、それぞれのブロックにカスタマイズしたレイアウトを入れたい時は不便ですよね。


今回は、特定のブロックでテンプレートのレイアウトを消したいという方法一つ。


「管理画面からブロックのタイトルに特定の文字を入れると、ブロックのタイトルとテンプレートのレイアウトが消えるように設定する」

というものです


【手順1】
----------------------------------
xoopsのテンプレートhtmlなどをFTPからダウンロードしてきて開いてもらうと、下のような記載が入っていると思います


<{$block.title}> ← これがブロックタイトルを表示
<{$block.content}> ← これがコンテンツにれいた内容を表示

上記のものが、いわゆるブロックに設定したタイトルとコンテンツを表示させるものです。

テンプレートのHTMLには、例えばCSSに装飾されて

<div class="blockTitles"><{$block.title}></div>
<div class="blockContents"><{$block.content}></div>

などの形で、記載されているのではないでしょうか。
----------------------------------

【手順2】
----------------------------------
この

<div class="blockTitles"><{$block.title}></div>
<div class="blockContents"><{$block.content}></div>

の記載の箇所を下記のようなif分に書き換えます


<{if ! $block.title|strstr:"no"}>
<div class="blockTitles"><{$block.title}></div>
<div class="blockContents"><{$block.content}></div>
<{else}>
<{$block.content}>
<{/if}>


意味としては、ブロックタイトルに「no」という文字が入っていない時は
<div class="blockTitles"><{$block.title}></div>
<div class="blockContents"><{$block.content}></div>
を表示する(通常のテンプレート通りのレイアウトでを表示する)

そして、「no」という文字がはいっていれば

<{$block.content}> ←ブロックに入れたものの中身

だけを表示する

というような意味になります。

これによりと管理画面から、ブロックのタイトルに「no」入れたブロックだけは、コンテンツに入れた中身だけが表示されることになります。(<{$block.content}> だけがでてくるので)
----------------------------------





Yahoo!ブックマークに登録     
このエントリーをはてなブックマークに追加

無料素材イラストダウンロード
今週のピッアップ記事
ウェブディレクターズスタッフブログ

メルマガ購読・解除
 
webディレクターズリンク集