Forums: Open Discussion (Thread #25624)

Jeans CMS ver 0.7.0 alphaについてのバグ報告・仕様希望 (2010-03-05 05:03 by kmorimatsu #49178)

Jeans CMS ver 0.7.0 alphaでのバグや、今後の仕様などについて議論したいと思います。

現在のまでに挙げられたバグ・仕様希望は以下の通り。

・新規グループ作成時に Notice: Undefined index: xml in C: 省略 admin_group.php on line 96 と。

・表のアイテムの日付表示が2010年03月%d日となってました。管理画面は問題ないです。環境:WinXP XAMPP、PHP5.3.1

・これってサーバのロケール設定に依存してstrftimeまんまだと限界あるんですよね。諸々を吸収するjeans_strftimeみたいなの希望。

・「あなたのサイト」のURL末尾はスラッシュで終わらないと受け付けてくれないんですね。

・「このブログのデフォルトアイテム」「このカテゴリーのデフォルトアイテム」みたいなのを設定できると、専用のブログを作らず通常のスキンに<%item(テンプレート名)%>と書くだけで済んでシンプルかも。

・すべてのページを個別アイテムとして作ることもできると個人的には嬉しいです。

・通常のブログモードを逸脱したアイテムが欲しくなります。StickyItemしかり。ドラフトアイテムみたいな「リスティングには出さない」フラグですかね? 

・ブログであれアイテムであれ、リスト出力側でマスクID指定するより、元からフラグ持ってたほうがクエリがシンプルになるように思います

・ドラフトとアイテム非表示はユーザー側としては文脈を分けた方が良いので、ブログ側に非表示フラグがあればいいだけかもしれません

・非公開とドラフトはそれぞれ使い道は別だなあと思ったんです

RE: Jeans CMS ver 0.7.0 alphaについてのバグ報告・仕様希望 (2010-03-05 17:07 by kyms #49191)

●サーバのロケール設定に依存してstrftimeまんまだと限界

覚えてる範囲ですが。ロケールまわりのコンパイル元?のCライブラリの仕様に依存するとかで、実際にどういう条件で問題が起きるかを調べるのは困難。と聞いてます。変なタイミングで文字化けしたり%文字が展開されなかったりするのは、そういう理由のため防ぐのが難しい。あとstrftimeは「8月」「2日」など、ゼロサプレスな書式指定ができなくて、些細なことですが特に商用でサイトを作る時には気にされることがあります。かといってdate関数しか選択肢がないというのも・・というわけで、安心して使えるstrftime代替があるとよいなと思いました。

●すべてのページを個別アイテムとして

汎用CMSとして見れば、任意のカテゴリーなどを<%blog%>などでアイテム一覧するのは、スキンタイプに依存する必要はないんじゃないかという気がします。<%blog%>さえ呼び出せたらブログも普通に作れますし。ただし配布スキンを適用可能な普通のブログを運用したい場合は、サイト(ブログ)全体が複数のスキンタイプを利用して論理的に構成されてないと都合が悪いかもしれませんが。

すべてのページを個別アイテムとして見なすのは、知ってる中ではMODxとconcrete5がそうなってます。MODxは上記のような理由で、ブログ用のテンプレートを作って配布することができません。

●非公開とドラフトはそれぞれ使い道は別

非公開・ドラフト・一時保存・リビジョンデータの4種が思いつきます。Nucleusではドラフトと一時保存が共用になってて混乱してる気がします。
Reply to #49178

RE: Jeans CMS ver 0.7.0 alphaについてのバグ報告・仕様希望 (2010-03-06 06:12 by kmorimatsu #49200)

strftime問題ですが、PHPのstrftime()関数とdate()関数の仕様書を眺めて比べてみました。strftime()関数にほぼ互換のものをJeansで用意できそうです(殆ど使わないであろう二つ三つの機能を除く)。曜日と月の表示は、ロケールの指定ではなくて、言語ファイル(skins/jeans/language/japanese.phpなど)で指定する方法を考えています。

汎用CMSとしての機能とブログ型CMSとしての機能についての部分、現行のままでもかなりフレキシブルにできます。このあたり、まだドキュメントができていないので想像しづらいところがあると思います。今後議論をしっかり行って行きたいところです。

非公開フラグは、1ビットではなく多ビットにして、いくつかの状態を取りうる方法かなと考えています。jeans_group、jeans_item(もしかしたら、jeans_commentも)の両方のテーブルに、導入したいです。
Reply to #49191

RE: Jeans CMS ver 0.7.0 alphaについてのバグ報告・仕様希望 (2010-03-06 13:26 by kyms #49203)

その他、キャッシュの仕様がしっかり定まっているとよいなと思いました。Jeansに関しては高度な実装になるらしいことを以前に聞いたことがあるので興味があります。

スキンを書く側としては、スキン変数単位でキャッシュする・しないを簡単に選べるとよいなと思います。
Reply to #49200

RE: Jeans CMS ver 0.7.0 alphaについてのバグ報告・仕様希望 (2010-03-09 04:55 by kmorimatsu #49305)

スキンタグ単位でのキャッシュですね。考えてみます。

スキンをコンパイルするときにタグをPHPコードに置き換えているのですが、ここで代わりに、キャッシュされた内容に置き換えるなどできるかもしれません。ただ、こういったコードを導入することで通常の動作が遅くならないようにできるならばという条件付になりますが。

現在のところ、スキンファイル(*.inc)単位でのキャッシュがプラグインで可能になるようには、できると思います。そのあたりのイベントを考えてみます。

いずれにせよ、キャッシュはプラグイン、もしくは追加のライブラリで実装できれば、それが一番よいです。本体側でそういったプラグイン用のイベントをうまく用意できたらと思います。
Reply to #49203

strftimeの件 (2010-03-09 10:14 by kmorimatsu #49314)

strftimeの件についての対処の仕方、こんなことを考えています。
http://jeanscms.sourceforge.jp/index.php?itemid=26

strftime()関数とほぼ同じ機能のものをJeansで用意し、ロケールの指定の代わりに言語ファイルで表示の仕方を指定するやり方です。
Reply to #49191

RE: strftimeの件 (2010-03-09 13:44 by kyms #49317)

言語ファイルだとカスタマイズもしやすくてよいですね。

http://www.linux.or.jp/JM/html/LDP_man-pages/man3/strftime.3.html
ゼロサプレス出力は、%-m月というふうに「-」という修飾子を使うことになってるみたいです。Linux限定で、Windowsだと#だったような気がします。このへんの差異も関数側で巻き取れるとスマートだと思います。
Reply to #49314

RE: strftimeの件 (2010-03-14 15:19 by kmorimatsu #49441)

SVN159で、サポートしました。strftimeは、PHP供給のものは使用せず、独自にコードを書いています。なので、使用するサーバー環境によって異なる結果を生み出したりすることはなくなりました。

先に述べたとおり、ロケールの指定は言語ファイルを通じて行っています。もし、言語ファイルと異なったロケール指定にしたい場合は、プラグインを用いてこれを解決することができます。

用意したスキンタグは、4つです:<%view.strftime%> <%view.date%> <%date%> <%date.strftime%>

<%view.strftime%>と<%date.strftime%>、あるいは<%view.date%>と<%date%>の違いは、フォーマットの指定にテンプレートを使うか、タグの引数に直接記述するかです。
Reply to #49317