php初心者が、Smartyから配列変数にしてAdminLTEのテンプレートに受渡しました。


AdminLTE の htmlコードを Smarty のテンプレートに移行して、表示するデータを配列変数にしてテンプレートに引き渡しました。

▼サンプル画面
http://otoku55.sakura.ne.jp/phpStudy/tf_message.php

本来は、MySQLなどのデータベースからデータを取得してテンプレートにデータを渡すのでしょうが、とりあえず、変数にセットしてテンプレートを呼び出してみました。

タイトルと本文とフッターを1セットにして、's_message'という変数にセットしました。

tf_message.php
<?php

(smartyの環境設定)

//システム更新情報
$w_info01 = 'BARI 顧客管理システムのメールアドレスにお知らせを一括メール配信いたします。';
$w_info02 = '画面デザインは、AdminLTEを利用して作成しています。';
$smarty->assign('s_sysinfo',array($w_info01, $w_info02));

//お知らせ
$w_title01 = '2015/09/12 ログイン画面を作成';
$w_body01 = 'ログイン画面を作成しました。ユーザー認証は省略しています。';
$w_footer01 = '※確認しましたら、お知らせを削除してください。';
$w_msgset01 = array($w_title01, $w_body01, $w_footer01);

$w_title02 = '2015/09/23 お知らせ画面を作成';
$w_body02 = 'お知らせを配列変数でセットしました。';
$w_footer02 = '※確認しましたら、お知らせを削除してください。';
$w_msgset02 = array($w_title02, $w_body02, $w_footer02);

$smarty->assign('s_message',array($w_msgset01,$w_msgset02));

$smarty->display( 'tf_message.tpl' );

Smarty で 設定した変数を テンプレートで受け取るコードです。

受け取った変数は、'foreach'で繰り返し表示しています。

tf_message.tpl

        <!-- Main content -->
        <section class="content">
          <div class="callout callout-info">
            <h4>システム更新情報</h4>
              {foreach from=$s_sysinfo item=info}
                <p>{$info}</p>
              {/foreach}
          </div>

          {foreach from=$s_message item=msgset}
            <!-- Default box -->
            <div class="box">
              <div class="box-header with-border">
                <h3 class="box-title">{$msgset[0]}</h3>
                <div class="box-tools pull-right">
                  <button class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse"><i class="fa fa-minus"></i></button>
                  <button class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove"><i class="fa fa-times"></i></button>
                </div>
              </div>
              <div class="box-body">
                {$msgset[1]}
              </div><!-- /.box-body -->
              <div class="box-footer">
               {$msgset[2]}
              </div><!-- /.box-footer-->
          {/foreach}

          </div><!-- /.box -->

        </section><!-- /.content -->