ver.1サポートサイト


カスタムモジュールでのPHP利用

最終更新日:2024年02月29日

概要

スパイラルでは、PHPプログラムにおいて共通で利用する処理をモジュールという単位でPHPファイルとして管理することが出来ます。

1.カスタムモジュールでのPHP利用

このカスタムモジュールはWebページやカスタムプログラム内においてrequireやinclude文により取り込み可能なPHPプログラムです。
カスタムモジュール

管理画面上ではフォルダ分けして複数のファイルを管理することができるようになっています。なお、管理できるファイル数は最大100までです(拡張オプション有り)

複数のWebページで利用する共通のモジュールを置くことができるため、共通モジュールを変更することにより、一括でWebページの変更を行うといったことも可能です。例えば、以下のように利用してコーディングの生産性と保守性を高めることも出来ます。

なお、カスタムモジュールはPHPプログラム内からのみアクセス可能となっており、WebページのHTMLからURLで直接読み込むといったことはできません。

2.カスタムモジュールアップロードAPIの利用

カスタムモジュールはスパイラルの管理画面上でも追加・変更・削除など自由に行っていただくことができますが、ローカルで作成・編集したファイルをカスタムモジュールアップロードAPIやアップローダを利用してスパイラル上にアップロードすることも可能です。使い慣れたエディタでPHPプログラムを編集することができますのでぜひご活用下さい。

カスタムモジュールアップロードAPI

アップロードAPIを意識することなくアップロードしていただけるように、cmuploadコマンドを提供しています。cmuploadコマンドは、管理画面の「カスタムモジュール」において説明を表示するとアップロードツールのリンクがありますので、そちらからダウンロードしてください。コマンドの利用方法など詳しくはzipファイル内に含まれているreadme.txtをお読みください。なお、Javaプログラムとなっているため、JREがインストールされいてるなどJavaが実行可能な環境でのみご利用いただけます。

お使いのエディタによっては、ファイル保存時にアップロードAPIやアップローダを実行して自動的にアップロードするといったことも出来るでしょう。

カスタムモジュールにソースファイルをアップロードするAPIのメソッド「カスタムモジュール」をご覧ください。

3.カスタムモジュールの簡単な利用例

mycss.php, header.php, news.phpという3つのカスタムモジュールを用意して、それを一覧表のソースから読み込んで利用してみます。

mycss.php

<?php
echo <<<END
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css">
<!--
h1 { font-size: 30px; color: #ff0000; }
.member { text-align: right; color: #0000ff; }
-->
</style>
END;
?>

header.php

<?php
echo <<<END
<div>%val:usr:name% さん、こんにちは</div>
<hr>
END;
?>

news.php

<?php
// 自社システムから情報を取得してニュースリストを返す
function fetchCompanyNews() {
・・・
return $news_list;
}
echo "<ul>";
$list = fetchCompanyNews();
foreach ($list as $news) {
echo "<li>" . $news . "</li>";
}
echo "</ul>";
?>

一覧表ページのソース

<html lang="ja">
<head>
<title>カスタムモジュール使用例</title>
<?php // <!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=SAMPLE --> ?>
<?php require_once("mycss.php"); ?>
</head>
<body>
<?php require_once("header.php"); ?>
<h1>今日のニュース</h1>
<?php include("news.php"); ?>
</body>
</html>

このように一覧表内でrequire_once()やinclude()などを使ってカスタムモジュール呼び出すことで、以下のようなコンテンツを出力することが可能です。

カスタムモジュール利用例