テンプレートをファイルとして保存
2008年3月11日
現在のところ、スキンデータはすべてskins/ディレクトリにファイルとして保存され、テンプレートデータはすべてjeans_templateテーブルとしてデータベースに保存されている。少し分かりにくい。
スキンとテンプレートをフルコンパイルした場合には、どちらもグローバル関数としてPHPファイルに記述する予定である。従って、コンパイルする前のスキンやテンプレートはどこに記述されていても良いし、それらを呼び出す際の速度の問題などもそれほど考える必要も無い。ならば、これらを記述する方法としては、分かりやすさと編集の容易さがポイントとなる。
スキンについては、incファイルだけでなく、メインのスキンデータもファイルとしてskins/ディレクトリに記述される。従って、スキンを配布するときには、skins/ディレクトリに含まれるサブディレクトリもしくはファイルをそのまま配布すればよいようにするのが、もっとも便利であろう。この際に、テンプレートもこの配布ファイルの中に含まれるのが理想だ。
Nucleusの場合は、データベースからスキンとテンプレートをskinbackup.xmlとして取り出し、これを配布ファイルに含めるようなやり方を取っている。Jeansでもまねをして、テンプレートを一度データベースから取り出してスキンディレクトリに入れるやり方もできる。
しかし、どうせ新しくCMSを作るのなら、もう少し簡便な方法でこれができるようにしたいと考えた。テンプレートもスキンと同じように、データベースに記述せずにファイルとして記述すれば、スキンのバックアップや配布も容易である。
そこで、例えばdefaultスキンの場合だと、skins/default/template_index.inc というファイルに、xmlデータとして記述することにした。また、『<%blog(default/index)%>』の代わりに、『<%blog(./index)%>』と記述しても良いこととした。ピリオドを用いて記述すれば、例えばskins/default/ディレクトリ全体を skins/default2/等の名でコピーすることで、スキンのコピーが容易に行える。
将来、skins/default/template_index/ディレクトリに複数のファイルを配置するように変更する可能性も有る。XMLファイルを直接編集するのは難しいが、複数のファイルを配置するやり方では、ファイルの直接編集も容易である。
スキンとテンプレートをフルコンパイルした場合には、どちらもグローバル関数としてPHPファイルに記述する予定である。従って、コンパイルする前のスキンやテンプレートはどこに記述されていても良いし、それらを呼び出す際の速度の問題などもそれほど考える必要も無い。ならば、これらを記述する方法としては、分かりやすさと編集の容易さがポイントとなる。
スキンについては、incファイルだけでなく、メインのスキンデータもファイルとしてskins/ディレクトリに記述される。従って、スキンを配布するときには、skins/ディレクトリに含まれるサブディレクトリもしくはファイルをそのまま配布すればよいようにするのが、もっとも便利であろう。この際に、テンプレートもこの配布ファイルの中に含まれるのが理想だ。
Nucleusの場合は、データベースからスキンとテンプレートをskinbackup.xmlとして取り出し、これを配布ファイルに含めるようなやり方を取っている。Jeansでもまねをして、テンプレートを一度データベースから取り出してスキンディレクトリに入れるやり方もできる。
しかし、どうせ新しくCMSを作るのなら、もう少し簡便な方法でこれができるようにしたいと考えた。テンプレートもスキンと同じように、データベースに記述せずにファイルとして記述すれば、スキンのバックアップや配布も容易である。
そこで、例えばdefaultスキンの場合だと、skins/default/template_index.inc というファイルに、xmlデータとして記述することにした。また、『<%blog(default/index)%>』の代わりに、『<%blog(./index)%>』と記述しても良いこととした。ピリオドを用いて記述すれば、例えばskins/default/ディレクトリ全体を skins/default2/等の名でコピーすることで、スキンのコピーが容易に行える。
将来、skins/default/template_index/ディレクトリに複数のファイルを配置するように変更する可能性も有る。XMLファイルを直接編集するのは難しいが、複数のファイルを配置するやり方では、ファイルの直接編集も容易である。