≪≪この記事をすべて読むには約 8 分かかります≫≫
Joomlaサイトを作るには、「テンプレート」が必要です。WordPressで「テーマ」と呼ばれているものと大体同じです。
当サイトでも使わせていただいているWordPressのテーマ「Cocoon」にはスキン機能というものがあり、同じテーマでもテイストの異なるデザインに変えることができます。Joomlaでこのスキン機能よりも複雑な変更をすることができたり、表示内容を大幅に変えられる仕組みがテンプレートフレームワークです。
テンプレートフレームワークの必要性
WordPressでは毎年新しいデフォルトテーマが出ます(2023年用だとTWENTY TWENTY-THREE)が、Joomlaはメジャーバージョンアップの際にまったく別物が入ってきます。Joomla 3.x系だと「Protostar」と「Beez3」、Joomla 4.xでは一つに絞られて「Cassiopeia」になりました。レスポンシブデザインで悪くはないですし、標準で追随ヘッダーと「上へ戻るボタン」をつけられますが、カスタマイズが大変です。
フレームワークを使うよりはトータルのオーバーヘッドが減るので勉強して使えるようになれば軽量になりますが、テンプレートの定義ファイル(templateDetails.xml)とPHP、CSSなどを全部書き換えないといけないので、一度できたとしてもアップデートへの対応などがあまりにも大変になってしまいます。
テンプレートフレームワークを使うと、たいていはGUIでレイアウトや機能の編集をすることができ、各種アップデートも適応しやすくなるので使いやすくなります。余計なJavascriptやCSSファイルを読み込んでしまうのでオーバーヘッドにはなりますが、キャッシュ機能を適切に使えば素のままと比べてもサイト速度はほとんど落ちないと思います。
Joomla 4.x用のテンプレートフレームワーク
Joomla 4.xに対応できるテンプレートフレームワークは、JoomlArtが開発しているT3/T4RocketThemeのGantry5、Templazza(?)のAstroid、JoomShaperのHelix Ultimateがあります。他にもあるかもしません。例えば、Shape5 VertexはJoomlArtからダウンロードできるフレームワークらしいのですが、結局どう使って良いのかわからないので除外しました。
T3/T4とGantryがかなり古くから開発されているテンプレートフレームワークで、Astroid、Helix Ultimateは後発なイメージです。GantryはJoomlaだけではなくWordPress、Gravなどに対応したフレームワークで、Gantryのページ自体はGravで構築されています。T3/T4、Astroid、Helix UltimateはJoomla専用です。
T3
以前つかっていたフレームワークです。Bootstrap 3だったり、レイアウトの変更性能がそれほど高くなかったりして少しカスタマイズ性に不満があって、Gantry 5に移行した記憶があります。
現在もメンテナンスされていて現役ですが、少し古い印象です。
T4
T3の後継版で、カスタマイズ機能が向上しています。CSSやJSの最適化や遅延読み込み機能などがついています。ページのカスタマイズ機能が別製品のPage Builderになってごちゃごちゃしているので結局どうしたら良いかわかりにくいです。
ただ、レイアウトをサンプル画面を見ながら編集できるので、使いやすいです。
Gantry 5
カスタマイズ性が高く使いやすいフレームワークです。以前T3から移行してメインで使っていました。
気に入らない点としては、管理画面のメインコンポーネントとして管理ツールインストールされるので、テンプレートを触ることは少ないのにいつも見えていて邪魔なのと、起動するとJoomla管理画面のフレーム内にだけ表示されるので、テンプレート編集画面の表示が小さいです。
Astroid
今回初めて試してみたテンプレートフレームワークです。GUIで設定できるレイアウトはGantry 5と比べてバリエーションが少ないですが、素人が自分で設定したレイアウトよりはデフォルトの方が多分良いので、Astroidの設定項目で十分だと思います。
他のT3/T4やGantry 5と異なり、プリロード機能がついています。どの程度役に立っているのかはわかりませんが、ローディング中を示す表示ができるようになっています。さらに、「読み終わるまで何分」という当サイトでも使っている表示をテンプレートで付けてくれる設定ができます。
Helix Ultimate
インストールはできましたが、「デフォルトのスタイルレイアウトがありません。作成して下さい」とエラーが出て動きませんでした。作成する場所がわかりませんでした。
Joomlaテンプレートの使い方
WordPressとかなり違うので最初は訳が分からなくなります。テンプレートをインストールして、「スタイル」を設定します。スタイルは同じテンプレートから複数作成でき、それぞれ対応するメニューアイテムをすると、そのメニューアイテムの表示には指定したスタイルが使われます。指定していないメニューはデフォルトに指定したスタイルが適用されます。
ページのカテゴリーごとに別のスタイルを使うことができ、場合によっては別のテンプレートを使うこともできます。ページの遷移でJS/CSSが大きく変わってしまうため、テンプレートは同じで別スタイルでやるのが一番良いと思います。
モジュールの設定
テンプレートフレームワークに組み込まれたメニュー表示などは特に気にせず使いまわせます。しかし、それ以外の表示、例えば「パンくずリスト」は表示位置の指定をして使うことになります。
表示位置は、Joomla本体の設定画面で「サイトモジュール」「管理画面モジュール」で設定したモジュールを開き、モジュールポジションにテンプレートで指定されている表示位置を選びます。表示位置は複数選べないので、テンプレート毎にモジュールを作成するか、切り替えるたびに変更する必要があります。同じポジション名なら別のテンプレートでも表示できるのかは要検証です。
現時点では、Astroidが最善?
2023年5月の今から使うとしたら、Astroidが良さそうです。T3/T4、Gantry5、Astroidともに無料のフレームワークで、基本のテンプレートは無料で配布されていますが、有料のテンプレートも多数出ています。有料のテンプレートで気に入ったものがあれば、対応フレームワークで良いと思います。
しばらく、まずはAstroidを使ってみて、Gantry5と時々使い分けて速度チェックをしてみようと思います。
コメント