WordPress.org

Make WordPress Core

Ticket #7635: 7635.2.diff

File 7635.2.diff, 10.2 KB (added by ryan, 6 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>