TacmicCMS Official Site 安全なCMSをあなたに。
SMARTYSET  >  > 第1部:TacmicCMSの構造とテンプレートの役割 > モジュール開発とテンプレートの関係

1 - 2 : モジュール開発とテンプレートの関係

PHPからSmartyへデータを渡すassignメソッドと、テンプレート定義ファイルicms_version.phpの役割を解説します。

1. PHPからテンプレートへデータを渡す(assign)

PHP側で取得・加工したデータは、$xoopsTpl->assign() を呼び出してSmarty変数として登録します。

// 単一の値(文字列や数値)
$xoopsTpl->assign('page_title', '新着ニュース一覧');
$xoopsTpl->assign('item_count', 42);

// 連想配列(レコード1件分)
$topic = [
    'id' => 101,
    'title' => 'TacmicCMS 2.0 リリース!',
    'date' => '2026-11-02'
];
$xoopsTpl->assign('topic', $topic);

// 多次元配列(ループ表示用のリスト)
$articles = [];
while ($row = $db->fetchArray($result)) {
    $articles[] = $row;
}
$xoopsTpl->assign('articles', $articles);

2. 表示するテンプレートを指定する($xoopsOption)

モジュールのメイン画面を表示する場合、header.php をインクルードする前に $xoopsOption['template_main'] を指定します。

<?php
include_once "header.php";

// このページで使用するSmartyテンプレートファイル名を指定
$xoopsOption['template_main'] = "d3news_index.html";

include_once XOOPS_ROOT_PATH . "/header.php";

// ... モジュールのロジック処理 ...

include_once XOOPS_ROOT_PATH . "/footer.php";
?>

3. テンプレートの事前登録(icms_version.php / xoops_version.php)

モジュール内で使用するテンプレートは、モジュールの定義ファイル icms_version.php(または xoops_version.php)に宣言しておく必要があります。管理画面でのテンプレートセット管理(ALTSYS等)やDBへの取り込みに必須です。

$modversion['templates'][] = [
    'file' => 'd3news_index.html',
    'description' => 'ニュース一覧トップページ'
];
$modversion['templates'][] = [
    'file' => 'd3news_article.html',
    'description' => 'ニュース記事詳細ページ'
];
Publish 2223 bytes
更新: 2026-11-02 16:15 by admin

📖 目次

1 : 第1部:TacmicCMSの構造とテンプレートの役割

1 - 1 : TacmicCMSの全体構造とアーキテクチャ

1 - 2 : モジュール開発とテンプレートの関係

2 : 第2部:Smartyテンプレートの基本構文と作法

2 - 1 : デリミタ(区切り文字)と基本ルール

2 - 2 : リテラルタグ <{literal}> の重要性と活用法

3 : 第3部:変数(Variables)とスコープ完全ガイド

3 - 1 : テンプレート変数の基本とデータ構造の参照法

3 - 2 : Smarty予約変数(スーパーグローバルと環境変数)

3 - 3 : TacmicCMS / ImpressCMS コア提供グローバル変数一覧

3 - 4 : D3モジュール特有の変数と環境変数

4 : 第4部:変数の修飾子(Modifiers)徹底解説

4 - 1 : 文字列操作・整形修飾子

4 - 2 : 日付・数値・フォーマット修飾子

4 - 3 : セキュリティ・安全性修飾子(escape, default, nl2br)

5 : 第5部:制御構文と組み込み関数(Built-in Functions)

5 - 1 : 条件分岐(if, elseif, else)と演算子

5 - 2 : 繰り返し処理(foreach)とループプロパティ

5 - 3 : テンプレート分割とインクルード(include)

6 : 第6部:TacmicCMSカスタム関数・プラグイン

6 - 1 : 変数操作と装飾プラグイン(assign, cycle, counter)

6 - 2 : フォーム生成ヘルパー(html_options, html_radios)

6 - 3 : TacmicCMS専用関数(resized_image)

7 : 第7部:テーマ(theme.html)設計とレスポンシブ化

7 - 1 : theme.html の基本スケルトンと必須要素

7 - 2 : ブロック配置とレイアウト制御(カラムレイアウト)

8 : 第8部:D3モジュールのテンプレート管理とカスタマイズ(ALTSYS連携)

8 - 1 : D3テンプレートの基本構造(3段階の優先順位)

8 - 2 : ALTSYSでのテンプレート複製と編集テクニック

9 : 第9部:PHP 8.5 時代の安全なSmartyコーディング作法

9 - 1 : Undefinedエラー(Warning/Fatal)を出さない書き方

9 - 2 : XSS防止とエスケープポリシー(総まとめ)