Make WordPress Core

Changeset 2662


Ignore:
Timestamp:
06/26/2005 07:55:12 PM (21 years ago)
Author:
ryan
Message:

Comment updating cleanup. Add get_comment(), edit_comment(), get_comment_to_edit(), and wp_update_comment().

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/admin-functions.php

    r2654 r2662  
    6464                $blog_ID = 1;
    6565
    66         $post_ID = $_POST['post_ID'];
     66        $post_ID = (int) $_POST['post_ID'];
    6767
    6868        if (!user_can_edit_post($user_ID, $post_ID, $blog_ID))
    … …  
    7070
    7171        // Rename.
    72         $_POST['ID'] = $_POST['post_ID'];
     72        $_POST['ID'] = (int) $_POST['post_ID'];
    7373        $_POST['post_content']  = $_POST['content'];
    7474        $_POST['post_excerpt']  = $_POST['excerpt'];
    … …  
    120120}
    121121
     122function edit_comment() {
     123        global $user_ID;
     124
     125        $comment_ID = (int) $_POST['comment_ID'];
     126        $comment_post_ID = (int) $_POST['comment_post_ID'];
     127
     128        if (!user_can_edit_post_comments($user_ID, $comment_post_ID))
     129                die( __('You are not allowed to edit comments on this post, so you cannot edit this comment.') );
     130
     131        $_POST['comment_author'] = $_POST['newcomment_author'];
     132        $_POST['comment_author_email']  = $_POST['newcomment_author_email'];
     133        $_POST['comment_author_url'] = $_POST['newcomment_author_url'];
     134        $_POST['comment_approved'] = $_POST['comment_status'];
     135        $_POST['comment_content'] = $_POST['content'];
     136        $_POST['comment_ID'] = (int) $_POST['comment_ID'];
     137 
     138        if (user_can_edit_post_date($user_ID, $post_ID) && (!empty($_POST['edit_date']))) {
     139                $aa = $_POST['aa'];
     140                $mm = $_POST['mm'];
     141                $jj = $_POST['jj'];
     142                $hh = $_POST['hh'];
     143                $mn = $_POST['mn'];
     144                $ss = $_POST['ss'];
     145                $jj = ($jj > 31) ? 31 : $jj;
     146                $hh = ($hh > 23) ? $hh - 24 : $hh;
     147                $mn = ($mn > 59) ? $mn - 60 : $mn;
     148                $ss = ($ss > 59) ? $ss - 60 : $ss;
     149                $_POST['comment_date'] = "$aa-$mm-$jj $hh:$mn:$ss";
     150        }
     151
     152        wp_update_comment($_POST);
     153}
     154
    122155// Get an existing post and format it for editing.
    123156function get_post_to_edit($id) {
    … …  
    157190
    158191        return $post;
     192}
     193
     194function get_comment_to_edit($id) {
     195        $comment = get_comment($id);
     196
     197        $comment->comment_content = format_to_edit($comment->comment_content);
     198        $comment->comment_content = apply_filters('comment_edit_pre', $comment->comment_content);
     199
     200        $comment->comment_author = format_to_edit($comment->comment_author);
     201        $comment->comment_author_email = format_to_edit($comment->comment_author_email);
     202        $comment->comment_author_url = format_to_edit($comment->comment_author_url);
     203
     204        return $comment;
    159205}
    160206
  • trunk/wp-admin/edit-form-comment.php

    r2429 r2662  
    11<?php
    22$submitbutton_text = __('Edit Comment &raquo;');
    3 $toprow_title = sprintf(__('Editing Comment # %s'), $commentdata['comment_ID']);
     3$toprow_title = sprintf(__('Editing Comment # %s'), $comment->comment_ID);
    44$form_action = 'editedcomment';
    5 $form_extra = "' />\n<input type='hidden' name='comment_ID' value='$comment' />\n<input type='hidden' name='comment_post_ID' value='".$commentdata["comment_post_ID"];
     5$form_extra = "' />\n<input type='hidden' name='comment_ID' value='" . $comment->comment_ID . "' />\n<input type='hidden' name='comment_post_ID' value='".$comment->comment_post_ID;
    66?>
    77
    … …  
    2121    <legend><?php _e('Name:') ?></legend>
    2222        <div>
    23           <input type="text" name="newcomment_author" size="22" value="<?php echo format_to_edit($commentdata['comment_author']) ?>" tabindex="1" id="name" />
     23          <input type="text" name="newcomment_author" size="22" value="<?php echo $comment->comment_author ?>" tabindex="1" id="name" />
    2424    </div>
    2525</fieldset>
    … …  
    2727        <legend><?php _e('E-mail:') ?></legend>
    2828                <div>
    29                   <input type="text" name="newcomment_author_email" size="30" value="<?php echo format_to_edit($commentdata['comment_author_email']) ?>" tabindex="2" id="email" />
     29                  <input type="text" name="newcomment_author_email" size="30" value="<?php echo $comment->comment_author_email ?>" tabindex="2" id="email" />
    3030    </div>
    3131</fieldset>
    … …  
    3333        <legend><?php _e('URI:') ?></legend>
    3434                <div>
    35                   <input type="text" name="newcomment_author_url" size="35" value="<?php echo format_to_edit($commentdata['comment_author_url']) ?>" tabindex="3" id="URL" />
     35                  <input type="text" name="newcomment_author_url" size="35" value="<?php echo $comment->comment_author_url ?>" tabindex="3" id="URL" />
    3636    </div>
    3737</fieldset>
    … …  
    4646 }
    4747?>
    48 <div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content" style="width: 99%"><?php echo $content ?></textarea></div>
     48<div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content" style="width: 99%"><?php echo $comment->comment_content ?></textarea></div>
    4949</fieldset>
    5050
    … …  
    6767        <tr>
    6868                <th scope="row" valign="top"><?php _e('Comment Status') ?>:</th>
    69                 <td><label for="comment_status_approved" class="selectit"><input id="comment_status_approved" name="comment_status" type="radio" value="1" <?php checked($comment_status, '1'); ?> /> <?php _e('Approved') ?></label><br />
    70           <label for="comment_status_moderated" class="selectit"><input id="comment_status_moderated" name="comment_status" type="radio" value="0" <?php checked($comment_status, '0'); ?> /> <?php _e('Moderated') ?></label><br />
    71           <label for="comment_status_spam" class="selectit"><input id="comment_status_spam" name="comment_status" type="radio" value="spam" <?php checked($comment_status, 'spam'); ?> /> <?php _e('Spam') ?></label></td>
     69                <td><label for="comment_status_approved" class="selectit"><input id="comment_status_approved" name="comment_status" type="radio" value="1" <?php checked($comment->comment_approved, '1'); ?> /> <?php _e('Approved') ?></label><br />
     70          <label for="comment_status_moderated" class="selectit"><input id="comment_status_moderated" name="comment_status" type="radio" value="0" <?php checked($comment->comment_approved, '0'); ?> /> <?php _e('Moderated') ?></label><br />
     71          <label for="comment_status_spam" class="selectit"><input id="comment_status_spam" name="comment_status" type="radio" value="spam" <?php checked($comment->comment_approved, 'spam'); ?> /> <?php _e('Spam') ?></label></td>
    7272        </tr>
    7373
    … …  
    8181        <tr>
    8282                <th scope="row"><?php _e('Delete'); ?>:</th>
    83                 <td><p><a class="delete" href="post.php?action=confirmdeletecomment&amp;noredir=true&amp;comment=<?php echo $commentdata['comment_ID']; ?>&amp;p=<?php echo $commentdata['comment_post_ID']; ?>"><?php _e('Delete comment') ?></a></p></td>
     83                <td><p><a class="delete" href="post.php?action=confirmdeletecomment&amp;noredir=true&amp;comment=<?php echo $comment->comment_ID; ?>&amp;p=<?php echo $comment->comment_post_ID; ?>"><?php _e('Delete comment') ?></a></p></td>
    8484        </tr>
    8585</table>
  • trunk/wp-admin/post.php

    r2654 r2662  
    141141        get_currentuserinfo();
    142142
    143         $comment = $_GET['comment'];
    144         $commentdata = get_commentdata($comment, 1, true) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'javascript:history.go(-1)'));
    145 
    146         if (!user_can_edit_post_comments($user_ID, $commentdata['comment_post_ID'])) {
     143        $comment = (int) $_GET['comment'];
     144
     145        if ( ! $comment = get_comment($comment) )
     146                die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'javascript:history.go(-1)'));
     147
     148        if ( !user_can_edit_post_comments($user_ID, $comment->comment_post_ID) )
    147149                die( __('You are not allowed to edit comments on this post.') );
    148         }
    149 
    150         $content = $commentdata['comment_content'];
    151         $content = format_to_edit($content);
    152         $content = apply_filters('comment_edit_pre', $content);
    153        
    154         $comment_status = $commentdata['comment_approved'];
     150
     151        $comment = get_comment_to_edit($comment);
    155152
    156153        include('edit-form-comment.php');
    … …  
    162159        require_once('./admin-header.php');
    163160
    164         $comment = $_GET['comment'];
     161        $comment = (int) $_GET['comment'];
    165162        $p = (int) $_GET['p'];
    166         $commentdata = get_commentdata($comment, 1, true) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
    167 
    168         if (!user_can_delete_post_comments($user_ID, $commentdata['comment_post_ID'])) {
     163
     164        if ( ! $comment = get_comment($comment) )
     165                die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
     166
     167        if ( !user_can_delete_post_comments($user_ID, $comment->comment_post_ID) )
    169168                die( __('You are not allowed to delete comments on this post.') );
    170         }
    171169
    172170        echo "<div class=\"wrap\">\n";
    173171        echo "<p>" . __('<strong>Caution:</strong> You are about to delete the following comment:') . "</p>\n";
    174172        echo "<table border=\"0\">\n";
    175         echo "<tr><td>" . __('Author:') . "</td><td>" . $commentdata["comment_author"] . "</td></tr>\n";
    176         echo "<tr><td>" . __('E-mail:') . "</td><td>" . $commentdata["comment_author_email"] . "</td></tr>\n";
    177         echo "<tr><td>". __('URL:') . "</td><td>" . $commentdata["comment_author_url"] . "</td></tr>\n";
    178         echo "<tr><td>". __('Comment:') . "</td><td>" . stripslashes($commentdata["comment_content"]) . "</td></tr>\n";
     173        echo "<tr><td>" . __('Author:') . "</td><td>" . $comment->comment_author . "</td></tr>\n";
     174        echo "<tr><td>" . __('E-mail:') . "</td><td>" . $comment->comment_author_email . "</td></tr>\n";
     175        echo "<tr><td>". __('URL:') . "</td><td>" . $comment->comment_author_url . "</td></tr>\n";
     176        echo "<tr><td>". __('Comment:') . "</td><td>" . $comment->comment_content . "</td></tr>\n";
    179177        echo "</table>\n";
    180178        echo "<p>" . __('Are you sure you want to do that?') . "</p>\n";
    … …  
    197195        check_admin_referer();
    198196
    199         $comment = $_GET['comment'];
    200         $p = $_GET['p'];
     197        $comment = (int) $_GET['comment'];
     198        $p = (int) $_GET['p'];
    201199        if (isset($_GET['noredir'])) {
    202200                $noredir = true;
    … …  
    206204
    207205        $postdata = get_post($p) or die(sprintf(__('Oops, no post with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
    208         $commentdata = get_commentdata($comment, 1, true) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'post.php'));
    209 
    210         if (!user_can_delete_post_comments($user_ID, $commentdata['comment_post_ID'])) {
     206
     207        if ( ! $comment = get_comment($comment) )
     208                         die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'post.php'));
     209
     210        if (!user_can_delete_post_comments($user_ID, $commentdata['comment_post_ID']))
    211211                die( __('You are not allowed to edit comments on this post.') );
    212         }
    213 
    214         wp_set_comment_status($comment, "delete");
    215         do_action('delete_comment', $comment);
     212
     213        wp_set_comment_status($comment->comment_ID, "delete");
     214        do_action('delete_comment', $comment->comment_ID);
    216215
    217216        if (($_SERVER['HTTP_REFERER'] != "") && (false == $noredir)) {
    … …  
    229228        check_admin_referer();
    230229
    231         $comment = $_GET['comment'];
    232         $p = $_GET['p'];
     230        $comment = (int) $_GET['comment'];
     231        $p = (int) $_GET['p'];
    233232        if (isset($_GET['noredir'])) {
    234233                $noredir = true;
    … …  
    237236        }
    238237
    239         $commentdata = get_commentdata($comment) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
    240 
    241         if (!user_can_edit_post_comments($user_ID, $commentdata['comment_post_ID'])) {
     238        if ( ! $comment = get_comment($comment) )
     239                die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
     240
     241        if ( !user_can_edit_post_comments($user_ID, $comment->comment_post_ID) )
    242242                die( __('You are not allowed to edit comments on this post, so you cannot disapprove this comment.') );
    243         }
    244 
    245         wp_set_comment_status($comment, "hold");
     243
     244        wp_set_comment_status($comment->comment_ID, "hold");
    246245
    247246        if (($_SERVER['HTTP_REFERER'] != "") && (false == $noredir)) {
    … …  
    257256        $comment = (int) $_GET['comment'];
    258257
    259         $commentdata = get_commentdata($comment, 1, true) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
    260 
    261         if (!user_can_edit_post_comments($user_ID, $commentdata['comment_post_ID'])) {
     258        if ( ! $comment = get_comment($comment) )
     259                         die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
     260
     261        if ( !user_can_edit_post_comments($user_ID, $comment->comment_post_ID) )
    262262                die( __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
    263         }
    264 
    265         if ('1' != $commentdata['comment_approved']) {
    266                 wp_set_comment_status($comment, 'approve');
     263
     264        if ('1' != $comment->comment_approved) {
     265                wp_set_comment_status($comment->comment_ID, 'approve');
    267266                if (true == get_option('comments_notify'))
    268                         wp_notify_postauthor($comment);
     267                        wp_notify_postauthor($comment->comment_ID);
    269268        }
    270269
    … …  
    275274case 'approvecomment':
    276275
    277         $comment = $_GET['comment'];
    278         $p = $_GET['p'];
     276        $comment = (int) $_GET['comment'];
     277        $p = (int) $_GET['p'];
    279278        if (isset($_GET['noredir'])) {
    280279                $noredir = true;
    … …  
    282281                $noredir = false;
    283282        }
    284         $commentdata = get_commentdata($comment) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
    285 
    286         if (!user_can_edit_post_comments($user_ID, $commentdata['comment_post_ID'])) {
     283
     284        if ( ! $comment = get_comment($comment) )
     285                die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
     286
     287        if ( !user_can_edit_post_comments($user_ID, $commentdata['comment_post_ID']))
    287288                die( __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
    288         }
    289 
    290         wp_set_comment_status($comment, "approve");
     289
     290        wp_set_comment_status($comment->comment_ID, "approve");
    291291        if (get_settings("comments_notify") == true) {
    292                 wp_notify_postauthor($comment);
     292                wp_notify_postauthor($comment->comment_ID);
    293293        }
    294294
    … …  
    304304case 'editedcomment':
    305305
    306         $comment_ID = $_POST['comment_ID'];
    307         $comment_post_ID = $_POST['comment_post_ID'];
    308         $newcomment_author = $_POST['newcomment_author'];
    309         $newcomment_author_email = $_POST['newcomment_author_email'];
    310         $newcomment_author_url = $_POST['newcomment_author_url'];
    311         $comment_status = $_POST['comment_status'];
    312 
    313         if (!user_can_edit_post_comments($user_ID, $comment_post_ID)) {
    314                 die( __('You are not allowed to edit comments on this post, so you cannot edit this comment.') );
    315         }
    316 
    317         if (user_can_edit_post_date($user_ID, $post_ID) && (!empty($_POST['edit_date']))) {
    318                 $aa = $_POST['aa'];
    319                 $mm = $_POST['mm'];
    320                 $jj = $_POST['jj'];
    321                 $hh = $_POST['hh'];
    322                 $mn = $_POST['mn'];
    323                 $ss = $_POST['ss'];
    324                 $jj = ($jj > 31) ? 31 : $jj;
    325                 $hh = ($hh > 23) ? $hh - 24 : $hh;
    326                 $mn = ($mn > 59) ? $mn - 60 : $mn;
    327                 $ss = ($ss > 59) ? $ss - 60 : $ss;
    328                 $datemodif = ", comment_date = '$aa-$mm-$jj $hh:$mn:$ss'";
    329         } else {
    330                 $datemodif = '';
    331         }
    332         $content = apply_filters('comment_save_pre', $_POST['content']);
    333 
    334         $result = $wpdb->query("
    335                 UPDATE $wpdb->comments SET
    336                         comment_content = '$content',
    337                         comment_author = '$newcomment_author',
    338                         comment_author_email = '$newcomment_author_email',
    339                         comment_approved = '$comment_status',
    340                         comment_author_url = '$newcomment_author_url'".$datemodif."
    341                 WHERE comment_ID = $comment_ID"
    342                 );
     306        edit_comment();
    343307
    344308        $referredby = $_POST['referredby'];
    … …  
    348312                header ("Location: edit.php?p=$comment_post_ID&c=1#comments");
    349313        }
    350         do_action('edit_comment', $comment_ID);
     314
    351315        break;
    352316
  • trunk/wp-includes/functions-post.php

    r2651 r2662  
    163163        }
    164164
    165         // Return insert_id if we got a good result, otherwise return zero.
    166         return $result ? $post_ID : 0;
     165        return $rval;
    167166}
    168167
    … …  
    587586
    588587        return $result;
     588}
     589
     590function wp_update_comment($commentarr) {
     591        global $wpdb;
     592
     593        // First, get all of the original fields
     594        $comment = get_comment($commentarr['comment_ID'], ARRAY_A);
     595
     596        // Escape data pulled from DB.
     597        foreach ($comment as $key => $value)
     598                $comment[$key] = $wpdb->escape($value);
     599
     600        // Merge old and new fields with new fields overwriting old ones.
     601        $commentarr = array_merge($comment, $commentarr);
     602
     603        // Now extract the merged array.
     604        extract($commentarr);
     605
     606        $comment_content = apply_filters('comment_save_pre', $comment_content);
     607
     608        $result = $wpdb->query(
     609                "UPDATE $wpdb->comments SET
     610                        comment_content = '$comment_content',
     611                        comment_author = '$comment_author',
     612                        comment_author_email = '$comment_author_email',
     613                        comment_approved = '$comment_approved',
     614                        comment_author_url = '$comment_author_url',
     615                        comment_date = '$comment_date'
     616                WHERE comment_ID = $comment_ID" );
     617
     618        $rval = $wpdb->rows_affected;
     619
     620        do_action('edit_comment', $comment_ID);
     621
     622        return $rval;   
    589623}
    590624
  • trunk/wp-includes/functions.php

    r2657 r2662  
    471471        if ( empty($post) ) {
    472472                if ( isset($GLOBALS['post']) )
    473                         $post = & $GLOBALS['post'];
     473                        $_post = & $GLOBALS['post'];
    474474                else
    475                         $post = null;
     475                        $_post = null;
    476476        } elseif (is_object($post) ) {
    477477                if (! isset($post_cache[$post->ID]))
    478478                        $post_cache[$post->ID] = &$post;
    479                 $post = & $post_cache[$post->ID];
     479                $_post = & $post_cache[$post->ID];
    480480        } else {
    481481                if (isset($post_cache[$post]))
    482                         $post = & $post_cache[$post];
     482                        $_post = & $post_cache[$post];
    483483                else {
    484484                        $query = "SELECT * FROM $wpdb->posts WHERE ID=$post";
    485485                        $post_cache[$post] = & $wpdb->get_row($query);
    486                         $post = & $post_cache[$post];
     486                        $_post = & $post_cache[$post];
    487487                }
    488488        }
    489489
    490490        if ( $output == OBJECT ) {
    491                 return $post;
     491                return $_post;
    492492        } elseif ( $output == ARRAY_A ) {
    493                 return get_object_vars($post);
     493                return get_object_vars($_post);
    494494        } elseif ( $output == ARRAY_N ) {
    495                 return array_values(get_object_vars($post));
    496         } else {
    497                 return $post;
     495                return array_values(get_object_vars($_post));
     496        } else {
     497                return $_post;
    498498        }
    499499}
    … …  
    506506        if ( empty($page) ) {
    507507                if ( isset($GLOBALS['page']) )
    508                         $page = & $GLOBALS['page'];
     508                        $_page = & $GLOBALS['page'];
    509509                else
    510                         $page = null;
     510                        $_page = null;
    511511        } elseif (is_object($page) ) {
    512512                if (! isset($page_cache[$page->ID]))
    513513                        $page_cache[$page->ID] = &$page;
    514                 $page = & $page_cache[$page->ID];
     514                $_page = & $page_cache[$page->ID];
    515515        } else {
    516516                if ( isset($GLOBALS['page']) && ($page == $GLOBALS['page']->ID) )
    517                         $page = & $GLOBALS['page'];
     517                        $_page = & $GLOBALS['page'];
    518518                elseif (isset($page_cache[$page]))
    519                         $page = & $page_cache[$page];
     519                        $_page = & $page_cache[$page];
    520520                else {
    521521                        $query = "SELECT * FROM $wpdb->posts WHERE ID=$page";
    522522                        $page_cache[$page] = & $wpdb->get_row($query);
    523                         $page = & $page_cache[$page];
     523                        $_page = & $page_cache[$page];
    524524                }
    525525        }
    526526
    527527        if ( $output == OBJECT ) {
    528                 return $page;
     528                return $_page;
    529529        } elseif ( $output == ARRAY_A ) {
    530                 return get_object_vars($page);
     530                return get_object_vars($_page);
    531531        } elseif ( $output == ARRAY_N ) {
    532                 return array_values(get_object_vars($page));
    533         } else {
    534                 return $page;
     532                return array_values(get_object_vars($_page));
     533        } else {
     534                return $_page;
    535535        }
    536536}
    … …  
    544544                return null;
    545545
    546         $category = (int) $category;
    547 
    548546        if ( ! isset($cache_categories))
    549547                update_category_cache();
    … …  
    552550                if ( ! isset($cache_categories[$category->cat_ID]))
    553551                        $cache_categories[$category->cat_ID] = &$category;
    554                 $category = & $cache_categories[$category->cat_ID];
     552                $_category = & $cache_categories[$category->cat_ID];
    555553        } else {
    556554                if ( !isset($cache_categories[$category]) ) {
    557                         $category = $wpdb->get_row("SELECT * FROM $wpdb->categories WHERE cat_ID = $category");
    558                         $cache_categories[$category->cat_ID] = & $category;
     555                        $_category = $wpdb->get_row("SELECT * FROM $wpdb->categories WHERE cat_ID = $category");
     556                        $cache_categories[$category->cat_ID] = & $_category;
    559557                } else {
    560                         $category = & $cache_categories[$category];
     558                        $_category = & $cache_categories[$category];
    561559                }
    562560        }
    563561
    564562        if ( $output == OBJECT ) {
    565                 return $category;
     563                return $_category;
    566564        } elseif ( $output == ARRAY_A ) {
    567                 return get_object_vars($category);
     565                return get_object_vars($_category);
    568566        } elseif ( $output == ARRAY_N ) {
    569                 return array_values(get_object_vars($category));
    570         } else {
    571                 return $category;
     567                return array_values(get_object_vars($_category));
     568        } else {
     569                return $_category;
     570        }
     571}
     572
     573// Retrieves comment data given a comment ID or comment object.
     574// Handles comment caching.
     575function &get_comment(&$comment, $output = OBJECT) {
     576        global $comment_cache, $wpdb;
     577
     578        if ( empty($comment) )
     579                return null;
     580
     581        if (is_object($comment)) {
     582                if ( ! isset($comment_cache[$comment->comment_ID]))
     583                        $comment_cache[$comment->comment_ID] = &$comment;
     584                $_comment = & $comment_cache[$comment->comment_ID];
     585        } else {
     586                if ( !isset($comment_cache[$comment]) ) {
     587                        $_comment = $wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_ID = '$comment'");
     588                        $comment_cache[$comment->comment_ID] = & $_comment;
     589                } else {
     590                        $_comment = & $comment_cache[$comment];
     591                }
     592        }
     593
     594        if ( $output == OBJECT ) {
     595                return $_comment;
     596        } elseif ( $output == ARRAY_A ) {
     597                return get_object_vars($_comment);
     598        } elseif ( $output == ARRAY_N ) {
     599                return array_values(get_object_vars($_comment));
     600        } else {
     601                return $_comment;
    572602        }
    573603}
Note: See TracChangeset for help on using the changeset viewer.