トップ  >  趣味の部屋  >  XOOPSサイト構築  >  d3commentハック  >  minidiary d3コメント選択対応とd3commentクラス
xoops d3forum コメント統合

更新情報

  • 09/05/10: 投稿者一覧ブロックを実装、ver-14d2してアップしました。アップデート後、テンプレート更新が必要です。 d3pipes用のジョイントを同梱。
  • 09/03/31: イベント通知機能を組込み、ver-14dとしてアップしました。アップデート後、テンプレート更新が必要です。
  • 09/03/21: d3forum-0,85のコメント統合設定機能アップを反映し、ver-14cとしてアップしました。
  • 08/09/06: コメント統合クラスの閲覧権限連動と、コメント一覧のブログ執筆者連動を織り込んだ、ver-14b1に差し替えました。 以前のバージョンをご使用の方は、アップグレードを推奨します。

概要 anchor.png

以前より、minidiaryモジュール をコメント統合で使いたいとは思っていましたが、D3コメントクラスを書く時間がようやく取れたので、minidiary-ver0.14をベースに手を入れてみました。

  1.  D3コメントクラスです。 一応、こんな風に表示されます。
    yd_d3com_class.gif
     (08/09/07 ver-b1変更) 権限チェック~リダイレクトを組み込みました。 参考にした記事は、こちら(XUGJ)
     (ご注意:)d3forumの投稿一覧表示などには、タイトル・投稿者などが表示されますが、それをクリックしても本分要旨やコメントが表示されずにリダイレクトされます。

  2.  コメント統合先のd3forumディレクトリ名・フォーラムid値は、d3blog (08/09/07変更)d3pipesのコメント統合を参考に、minidiaryの管理画面でmodule_configに保存する方式としました。 そして、コメント統合のクラスはd3forum-0.83a以降で実装された新方式(「d3comment」で呼ぶほう)を採用しています。 また、D3commentクラス内でforum_idまで認識するため、テンプレート内に記述する必要がありません。
     こうすることで、複数サイトを共有化している場合でも、携帯用のテンプレートを共通化できますし、テンプレート配布の際にも神経を使わずに済みます。

  3.  コメント一覧ブロックは、xugj_blockで実装しています。(参考記事:thx さやさんのコメント13)
      (08/09/07 ver-b1変更) 「表示中の執筆者へのコメントを絞り込んで表示」を実装しました。

  4.  イベント通知機能を組み込みました。(2009/4/1) コメント通知まで元記事の閲覧権限(XSNS連携:友人まで、友人の友人まで)に対応しています。(AltsysのD3notificationクラスを使用)
    • 日記全体の新規記事投稿があったとき
    • 特定の人(ユーザー)の新規記事投稿があったとき
    • 特定の人(ユーザー)の記事にコメントがあったとき
    • 特定の記事にコメントがあったとき
       にイベント通知が行われます。
       コメントの通知を使う場合は、管理画面の「コメント投稿に関するルール」を「コメントに承認は必要ない」に設定して下さい。 なお、d3forumコメント統合での確認のみ行っています。 従来のxoopsコメントでは動作しないかもしれませんので、ご容赦願います。
  5.  投稿者一覧ブロックを実装しました。その他、細かな修正等実施。 (2009/5/10)
  6.  d3pipesのジョントブロックを作成し同梱しました。(2009/5/10)

手順と方法 anchor.png

minidiary-0.14d2としてminidiary-0.14との差分ファイルと、d3forumのブロック関数関連の追加ファイル、d3commentのAPI、xugj_blockも同梱して固めたファイルを、ここに置いておきますのでご使用ください。 解凍後、夫々のフォルダにアップロードして使えます。

