1180429 05:57:02
以下の説明 1つの単位をPageと呼びます。
タイプレスCMSとは
SOUKO/IMSが自前開発し使用していたCMSソフト
特徴は?
ポケット1つ
Nuke系でいうブロックも同じtableで構成。
レンダリングはロジックなし。smartyのようなif文なし。
OSSならではの汎用性による複雑さ重さを回避しつつ、
すべて自前のデメリットを少なくする考え。
静的サイト部分もあり。
単にIDEで追加の静的page(phpで動的だが HTMLのみの)somepage.php
を書いて 他からリンクはるのみ。
なぜOSSで公開しなかったのか?
開発者に共通の開発環境が必要となったので。
統合環境IDEでHTMLデザイン/複雑なSQL(部分的にはジェネレート)するような形になり
OSSとして開発者誰でもという形にはならなかった。
またユーザーが使う場合のI/Fまで充分用意すると、本来の目的は別のメンテが必要になった。
LocalでIDEで済む部分をOSS用にWebで動的にする部分でいい方法が見つからなかった。
公開予定は?
現在公開予定はありません。
現在でこの考えに近いシステムは?
Tikiwikiで、Pageのみ使用すれば近いです。
他、フレームワークを使った自前構築でも、考え方は参考になるはず。
コントローラーは?
Pageコントローラー。
(フロントコントローラー(index.php?argxxxですべてではなく)
viewPgge.php
editPage.php
search.php
のような形
相対Path、絶対Path?
すべて相対Pathです。
重くならない?
各Pageに個別のCashをつけたので、そんなに遅くはならないです。
たとえば、今はTikiですが 今のこのPage タイプレスCMSをEditしたら
次に内容をEditするまではレンダリングする必要はないです。単にCachから
最終表示のHTMLを表示すればよい。(中に動的部分がない場合)
Tikiの場合は
- 動的なのがあればリアルタイムで表示。なければCachから表示
- Cachは一括でAdminから更新可能
となっていますが、デザインを変更した場合などは手動で
adminからClear Cashをする必要があります。
この手のある部分手動でメンテの部分はOSSモデル、自前開発モデルで違います。
追加の機能はどこに?
Pageのfieldに pagetype=type_name文字列
pagetype = minichat
pagetype = wiki
としてその文字列
pagelib-minichat.php
pagelib-wiki.php
を動的にinclude
バラメータは
Page tableのfieldに arg1|arg2|arg3| などで記述
Tableのfieldが多くなり DB的に遅くならない?
遅くはなりませんでした。
複数のコンテンツ毎に各typeのlibを動的 includeの重さより
複数のDBへのアクセスがない軽さの方が上回った。
メニュー、Bblock、上下左右は?
Nuke系の考えはそのままで、配置はIDEで。
テーマは?
同様にLocalでIDEで作成。
ロジックのないレンダリングLibなので、HTML Editorで作成できます。
言語対応は?
一応はNuke系/tikiwikiと同様にやりましたが、
TikiのようなエンタープライズCMSみたいにフル機能ではありません。
tikiwikiはこのあたりもフル機能でOSS開発モデルなのによく機能していると感じています。