WordPress.org

Make WordPress Core

Ticket #7635: 7635.2.diff

File 7635.2.diff, 10.2 KB (added by ryan, 10 years ago)

Add style and callback args to wp_list_comments(), add cancel_comment_reply_link().

  • wp-includes/js/comment-reply.js

     
     1function moveAddCommentForm(theId, threadId) {
     2        var addComment = document.getElementById("respond");
     3        var comment = document.getElementById(theId);
     4        addComment.parentNode.removeChild(addComment);
     5
     6        comment.appendChild(addComment);
     7//      if(comment.className.indexOf("alt")>-1) {
     8//              addComment.className = addComment.className.replace(" alt", "");                                       
     9//      } else {
     10//              addComment.className += " alt";
     11//      }
     12        var replyId = document.getElementById("comment-parent");
     13        replyId.value = threadId;
     14        var reRootElement = document.getElementById("cancel-comment-reply");
     15        reRootElement.style.display = "block";
     16        var aTags = comment.getElementsByTagName("A");
     17        var anc = aTags.item(0).id;
     18        //document.location.href = "#"+anc;
     19        document.getElementById("comment").focus();
     20}
     21
     22function cancelCommentReply() {
     23        var addComment = document.getElementById("respond");                   
     24        var reRootElement = document.getElementById("cancel-comment-reply");
     25        reRootElement.style.display = "none";
     26        var content = document.getElementById("content-main");
     27        if( !content )
     28                content = document.getElementById("content");
     29        if( content ) {
     30                addComment.parentNode.removeChild(addComment);
     31                content.appendChild(addComment);
     32        }
     33//      addComment.className = addComment.className.replace(" alt", "");
     34        document.location.href = "#respond";
     35        document.getElementById("comment").focus();                             
     36        document.getElementById("comment-parent").value = "0";
     37}
     38 No newline at end of file
  • wp-includes/comment-template.php

     
    227227 * @param int $comment_id An optional comment ID
    228228 * @param int $post_id An optional post ID
    229229 */
    230 function comment_class( $class = '', $comment_id = null, $post_id = null ) {
    231         // Separates classes with a single space, collates classes for post DIV
    232         echo 'class="' . join( ' ', get_comment_class( $class, $comment_id, $post_id ) ) . '"';
     230function comment_class( $class = '', $comment_id = null, $post_id = null, $echo = true ) {
     231        // Separates classes with a single space, collates classes for comment DIV
     232        $class = 'class="' . join( ' ', get_comment_class( $class, $comment_id, $post_id ) ) . '"';
     233        if ( $echo)
     234                echo $class;
     235        else
     236                return $class;
    233237}
    234238
    235239/**
     
    266270        if ( empty($comment_alt) )
    267271                $comment_alt = 0;
    268272
    269         if ( $comment_alt % 2 )
     273        if ( $comment_alt % 2 ) {
    270274                $classes[] = 'odd';
    271         else
     275                $classes[] = 'alt';
     276        } else {
    272277                $classes[] = 'even';
     278        }
    273279
    274280        $comment_alt++;
    275281
     
    837843        echo '</a>';
    838844}
    839845
     846function comment_reply_link($args = array(), $comment = null, $post = null) {
     847        global $user_ID;
     848
     849        $defaults = array('add_below' => 'comment', 'reply_text' => __('Reply'),
     850                'login_text' => __('Log in to Reply'));
     851
     852        $args = wp_parse_args($args, $defaults);
     853
     854        extract($args, EXTR_SKIP);
     855
     856        $comment = get_comment($comment);
     857        $post = get_post($post);
     858
     859        if ( 'open' != $post->comment_status )
     860                return false;
     861
     862        $link = '';
     863
     864        if ( get_option('comment_registration') && !$user_ID )
     865                $link = '<a href="' . site_url('wp-login.php?redirect_to=' . get_permalink()) . '">' . $login_text . '</a>';
     866        else
     867                $link = "<a href='#' onclick='moveAddCommentForm(\"$add_below-$comment->comment_ID\", $comment->comment_ID); return false;'>$reply_text</a>";
     868
     869        return $link;
     870}
     871
     872function cancel_comment_reply_link($text = '') {
     873        if ( empty($text) )
     874                $text = __('Click here to cancel reply.');
     875        echo '<a href="#" onclick="cancelCommentReply(); return false;">' . $text . '</a>';
     876}
     877
     878class Walker_Comment extends Walker {
     879        var $tree_type = 'comment';
     880        var $db_fields = array ('parent' => 'comment_parent', 'id' => 'comment_ID');
     881
     882        function start_lvl(&$output, $depth, $args) {
     883                if ( 'div' == $args['style'] )
     884                        return;
     885
     886                echo "<ul class='children'>\n";
     887        }
     888
     889        function end_lvl(&$output, $depth, $args) {
     890                if ( 'div' == $args['style'] )
     891                        return;
     892
     893                echo "</ul>\n";
     894        }
     895
     896        function start_el(&$output, $comment, $depth, $args) {
     897                $depth++;
     898
     899                if ( !empty($args['callback']) ) {
     900                        call_user_func($args['callback'], $comment, $args, $depth);
     901                        return;
     902                }
     903
     904                $GLOBALS['comment'] = $comment;
     905                extract($args, EXTR_SKIP);
     906
     907                if ( 'div' == $args['style'] )
     908                        $tag = 'div';
     909                else
     910                        $tag = 'li';
     911?>
     912                <<?php echo $tag ?> "<?php comment_class() ?>" id="comment-<?php comment_ID() ?>">
     913                <div id="div-comment-<?php comment_ID() ?>">
     914                <div class="comment-author vcard">
     915                <?php echo get_avatar( $comment, 32 ) ?>
     916                <?php printf(__('<cite>%s</cite> Says:'), get_comment_author_link()) ?>
     917                </div>
     918<?php if ($comment->comment_approved == '0') : ?>
     919                <em><?php _e('Your comment is awaiting moderation.') ?></em>
     920                <br />
     921<?php endif; ?>
     922
     923                <div class="comment-meta commentmetadata"><a href="#comment-<?php comment_ID() ?>" title=""><?php printf(__('%1$s at %2$s'), get_comment_date('F jS, Y'),  get_comment_time()) ?></a><?php edit_comment_link('edit','&nbsp;&nbsp;','') ?></div>
     924
     925                <?php echo apply_filters('comment_text', get_comment_text()) ?>
     926
     927                <div class='reply'>
     928                <?php if ( $depth < $args['depth'] ) echo comment_reply_link(array('add_below' => 'div-comment')) ?>
     929                </div>
     930                </div>
     931<?php
     932        }
     933
     934        function end_el(&$output, $comment, $depth, $args) {
     935                if ( 'div' == $args['style'] )
     936                        echo "</div>\n";
     937                else
     938                        echo "</li>\n";
     939        }
     940
     941}
     942
     943function wp_list_comments(&$comments, $args = array() ) {
     944        $defaults = array('walker' => '', 'depth' => 4, 'style' => 'list', 'callback' => null);
     945
     946        $r = wp_parse_args( $args, $defaults );
     947
     948        extract( $r );
     949
     950        if ( empty($walker) )
     951                $walker = new Walker_Comment;
     952
     953        $walker->walk($comments, $depth, $r);
     954}
     955
    840956?>
     957 No newline at end of file
  • wp-includes/link-template.php

     
    531531        return apply_filters( 'get_edit_comment_link', $location );
    532532}
    533533
    534 function edit_comment_link( $link = 'Edit This', $before = '', $after = '' ) {
     534function edit_comment_link( $link = 'Edit This', $before = '', $after = '', $echo = true ) {
    535535        global $comment, $post;
    536536
    537537        if ( $post->post_type == 'attachment' ) {
     
    544544        }
    545545
    546546        $link = '<a href="' . get_edit_comment_link( $comment->comment_ID ) . '" title="' . __( 'Edit comment' ) . '">' . $link . '</a>';
    547         echo $before . apply_filters( 'edit_comment_link', $link, $comment->comment_ID ) . $after;
     547        $link = $before . apply_filters( 'edit_comment_link', $link, $comment->comment_ID ) . $after;
     548        if ( $echo )
     549                echo $link;
     550        else
     551                return $link;
    548552}
    549553
    550554function get_edit_bookmark_link( $link = 0 ) {
  • wp-includes/script-loader.php

     
    109109        $scripts->add( 'jquery-ui-resizable', '/wp-includes/js/jquery/ui.resizable.js', array('jquery-ui-core'), '1.5.2' );
    110110        $scripts->add( 'jquery-ui-dialog', '/wp-includes/js/jquery/ui.dialog.js', array('jquery-ui-resizable', 'jquery-ui-draggable'), '1.5.2' );
    111111
     112        $scripts->add( 'comment-reply', '/wp-includes/js/comment-reply.js', false, '20080828');
     113
    112114        if ( is_admin() ) {
    113115                $scripts->add( 'ajaxcat', '/wp-admin/js/cat.js', array( 'wp-lists' ), '20071101' );
    114116                $scripts->localize( 'ajaxcat', 'catL10n', array(
  • wp-content/themes/default/comments.php

     
    2323        <h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to &#8220;<?php the_title(); ?>&#8221;</h3>
    2424
    2525        <ol class="commentlist">
    26 
    27         <?php foreach ($comments as $comment) : ?>
    28 
    29                 <li <?php comment_class($oddcomment) ?> id="comment-<?php comment_ID() ?>">
    30                         <?php echo get_avatar( $comment, 32 ); ?>
    31                         <cite><?php comment_author_link() ?></cite> Says:
    32                         <?php if ($comment->comment_approved == '0') : ?>
    33                         <em>Your comment is awaiting moderation.</em>
    34                         <?php endif; ?>
    35                         <br />
    36 
    37                         <small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('F jS, Y') ?> at <?php comment_time() ?></a> <?php edit_comment_link('edit','&nbsp;&nbsp;',''); ?></small>
    38 
    39                         <?php comment_text() ?>
    40 
    41                 </li>
    42 
    43         <?php
    44                 /* Changes every other comment to a different class */
    45                 $oddcomment = ( empty( $oddcomment ) ) ? 'alt' : '';
    46         ?>
    47 
    48         <?php endforeach; /* end for each comment */ ?>
    49 
     26        <?php wp_list_comments($comments); ?>
    5027        </ol>
    5128
    5229 <?php else : // this is displayed if there are no comments so far ?>
     
    6441
    6542<?php if ('open' == $post->comment_status) : ?>
    6643
    67 <h3 id="respond">Leave a Reply</h3>
     44<div id="respond">
    6845
     46<h3>Leave a Reply</h3>
     47
     48<div id="cancel-comment-reply" style="display: none;">
     49        <small><?php echo cancel_comment_reply_link() ?></small>
     50</div>
     51
    6952<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
    7053<p>You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">logged in</a> to post a comment.</p>
    7154<?php else : ?>
     
    9578
    9679<p><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />
    9780<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
     81<input type="hidden" name="comment_parent" id="comment-parent" value="0" />
    9882</p>
    9983<?php do_action('comment_form', $post->ID); ?>
    10084
    10185</form>
     86</div>
    10287
    10388<?php endif; // If registration required and not logged in ?>
    10489
  • wp-content/themes/default/header.php

     
    2424
    2525</style>
    2626
     27<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
     28
    2729<?php wp_head(); ?>
    2830</head>
    2931<body>