fileminidiary014d3_diff.zip 最新
(09/06/10 ver-d3変更):ver-d2でイベント通知のファイルが抜けていました。(thx Tetsuさん)
d3forum0.85~
Altsys必須
fileminidiary014d2_diff.zip
(09/05/10 ver-d2変更):投稿者一覧ブロックを組込み。テンプレート更新要
d3pipes内部ジョイントを新規作成し同梱
d3forum0.85~
Altsys必須
fileminidiary014d_diff.zip
(09/03/31 ver-d変更):イベント通知機能を組込み。テンプレート更新要
d3forum0.85~
Altsys必須
fileminidiary014c_diff.zip
(09/03/21 ver-c変更):コメント昇順/降順設定、最大表示数設定を反映。
d3forum0.85~
fileminidiary014b2_diff.zip
(08/09/22 ver-b2変更):
xoops2.0.16a-JPでの不具合対応のため、以前のバージョンからは全て上書き要
d3forum0.84以前
ディレクトリ構造 anchor.png
  • 差分ファイルは、以下のディレクトリ構造です。
    (追記)html/modules/(d3forum)/blocks/blocks_bcomment.php の(d3forum)部分は、運用サイトのコメント統合するd3forumのディレクトリに放り込んでください。 (thx saya_07さん)
html (XOOPS_ROOT_PATH)
├─class
│    └smarty
│       └plugins
│               function.d3comment.php
│               function.d3forum_comment.php
│               function.d3forum_comment_postscount.php
│               function.d3forum_comment_topicscount.php
│               function.xugj_block.php
│
└─modules
    │ └(d3forum)
    │    └blocks
    │           blocks_bcomment.php
    │
    └─minidiary
         │      detail.php
         │      diarylist.php
         │      edit.php
         │      functions.php
         │      header.php
         │      index.php
         │      viewcomment.php
         │      xoops_version.php
         │
         ├blocks
         │      b_bloggerlist.php
         │      b_diarylist.php
         │
         ├class
         │      minidiaryD3commentContent.class.php
         │
         ├include
         │      notification.inc.php
         │
         ├language
         │ └japanese
         │     │ modinfo.php
         │     │
         │   └mail_template
         │      blogger_comment_notify.tpl
         │      blogger_newentry_notify.tpl
         │      global_newentry_notify.tpl
         └templates
            │   yd_bloggerlist.html
            │   yd_detail.html
            │   yd_diarylist.html
            │   yd_index.html
            │   yd_rightarea.html
            │
            └blocks
                 b_diarylist.html
trust (XOOPS_TRUST_PATH)
└─modules
    ├ d3forum
    │ │     blocks_bcomment.php
    │ │
    │ └blocks
    │          block_functions_bcomment.php
  └ d3pipesm
      └joints
        └block
              D3pipesBlockMinidiarylist.class.php

xugj_blockの準備 anchor.png

 xugj_blockを使います。 上記差分パックを使うか、別途入手はこちら(PEEK XOOPS)、 → 「xoops_root_path/class/smarty/plugins/」内にファイル名「function.xugj_block.php」で保存します。
 解説はこちら(XFIELD TWCHNOTE)を参照いただければわかります。

d3forumのブロック関連追加ファイル anchor.png

 日記への統合コメント一覧で日記執筆者へのコメントの絞込処理の実装のため、d3forumの差分ファイルをアップする必要があります。 d3forum本体のアップデートで上書きされないように、別ファイルとしてあります。 上記差分パックから忘れずにアップしてください。 なお、html側のmodules/(d3forum) ディレクトリ名は、実際のインストールディレクトリ名のところにアップします。
 

D3commentクラス anchor.png

 D3commentクラスは、上記差分ファイルからか下記ファイルをダウンロード後、「minidiary/class」内にアップロードして使用します。

 当然ながら、d3forumの方にコメント統合用に掲示板を追加し、(必要があれば)過去のxoopsコメントをインポート後、「コメント統合時の参照方法」に

minidiary::minidiaryD3commentContent::

と記載します。
 なお、d3forumは0.84以降のバージョンが必須、0.85推奨で、D3commentの最新のAPIクラス群(差分パックにも同梱)を忘れずにアップして下さい。

minidiaryソースの変更 anchor.png

 多くのソースファイルに手を入れます。(差分パックをご使用ください。)

 ソース説明も省略します。

テンプレートの編集 anchor.png

 テンプレートを5つ6つ変更しています。 モジュールアップデート後、Altsysなどで必要に応じて編集してください。
 

モバイル用テンプレート anchor.png

 モバイルテンプハウスで、作成・公開済。 ver0.14dへの対応のため、モバイル用テンプレートもアップグレードが必要です。

