2011年7月8日カテゴリー:

ブロック名を表示させない

【環境】PHP:5.2.14,MySQL:5.5.13,Legacy:2.2.0

ブロック名を表示させない方法として次の方法がある。

①theme.html(テーマのテンプレート)の「blocktitle」が記述されている部分に条件分岐文を追記する。
***************************************************
<{if $xoops_showlblock == 1}>
    <{foreach item=block from=$xoops_lblocks}>
      <{if $block.title|strstr:"none"}>
      <{else}>
      <{$block.title}>

 
      <{/if}>
      <{$block.content}>

      <{/foreach}>
<{/if}>
***************************************************

②ブロックを登録する際に,ブロック名の最後にnoneを付け加える。
たとえば,「メインメニューnone」のように。

条件分岐文は,
もしブロック名の最後にnoneが付いている時は,何も表示させない。そうでなければ, <{$block.title}>

を表示する
という意味になる。

これは,ブロックによってブロック名のスタイルを変える場合にも応用できる。
****************************************************
<{if $xoops_showlblock == 1}>
    <{foreach item=block from=$xoops_lblocks}>
      <{if $block.title|strstr:"none"}>
      <{elseif $block.title|strstr:"001"}>
      <{$block.title|replace:"001":""}>


      <{elseif $block.title|strstr:"002"}>
      <{$block.title|replace:"002":""}>


      <{else}>
      <{$block.title}>

 
      <{/if}>
      <{$block.content}>

      <{/foreach}>
<{/if}>
****************************************************
上の例では,ブロック名に001が付いていたら, blocktitle-001“> <{$block.title|replace:"001":""}>

が表示されるので,
スタイルシートで,blocktitle-001のスタイルを指定すればよい。