トップ  >  趣味の部屋  >  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クラス

コメント一覧

投稿ツリー

トピック


なーお  投稿日時 2009/3/21 22:46 | 最終変更

minidiary d3コメント対応 のバージョンアップをしました。

「minidiary014c_diff.zip」をダウンロードし、上書きしてください。
本バージョンでは、d3forum-0.85で追加されたコメント統合の以下の機能に対応しています。 アップデート後にminidiaryの管理画面で指定してください。

  1. コメント元ページでのコメントの昇順/降順指定
  2. コメント元ページでのコメントの最大表示数

なお、本アップデートに伴うテンプレート変更はありません。

なーお  投稿日時 2009/4/1 7:36 | 最終変更

バージョンアップ10日後に、またまた機能追加ですみません。
今度はイベント通知機能を取り込みました。 アップデート後にテンプレートの更新が必要です。

  1. 日記全体の新規記事投稿があったとき
  2. 選択した特定の人(ユーザー)の新規記事投稿があったとき
  3. 選択した特定の人(ユーザー)の記事にコメントがあったとき
  4. 選択した記事にコメントがあったとき

 にイベント通知が行われます。
 特に、3番目の機能を使って、自分の日記限定でコメントが付いたことをイベントにできるのがミソです。

xsnsとの連携で、「友人まで」「友人の友人まで」公開の日記へのイベント権限の部分でちょっと苦労しましたが、Altsysのイベントハンドラを使うことでクリアできました。

まずはテスト環境でお試しください。 :-)

なーお  投稿日時 2009/5/10 12:53 | 最終変更

minidiaryのd3コメント差分パックをバージョンアップし、ver-14d2としました。

ソース上書き後、モジュールアップデート、テンプレートのアップデートを行ってください。

変更内容

  1. 投稿者一覧ブロックの実装
     日記投稿者と、外部ブログ設定者をブロック内に一覧表示します。 なお、このブロックを使用せずに、minidiaryのサイド表示内に表示したい場合は、rightarea.htmlの最後の方にコメントアウトした記述を、お好きな場所に挿入してください。
  2. 統合コメント一覧での、コメントをクリックした時のジャンプ先を、d3forum側ではなく、日記のコメント表示部分となるよう変更しました。 d3forum側へのジャンプもテンプレート内にコメントアウトで残してありますので、好みに応じてご使用ください。
  3. メニューの「コメント一覧」で統合コメントが取得できていなかったので、実装した。
  4. d3pipes用のジョイントを作成し同梱した。

変更したソース

html側

  1. viewcomment.php (今回差分に追加)
  2. xoops_version.php
  3. blocks/bloggerlist.php (今回ソース追加)
  4. blocks/b_diarylist.php
  5. language/japanese/modinfo.php
  6. templates/yd_rightarea.html
  7. templates/yd_viewcomment.html (今回差分に追加)
  8. templates/blocks/b_bloggerlist.html (今回ソース追加)

trust側

  1. (trust)/modules/d3forum/blocks/block_functions_bcomment.php
  2. (trust)/modules/d3pipes/joints/block/D3pipesBlockMinidiarylist.class.php (今回ソース追加:使用は任意)

以上、よろしくお願いします。

saya07   投稿日時 2009/5/22 16:08

いつもお世話になっております。
ver-14d2を使用させて頂いており、コメントの投稿自体は問題なくでき、
minidiary上でも表示されているのですが、
yd_rightarea.htmlの「最近のコメント」の部分と
yd_viewcomment.htmlの上部「コメント一覧へ」の部分で
invalid "file" in というエラーが出ます。
また、yd_viewcomment.htmlの「コメント一覧へ」のリンク先は
http://mydomain.com/index.php?forum_id?」となり、
modules/forumへは飛ばないようです。

の部分が問題なのかな、と思いましたが、
d3forum0.85は「forum」とリネームして使用しているのですが、
minidiaryの一般設定ではきちんと「forum」と入力しております。
他にチェックすべき個所等ございましたら、ご教授いただけましたら幸いです。

なーお  投稿日時 2009/5/23 0:11 | 最終変更

saya07さん、こんにちは。

ごぶさたしています。
拙作をご試用、ありがとうございます。 :-)

そのエラーは、xugj_blockが吐き出したメッセージで、ブロック表示用のスクリプトファイルが見つからない時に出ます。

0、(html)/class/smarty/plugins/function.xugj_block.php
 ↓ (HDの場合は、trust/libs/smartyplugins の下)
1、(html)/modules/(d3forum)/blocks/blocks_bcomment.php
 ↓
2、(trust)/modules/d3forum/blocks_bcomment.php
 ↓
3、(trust)/modules/d3forum/blocks/block_functions_bcomment.php

という流れで読みに行きます。
1、の(d3forum)は「forum」にリネームしてください。

もし問題ないようでしたら、ちょっとわかりませんね。。 :roll:
PHPデバグで何か出ませんか?

