Mahara日本語ドキュメント/カスタマイズ/テーマ/1.1

From Mahara Wiki
Jump to navigation Jump to search

Mahara 1.1では、テーマ設定ファイルをhtdocs/theme//config.phpから読み込みます。Mahara 1.1は、「デフォルト」と呼ばれる、1つのテーマのみ含んで、リリースされます。htdocs/theme配下に他のテーマディレクトリが置かれて、config.phpに記述された場合、管理セクションのサイトオプションページに表示されます。

テンプレートは、htdocs/theme//templatesに保存されます。また、スタイルシートは、htdocs/theme//static/style に保存されます。そして、イメージは、htdocs/theme//static/imagesに保存されます。

htdocs/theme//templates配下のディレクトリ構造は、大部分でサイトのPHPページ構造に酷似しています。ですから、例えば、htdocs/admin/site/options.phpで使用されるテンプレートページは、htdocs/theme/default/templates/admin/site/options.tplで見つけることができます。しかし、これは厳格なルールではありません。別のフォルダ内にある、いくつかのページでは、テンプレートを共有します。また、いくつかのテンプレートは、特定のページに属しませんが、他のテンプレートでインクルードされます。

プラグインディレクトリには、プラグインのみに使用されるテンプレートが含まれています。例えば、htdocs/artefact/file/index.phpのアーティファクトプラグイン内にある「My Files」ページのテンプレートは、htdocs/artefact/file/theme/default/index.tplにあります。

1.1では、通常、cssおよびイメージは、コアテーマディレクトリ配下に含まれ、プラグイン自体に含まれることはありません。1.2では、cssおよびイメージがプラグインに含まれるよう、変更されました。

Mahara 1.1用の新しいテーマを作成する

あなたが多くの努力を新しいMahara 1.1テーマに注ぐことを考えている場合、かなりの修正なしでは、1.1のテーマが1.2では動作しないことを理解してください。近々、Mahara 1.2のリリース後、あなたのサイトを1.2に移行する場合、最新の安定版ではない1.2リリースを使用して、あなたのテーマを開発することを考えてください。

(http://mahara.org/interaction/forum/topic.php?id=898 よりコピー):

theme/ サブディレクトリに新しいディレクトリを作成してください (例 theme/ponies/ または類似のディレクトリ)。

デフォルトテーマディレクトリより、あなたの新しいディレクトリに、デフォルトテーマのディレクトリよりconfig.phpをコピーしてください。

あなたのconfig.phpファイルを編集します。$theme->formrenderer行を削除して、次の新しい行を追加してください: $theme->parent = 'default';

これ以降、あなたは、デフォルトテーマを継承した新しいテーマを作成することができます。これは、Maharaがテーマファイル (イメージ,CSSファイルまたはテンプレート) を必要とする場合、まず、あなたのテーマディレクトリを探して、見つからない時は、デフォルトを使用することを意味します。

これは、あなたが例えば、static/imagesディレクトリを作成して、その中にlogo.gifを入れる場合、サイトロゴを変更できることを意味します。あなたは、static/style/*.cssでも同様のことができます - これらのスタイルシートは、親テーマのスタイルシートが読み込まれた後に読み込まれます。ですから、必要なことは、あなたが変更したいルールを上書きするだけです。残念ですが、デフォルトのcssには、数多くの重要なcssが含まれています (1.2では、すべて削除されます)。これらcssにより、カスタマイズ処理がさらに困難なことになってしまいます。

願わくば、あなたがスタートするための十分な情報であれば良いのですが!

私たちは、ほとんどの場合で、テーマ作者が新しいテンプレートを作成したり、「デフォルト」テーマから、作者のテーマにテンプレートをコピーする必要がないことを希望します。新しいテーマのスタイルシートにおいて、デフォルトテーマをオーバーライドするだけで、多くの作業を完了することができます。