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