「コメント一覧へ」のほうは、コメントが表示されていない時に、誤ったリンクを表示するようです。 コメントが表示されれば大丈夫なんですが。。ちょっと調べてみます。

ゲスト   投稿日時 2009/5/23 8:41

早速のお返事ありがとうございました!
(…そして、私の名前を覚えてくださっていたこと、恐縮です :-)

結論から申しあげまして、私のアップロードミスでした。
1、(html)/modules/(d3forum)/blocks/blocks_bcomment.php の部分がそのままd3forumでアップしていたため、そのようなエラーが出ておりました。
自力では気付くことができず、お恥ずかしい限りです。
ありがとうございました。

引用:
「コメント一覧へ」のほうは、コメントが表示されていない時に、誤ったリンクを表示するようです。 コメントが表示されれば大丈夫なんですが。。ちょっと調べてみます。

お手数をお掛けして申し訳ありません^^;
なーおさんのおつくり下さっているテンプレートやクラスは私にとって大変ありがたい存在です。
これからもどうぞよろしくお願いいたします。

なーお  投稿日時 2009/5/23 10:19 | 最終変更

saya_07さん、こんにちは。

引用:
早速のお返事ありがとうございました!
(…そして、私の名前を覚えてくださっていたこと、恐縮です :-)

以前、minidiaryでコメント統合でxugj_blockのヒントをいただいたのが、確かsayaさんだった記憶があります。 この実装の参考にさせていただきました。 :-)

引用:
結論から申しあげまして、私のアップロードミスでした。
1、(html)/modules/(d3forum)/blocks/blocks_bcomment.php の部分がそのままd3forumでアップしていたため、そのようなエラーが出ておりました。

了解しました。
この件、本文に追記しました。
ありがとうございました。

メニューのコメント一覧をクリックした時に、コメントがまだ付いていない人の時にリンクがおかしい件、「yd_viewcomment.html 」の31行目付近に実装漏れがありました。 Altsysなどで、以下のように「-」部分を「+」のように編集してください。 次回バージョンアップ時に、反映させます。

Everything is expanded.Everything is shortened.
29
30
31
32
 
 
 
 
     <{/foreach}>
     <{/section}>
-    <img src="<{$xoops_url}>/modules/minidiary/images/arrow1.png" border=0 style="vertical-align:middle;" /> <a href="<{$block.mod_url}>/index.php?forum_id=<{$mod_config.comment_forum_id}>">コメント一覧へ</a></td>
+    <img src="<{$xoops_url}>/modules/minidiary/images/arrow1.png" border=0 style="vertical-align:middle;" /> <a href="<{$xoops_url}>/modules/<{$mod_config.comment_dirname}>/index.php?forum_id=<{$mod_config.comment_forum_id}>">コメント一覧へ</a></td>

今後も何かありましたら、ご報告お願いします。 :-)

(追伸)
 実は、作者のmatoyanさんに申し入れし、minidiaryの今後のメンテナンス・機能アップを含み、D3モジュール化とその公開について快諾いただいております。
 どんなモジュールになるのか、また、いつ出来上がるかもわかりませんが、時間があれば取り組んで行こうと思います。
 少なくとも、minidiaryからのインポート機能の実装は必須ですね。 MT形式や、d3blogからのインポートも組み込んじゃおうかなあ。

では。

Tetsu サイトURL  投稿日時 2009/6/9 20:08 | 最終変更

いつもたいへんお世話になっております。
コメントは初になりますが、常々参考にさせていただいております。
ほんとうにありがとうございます。

今回使わせていただく、minidiaryのコメント統合もすばらしいと思いますが、
d3diaryも楽しみにしています。

 

minidiary-0.14d2をインストールしたのですが、
イベント通知機能を設定しようとすると、
「このリンクは無効です。」
というメッセージが出てしまうのですが、何かやり方を間違っているのでしょうか?

 
なーお  投稿日時 2009/6/9 23:55 | 最終変更

Tetsuさん、こんにちは。

minidiary差分ハックをご試用ありがとうございます。 :-)

引用:
イベント通知機能を設定しようとすると、
「このリンクは無効です。」
というメッセージが出てしまうのですが、何かやり方を間違っているのでしょうか?

これは、メイン表示下部のチェックBOXを設定して送信すると発生するという理解でよろしいですか?

  1. コアバージョン、その他諸々の環境を教えてください。
  2. PHPデバグで何か出ませんか。
  3. 記事を1件も書いていないと何か起きるかもしれません。 記事を書いた状態でも変化ありませんか。

もし許されるのでしたら、本日アップしたd3diaryテスト版をインストールいただき、同様の状況になるかどうか、ご報告いただけると助かります。 :-D

なーお  投稿日時 2009/6/10 0:31

Tetsuさん

どうやらファイルが一つ、欠落していたみたいです。 :-P
以下のファイルを、minidiaryフォルダ直下においてください。



新しくコメントをつける

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

ブックマーク