a-blog cmsのテーマ変更を簡単にする js-theme_loader & 定義ファイル
Posted: Updated:
a-blog cmsのテーマの変更を簡単にする
a-blog cmsのテーマファイルは、テキストでテーマディレクトリ名を入力して設定します。さらに、テーマごとにトップページ、一覧ページ、詳細ページで使われるテンプレートファイルは異なるので、それらも必要に応じて入力する必要があります。
打ちっ放しのコンクリート的実装
テキストベースは、安心感も安定感もあるのですが、どうにもヒンヤリした感触のインターフェースです。今回はその辺りも、もう少しだけユーザーフレンドリーにしてみたいと思います。
UIの改善以外の問題意識として、a-blog cmsを触って間もないユーザーが陥りがちな、テンプレートの不整合による404問題があります。これは、plainからcompany3へ変更したとき、あるいはcompany1からvicunaへ変更したときなど、テーマを変更したときに、自動ではテンプレートファイルの設定が追従しないことによるものです。
今回は、それもテーマにテンプレートの初期セットを記録する定義ファイルという実装を加えることで、自動化してテーマの切り替えが安全確実なものになるようにチャレンジ。
- テーマをセレクトボックスで選べるようにする(themes内の自動探索)
- テーマの初期テンプレートをjsonで定義する
- テーマの初期セットを定義ファイルから読み込めるようにする
以下、今回の作業内容。
テーマの変更をセレクトボックスから選べるようにする
/themes/system/admin/config/theme.html の 13行目付近
下記のように編集してください。Admin_Dashboard_ThemeChangerは、見慣れないモジュールですが、初期バージョンから搭載(だけ)されている埋もれモジュールなので、テンプレートに書くだけで動作します。select要素の次に、例ではspanで置いてある、#js-theme_loader-progressも記述してください。これが無いと後述のスクリプトが通信中かどうか分かりません。