POPSブログ

BaserCMSのサイドバーを考える

27

  Category:  basercms2012/02/19 pops 

BaserCMSのサイドバーについて、制作の過程も考慮しながら考えてみます。


BaserCMSのサイドバーを考える


BaserCMSのサイドバーの制作に関して考える

BaserCMSではサイドバーはエレメントctp ファイルです。テーマの「elements階層」に収容されています。通常は管理画面より「登録」して使用すると思います。[図参照]
編集、削除、などの付随作業がありますから登録しておくに越したことはありませんが、登録無でも ctp ファイルがあれば表示します。
コーポレートサイトでのサイドバーでは必ずしも、「標準」で用意されている「ウィジェット」を埋め込まない場合もあります。

BaserCMSは、ほとんど全てを管理画面より設定できる構成には成っていますが、必ずしも管理画面を必要としない時もあります。面倒だゼヨ。


  • サイドバーは「登録」せずとも使用できる。
  • サイドバーに必要なHTMLも書けるし、PHP処理スクリプトも書ける。
  • 但し、「登録無き」場合のctpファイル管理は使用者が行う事になる。
  • 「ウィジェット」を使用する場合は「登録」が必要。

管理画面を使用しない、手作業のほうが「効率の良い」場合もあります。


説明図

テーマのelements階層に収容されています。追加の手書き部品(標準部品ではない)はwidgetsに収容。
widgetsの前後、element はHTML追加など編集自由である。


【参考】basercms.net: コアテンプレートのカスタマイズ

【参考】forum.basercms.net: カテゴリーページごとに違うサブメニュー表示する


サイドバーの表示

勿論、サイドバー.ctp は所定の elements フォルダにあることが前提です。無い場合は表示されません。
通常の elements の呼び出しで簡単によびだせます。
サイドバーに必要なPHP処理が書けますが、その場合にはエラーにならないように十分配慮して書かねばなりません。



elements フォルダに サイドバーの名前.ctp があること

$baser->element('{サイドバーの名前}');

---------------------------------------------
登録している場合は下の表記でもOK
ウィジェットエリア一覧 No の番号を記入
$baser->element('widget_area',array('no'=>1));

elementsの編集は簡単だが、それをページごとに配分作業が、説明が少ないので、面倒。


サイドバーCTPは、自由に手書きで編集可能です


サイドバーの制作

PHPスクリプト処理が必要でない、サイドバーの場合は通常のHTMLを書いてゆく要領で書けばよいので簡単です。自由な構成に出来ます。サイドバーは主にリンクだけですから。
「ウィジェットエリア管理」は全てを「オンライン」で出来るのが便利なだけ。ctpを直接編集したほうが、ウィジェットエリア管理で「ウィジェット」を入れて作るよりも簡単ですし、訂正などは使用者が直接行い、FTPで送るだけの作業です。
「ウィジェットで位置を変えたり」はできますが、ctpを直接「ウィジェット」をはさむように、編集したほうが自由かつ効率的です。


スクリプト処理のない、定形なサイドバーの制作

サイドバーに記載する条項が、ほとんど定形であり、時間経過とともに変わる「新規投稿表示」など配置する必要のない場合などは、出力のHTMLを元に画像、レイアウト変更などオリジナルに加工して良い訳です。リンクしている箇所のURL記入のみ注意すれば良い。
通常の出力は単に、CSSで背景画像位しか変更できないが、この場合は画像、FLASH、ブログパーツ、を挿入したり、テキストを書いたりと自由に出来る。


ウィジェットエリア登録したサイドバーをオリジナル化する

ウィジェットエリア登録されたサイドバーであっても、「ウィジェットエリア」に関する部分の「前後」は自由に書き換えできます。必ずしも「ウィジェットの部品」を挿入する必要はありません。[図参照]
ウィジェットエリア管理で、全て行うのはFTPの使用が出来ないなどの理由がある場合です。(または、並び替えするのがとても楽しいとか、、)


サイドバーをフッターに横にしたら

サイドバーをフッターに横にして挿入したら、やはり、サイドバーなのか、それとも寝そべったサイドバーか、バーじゃないバーなのか、フッターバーなのか。答えが出ない。きっとハンバーガーだ。美味しい名前だナ。


サイドバーの中でPHP処理

「スクリプトの処理」が出来ますので、書き込み可能ですが、エラー処理だけはしっかりしたいものです。表示するページによってはデータの取得が出来ない事もあるようです。
BaserCMSのPHP (nantoka kantoka areya koreya.php) の処理方法など参考にして書き込むのですが、CakePHPのため以外と直感的ですから、細部処理まで詳細説明はありませんが、結構何とかなります。
デバック機能はありますがデータベースなどの関連情報ですから不要です(インストールが済めば、通常データベースエラーは無い)。PHPスクリプト文法が間違っていれば何も表示しない。処理出来ない関数にアクセスすれば、エラー部以降のHTMLを表示しませんから直ぐ判ります。
PHPか、CackePHPで追加するかの問題だけです。適当に書けば何とかなる。


ウィジェットエリアに挿入したほうが良い場合

ページによっては「データベース情報が取得出来ない」などの事情がある場合は、「ウィジェットエリア」に「部品を挿入」して処理したほうが良いと考えられます。ウィジェットエリアに挿入して置けば「状況に応じて非表示」にしてくれますから、安心です。
完全に調べ上げた訳ではありませんが、「404エラー表示ページ」は、「データ読み込み」を簡略しているようだ。アクセスできないデータもあるようだ。
エレメントが深い場合も同様にアクセスできないデータもあるようだ。これらに関しての詳細説明など当然無い。まあ改造ですから、全て自己責任の範囲です。

図で 自作tagcloud.ctp が widgets に在るのはそんな理由な訳です。


404エラー表示

指定URLのファイルが無い場合です。通常は「エラーの無いように」作っているのだから「エラーは無い」、つまりエラーになるのは「不正な操作」をした場合である。サイドバーにスクリプトを書いた場合「通常は正常に処理」されるが、404エラー表示時「アクセスできないデータ処理」が発生すると言う事。例としては画面がみだれる。
「404エラー表示」時に「サイドバーを表示させない」ようにすれば問題は無い。「ウィジェットエリア」は「404エラー表示」時に考慮された作りになっている。
使用されるページはTOPページまたは、指定URLに近いページのようです。

全てPHPで記述しないで「データの有無判定」をCakePHPで行う、見た目は悪いが「複合的な書き方」にすると少しは直るような気もする。「不正な操作」をした者に、気を使うのですからワラチャウ!


参考記事: ページごとにサイドバーを変える/1

参考記事: ページごとにサイドバーを変える/2



[ この記事のURL ]


タグ:memo , basercms

 

ブログ記事一覧

年別アーカイブ一覧



[1]