Edit comments improvement, multiple comment delete not implemented yet.

git-svn-id: https://develop.svn.wordpress.org/trunk@887 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Matt Mullenweg 2004-02-17 08:35:04 +00:00
parent 5248b39480
commit 86efd149be
4 changed files with 110 additions and 14 deletions

View File

@ -1,5 +1,15 @@
<?php
function url_shorten ($url) {
$short_url = str_replace('http://', '', stripslashes($url));
$short_url = str_replace('www.', '', $short_url);
if ('/' == substr($short_url, -1))
$short_url = substr($short_url, 0, -1);
if (strlen($short_url) > 35)
$short_url = substr($short_url, 0, 32).'...';
return $short_url;
}
function selected($selected, $current) {
if ($selected == $current) echo ' selected="selected"';
}

View File

@ -2,19 +2,37 @@
$title = 'Edit Comments';
$parent_file = 'edit.php';
require_once('admin-header.php');
if (empty($_GET['mode'])) $mode = 'view';
else $mode = $_GET['mode'];
?>
<ul id="adminmenu2">
<li><a href="edit.php">Posts</a></li>
<li><a href="edit-comments.php" class="current">Comments</a></li>
<li class="last"><a href="moderation.php">Awaiting Moderation</a></li>
</ul>
<script type="text/javascript">
<!--
function checkAll(form)
{
for (i = 0, n = form.elements.length; i < n; i++) {
if(form.elements[i].type == "checkbox") {
if(form.elements[i].checked == true)
form.elements[i].checked = false;
else
form.elements[i].checked = true;
}
}
}
//-->
</script>
<div class="wrap">
<form name="searchform" action="" method="get">
<fieldset>
<legend>Show Comments That Contain...</legend>
<input type="text" name="s" value="<?php echo $s; ?>" size="17" />
<input type="submit" name="submit" value="Search" />
<input type="submit" name="submit" value="Search" />
<input type="hidden" name="mode" value="<?php echo $mode; ?>" />
(Searches within comment text, email, URI, and IP address.)
</fieldset>
</form>
<p><a href="?mode=view">View Mode</a> | <a href="?mode=edit">Mass Edit Mode</a></p>
@ -27,10 +45,11 @@ if ($s) {
comment_author_url LIKE ('%$s%') OR
comment_author_IP LIKE ('%$s%') OR
comment_content LIKE ('%$s%')
ORDER BY comment_date");
ORDER BY comment_date DESC");
} else {
$comments = $wpdb->get_results("SELECT * FROM $tablecomments ORDER BY comment_date $commentorder LIMIT 20");
$comments = $wpdb->get_results("SELECT * FROM $tablecomments ORDER BY comment_date DESC LIMIT 20");
}
if ('view' == $mode) {
if ($comments) {
echo '<ol>';
foreach ($comments as $comment) {
@ -58,6 +77,48 @@ if ($s) {
<?php
} // end foreach
echo '</ol>';
} else {
?>
<p>
<strong>No results found.</strong></p>
<?php
} // end if ($comments)
} elseif ('edit' == $mode) {
if ($comments) {
echo '<form name="deletecomments" id="deletecomments" action="" method="post">
<table width="100%" cellpadding="3" cellspacing="3">
<tr>
<th scope="col">*</th>
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">IP</th>
<th scope="col">Comment Excerpt</th>
<th scope="col">Edit</th>
<th scope="col">Delete</th>
</tr>';
foreach ($comments as $comment) {
$bgcolor = ('#eee' == $bgcolor) ? 'none' : '#eee';
?>
<tr style='background-color: <?php echo $bgcolor; ?>'>
<td><input type="checkbox" name="delete_comments[]" value="<?php echo $comment->comment_ID; ?>" /></td>
<th scope="row"><?php comment_author_link() ?></th>
<td><?php comment_author_email_link() ?></td>
<td><a href="http://ws.arin.net/cgi-bin/whois.pl?queryinput=<?php comment_author_IP() ?>"><?php comment_author_IP() ?></a></td>
<td><?php comment_excerpt(); ?></td>
<td><?php if (($user_level > $authordata->user_level) or ($user_login == $authordata->user_login)) {
echo "<a href='post.php?action=editcomment&amp;comment=$comment->comment_ID' class='edit'>Edit</a>"; } ?></td>
<td><?php if (($user_level > $authordata->user_level) or ($user_login == $authordata->user_login)) {
echo "<a href=\"post.php?action=deletecomment&amp;p=".$comment->comment_post_ID."&amp;comment=".$comment->comment_ID."\" onclick=\"return confirm('You are about to delete this comment by \'".$comment->comment_author."\'\\n \'Cancel\' to stop, \'OK\' to delete.')\" class='delete'>Delete</a>"; } ?></td>
</tr>
<?php
} // end foreach
?></table>
<p><a href="javascript:;" onclick="checkAll(document.getElementById('deletecomments')); return false; ">Invert Checkbox Selection</a></p>
<p style="text-align: right;"><input type="submit" name="Submit" value="Delete Checked Comments" onclick="return confirm('You are about to delete these comments permanently \n \'Cancel\' to stop, \'OK\' to delete.')" /> </p>
</form>
<?php
} else {
?>
@ -67,7 +128,7 @@ if ($s) {
<?php
} // end if ($comments)
}
?>
</div>

View File

@ -96,9 +96,9 @@ default:
}
?>
<ul id="adminmenu2">
<li><a href="edit.php">Latest Posts</a></li>
<li><a href="edit-comments.php">Latest Comments</a></li>
<li class="last"><a href="moderation.php" class="current">Comments Awaiting Moderation</a></li>
<li><a href="edit.php"> Posts</a></li>
<li><a href="edit-comments.php"> Comments</a></li>
<li class="last"><a href="moderation.php" class="current">Awaiting Moderation</a></li>
</ul>
<?php
@ -166,7 +166,7 @@ echo "<a href=\"post.php?action=editcomment&amp;comment=".$comment->comment_ID."
}
?>
</ol>
<input type="submit" name="submit" value="Moderate Comments" class="search" />
<input type="submit" name="submit" value="Moderate Comments" />
</form>
<?php
} else {

View File

@ -6,16 +6,20 @@ add_filter('comment_author', 'wptexturize');
add_filter('comment_author', 'convert_chars');
add_filter('comment_email', 'remove_slashes', 5);
add_filter('comment_email', 'antispambot', 5);
add_filter('comment_email', 'antispambot');
add_filter('comment_url', 'clean_url');
add_filter('comment_text', 'remove_slashes', 5);
add_filter('comment_text', 'convert_chars');
add_filter('comment_text', 'make_clickable');
add_filter('comment_text', 'wpautop');
add_filter('comment_text', 'wpautop', 30);
add_filter('comment_text', 'balanceTags');
add_filter('comment_text', 'convert_smilies', 20);
add_filter('comment_excerpt', 'remove_slashes', 5);
add_filter('comment_excerpt', 'convert_chars');
function clean_url($url) {
$url = str_replace('http://url', '', $url);
$url = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $url);
@ -129,7 +133,7 @@ function comment_author_link() {
if ($url) {
echo $url;
} else {
echo 'mailto:'.antispambot($email);
echo "mailto:$email";
}
echo '" rel="external">' . $author . '</a>';
}
@ -153,7 +157,7 @@ function comment_author_email_link($linktext='', $before='', $after='') {
global $comment;
$email = apply_filters('comment_email', $comment->comment_author_email);
if ((!empty($email)) && ($email != '@')) {
$display = ($linktext != '') ? $linktext : antispambot(stripslashes($email));
$display = ($linktext != '') ? $linktext : stripslashes($email);
echo $before;
echo "<a href='mailto:$email'>$display</a>";
echo $after;
@ -184,6 +188,27 @@ function comment_text() {
echo apply_filters('comment_text', $comment_text);
}
function comment_excerpt() {
global $comment;
$comment_text = str_replace('<trackback />', '', $comment->comment_content);
$comment_text = str_replace('<pingback />', '', $comment_text);
$comment_text = strip_tags($comment_text);
$blah = explode(' ', $comment_text);
if (count($blah) > 20) {
$k = 20;
$use_dotdotdot = 1;
} else {
$k = count($blah);
$use_dotdotdot = 0;
}
$excerpt = '';
for ($i=0; $i<$k; $i++) {
$excerpt .= $blah[$i] . ' ';
}
$excerpt .= ($use_dotdotdot) ? '...' : '';
echo apply_filters('comment_excerpt', $excerpt);
}
function comment_date($d='') {
global $comment;
if ('' == $d) {