Jeans CMSのデモ、及び情報発信
インラインスキン機能を追加 [スキン]
2010年3月31日
Jeansのスキンは、機能別に別々のincファイルに記述することで、スキン全体の見通しを良くしようとしていて、基本的には、Nucleusのスキン・テンプレートと同じ概念を採用しています。Jeansにおけるテンプレートとしてのスキンは、Nucleusのテンプレートよりも汎用性が高い作りになっていますが、反面、1-2行の記述で済むテンプレートでも一つのincファイルを用意しないといけないので、そのあたりが煩雑になります。
そこで、SVN183では、スキンの中に別のスキンを記述できるようにしました。数行で収まるような簡単なテンプレートの場合、このようなインラインスキンを記述した方がスキン全体がすっきりします。とりあえず、/skins/admin/edititem.incの33行目付近で使ってみました。
そこで、SVN183では、スキンの中に別のスキンを記述できるようにしました。数行で収まるような簡単なテンプレートの場合、このようなインラインスキンを記述した方がスキン全体がすっきりします。とりあえず、/skins/admin/edititem.incの33行目付近で使ってみました。
WYSIWYGプラグイン用のインタフェースを作成 [プラグイン]
2010年3月26日
SVN177で、WYSIWYGプラグインが作成できるようにしました。まだ、テスト用に作成したプラグイン、jp_NicEditにしか対応していませんが、2-3日うちに複数のWYSIWYGをインストールした状態で、ユーザーごとにどのエディタを用いるのかを選択できるようにします。

WYSIWYGプラグインでは、以下に述べる3つの実装が必要です。
WYSIWYGプラグインでは、以下に述べる3つの実装が必要です。
アイテムの入れ子構造対応について [一般的なこと]
2010年3月23日
管理画面にサイトマップを作成中 [一般的なこと]
2010年3月20日
Concrete5やMODxの管理画面では、コンテンツがツリー表示され、サイトの全体の構成が一目瞭然です。新しくCMSを作成するのなら、やはり、こういった機能も盛り込みたいところです。
まだまだ製作途中ですが、SVN164では、こういった機能をサイトマップとして、導入してみました。バグが少なからずありますが、使い勝手等、感じはつかめると思います。こんな感じになります。

まだまだ製作途中ですが、SVN164では、こういった機能をサイトマップとして、導入してみました。バグが少なからずありますが、使い勝手等、感じはつかめると思います。こんな感じになります。
strftime代替機能 [コード]
2010年3月9日
strftimeがサーバの設定によってさまざまな挙動をするので、Jeansでは代替機能を提供すればどうかというアイデアをいただきました。
そこで、strftimeの代替関数を書いてみました。ポイントとしては、ロケールを指定するのではなく、言語ファイル(skins/jeans/language/japanese.phpなど)で表示する内容を設定するということです。
そこで、strftimeの代替関数を書いてみました。ポイントとしては、ロケールを指定するのではなく、言語ファイル(skins/jeans/language/japanese.phpなど)で表示する内容を設定するということです。
Jeans CMS 0.7.0 alphaを公開 [一般的なこと]
2010年3月3日
バージョン0.7.0を、最初のαバージョンとして、公開しました。以下のリンク先で、ダウンロードできます。
http://sourceforge.jp/projects/jeanscms/releases/
まだαバージョンです。仕様が今後変更される可能性が高いので、ご利用の場合はご注意ください。今のところ、0.8.0にバージョンを上げるときに一度、0.9.0に上げるときにもう一度、SQLテーブル構造の変更を行うことを予定しています。テーブル構造に変化があった場合のアップグレードは少し複雑な手続きになりますので、そういった場合はこのサイトかSourceforgeのフォーラムでご質問くだされば、その方法についての情報提供をできる限りさせていただきます(実際、このブログはそういったやり方でアップグレードを繰り返しています)。
http://sourceforge.jp/projects/jeanscms/releases/
まだαバージョンです。仕様が今後変更される可能性が高いので、ご利用の場合はご注意ください。今のところ、0.8.0にバージョンを上げるときに一度、0.9.0に上げるときにもう一度、SQLテーブル構造の変更を行うことを予定しています。テーブル構造に変化があった場合のアップグレードは少し複雑な手続きになりますので、そういった場合はこのサイトかSourceforgeのフォーラムでご質問くだされば、その方法についての情報提供をできる限りさせていただきます(実際、このブログはそういったやり方でアップグレードを繰り返しています)。
スキンの継承機能を整理 [一般的なこと]
2010年3月2日
スキンの継承機能については、ずいぶん以前から殆どのコードが書きあがっていたのですが、まだ完成していませんでした。今回のバージョン(SVN 147)で細かく見直して、実際に継承が行えるようになりました。
デフォルトスキンを継承するケースについて、簡単に説明します。ここでは例として、default2という名のスキンを作成し、defaultスキンの改変バージョンとして利用するやり方に付いて、取り上げてみます。
defaultスキンでは、head.incにおける記述によってスタイルシート(cssファイル)を指定していますので、head.incを改変し、サイト全体が赤っぽくなるようにしてみます。Nucleusで同様のことをしようとすると、書き換えたhead.incだけでなく、すべてのファイルを含んだスキンを用意し、skinbackup.xmlを書き換える必要がありました。Jeansでは、スキンの継承機能を用いて、より少ない手間でこれを行うことができます。
デフォルトスキンを継承するケースについて、簡単に説明します。ここでは例として、default2という名のスキンを作成し、defaultスキンの改変バージョンとして利用するやり方に付いて、取り上げてみます。
defaultスキンでは、head.incにおける記述によってスタイルシート(cssファイル)を指定していますので、head.incを改変し、サイト全体が赤っぽくなるようにしてみます。Nucleusで同様のことをしようとすると、書き換えたhead.incだけでなく、すべてのファイルを含んだスキンを用意し、skinbackup.xmlを書き換える必要がありました。Jeansでは、スキンの継承機能を用いて、より少ない手間でこれを行うことができます。
0.6.7α [一般的なこと]
2010年2月15日
このデモページを、バージョン0.6.7α(SVNリビジョン135)に上げました。
ロードマップとして挙げた機能を、一通り実装しました。画像のアップロードも、下のとおり、可能です。

