2010年2月14日日曜日

機能を少しづつ追加していく

次のような機能を順に追加していった。
  • プロジェクトの新規作成
  • サイトの追加
  • サイトの削除
  • ページの追加
  • ページの削除
今追加できているのはこれだけ。
それぞれの編集機能は前回までで実装しているため、内部データとして登録しているリストデータを生成するか削除するかだけなので楽なものだ。面倒なのは画面の制御。長年プログラムを作り続けていると頭の中にプログラムが出来上がりタイプするのが面倒になる。そして焦ったり手抜きをしたりしてバグを生む。

2010年2月10日水曜日

画面のデザイン

画面の構成はシンプル極まりない。とにかくサイトのツリー構成は人目で把握したいということで、サイトのツリーを左側にマストとして表示し、ページは右上に表示することにした。ツリーのサイトを選択することで右上のページ情報が更新される仕組みになる。ページは一覧で表示することとなり、一覧の項目を選択することで詳細情報を下部に表示するようになる。プロジェクト全体に関係する設定はメニューから別途画面を表示して設定するようにする。ページの詳細情報にはコンテンツのリストが表示される。コンテンツのリストはタイトルとその内容をひとつのくくりとして、選択されるとさらに右側のエディタで編集することができる。なんとなく癖でステータスバーを追加したが用途は不明。。。ツールボタンでのメニューはアイコンをつくるのが面倒なのでつくらないことにした。アイコンをつくる気になれば追加するかもしれない・・・ある程度作って操作感を確かめてみないと何とも言えないので取り敢えず実装してみた。悪くない。

2010年2月9日火曜日

XMLデータの読み込みと書き込み処理をつくる

まずはサンプルのデータファイルを作成してみて脳内シミュレーション。きっとうまくいくだろうということで早速プロジェクトファイルを作成し構造体の定義と必要そうな処理を追加した。XMLファイルへのI/Oは TXMLDocument オブジェクトを動的に生成して行うこととした。開発段階で気になった事柄や関数は別のサイトにメモとして残しているのでどうぞご自由に。とりあえず、サンプルファイルを読み込んで内部の構造体に格納することと、構造体をありのままサイトデータファイルとして出力するところまで実装できた。

2010年2月8日月曜日

CMS のデータ構造

ディレクトリとファイルの管理が基本でディレクトリはサイト、ファイルはページに該当するわけですから階層構造を管理するのがベースになります。ドメイン(サブドメイン)ごとにプロジェクトを作成してプロジェクト管理ファイル、サイト管理ファイル、ページ管理ファイルをそれぞれつくるようなイメージにしたいと思います。イメージファイルは"/img"に統一されているのでこうした管理データは未設定の場合に親データから引き継いで適用されるようにプログラミングする必要があります。
プロジェクトファイルには"プロジェクト名"、"ベースURL"、"プロジェクト作成日"、"最終更新日"、"サイトリスト"を登録します。サイトリストはプロジェクトに該当するサイトのリストになります。
サイトファイルには"オーダーNo"、"サイトタイトル"、"URL"、"イメージURL"、"google Analytics ID"、"site Verification"、"Site List"、"Page List"が含まれます。"Site List"は自分と同じ構造が格納されサブサイトに対応します。"Page List"はサイト内に公開するページの識別子(データファイル名)が格納されます。
ページファイルにはサイトファイルの情報に加え"説明"、"キーワード"、"ページステータス"、"ページデータ"が含まれます。indexファイル(デフォルトURL)の情報は強制的にindex.htmとしてサイトファイルの中にマージした状態で格納されます。
ページデータは必ず"content"という段落の中に作成され、複数存在する場合もあります。"content"のデータの内容は"段落タイトル"、"段落形式"です。"段落形式"はテキストデータや画像データをタグをくくることとなります。
構造的にはこういったところでしょうか。

imomushi.com 用 CMS 概要

どんな機能がいるのか考えてみましたが夢が広がるばかりで前に進みそう見そうにないのでまずはサイトデータを管理(登録、編集、保存)ができてテンプレートからサイト構築できるまでを作成することにしました。完成までには1カ月くらいかかるかな?公開は静的ファイルで行います。理由は一つ。imomushi.com では動的である必要がない。CMSの実行環境は時代の流れを反映してWEBにしようと考えたのですが静的ファイルでの公開となるのでサーバー側でゴリゴリとファイルを生成するのも悲しいのでクライアントアプリケーションにしました。(追々WEB版へ移行するかも)開発言語は時代遅れの感も強いですが使い慣れている Delphi 7 Pro にしました。まずはデータ構造から考えることにします。

imomushi.com を管理するCMSを作成してください。

タイトルにある通り imomushi.com を管理する CMS を作成してください。
現在利用している CMS では拡張性に乏しいのでもう少し汎用性のある実装でお願いします。
ブログの管理や他のCMS サービスを利用しているサイトについては対応する必要はありません。imomushi.com ドメインを管理できればOKです。ただ、imomushi.com のサブドメインはひとつのプロジェクトで管理できるようにしなければなりません。