インストールと設定 anchor.png

 xoops管理画面の「モジュールの管理」で、「minidiary」をモジュールアップデートします。 これで、「minidiary」の管理画面に、7つの項目 (09/03/31:イベント通知機能組込)が追加されます。

d3com_yd_event2.gif

ここで、

  1. コメント統合するd3forumのdirname : d3forumのコメント統合機能を使用する場合はd3forumのhtml側ディレクトリ名を指定します。xoopsコメントを使用する場合やコメント機能を無効にする場合は空欄です。
  2. コメント統合するフォーラムの番号 : コメント統合を選択した場合、統合先のforum_id値を必ず指定してください。
  3. コメント統合の表示順序 : フラット表示の時の表示順序(古いものから/新しいものから)します。
  4. コメント統合の表示方法 : フラット表示かスレッド表示かを選択します。
  5. コメント統合のフラット表示における最大表示件数 : フラット表示の時の最大件数を指定します。
  6. コメント投稿に関するルール : 記事毎のコメントのイベント通知を行う場合は、「コメントに承認は必要ない」とします。
  7. イベント通知機能の設定 : 表示する部分を選択します。
  8. 特定イベントを有効にする : イベント表示するものだけを選択します。

これらを設定すれば完了です。(この編集を行うまでは、xoopsコメントシステムが有効です。)

ユーザーによるイベント通知設定 anchor.png

もちろん、イベント通知は実際に記事や執筆者などに対して、ユーザー自身に各ページで適宜設定してもらってください。

d3com_yd_event1.gif

投稿者一覧ブロックの設定 anchor.png

 XOOPS管理画面やAltsysで、「日記投稿者一覧」ブロックを有効にしてください。
 なお、このブロックを使用せずに、minidiaryのサイド表示内に表示したい場合は、rightarea.htmlテンプレートの最後の方にコメントアウトした記述を、お好きな場所に挿入してください。

その他 anchor.png

ライセンス anchor.png

  • minidiaryソース、d3forumソース、xugj_blockソース:GPL
  • アイコン画像について
    minidiaryモジュールでは以下のサイトのアイコンや画像ファイルを利用しています。

famfamfam.com: Silk Icons
http://www.famfamfam.com/lab/icons/silk/


実体ファイル:inc/yd_d3com_d
旧バージョン:inc/yd_d3com_b
旧バージョン:inc/yd_d3com
関連記事:
Tag: コメント統合

プリンタ用画面
投票数:81 平均点:6.17
カテゴリートップ
d3commentハック
次
Xwords d3コメント選択対応とd3commentクラス

コメント一覧

投稿ツリー

トピック


なーお  投稿日時 2008/8/28 11:44 | 最終変更

