Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2009-03-27 12:33:40

きゃしゃ
メンバー
From: 北河内
登録日: 2007-12-15
投稿: 352

Re: サイトのコメント表示から禁止IPを登録する

表題の様なことをしたいという要望を小耳に挟んだのですが、こんな感じでどうでしょうか。
"コメント (ある場合)" テンプレートに

<a href="nucleus/index.php?action=banlistnew&blogid=<%blogid%>&ip=<%ip%>"><%ip%>をNGに</a>

このままだと一般閲覧者にも丸見えでブサイクなので
作戦1:
テンプレートでif使える系プラグインを使用してloggedinの時だけ表示
作戦2:
スキンに

<div class="comment1">
<%comments(main)%>
</div>
<%if(loggedin)%>
<div class="comment2">
<%comments(ipban)%>
</div>
<%endif%>

てな具合で、cssで見やすくがんばる
作戦3:
スキンに<%if(loggedin)%>でdisplay:none切り替え
(ソースには表示されてしまいますが)

ホントは、コメントのテンプレートで<%edit%>が使えればスマートなんですがねぇ。

<%edit%>はログイン中だけ表示されるテンプレートとして、<%editlink%>等以外にも使えて何かと便利。
ログイン中だけ投稿者名表示したりとか。

オフライン

#2 2009-03-27 17:32:11

shizuki
Administrator
From: 西播磨
登録日: 2006-03-23
投稿: 900
ウェブサイト

Re: サイトのコメント表示から禁止IPを登録する

NP_CommentEdit.phpの「doTemplateCommentsVar」メソッドにちょこっとコードを差し込んでやる方法もあります。
こんな風に書き換えればOK

	function doTemplateCommentsVar(&$item, &$comment, $type, $param1 = 'QQQQQ') { 
		global $CONF, $member;

		if ($member->isLoggedIn()) {
			$commentid = intval($comment['commentid']);
			if ($member->canAlterComment($commentid)) {
				$editLink  = $CONF['AdminURL']
						   . 'index.php?action=commentedit&commentid='
						   . $commentid;
				$delLink   = $CONF['AdminURL']
						   . 'index.php?action=commentdelete&commentid='
						   . $commentid;
				$banLink   = $CONF['AdminURL']
						   . 'index.php?action=banlistnew&blogid='
						   . intval($comment['blogid']) . '&ip=' . $comment['ip'];
				$printData = "<small>\n"
						   . '[ <a href="' . $editLink . '" target="_blank"> '
						   . _LISTS_EDIT . "</a> ]\n"
						   . '[ <a href="' . $delLink . '" target="_blank"> '
						   . _LISTS_DELETE . "</a> ]\n"
						   . '[ <a href="' . $banLink . '" target="_blank"> '
						   . _LIST_COMMENT_BANIP . "</a> ]\n"
						   . "</small>\n";
				echo $printData;
			}
		}
	}

これで「IPアドレスを規制」ってリンクが出てくるはずです。

オフライン

Board footer