コメント統合でゲストにもコメント投稿させたい

コメント統合してゲストにもコメント投稿を許可する場合は、そのコメント統合元モジュールではなくて、d3forum側で権限設定を行う(考えてみれば当たり前の話なんだけど、最初これが分からなくて苦労することもあるだろう。俺もそうだった)。
コメント統合したフォーラムの「フォーラム権限」からゲストの設定を行う。

14-1.PNG

ここでゲストに「閲覧権限」と「投稿権限」を与えておく。「承認不要」も設定しておくと投稿が即座に表示されるようになる。

「新しくコメントをつける」フォームを隠したい

コメント統合すると「新しくコメントをつける」フォームが常時表示されるようになるが、これがちょっとうざったいなと感じる場合はテンプレートをいじって隠すことができる。
まずaltsysで「テンプレート管理」の「フォーラム」を選択。この中の「d3forum_inc_post_form_quick.html」が目的のテンプレートだ。

一番最初が次のようになっているだろう。

<!-- comment input form -->
	<h2 class="head"><{$h2_title|default:$smarty.const._MD_D3FORUM_POSTASCOMMENTTOP}></h2>

これを次のように直す。

<!-- comment input form -->
<div id="d3f_commentpost">
<a href="JavaScript:changeDisplay('commentpostform');"><{$h2_title|default:$smarty.const._MD_D3FORUM_POSTASCOMMENTTOP}></a>
</div>

次にコメント投稿フォーム(<form>から</form>まで)を新たに<div>で覆っておく。

       <div id="commentpostform" style="display:none;">
	<form name="postform" id="postform" action="<{$mod_url}>/index.php?page=post" method="post" onsubmit="return xoopsFormValidate_postform();">
                     :
                     :
                     :
	</form>
       </div>

この時、divのスタイルが「style="display:none;"」になっているのがミソ。あと、changeDisplayはXOOPS共通のJavaScriptメソッドなので手間を考えて使っているが、再度リンクを押されたときにフォームを隠すようになってはいない(「change」っていうぐらいだからスイッチになっていてもよさそうな気がするが)。どうしても気になる場合は、XOOPS_ROOT_PATH/include/xoops.jsのchangeDisplayを、

   if (elestyle.display == "") {

から、

   if (elestyle.display != "none") {

に直すといいだろう(っていうか本体側にあまり手を入れない方が後で楽だから、新たにJavaScriptのメソッド書いた方がいいかも)。