なーお'nWEB
Theme
Auto
Light
Dark
|
新規
一覧
検索
最新
ヘルプ
ページへ戻る
複製
履歴
印刷
d3diary開発とコメント統合プチカスタマイズ
のソース
xpwiki
:
inc
/
d3diary報告101023
のソース
差分
を表示
inc/d3diary報告101023
へ行く。
« Prev
* d3diary開発とコメント統合プチカスタマイズ [#ae385200] ** なーおって、誰? [#nf682460] #include(./なーお,notitle) ** d3diary開発経過 [#j7679f01] *** minidiaryからのフォーク経緯 [#o286e4bf] - matoyan氏作の日記モジュール、[[minidiary:http://www.yamareco.com/weblog/xoops/]](2008年2月公開) -- 特徴 --- mixiライクな見た目とユーザーインターフェース --- マルチユーザー。全員の日記の一覧/各人日記表示、各人カテゴリー --- 画像のアップロード・サムネイル自動生成 --- ブロック無しでカレンダーや新着日記、コメントリストをサイドメニュー表示可能。(右側/左側選択可) --- XSNSモジュールと連携した閲覧権限。「友人まで公開」「友人の友人まで公開」 --- 外部ブログ機能 --- xoops2.0.16a-JPでも動作する -- ☆xoopsモジュールとしては未実装の標準機能がいくつかある → モジュールの勉強として入りやすい --- イベント通知 --- 言語ファイル(japaneseのみ。 blockテンプレートには日本語直書き) --- コメント統合 - 2008年8月 minidiaryの[[ハック(差分パック)を公開:http:///modules/plactice/index.php/home/hobby/xoops/minidiary_014a.htm]](なーお) -- d3コメント統合 -- イベント通知(AltsysのD3notificationを利用) --- 「この人の日記へのコメントがあったら通知します」 機能って、あまり見かけなかった。 -- 日記投稿者一覧ブロック -- d3pipes用のジョイント *** d3diary公開とその後 [#a158b93f] - 2009年6月 d3diary-ver0.02 初版公開 -- D3化 -- 言語ファイル整備 (japanese, ja-utf8, english) -- 閲覧権限を、カテゴリ毎、日記投稿毎に設定可能 -- 外部ブログ機能を、カテゴリに設定可能 - 2010年4月 d3diary-ver0.06 -- HTML投稿の可能化 - 2010年5月 d3diary-ver0.08 -- メンバー間共有カテゴリ -- 更新PING送信 -- [[MT形式からのインポートスクリプト:http:///modules/plactice/index.php/home/hobby/xoops/mt_d3diary.htm]]公開 - 2010年7月 d3diary-ver0.10 (開発版) -- メインページのCSSレイアウト化 -- 投稿時の執筆日時指定 - 2010年10月 d3diary-ver0.12 (開発版) -- 共通関数群のobjectインスタンス化 -- サイドメニューの個別ブロック化(従来のサイドブロックはデフォで使用可) -- 閲覧権限に、グループ指定、ユーザー指定を追加 -- Xoops_breadcrumbsの実装 ** 動作環境 [#v4343c03] - 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機能紹介(特徴を抜粋) [#sb244717] 以下、現時点の最新ver0.12a2(開発版)の内容。 [[デモサイト:http://d3diary.naaon.com/]]を使用してご紹介します。 *** サイドメニュー(minidiary由来) [#p4c2cbb1] -- ブロックを使用しなくても、各人メニュー・新着情報を表示可能 -- 表示位置(左/右)、非表示を選択可 --- 管理画面に表示幅設定あり *** CSSレイアウト [#sd676bbb] -- テーマの設定色などを極力損なわず、できるだけ継承してそのまま表示する --- [[CMS Theme Finder:http://cmsthemefinder.com/]] の活用 -- 日付表示に、BoxDateを採用 *** カテゴリー [#s43d5f8e] -- 各人が自由に自分だけのカテゴリを作れる、マルチユーザーサイト向け --- 但し1記事1カテゴリ --- サブカテゴリは1階層のみ --- カテゴリ操作は面倒 -- 共有カテゴリーも作成可能(管理者)、一括絞込み表示可。 -- ユーザーによる複数記事選択のカテゴリ移動 *** タグ [#w1a4924f] -- でブクマ君のソースを参考にしたタグ --- 自分のタグ/全タグ から選択・解除 --- 自分のタグ/全タグ タググラウド切替え -- カテゴリー AND タグ での複合絞り込み *** 外部ブログ [#r3d13d4d] -- 外部のブログの最新RSSフィードを自分の日記として表示できる。 --- d3pipesのような切り抜き・コメント機能は無い -- カテゴリ1つにつき、1サイト設定可能。 --- 同一ドメイン名のRSSを複数カテゴリに設定しても、動作しないので要注意。(MagpieRSSの仕様?) *** 閲覧権限 [#re0a4c1c] -- 閲覧権限を、カテゴリ毎・日記投稿毎に設定可能 -- 友人機能モジュールとの連携 「友人まで」「友人の友人まで」 -- グループ指定、ユーザー指定 --- ユーザー指定は、xpwikiのsuggestion機能を組込み *** その他 [#b9539159] -- HTML投稿可 (HTMLpurifier除外設定あり) -- コメント統合 --- プラグインのcountは、リスト記事分の回数呼ばれるので使用せず、記事と一括してクエリ --- 記事閲覧権限に完全連動 --- 実行速度を上げるため、ループ内で呼ばずに済むように、WHERE句の長いSQL文1本に #region(長いよん [viewcomment.php実行時の例]){{ viewcomment.php実行時の例 &font(Red){赤字:「友人」・「友人の友人」抽出部分}; &font(Blue){青字:グループ指定・メンバー指定部分}; "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) ) &font(Red){OR ( ( (d.openarea='2' AND (c.openarea<='3' OR c.openarea IS NULL) AND (cfg.openarea<='3' OR cfg.openarea IS NULL) ) &br;OR (c.openarea='2' AND d.openarea<='3' AND (cfg.openarea<='3' OR cfg.openarea IS NULL) ) &br;OR (cfg.openarea='2' AND d.openarea<='3' AND (c.openarea<='3' OR c.openarea IS NULL) ) ) AND '''''d.uid IN (1)''''' ) &br;OR ( ( (d.openarea='3' AND (c.openarea<='3' OR c.openarea IS NULL) AND (cfg.openarea<='3' OR cfg.openarea IS NULL) ) &br;OR (c.openarea='3' AND d.openarea<='3' AND (cfg.openarea<='3' OR cfg.openarea IS NULL) ) &br;OR (cfg.openarea='3' AND d.openarea<='3' AND (c.openarea<='3' OR c.openarea IS NULL) ) ) AND '''''d.uid IN (1,2,3)''''' ) )}; &font(Blue){OR ( (d.openarea='10' OR d.openarea='20') AND (d.vgids LIKE '%|2|%' OR d.vgids LIKE '%|4|%') ) &br;OR ( (c.openarea='10' OR c.openarea='20') AND (c.vgids LIKE '%|2|%' OR c.vgids LIKE '%|4|%') ) ) &br;OR (d.openarea='20' AND d.vpids LIKE '%|2|%') &br;OR (c.openarea='20' AND c.vpids LIKE '%|2|%') )}; ) ) ORDER BY p.post_time DESC LIMIT 0,50" }} -- イベント通知 --- 「この人の日記へのコメントがあったら通知します」 は、自身へのコメントのみ通知することにも使える -- インポート --- minidiary, d3diaryから --- Movable Type形式テキストファイルから (別途:[[MT形式からのインポートスクリプト:http:///modules/plactice/index.php/home/hobby/xoops/mt_d3diary.htm]]) ** 今後の進路? [#h046f085] - 一般機能の追加 -- 画像管理: 各人がアップロードした画像を管理 --- 管理者は、リンク切れ画像を一括整理 - ブログモジュール代替として -- 友人連携機能などは残し、ブログモジュールとしても使えるように --- トラックバック 送信/受信 - 企業ユース向けとして -- 画像以外のファイルアップロード・添付 --- 直打ちされても記事閲覧権限に連動させる - 見切る機能 -- マルチカテゴリは煩雑なので実装しない。 タグを上手に使って。 ** コメント統合のプチカスタマイズ [#lebfbca0] *** d3コメント統合の、元記事閲覧権限連動ハック [#jad09d57] -- コメント元のモジュールでユーザー毎やグループ毎の閲覧権限を制御する機能を使うとき、コメントのタイトルやコメント者がd3forum側で表示されてしまうため、ちょっと気持ちが悪いと思ったことがきっかけ。 本来は、これらも隠しておくべきものと考えて作りました。 -- このハックには、ゲスト名がアサインされていなかったページへのゲスト名表示も可能になっています。 -- 私は多くのサイトですぐに使えるように、このハックを常に利用していますが、それとは別にwyeさんが作って下さった、d3コメント統合の、元記事閲覧権限連動ハック Plugin版 もあります。 *** コメント統合でブロックから元記事へリンク [#x027a0b6] -- フォーラムのブロックで、リンクの飛び先を コメント元記事ページに変更するためのハックです。 -- d3diary同梱のコメント統合ブロック(posts,topics共)には既に仕込み済みですので、それを使えば本ハックは適用不要です。 但し、d3diaryのコメントフォーラム以外のフォーラムを混合表示した場合には、それら他のモジュールへのジャンプ先は、テンプレート編集で変更する必要があります。 -- d3forum_comment_listposts_flat.html テンプレートの変更反映は、上記d3diary同梱ブロック使用時も必要です。 *** d3forum側で統合コメントのツリー全表示 [#u6b2e658] -- コメント統合で付いたコメント。 質問内容が変わったりしてトピック分けしたりすると、d3forum側で「このトピックの投稿一覧へ」で閲覧してもトピック内の投稿しか表示されないため、同じ元記事に紐付いた他のトピックの投稿に気づかない。 これを何とかしたかった。 -- その対策として、「このトピックの投稿一覧へ」を表示したときに、他のトピも含めてツリーを表示することにしました。 --- smartyプラグイン「function.d3comment_tree.php」と、テンプレート編集で装備可能。 *** (未実施)今後何とかしたいこと [#eedff0a6] -- Topics内投稿一覧のページ分割。 件数が50件くらいになると、重くて仕方がない。 --- 作者のGIJOEさんが作成中だった名残がコードにあるけど、「子投稿1.1」あたりの処理との絡みが出そうで、少し面倒な予感。 -- モジュールCSSが、テーマ色・文字プロパティを反映しない件 --- XCLテンプレート標準でどなたかが対応いただけることを期待。 -- 今後のd3forumのメンテ・バージョンアップは誰が? ** 謝辞 [#s98d5481] -- minidairyの作者、matoyan氏には、minidiaryフォーク版公開に快諾いただきありがとうござます。 -- GIJOE氏、nao-pon氏、hodaka氏、kilica氏、ほかソースを参考にさせていただきました。ありがとうございます。
« Prev
inc/d3diary報告101023 のバックアップソース(No. All)
現: 2026-08-13 (木) 08:56:06
なーお
ぺージ情報
ぺージ名 :
inc/d3diary報告101023
ページ別名 :
未設定
ページ作成 :
なーお
閲覧可
グループ :
すべての訪問者
ユーザー :
すべての訪問者
編集可
グループ :
なし
ユーザー :
なーお
Counter: 18, today: 1, yesterday: 0