ロードマップとして挙げた機能を、一通り実装しました。画像のアップロードも、下のとおり、可能です。
コメント対策プラグインを導入 [一般的なこと]
2010年2月4日
昨日から今日にかけて、一つだけですがスパムコメントを入れられてしまいました。ほうっておくととんでもないことになりそうなので、とりあえずスパム対策だけは行う必要があります。
Nucleusでの経験で、NP_ProtectByMD5がスパム対策にかなり有効であることが分かっていたので、これをJeansに移植し、同時に、プラグイン周りのコードを少し見直しました。
もともとJeansを作ろうと思ったきっかけは、Nucleusのプラグインを書いていたときに、これをもっと楽に書きたいと思ったことでした。で、実際にJeansでプラグインを書いてみると、まずまず書きやすかったです。ほっと一安心です。
今回作成したプラグインは、jp_ProtectByMD5です。機能は、NP_ProtectByMD5とほとんど同じです。Jeansのプラグインがどんなものかに興味ある方は、SVNで閲覧もしくはダウンロードしてみてください。スキンタグ、イベント、多言語化といったテクニックを用いています。
今回のプラグインで用いていないテクニックは、アクションの実行と管理画面です。アクションの方はすでに実装済みで、これはライブラリクラスでのそれと同様に扱えます(static public function action_post_xxxx()を記述するだけ)。管理画面は未実装ですが、とりあえず考えているのは、管理領域にskin.incを用意すればそれをパースするというやり方です。管理領域でもスキンがそのまま使えるので、Nucleusの管理画面よりも作成しやすくなると思います。
Nucleusでの経験で、NP_ProtectByMD5がスパム対策にかなり有効であることが分かっていたので、これをJeansに移植し、同時に、プラグイン周りのコードを少し見直しました。
もともとJeansを作ろうと思ったきっかけは、Nucleusのプラグインを書いていたときに、これをもっと楽に書きたいと思ったことでした。で、実際にJeansでプラグインを書いてみると、まずまず書きやすかったです。ほっと一安心です。
今回作成したプラグインは、jp_ProtectByMD5です。機能は、NP_ProtectByMD5とほとんど同じです。Jeansのプラグインがどんなものかに興味ある方は、SVNで閲覧もしくはダウンロードしてみてください。スキンタグ、イベント、多言語化といったテクニックを用いています。
今回のプラグインで用いていないテクニックは、アクションの実行と管理画面です。アクションの方はすでに実装済みで、これはライブラリクラスでのそれと同様に扱えます(static public function action_post_xxxx()を記述するだけ)。管理画面は未実装ですが、とりあえず考えているのは、管理領域にskin.incを用意すればそれをパースするというやり方です。管理領域でもスキンがそのまま使えるので、Nucleusの管理画面よりも作成しやすくなると思います。
メディアは、DBに保存 [一般的なこと]
2010年2月3日
プラグイン実装部分はほぼ終わって、メール送信機能も作り終えました。現在は、メディアアップロード部分を書いています。色々と考えた結果、Jeans本体では、アップロードされたメディアをDBに保存する事にしました。
動作が軽いツールを目指すのであれば、本来はファイルとして保存して、呼び出す時はApacheから直接(PHPを経由せず)読み込むべきなのですが、DBに入れる形にしたのは、次の理由からです。
1)PHP経由で呼び出すようにしても、jeans.phpとmedia.phpの2つの小さなPHPのパースだけで実装できるため、それほど重くならない。
2)上記の事、eアクセラレータなどを用いればさらに軽くする事が出来る。
3)セキュリティー上の理由で、DBに保存する方が、色々と安心。
4)DBに保存する方法だと、super-adminではないユーザーに画像をアップロードさせるような利用方法が可能。
ファイルに保存するようにしたい場合、別途プラグインを利用する事になると思います。
動作が軽いツールを目指すのであれば、本来はファイルとして保存して、呼び出す時はApacheから直接(PHPを経由せず)読み込むべきなのですが、DBに入れる形にしたのは、次の理由からです。
1)PHP経由で呼び出すようにしても、jeans.phpとmedia.phpの2つの小さなPHPのパースだけで実装できるため、それほど重くならない。
2)上記の事、eアクセラレータなどを用いればさらに軽くする事が出来る。
3)セキュリティー上の理由で、DBに保存する方が、色々と安心。
4)DBに保存する方法だと、super-adminではないユーザーに画像をアップロードさせるような利用方法が可能。
ファイルに保存するようにしたい場合、別途プラグインを利用する事になると思います。