ようこそ! Geeklog Japan, Anonymous 2024/04/20 23:36 JST

Geeklogの特殊なトップページレイアウト

  • 2009/02/27 15:32 JST
  • 投稿者:
  • 表示回数 11,247
Geeklog

トップページの特殊なレイアウト方法

Geeklogのページデザインは,TOPページを含めてすべて3列あるいは,2列で,TOPページのデザインだけを特別なレイアウトにする例をあまりみかけません。

が,Geeklogには,静的ページでTOPページの表示エリアで「ページ全体」というモードを選び,さらに,センターエリアにチェックすると,TOPページだけは,強制的に全画面に,指定のレイアウト(ブロックやヘッダ・フッタの表示を行うかどうか)で表示できます。

たとえば,デラクラブのように,トップページだけブロックを表示しないレイアウトも簡単です。



これを使って,Geeklogのページレイアウトをもっと楽しんでください。

なお,ページ全体のモードで作成できる静的ページはひとつだけです。いくつも同時にページ全体で表示できるわけではないので当然ですが。最後に指定したページが有効になります。詳しくはWiki「TOPページを特殊なレイアウトにする」をどうぞ。

トップページのヘッダだけに特別にコンテンツを埋め込む

また,TOPページだけ,header.thtmlに,Flashなどのコンテンツを埋め込みたい場合も多いでしょう。

そのような場合には,header.thtmlの,コンテンツを埋め込みたい場所に,次のコードを入れます。

これで,トップページ(home)の場合のみ,静的ページid toppage_content の内容を表示します。

静的ページid toppage_contentを作成すれば,トップページのみ,特別なデザインを差し込むことが可能になり,差し込むコンテンツは静的ページ管理画面でいつでも自由に変更できます。この静的ページをFlashなどのHTMLコンテンツだけでなく,PHPで記述すれば,さらに動的なページも可能です。

テーマ変数を活用する

さらに,header.thtmlでは,テーマ変数として{home_id}{topic_id}{sp_id}{login_status}などが利用できます。詳しくは日本語化プラグインの管理画面をご覧ください。これを活用して話題別,静的ページ別,あるいはログイン前,ログイン後で異なるレイアウトが可能になります。

テーマ変数の利用例として,たとえば,ヘッダ内に次のようなスタイルシート読み込みを定義することで,話題別のスタイルを指定することが可能です。

topic_話題ID.css(話題の数だけ) topic_,css を用意しておきます。topic_,cssは,スタイルだけ定義して中身は空白にしておきます。

静的ページであれば,次のように指定します。

sp_静的ページID.css(静的ページの数だけ) sp_css を用意しておきます。sp_.cssは,スタイルだけ定義して中身は空白にしておきます。

テーマ変数は,標準でセットされたカスタム関数CUSTOM_templateSetVars() にいくらでも追加して利用できます。詳しくはWikiをご覧ください。

ブロックごとに見栄えを変える

ブロックごとに,異なるテンプレートを指定する方法があります。

Geeklogには$_BLOCK_TEMPLATEがあるので,それをfunctions.phpで指定します。

例:

これは,管理者ブロックなら  'blockheader-list.thtml,blockfooter-list.thtml'; を使う,というものです。

admin_block だけでなく,block id を自由に指定してどのブロックでも,ブロックごとに,異なる見栄えが実現できます。

professionalテーマのfunctions.phpを参考にしてください。

左ブロック{leftblock}をフッタに置く

functions.phpに以下の行を追記してください。

右ブロック{rightblock}を常時表示する

コンフィギュレーションで設定できますが,そうすると,すべてのテーマに対して行われるので,該当テーマだけに有効になる,テーマ内のfunctions.phpで記述するのがおすすめです。

※静的ページid toppage_content:このidは自由に設定できます。
※PHPを埋め込めるテンプレートはheader.thtmlだけです。利用できる関数は,Wikiの開発者用ページ「共通ライブラリ」,特にlib-common.phpをご覧ください。
※静的ページや記事,ブロックで静的ページのコンテンツを埋め込む場合は,自動タグ[staticpage_content:id]を利用してください。