ようこそ! シコーサクゴ Geeklog 2024年4月26日(金) 12:41 JST

スーパーブロックを作ってみた

  • 2006年12月 7日(木) 21:31 JST
  • 投稿者:
Geeklog

テーブル要素を使ったレイアウトを極力廃し、CSSでレイアウトを指定することに徹したおかげで、レイアウトの自由度がグーンとあがり、サイドバーのブロック単位でデザインするアイデアを発想&実現することができた。

では、Geeklogシステムをハックすることなく、ブロックにデザインを指定するための手法はなんだったかというと、それはブロックごとに固有の情報であるブロック名を活用することだった。このアイデアはいろんなことに応用がききそうだと考えていたが、ちょっと面白い応用が見つかった。それは、Geeklogに対する私の不満を少しだけ解消する、スーパーブロックというものである。

私が勝手に呼んでいるスーパーブロックとは、Geeklogが勝手に2カラムレイアウトにしてしまう場面でも、しぶとく表示されて3カラムレイアウトを維持くれるブロックのことだ。

この大げさな名前のブロックは実は何の変哲もない普通のブロックで、ただ単にブロック名に".super"を付加しただけのものだ。
Geeklogはわりと自由にブロックに名前をつけたり、変更したりすることができるので、さながらファイル名の拡張子のように、このあらかじめ定義したキーワードをつけておく。

さて、lib-common.php中のCOM_siteHeader関数やCOM_siteFooter関数にはテーマごとにカスタマイズされた(テーマ名)_siteHeader関数や(テーマ名)_siteFooter関数を探し出して実行する処理が含まれており、各テーマに配置されているfunctions.phpにその関数を書くこともできる。
この仕組みを利用すると、テーマを使った表示のカスタマイズがシステム自体をハックすることなくかなり自由にできるようになる。
".super"を含むブロック名をもつブロックに対する処理は、同じようにfunctions.phpに書いてやればいいというわけだ。

こういったカスタマイズを許す仕組みを用意しているGeeklogは私の好みに合っている。

しかし、一方ではGeeklogには思わず首を傾げたくなるような仕組みや決まりが少なからずある。ブロックやサイドバーの取り扱いについてもいじりたくなる部分が結構多い。せっかく作ったスーパーブロックの仕組みも、3カラムレイアウトにしてほしくない場面での抑制ができないので結局使わないかも知れないと思っている。例えば管理画面や掲示板では2カラムレイアウトがあっていると思う。

はたして、Geeklogにはそういったニーズを満たす懐の深さが備わっているだろうか。今はまだわからない。

タグ:geeklog css スーパーブロック smallboxes