Add a comment preview and delete link in the Admin section of sNews
I got a recent request to do a simple mod to put a "delete" link beside the comment edit link in the Admin section of sNews, so one can easily delete an obvious spam comment without clicking edit, then deleting. Seemed like a good idea, so I've added a few extra bits and have it running on my site as well, so I might as well offer it up to the community too. Here's a preview;
Within snews.php, find the function administration(), and add the following highlighted code in the comment SQL query;
$query_comm = 'SELECT id,articleid,name,comment FROM '._PRE.'comments'.' WHERE approved != \'True\'';
Now find the code that outputs the unapproved comments;
echo '<p>'.$r['name'].' (<strong>'.$articleTITLE.'</strong>) '.l('divider').'
<a href="'._SITE.'?action=editcomment&commentid='.$r['id'].'">'.l('edit').'</a></p>';
Now replace that code with this block;
if (strlen($r['comment']) > '60') {
$preview = substr($r['comment'],0,60).'...';
} else {
$preview = $r['comment'];
}
echo '<p>'.$r['name'].' (<strong>'.$articleTITLE.'</strong>) '.l('divider').' <a href="'._SITE.'?action=editcomment&commentid='.$r['id'].'">'.l('edit').'</a> <a href="'._SITE.'?action=process&task=deletecomment&commentid='.$r['id'].'" title="'.l('delete').' '.l('comment').'" onclick="return pop()">'.l('delete').'</a><br /> - <span class="comment_preview">"'.$preview.'"</span></p>';
And the style for the comment preview;
.comment_preview {
font-size: .9em;
font-style: italic;
color: #555;
}
That's it. Very basic. It still redirects you to the article related to the comment, but to change that would require quite a bit more hacking on other functions.
Comments
RSS Comments Feed
mosh
very nice mod,
it is a must for snews comment system.
thank you and
awesome day
Patric
Matt
Are you thinking about this;
http://mdj.us/web-development/ajax-javascript/live-comment-previewing-using-the-jquery-library/
If that's the case, it's in the javascript, just remove the semi-colon from that code... that colon should have been in the label actually;
$('#text').parent().after('<div><label for="comment-preview">Comment Preview</label>:</div><div id="comment-preview"></div>');
Patric
Fred K