ContentsViewerを知るためにいは, その周りにある物を知っていただく必要があります. 下図がContentsViewerを取り巻く全体像です.
作成者とは, 文字通りコンテンツを作成する人です. 作成者は, コンテンツを作成しそれをデータベース内に置きます. 作成者は, 基本としてコンテンツを書くだけでよいですが, ページ全体のデザインを変更する際には, ContentsViewerに変更を加える必要があります. この時, JavaScript, PHP, CSS, htmlに関する知識が必要です.
ContentsDataBaseとは, ContensFileを管理するものです. 管理する情報について詳しく説明すると, コンテンツ間の関係情報, コンテンツの最終更新日情報, コンテンツそのものの情報などです. あくまでコンテンツの情報のみ扱います. ContentsDataBaseは, サーバー内部での情報のやり取りはもちろん外部との通信も行うことができます (外部との通信ではAjaxを使用してDataBaseにPOST送信をする必要があります).
ContentsViewerはContentsDataBaseと通信を行い, 送られたコンテンツ情報をWebPageにします. ここで, WebPageのデザインが決まります.
このように, コンテンツの情報のみを扱うもの―ContentsDataBase―とコンテンツの情報を並べるもの―ContentsViewer―を分離しています. こうすることで, 作成者は改良するべき場所がわかりやすくなります. 例えば, 情報の扱い方に関して何か改良したい場合, 改良するべきモジュールはContentsDataBaseであり, デザインを変更したい場合, 変更するモジュールはContentsViewerです.
ContentFileの書式についてですが, htmlのようなものです. 段落ではpタグを使い, タイトルにはh2を使います. htmlのbody要素内を書くのに似ています.
htmlと違う点はコンテンツのタイトルタグ, 概要タグ, 親コンテンツへのパスタグ, 子コンテンツへのパスタグが用意されている点です. このタグに基づき, ContentsDataBaseは情報を整理します.
以下にサンプルを示します.
<CDB_CreatedAt>
ここにはこのコンテンツの作成日時を書きます
</CDB_CreatedAt>
<CDB_Parent>
ここには親のコンテンツへの相対パスを書きます.
</CDB_Parent>
<CDB_Title>
ここにはタイトルを書きます
</CDB_Title>
<CDB_Abstract>
ここにはこのコンテンツに関する概要を書きます
</CDB_Abstract>
<CDB_Children>
<CDB_Child>ここには子コンテンツへの相対パスを書きます</CDB_Child>
</CDB_Children>
ここにはこのコンテンツ自身の内容を書きます
デザインの変更をする場合, ContentsViewerを変更する必要があります. 以下にその概略図を示します.
上図のようにContentsViewerはphp, css, javaScriptによって成り立っているため, デザインを作成する際にはこれらすべてのファイルを作成する必要があります. これらプログラミング言語に関する知識が必要です.
プログラミング言語の知識は必要ですが, かなりデザインの自由度は高いです. ContentsViewerは元からある程度作られたものではなく, 作成者が作ったものがContentsViewerそのものです. 作成者が作りたいデザインそのものが出来上がることでしょう.