NetCommonsのスタイルテーマの設定などで、ページを作っていくと、ふと気になるときがありませんか?
例えば日誌モジュール、日付や、日付の前にインデックスとして置かれているアイコンが青緑に固定されています。
template作り変えるほどではないけれど、赤でイメージ統一したページのとき、『あぁ、この部分の色を変えたい...』などとなったことは?
こんな感じです↓
こんなとき、
じゃあ、赤用の日誌デザインをつくろう!となることが多いのではないでしょうか。
通常、モジュールのスタイルを増やす、となると
1.新しいtemplateをつくる
2.新しいtemplateに合わせたCSSを作る
3.ブロック配置した日誌モジュールのテンプレートを新しいのに切り替える
となります。
まぁ、これはこれでOKなんですけど。
ブロック配置した日誌モジュールの、ブロックスタイルを赤からオレンジに変えたら?
じゃあ、オレンジ用のtemplateを作って、新しいCSSを作って。。。。
同じことを全部しなくてはなりません。
実は、NetCommonsの拡張機能で、とても便利なものがあります。
モジュールのCSSはブロックやページスタイルのテーマカラーに合わせたものを自動的に表示してくれるんです。
あ、CSSを作るのは作らないといけませんけどね
でも、その技を使えば上記の手順の1と3はやらなくて済むんです!
数が増えると、この手間省きは大きいですね。
手順は以下の通り。
1.日誌モジュールの場合は webapp/modules/journal/view/maple.iniの書き換えを行います。HeaderIncセクションのcss_globalの値の$temp_nameを$theme_nameに変更します
この手順は1回だけです。CSS増やすたびにやったりしなくてOKです。
2.対応したいスタイルテーマを決めます。
例えば、上記の例でいくとclassicのredです。
webapp/modules/journal/files/css ディレクトリのdefaultをコピーしてredというディレクトリを作ります。
3.redディレクトリの中のCSSを、自分の赤イメージに合わせて変更します。
あ、しまった。詳しく書いたら手順の数がさっきのものとおんなじになっちゃったですが、2,3の手順は、前者のやり方でも付いて回りますから、「手順数おんなじじゃない」とか誤解の無いようお願いします。
さてさて、赤用のスタイルシートを書いて、モジュールの更新をかけてみます。
先ほどの日誌ブロック、何もしなくても新しいCSSが適応されているはずです。
とりあえず、日付の色とインデックスアイコンを変えてみました。
本当はもっと凝って、リンク色なんかも工夫を入れたいところですよね。
そして、色違いを揃えていけば、ページ(ブロック)テーマを変えれば、モジュールのデザインも勝手に変わってくれるようになります!
◆注意◆
この方法、デメリットがあります。
HeaderIncの定義を変えてしまうので、バージョンアップのとき、上書きされるおそれがあります。
そして、テーマのほうにあわせろ、という設定なので、逆にテンプレートに合わせろ、という動きがなされなくなってしまいます。
そして、致命傷ですが。2.2.0.1ではバグがあって、日誌モジュールでは、記事の表示を切り替えるとCSSがdefaultのものに戻ってしまいます。
これは簡単なバグのためで、簡単に直せますから、コード触れる方は、ご自分で修正可能です。
待っていれば、
次期バージョンでリリースされるとのことですから、気長に待つのもありですね。