テンプレート内でのPHPコードについて

インストール後の運用中に生じた質問などはこちら。
管理画面の操作方法でわからないところやTipsなども

テンプレート内でのPHPコードについて

投稿記事by furusho on 2008年11月17日(月) 14:50

PHPコードの許可をプラグインから設定ファイルに移動したため、今までプラグイン画面に表示していたPHPコードの説明がなくなってしまいましたのでひとまずこちらに転記しておきます。

* *概要

block:id="******"(b_block,m_blockも同様)内部では、$ブロックIDでそのブロックの要素が取得出来ます。

ブロック内部のcms:id="*****"は$ブロックID['$ID']で取得可能です。

ループカウンタは$keyで取得可能です。

ブロックに含まれる全要素は$page[$ブロックID]で取得出来ます。

* エントリーの取得の仕方

例えばarrayというブロックを作成した場合、そのブロック内部ではエントリーを$arrayという変数で取得することが出来ます。

エントリーは連想配列で以下の構造を持ちます。

コード: 全て選択
$entry["entry_id"]
    エントリーID
$entry["content"]
    本文
$entry["content"]
    追記
$entry["create_date"]
    作成日(フォーマット済み)
$entry["update_date"]
    更新日(フォーマット済み)


ブログブロックの場合、$entry_listや$entry(エントリー詳細ページ)で取得可能です。

* 実例)偶数回目のみテーブルにクラスを設定

$keyを取得し、偶数回目かどうかを判定します。listにはラベルブロックなどを設定します。
コード: 全て選択
<table>
   <!-- block:id="list" -->
   <tr <?php if(($key % 2) == 0){echo 'class="even"';} ?>>
      <td cms:id="title">タイトル</td>
      <td cms:id="content">本文</td>
   </tr>
   <!-- /block:id="list" -->
</table>

* 実例)3回目でテーブルを折り返す

応用技です。<tr>の処理が煩雑です。

コード: 全て選択
<table>
   <!-- block:id="list" -->
   <?php if(($key % 3) == 0){echo '<tr>';} ?>
      <td cms:id="content">本文</td>
   <?php if(($key % 3) == 2){echo '</tr>';} ?>
   <?php if(($key % 3) !== 2 &&
      $key == (count($page["list"])-1) ){
      for($i=2;$i>($key % 3); $i--){
         echo '<td>&nbsp;</td>';
      }
      echo '</tr>';      
   } ?>
   <!-- /block:id="list" -->
</table>
furusho
 
記事: 92
登録日時: 2008年6月05日(木) 17:41

Return to 運用・操作方法

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[4人]

cron