PowerCMS™
2025年1月1日購入分よりライセンスの価格を改定いたします。
[ブログ] PowerCMS 6 でのアップデートまとめ を追加しました。
[よくあるご質問] システムログに「タスクを実行するために必要なロックを獲得できませんでした」というログが残っている を追加しました。
[よくあるご質問] 特定のシステムログに絞って確認できますか? を追加しました。

テーマの構造

本ページでは、PowerCMS のテーマ機能についての技術的な情報を説明します。

テーマ(Theme)とは?

themes ディレクトリ

ユーザが作成あるいは入手したテーマを利用するにはテーマを themes ディレクトリに配置する必要が有ります。

themes ディレクトリは、PowerCMS をインストールしたアプリケーションディレクトリに存在します。また、環境変数の "ThemesDirectory" で指定することもできます。

ThemesDirectory themes

初期値は "themes" [ MT_HOME/themes/ ] です。themes ディレクトリは、以下の設定が必要です。

  • mt.cgi の実行ユーザー(apache や www-data、suexec 環境下では mt.cgi のオーナーなど)が読み出し、書き込み、一覧できる。

また、以下の設定が推奨されます。

  • Web サーバによって 公開されていない

テーマの配置

themes ディレクトリには、plugins ディレクトリと同様に、各テーマを個別のディレクトリとする、複数のテーマを配置できます。各テーマのディレクトリには、theme.yaml ファイルと必要なファイルが配置されています。代表的な、themes ディレクトリ は以下のような構成になります。

(MT_HOME)/
    themes/
        MyFirstTheme/
            theme.yaml
            thumbnail.png
            thumbnail_medium.png
            thumbnail_small.png
            alt_tmpl/
            static/
            blog_templates/
            blog_static/

プラグインとの違い

プラグインとテーマには、大きく 2 つの違いがあります。

Perl コードの禁止

theme.yaml を含むテーマのyamlファイルには、Perl コードとみなされる値を書くことができません。例えば、"sub { " で始まる文字列や、$PluginFoo::PluginFoo::method 形式のメソッド呼び出しなどです。

ロードタイミング

プラグインは PowerCMS のインスタンス起動毎にすべてのプラグインがロードされますが、テーマは必要な時にロードされます。ユーザーがテーマの一覧画面を開いたときには、すべてのテーマがロードされます。スペースの操作で、テーマの情報が必要な場合は、対象のテーマのみがロードされます。

ワークスペースとスペースのテーマ

テーマは、スペースに適用できるスペーステーマと、ワークスペースに適用できるウェブサイトテーマがあります。また、スペースとワークスペースの両方に適用できるテーマを作成する事もできます。

レジストリ に追加するテーマ情報

レジストリ に追加する情報は、テーマの "基本情報" と、"テーマ エレメント" と呼ばれる拡張情報に分けることができます。

基本情報

基本情報は、テーマ名や作者名などのテーマの設定情報です。1 つのテーマには、1 つの基本情報が必要です。指定可能な値は以下のページをご参照下さい。

テーマの基本情報

テーマ エレメント

テーマ エレメントは、テーマに拡張性を持たせるための仕組みです。プラグインと、テーマを連携させることができます。テーマ作者は、必要な テーマ エレメントをいくつでもテーマに含めることができます。

各テーマ エレメント には以下のレジストリキーを指定します。

importer

このテーマ エレメントの、インポータの識別IDです。省略できません。指定されていないと、テーマのロード時にエラーが発生し、利用できなくなります。

component

このテーマ エレメントの、インポータおよびエクスポータを提供しているコンポーネントの名前です。省略可能です。エクスポータによって自動的に設定される場合もあります。

scheme_version

このテーマ エレメントの、スキーマバージョンです。整数あるいは小数で記述します。省略すると、自動的に "1.0" とみなされます。PowerCMS の管理画面でテーマをエクスポートした場合には、エクスポータが自動で適切なバージョン番号を設定します。

minimum_importer_version

このテーマ エレメントをインポートするために、必要なインポータのバージョンを指定します。省略可能です。省略すると、"0" とみなされます。

require

このテーマ エレメントが、テーマを利用するのに必須かどうかを指定します。省略可能です。省略すると、"0" とみなされます。

data

このテーマ エレメントの内容です。data 以下に記述する内容は、そのテーマ エレメントのインポータの実装に依存します。PowerCMS の標準のテーマエレメントについては以下をご参照下さい。

標準のテーマ エレメント

ファイル

テーマのデザインで利用する画像ファイルなどを、(THEME_HOME)/staticディレクトリに含めることができます。このディレクトリがテーマに含まれていると、PowerCMS は自動的にこのディレクトリの内容を(SUPPORT_DIRECTORY)/theme_static/MY_THEME ディレクトリにコピーします。

alt-tmpl ディレクトリ

テーマに、alt-tmpl ディレクトリを含めると、そのテーマを利用中のスペースの管理画面をカスタマイズすることができます。PowerCMS が管理画面を表示するときに、最優先のテンプレートとして利用します。これにより、テーマごとに異なる管理画面を提供できます。

プラグイン経由でのテーマの追加

themesディレクトリ以下にインストールされたテーマ以外にも、プラグイン経由でテーマを追加する事も可能です。レジストリの "themes" キー以下にテーマの定義を行ってください。

一覧へ

お問い合わせ

お問い合わせフォームがご利用できない場合は、以下のメールアドレスからも受け付けております。
contact@alfasado.jp

製品資料ダウンロード

パンフレットデータ、提案用資料などがダウンロードできます。