テンプレート「yd_detail.html」に未修正がありました。「minidiary014a.zip」をダウンロードした方は、
「yd_detail.html」の84行目を

    <{d3comment mydirname='minidiary' id=$yd_data.bid subject=$yd_data.title class="minidiaryD3commentContent}>

に修正下さい。

なーお  投稿日時 2008/8/30 11:12 | 最終変更

テンプレート「yd_rightarea.html」に未修正がありました。「minidiary014a.zip」「minidiary014a1.zip」をダウンロードした方は、
「yd_rightarea.html」の53行目を

   <{xugj_block file=modules/`$yd_moduleConfig.com_agent`/blocks/blocks.php func="b_d3forum_list_posts_show" opt="`$yd_moduleConfig.com_agent`,10,time,,,`$yd_moduleConfig.com_agent_forumid`" item="block"}>

に修正下さい。

masahiro   投稿日時 2008/8/30 17:57

なーお様、はじめまして。

minidiary014a2_diff.zipをダウンロードさせて頂きminidiaryを0.12からアップデートしたところ、日記一覧は正常に表示されますが個別の日記が正しく表示されなくなりました。
説明はちょっと難しいですが、メインメニューなどが表示されず、ソースファイルを見ると<head>タグなども出力されていません。

PHPデバグをオンにしたところ以下のエラーが表示されました。
Fatal error: Call to a member function on a non-object in XOOPS_TRUST_PATH/modules/d3forum/blocks/block_functions.php on line 356

環境は、
PHP 4.4.9
MySQL 4.0.27
Apache 1.3.41
XOOPS Cube Legacy 2.1.5
d3forum 0.84
になります。

トラブルの原因がお分かりになりましたらご教授願えないでしょうか。
よろしくお願い致します。

なーお  投稿日時 2008/8/30 18:10 | 最終変更

masahiroさん、こんにちは。

まずは、一旦minidiary0.14にアップしてから、差分ファイルを当ててみてください。 説明不足ですみません。

もしかすると、「html/class/smarty/plugins/」フォルダ内の、「function.d3comment.php」をアップし忘れたりしていませんか?

あと、テンプレート「html/modules/minidiary/templates/yd_rightarea.html」内の、

Everything is expanded.Everything is shortened.
 
<{xugj_block file=modules/`$yd_moduleConfig.com_agent`/blocks/blocks.php func="b_d3forum_list_posts_show" opt="`$yd_moduleConfig.com_agent`,10,time,,,`$yd_moduleConfig.com_agent_forumid`" item="block"}>

をコメントアウトか、削除したらどうなりますか?

(追記:) 一覧は表示できているとのことですが、そこで表示されている、コメント件数に表示は()括弧付きで表示されていれば正常ですが、どうなってますか? 異常な場合は、minidiaryの管理画面でd3forumのhtml側ディレクトリ名を正しく指定して下さい。

なーお  投稿日時 2008/8/30 21:36 | 最終変更

masahiroさん

私の環境では、いろいろやってみてもそのエラーは出ません。。環境の影響かもしれませんね。

もしpicoをインストールされていましたら、このページのコードをpicpで記述してみてください。既存のテストページでもOKです。

・Smarty(XoopsTpl)」を有効にして、HTMLなどは無効で。
・「d3forum」の部分は、ご自身の環境に合わせてください

**
さらに、サイトをクローズ後、「trust_path/modules/d3forum/blocks/block_functions.php」の354行目と355行目の間に、「var_dump($module);」と書いてアップして管理者でアクセスしてみてください。

$module =& $module_handler->getByDirname($mydirname);
//var_dump($module);
$config_handler =& xoops_gethandler('config');

なーお  投稿日時 2008/8/30 22:28

masahiroさん

すみません、どうやら差分パック「minidiary014a2_diff.zip」のファイル構成がおかしな状況になっていたようです。 :-o

差し替えましたので、お手数ですが、再度ダウンロードいただき、minidiary-0.14本体ファイルに上書きして 再度お試しください。

よろしくお願いします、

masahiro   投稿日時 2008/8/31 1:14 | 最終変更

なーおさん、こんばんは。

いろいろお調べ頂きありがとうございます。
minidiary-0.14本体ファイルに新しいminidiary014a2_diff.zipを上書きしアップデートしたところ正常に表示されるようになりました。 :-)

今度はwizmobileで表示されるかやってみます。
また何かありましたらよろしくお願い致します。

なーお  投稿日時 2008/8/31 7:52

masahiroさん、こんにちは。

よかった、私のパッケージミスだけだったのですね。
真にお手数をおかけしましてすみませんでした。

公開後に、ばたばたと修正をかけていたので、その中でおかしくなってしまったようです。 :-P

携帯のほうも結果報告をお待ちしています。 :-D

masahiro   投稿日時 2008/8/31 22:41

なーおさん、こんばんは。

私も変更内容とパッケージの内容をよく見比べてみれば良かったのですが、単純に上書きすれば大丈夫だろうと思いこんでいました。(汗)

携帯についてはモバイルテンプハウスさんからテンプレートをダウンロードさせて頂き正常に表示されることを確認しました。

時間が出来たら今回の変更内容について確認しつつコメント統合の方法についても勉強しようと思います。
今回は本当にありがとうございました。

なーお  投稿日時 2008/9/8 11:17

minidiaryのコメント統合。

各日記執筆者ページの最新コメント一覧で、xoopsコメントと同様、その執筆者へのコメントを絞り込んで表示するように変更しました。((e:f649))

また、コメント統合側フォーラム中の概要表示、minidiary側の公開設定をチェックして、権限がない場合にはリダイレクトして表示しないように変更しました。((e:f3a8))

次は、イベント通知機能の実装を考えています。



新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

ブックマーク