- 2019
- 1 2 3 4 5 6 7 8 9 10 11 12
<<
2010.10
>>
[d3diary開発日記] |
||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 7 | 8 | 9 | |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 19 | 20 | 22 | 23 | ||
24 | 25 | 26 | 28 | 29 | 30 | |
次期開発バージョンのリリース時期
現在開発中の次期開発バージョン、だいぶ進んでほとんど完成に近いのですが、細部で調整したい部分があることと、携帯用テンプレートを整備してから公開したいので、もう少々お待ち下さい。 10月23日にサタデーラボでの発表があるため、その前には公開を目指します。 サタデーナイトラボでの発表をお聞きになりたい方は、上記URLのRyusさんサイトからお申し込みください。 私の発表なんかより、kilicaさんの発表のほうが格段にためになりますから、ぜひどうぞ。
なお、今回のバージョンは、α・βバージョンを飛ばして、いきなり公開します。 但し開発バージョンであることに変わりないので、細かな修正は次期正式版で、となるかもしれません。
では、しばしお待ちを。
d3diary-ver0.12b1
お待たせ致しました。
内部を大幅に変更し、サイドメニューをブロック化したバージョンです。(もちろん、従来のようにメインページ内のサイドメニューも標準で使えます。)
開発版としての位置づけですが、細かな修正以外は正式版リリース候補として、実証サイトで動作中です。
- アップデートの方は、(xoops_root_path)/modules/(d3diary)/cache フォルダの書込権限を確認してください。(「777」「707」等、書き込み権限を与えます。書込権限が無いと、diarylistでのサムネイル画像ランダム表示が出ません。) 従来のバージョンが、このフォルダではなく、 (xoops_root_path)/cacheを使用していたため 今回修正しました
0.12a2 --> 0.12b1 (2010-10-27)
- xsxsのマイページで定数Warningが出ていたのを修正。(thx なおき)
- diarylistブロックの外部ブログ記事の公開エリア画像リンクエラーを修正。
- diarylistページ表示時、サイドメニューをleft/rightどちらかに設定している場合に、表示される共有カテゴリ選択Selectが表示されない不具合の修正。
0.12a1 --> 0.12a2 (2010-10-19)
- php4環境で動作しないバグの修正。(thx river-stone)
- ブロック「b_side_person」のrssフィードリンクに、カテゴリが反映されないバグの修正。
0.11a3 --> 0.12 (2010-10-18)
- リスト表示ロジック最適化修正、SQL最適化。
- d3blogブロックとのObject干渉回避。
- 全ページにbreadcrumbsを設置、管理画面で表示選択可能。
- 親カテゴリ指定の抽出に不具合あり、修正。
- 同一時刻の「前」「次」のリンク修正。
- リスト表示の際に「pagebreak」タグまでをサニタイズ処理を有効なまま表示するようにした。 「pagebreak」の無い記事は、今まで通りの文字数切り詰めを行います。
- グループ権限に、「記事作成編集権限」を追加し、チェックの無いグループメンバーは記事を書けないようにした。
ご注意:必ず管理画面のパーミッション設定を行ってください。そうしないと、記事の作成・編集ができません。 - 各人のコメント「viewcomment」で、過去に遡って全てのコメントをページナビ付きで表示します。
- ユーザー名表示に、ユーザー名/本名選択可能化。管理画面で表示選択可能。各ソース・テンプレート、notification表示対応。
- 各ソースのテンプレート変数アサインを、できるだけ1か所にまとめた。(作業継続中)
- d3diary同士のインポートで、インポートされないフィールドが存在した問題の修正。
- グループ指定、ユーザー指定の表示権限設定・表示制御をカテゴリ設定と各記事フォームに組み込み、管理画面で指定を追加。ユーザー指定はsuggestion機能を組込み。(thx hodaka [d3blog])(thx nao-pon [xp-wiki])
- 管理画面の「カテゴリー毎の権限・外部ブログ設定をON/OFF」「記事毎の権限設定をON/OFF」で有効にして、「パーミッション管理」で適応ユーザーにチェックを入れてください。
- 設定されたページの編集で、グループ指定/メンバー指定の許可設定を選択すると、グループ設定/メンバー設定部分が表示されます。
- 管理者には無条件に許可、ゲストには不許可になります。
- ユーザー指定の場合は、suggestion機能を使用しますので、ユーザー名(本名の場合は本名)の文字を入力して表示される絞り込みリストから選択します。
- otherページ外部ブログ取得時、php4環境で日時がおかしくなるのを修正。(thx haruka)
- 外部ブログ取得用snoopyを最新に入れ替え。
- 共通関数をクラスに移行。クラスコールを、Instance取得としブロックで共通使用とした。(thx nao-pon [xp-wiki])
- 表示権限関連のクラスを独立させ継承し、管理画面で継承設定可能とした。(thx GIJOE [pico])
- 各人サイドメニューの、ブロックへの切出し実施。 各人リスト表示時と、全体表示時の表示制御をブロックOption設定で可能とした。
- デバグ時間組み込み。管理者が重い処理の見極めを可能に。(Xoopsサイトのphpデバグ有効時のみ表示)
- diarylistに月日抽出組込み。外部ブログ記事も表示。
- javascriptは、prototype.js、tag.jsも含めて「trust_path/lib/js/」に格納し、loder.phpでロードする方法に変更。(thx nao-pon [xp-wiki])
- 記事カウンタ組込(ログインユーザーの自分の記事参照時はカウントしない)
- diary Topページアクセス時、記事を執筆済みユーザーの場合は自身のページ、ゲストか未執筆ユーザーはdiarylistにリダイレクト。
- diaryリストページのカテゴリにリンクを追加。(thx OhYeah!)
- 投稿時のHTMLpurifier処理を追加(php5, protectorインストール済環境限定)。適用除外設定を管理画面に追加。(thx GIJOE [pico])
- ニコニコ動画の貼り付けを可能に。
- Preview中の画像アップ・削除周りでバグが散発していたのを、修正。
デモサイト
デモサイトをOPENしました。(2010-10-18)
メンバー登録のうえ、お試しください。
10.23 XOOPS Cubeサタデーラボでの発表
今週末、10月23日、Ryusさん主催のXOOPS Cubeサタデーラボ で、「d3diary開発とコメント統合プチカスタマイズ」と題して、私の発表の場があります。 お時間のある方はぜひどうぞ。(上記Ryusさんのページから要申し込み)
発表概要
発表内容(ほぼ原稿)は、以下になります。よろしくです。
d3diary開発とコメント統合プチカスタマイズ
なーおって、誰?
プロフィール
inc/d3diary報告101023/なーお/private は閲覧制限がかかっているためincludeできません趣味
- 本来の趣味
- オーディオ
(スピーカー製作。プアオーディオ系。PCオーディオ。2009年5月にタモリ倶楽部に出演。こんな手の込んだこともたまに。) - ソフトテニス (高校・大学では2流。今や3流のシニアプレイヤー。)
- オーディオ
- 派生した趣味
- マラソン ベスト:3時間48分59秒(@ホノルル、22歳のとき)
- Linux、PC仮想化(VMware-ESXi)
- 2000年頃: ISDNで自宅サーバー。Holon Linux 2.0(並)、AMD K6-2-200MHz
- 2004年頃: ADSLで自宅サーバー。ACCA-8Mbps、RedhatLinux9、Pentium3-600MHz
- 2006年頃: 仮想化環境で自社サーバー。Flet's-ADSL-40Mbps、VineLinux4+VMware-server1.0+VineLinux4、Pentium4-2.8GHz
- 2008年頃: 仮想化環境で自社サーバー。Flet's-ADSL-40Mbps、Ubuntu-server8.10+VMware-server2.0+VineLinux4、Athron64 X2 4850e
- 2010年春: 仮想化環境で自社サーバー。Flet's-ADSL-40Mbps、VMware-ESXi4.1+CentOS5.5、Athron64 X2 4850e
- web、xoops、プログラミング
- なーおのとことん研究室: 1997年。三菱自動車 GDIエンジン搭載 レグナム購入、高速道路でエンスト(クレーム対応)、負圧計での燃焼モード解析から。
- ブログはじめ: 2005年冬。ココログ(nifty)。
- xoops使用はじめ: 2007年1月(積層スピーカーの会)
- なーお'nWEB (XCL)
- 2008年夏: ブログをココログからd3blogにMT形式データ取込み、HTMLページをpicoに取込み、移行。
- 2009年春: 旧サイトcgi掲示板の全過去ログデータをd3forumに取込み、移行。
- 運用中サイト
(有)モーションクリエイト(仕事)
motion cafe.(仕事)
モバイルテンプハウス(xoops)
集まれ!塩ビ管スピーカーコミュニティ(オーディオ)
Lafesta cafe.(車)
蘇我ミクス/さんぶクラブ別館(ソフトテニス)
みやこどりテニスクラブ(ソフトテニス)
注文住宅と不動産の裏話(友人)
- 本来の趣味
専門・仕事
inc/d3diary報告101023/なーお/business は閲覧制限がかかっているためincludeできませんminidiaryからのフォーク経緯
- matoyan氏作の日記モジュール、minidiary(2008年2月公開)
- 特徴
- mixiライクな見た目とユーザーインターフェース
- マルチユーザー。全員の日記の一覧/各人日記表示、各人カテゴリー
- 画像のアップロード・サムネイル自動生成
- ブロック無しでカレンダーや新着日記、コメントリストをサイドメニュー表示可能。(右側/左側選択可)
- XSNSモジュールと連携した閲覧権限。「友人まで公開」「友人の友人まで公開」
- 外部ブログ機能
- xoops2.0.16a-JPでも動作する
- ☆xoopsモジュールとしては未実装の標準機能がいくつかある → モジュールの勉強として入りやすい
- イベント通知
- 言語ファイル(japaneseのみ。 blockテンプレートには日本語直書き)
- コメント統合
- 特徴
- 2008年8月 minidiaryのハック(差分パック)を公開(なーお)
- d3コメント統合
- イベント通知(AltsysのD3notificationを利用)
- 「この人の日記へのコメントがあったら通知します」 機能って、あまり見かけなかった。
- 日記投稿者一覧ブロック
- d3pipes用のジョイント
d3diary公開とその後
- 2009年6月 d3diary-ver0.02 初版公開
- D3化
- 言語ファイル整備 (japanese, ja-utf8, english)
- 閲覧権限を、カテゴリ毎、日記投稿毎に設定可能
- 外部ブログ機能を、カテゴリに設定可能
- 2010年4月 d3diary-ver0.06
- HTML投稿の可能化
- 2010年5月 d3diary-ver0.08
- メンバー間共有カテゴリ
- 更新PING送信
- MT形式からのインポートスクリプト公開
- 2010年7月 d3diary-ver0.10 (開発版)
- メインページのCSSレイアウト化
- 投稿時の執筆日時指定
- 2010年10月 d3diary-ver0.12 (開発版)
- 共通関数群のobjectインスタンス化
- サイドメニューの個別ブロック化(従来のサイドブロックはデフォで使用可)
- 閲覧権限に、グループ指定、ユーザー指定を追加
- Xoops_breadcrumbsの実装
動作環境
- PHP4.3.x以上、PHP5.1、5.2
- MySQL-4.0.x以上(詳細は未調査)
- コア(実績あり、または検証済みのもの)
- xoops2.0.16a-JP
- JPEx
- ImpressCMS
- Xoops Cube Legacy 2.1、2.2
- 依存モジュール
- Altsys必須 (0.55以上)
- protector推奨 (HTMLpurifier)
- d3forum必須(コメント統合利用時、0.85以上)
d3diary機能紹介(特徴を抜粋)
以下、現時点の最新ver0.12a2(開発版)の内容。 デモサイトを使用してご紹介します。
CSSレイアウト
- テーマの設定色などを極力損なわず、できるだけ継承してそのまま表示する
- CMS Theme Finder の活用
- 日付表示に、BoxDateを採用
- テーマの設定色などを極力損なわず、できるだけ継承してそのまま表示する
カテゴリー
- 各人が自由に自分だけのカテゴリを作れる、マルチユーザーサイト向け
- 但し1記事1カテゴリ
- サブカテゴリは1階層のみ
- カテゴリ操作は面倒
- 共有カテゴリーも作成可能(管理者)、一括絞込み表示可。
- ユーザーによる複数記事選択のカテゴリ移動
- 各人が自由に自分だけのカテゴリを作れる、マルチユーザーサイト向け
外部ブログ
- 外部のブログの最新RSSフィードを自分の日記として表示できる。
- d3pipesのような切り抜き・コメント機能は無い
- カテゴリ1つにつき、1サイト設定可能。
- 同一ドメイン名のRSSを複数カテゴリに設定しても、動作しないので要注意。(MagpieRSSの仕様?)
- 外部のブログの最新RSSフィードを自分の日記として表示できる。
閲覧権限
- 閲覧権限を、カテゴリ毎・日記投稿毎に設定可能
- 友人機能モジュールとの連携 「友人まで」「友人の友人まで」
- グループ指定、ユーザー指定
- ユーザー指定は、xpwikiのsuggestion機能を組込み
その他
- HTML投稿可 (HTMLpurifier除外設定あり)
- コメント統合
- プラグインのcountは、リスト記事分の回数呼ばれるので使用せず、記事と一括してクエリ
- 記事閲覧権限に完全連動
- 実行速度を上げるため、ループ内で呼ばずに済むように、WHERE句の長いSQL文1本に
長いよん [viewcomment.php実行時の例] viewcomment.php実行時の例
赤字:「友人」・「友人の友人」抽出部分
青字:グループ指定・メンバー指定部分"SELECT p.post_id, p.subject, p.post_time, p.uid, p.guest_name, p.unique_path,
t.topic_external_link_id, u.uname, u.name, d.bid, d.cid,
c.cname, c.openarea as openareacat FROM xxx_forum_posts p
INNER JOIN xxx_forum_topics t ON (t.topic_id=p.topic_id AND ! t.topic_invisible )
INNER JOIN xxx_forum_forums f ON (f.forum_id=t.forum_id AND f.forum_id='10')
INNER JOIN xxx_diary3_diary d ON t.topic_external_link_id=d.bid AND d.uid=4
LEFT JOIN xxx_diary3_category c ON (d.uid=c.uid OR c.uid=0) AND d.cid=c.cid
LEFT JOIN xxx_users u ON p.uid=u.uid
LEFT JOIN xxx_diary3_config cfg ON d.uid=cfg.uid
WHERE ! t.topic_invisible AND (d.uid='2' OR (d.openarea <>100 AND ( ( ( ( (d.openarea IN (0,1) )
AND (cfg.openarea IN (0,1) OR cfg.openarea IS NULL) AND (c.openarea IN (0,1) OR c.openarea IS NULL) )
OR ( ( (d.openarea='2' AND (c.openarea<='3' OR c.openarea IS NULL) AND (cfg.openarea<='3' OR cfg.openarea IS NULL) )
OR (c.openarea='2' AND d.openarea<='3' AND (cfg.openarea<='3' OR cfg.openarea IS NULL) )
OR (cfg.openarea='2' AND d.openarea<='3' AND (c.openarea<='3' OR c.openarea IS NULL) ) ) AND d.uid IN (1) )
OR ( ( (d.openarea='3' AND (c.openarea<='3' OR c.openarea IS NULL) AND (cfg.openarea<='3' OR cfg.openarea IS NULL) )
OR (c.openarea='3' AND d.openarea<='3' AND (cfg.openarea<='3' OR cfg.openarea IS NULL) )
OR (cfg.openarea='3' AND d.openarea<='3' AND (c.openarea<='3' OR c.openarea IS NULL) ) ) AND d.uid IN (1,2,3) ) )
OR ( (d.openarea='10' OR d.openarea='20') AND (d.vgids LIKE '%|2|%' OR d.vgids LIKE '%|4|%') )
OR ( (c.openarea='10' OR c.openarea='20') AND (c.vgids LIKE '%|2|%' OR c.vgids LIKE '%|4|%') ) )
OR (d.openarea='20' AND d.vpids LIKE '%|2|%')
OR (c.openarea='20' AND c.vpids LIKE '%|2|%') ) ) )
ORDER BY p.post_time DESC LIMIT 0,50"
- イベント通知
- 「この人の日記へのコメントがあったら通知します」 は、自身へのコメントのみ通知することにも使える
- インポート
- minidiary, d3diaryから
- Movable Type形式テキストファイルから (別途:MT形式からのインポートスクリプト)
- イベント通知
今後の進路?
- 一般機能の追加
- 画像管理: 各人がアップロードした画像を管理
- 管理者は、リンク切れ画像を一括整理
- 画像管理: 各人がアップロードした画像を管理
- ブログモジュール代替として
- 友人連携機能などは残し、ブログモジュールとしても使えるように
- トラックバック 送信/受信
- 友人連携機能などは残し、ブログモジュールとしても使えるように
- 企業ユース向けとして
- 画像以外のファイルアップロード・添付
- 直打ちされても記事閲覧権限に連動させる
- 画像以外のファイルアップロード・添付
- 見切る機能
- マルチカテゴリは煩雑なので実装しない。 タグを上手に使って。
d3コメント統合の、元記事閲覧権限連動ハック
- コメント元のモジュールでユーザー毎やグループ毎の閲覧権限を制御する機能を使うとき、コメントのタイトルやコメント者がd3forum側で表示されてしまうため、ちょっと気持ちが悪いと思ったことがきっかけ。 本来は、これらも隠しておくべきものと考えて作りました。
- このハックには、ゲスト名がアサインされていなかったページへのゲスト名表示も可能になっています。
- 私は多くのサイトですぐに使えるように、このハックを常に利用していますが、それとは別にwyeさんが作って下さった、d3コメント統合の、元記事閲覧権限連動ハック Plugin版 もあります。
コメント統合でブロックから元記事へリンク
- フォーラムのブロックで、リンクの飛び先を コメント元記事ページに変更するためのハックです。
- d3diary同梱のコメント統合ブロック(posts,topics共)には既に仕込み済みですので、それを使えば本ハックは適用不要です。 但し、d3diaryのコメントフォーラム以外のフォーラムを混合表示した場合には、それら他のモジュールへのジャンプ先は、テンプレート編集で変更する必要があります。
- d3forum_comment_listposts_flat.html テンプレートの変更反映は、上記d3diary同梱ブロック使用時も必要です。
d3forum側で統合コメントのツリー全表示
- コメント統合で付いたコメント。 質問内容が変わったりしてトピック分けしたりすると、d3forum側で「このトピックの投稿一覧へ」で閲覧してもトピック内の投稿しか表示されないため、同じ元記事に紐付いた他のトピックの投稿に気づかない。 これを何とかしたかった。
- その対策として、「このトピックの投稿一覧へ」を表示したときに、他のトピも含めてツリーを表示することにしました。
- smartyプラグイン「function.d3comment_tree.php」と、テンプレート編集で装備可能。
(未実施)今後何とかしたいこと
- Topics内投稿一覧のページ分割。 件数が50件くらいになると、重くて仕方がない。
- 作者のGIJOEさんが作成中だった名残がコードにあるけど、「子投稿1.1」あたりの処理との絡みが出そうで、少し面倒な予感。
- モジュールCSSが、テーマ色・文字プロパティを反映しない件
- XCLテンプレート標準でどなたかが対応いただけることを期待。
- 今後のd3forumのメンテ・バージョンアップは誰が?
- Topics内投稿一覧のページ分割。 件数が50件くらいになると、重くて仕方がない。
謝辞
- minidairyの作者、matoyan氏には、minidiaryフォーク版公開に快諾いただきありがとうござます。
- GIJOE氏、nao-pon氏、hodaka氏、kilica氏、ほかソースを参考にさせていただきました。ありがとうございます。
d3diary-ver0.12b3
0.12b2 --> 0.12b3 (2010/11/02)
- RSSフィードにATOMを追加、全文配信はコメントとした。(thx OhYeah)
- カテゴリ編集のSUBチェックBOXのchecked表示の不具合を修正。
0.12b1 --> 0.12b2 (2010-10-31)
- RDFフィードをテンプレート化し、RSS2.0も配信可能とした。文字化け対応のエンコード選択を管理画面に追加。モジュールアップデート必須。root_path側のimagesフォルダ内画像追加。(thx OhYeah)
- mb_stringの無い環境でも設置可能なように、mb_stringのemulatorをtrust側に用意。nao-ponさんのhypcommon_funcを実装済みのサイトでは、上書き不要。(thx nao-pon)
- d3pipesモジュール用のパイプblockファイルは、アーカイブ中のextrasフォルダに移動。
- attachfileモジュールのプラグインをextrasフォルダとtrust側のincludeフォルダに追加。アップロード権限・ダウンロード権限夫々、編集権限・記事閲覧権限に連動。 テンプレート「edit.html」「detail.html」内のコメントアウト各1か所を解除すれば有効になります。
デモサイト
デモサイトをOPENしました。(2010-10-18)
メンバー登録のうえ、お試しください。