My Jeans CMS:2009年 12月の記事

リビジョン61 [一般的なこと]

2009年12月27日

デモサイトを、SVNリビジョン61にアップグレードしました。

Jeans CMSのスキンは、Nucleusのそれよりも多機能で、スキンへの記述だけで色々なことができます。それを少し紹介します。

今まで、このデモサイトをアップグレードするたびにconfigurationその他の設定値を書き換えたりしないといけなかったのですが、それを自動的に行うための、SQLダンプを表示するためのスキンを書いてみました(そのために、リビジョン61にしました)。

コメント機能を追加 [一般的なこと]

2009年12月25日

SVNリビジョン56で、コメント機能を追加しました。それに伴い、このデモサイトもリビジョン56にアップグレードしました。

XMLをSQLテーブルで利用できるようにしました。view::show_using_query()などを使うと、XMLの内容が自動的に展開されます。また、ExtractValue()とUpdateXML()の2つの関数が、SQLクエリーで使えるようにしました。現在のところこのXMLを利用しているのは、jeans_commentテーブルだけですが、今後他のテーブルでも利用できるように変更するつもりです。jeans_groupテーブルでは追加のデータにjeans_configテーブルを用いていましたが、このXMLを利用するほうがすっきりしそうです。

検索機能を追加 [コード]

2009年12月23日

検索機能はblogクラスに追加しました。blog::var_blog()メソッドの中で、次のようにしています。
		if (self::$narrowby['search'] && isset($_GET['query_text'])) {
			$search=true;
			self::sql_search_compile_query($_GET['query_text']);
		} else $search=false;
		foreach(self::$narrowby as $key=>$value) self::$narrowby[$key]=false;
		// Prepare query and array-data
		$query='SELECT '.
			(略)
			($search ? 'AND libs_blog_search(i.title,i.body,i.more) ':'').
			'ORDER by time DESC '.
			'LIMIT <%limit%> OFFSET <%offset%>';

libs_blog_search(i.title,i.body,i.more)のところ、SQLiteのユーザー定義関数をblog::sql_libs_blog_search()にわりあてて、次のようにしました。

Jeans CMSの特徴(その2) [仕様・規約]

2009年12月23日

先の記事で、Jeans CMSは独立した複数のクラスからなることを説明しました。この特徴から、Jeans CMSの構造に関して、次のようなことが考察できます。

Jeans CMSのコードの中でもっとも複雑な動きをするものは、jeans.phpとview.phpに集約されています。この2つのPHPファイルに加えて、member.php, error.php(そして、デバッグのためのdebug.php)は密に連携しており、Jeans CMSにとって必須といえるものです。ここの部分(と、SQL tableの一部)は、簡易フレームワークと言って良いかもしれません。この、フレームワーク部分を、housekeeping genesになぞらえて、housekeeping Jeansと呼ぶことにします。

これらのhousekeeping Jeansを用いて、CMSとしてのJeansが構築されています。これには、group.php, page.phpなどの一般表示用クラス、admin.php, ticket.phpなどの管理画面用クラス、adminとjeansの2つのスキンが含まれます。このレベルでは、ブログやカテゴリーという概念は存在せず、代わりにグループ・アイテムという概念が存在します(それぞれ、SQL tableとして登録されています)。

このCMSとしてのJeansの上に、ブログツールとしてのJeansが有ります。これには、blog.phpやitem.phpなどのクラスと、defaultスキンが含まれます。

従って、Jeans CMSの派生物を作成する場合、上記の『ブログツールとしてのJeans』もしくは『CMSとしてのJeans』を修正することになるでしょう。そういった修正が容易に行えるように設計されていると思います。

Jeans CMSの特徴 [仕様・規約]

2009年12月23日

Jeans CMSの名は、Genes(遺伝子)から来ています。これはJeansの内部コード(PHPコード)の話で、Jeans全体がいくつかのクラスから形成されていることを象徴しています(クラスを遺伝子に例えています)。このようなクラス分けは、Jeansのコード管理だけでなく、実際に使う際にもスキン変数の命名規則として関係してきます。

スキン変数については別の記事を書くことにして、ここでは、Jeansのコードの特徴について述べます。

デモサイトを始めました。 [一般的なこと]

2009年12月22日

このデモサイトを、12月21日付で始めました。