Changeset 900
- Timestamp:
- 02/26/07 14:03:58 (2 years ago)
- Files:
-
- trunk/app.php (modified) (2 diffs)
- trunk/wp-admin/edit.php (modified) (1 diff)
- trunk/wp-admin/users.php (modified) (1 diff)
- trunk/wp-admin/wp-admin.css (modified) (1 diff)
- trunk/wp-comments-post.php (modified) (1 diff)
- trunk/wp-includes/class-phpmailer.php (added)
- trunk/wp-includes/class-pop3.php (modified) (18 diffs)
- trunk/wp-includes/class-smtp.php (added)
- trunk/wp-includes/comment-template.php (modified) (1 diff)
- trunk/wp-includes/feed-atom-comments.php (modified) (4 diffs)
- trunk/wp-includes/feed-atom.php (modified) (1 diff)
- trunk/wp-includes/feed-rss2-comments.php (modified) (2 diffs)
- trunk/wp-includes/feed.php (modified) (4 diffs)
- trunk/wp-includes/functions.php (modified) (1 diff)
- trunk/wp-includes/js/tinymce/plugins/wordpress/langs/en.js (modified) (1 diff)
- trunk/wp-includes/js/tinymce/tiny_mce_config.php (modified) (1 diff)
- trunk/wp-includes/pluggable.php (modified) (3 diffs)
- trunk/wp-includes/query.php (modified) (11 diffs)
- trunk/wp-includes/script-loader.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/app.php
r899 r900 13 13 require_once('wp-includes/post-template.php'); 14 14 15 $use_querystring = 1; 15 // Attempt to automatically detect whether to use querystring 16 // or PATH_INFO, based on our environment: 17 $use_querystring = $wp_version == 'MU' ? 1 : 0; 16 18 17 19 // If using querystring, we need to put the path together manually: … … 557 559 $slug = sanitize_file_name( $_SERVER['HTTP_TITLE'] ); 558 560 elseif ( empty( $slug ) ) // just make a random name 559 $slug = substr( md5( uniqid( microtime() ) ), 0, 7); ;561 $slug = substr( md5( uniqid( microtime() ) ), 0, 7); 560 562 $ext = preg_replace( '|.*/([a-z]+)|', '$1', $_SERVER['CONTENT_TYPE'] ); 561 563 $slug = "$slug.$ext"; trunk/wp-admin/edit.php
r868 r900 284 284 if ( current_user_can('edit_post', $comment->comment_post_ID) ) { 285 285 echo " <a href='comment.php?action=editcomment&c=".$comment->comment_ID."'>" . __('Edit') . '</a>'; 286 echo ' | <a href="' . wp_nonce_url('comment.php?action=deletecomment&p=' . $ post->ID . '&c=' . $comment->comment_ID, 'delete-comment_' . $comment->comment_ID) . '" onclick="return deleteSomething( \'comment\', ' . $comment->comment_ID . ', \'' . sprintf(__("You are about to delete this comment by '%s'.\n'Cancel' to stop, 'OK' to delete."), js_escape($comment->comment_author)) . "', theCommentList );\">" . __('Delete') . '</a> ';286 echo ' | <a href="' . wp_nonce_url('comment.php?action=deletecomment&p=' . $comment->comment_post_ID . '&c=' . $comment->comment_ID, 'delete-comment_' . $comment->comment_ID) . '" onclick="return deleteSomething( \'comment\', ' . $comment->comment_ID . ', \'' . js_escape(sprintf(__("You are about to delete this comment by '%s'.\n'Cancel' to stop, 'OK' to delete."), $comment->comment_author)) . "', theCommentList );\">" . __('Delete') . '</a> '; 287 287 if ( ('none' != $comment_status) && ( current_user_can('moderate_comments') ) ) { 288 echo '<span class="unapprove"> | <a href="' . wp_nonce_url('comment.php?action=unapprovecomment&p=' . $ post->ID . '&c=' . $comment->comment_ID, 'unapprove-comment_' . $comment->comment_ID) . '" onclick="return dimSomething( \'comment\', ' . $comment->comment_ID . ', \'unapproved\', theCommentList );">' . __('Unapprove') . '</a> </span>';289 echo '<span class="approve"> | <a href="' . wp_nonce_url('comment.php?action=approvecomment&p=' . $ post->ID . '&c=' . $comment->comment_ID, 'approve-comment_' . $comment->comment_ID) . '" onclick="return dimSomething( \'comment\', ' . $comment->comment_ID . ', \'unapproved\', theCommentList );">' . __('Approve') . '</a> </span>';288 echo '<span class="unapprove"> | <a href="' . wp_nonce_url('comment.php?action=unapprovecomment&p=' . $comment->comment_post_ID . '&c=' . $comment->comment_ID, 'unapprove-comment_' . $comment->comment_ID) . '" onclick="return dimSomething( \'comment\', ' . $comment->comment_ID . ', \'unapproved\', theCommentList );">' . __('Unapprove') . '</a> </span>'; 289 echo '<span class="approve"> | <a href="' . wp_nonce_url('comment.php?action=approvecomment&p=' . $comment->comment_post_ID . '&c=' . $comment->comment_ID, 'approve-comment_' . $comment->comment_ID) . '" onclick="return dimSomething( \'comment\', ' . $comment->comment_ID . ', \'unapproved\', theCommentList );">' . __('Approve') . '</a> </span>'; 290 290 } 291 echo " | <a href=\"" . wp_nonce_url("comment.php?action=deletecomment&dt=spam&p=" .$comment->comment_post_ID."&c=".$comment->comment_ID, 'delete-comment_' . $comment->comment_ID) . "\" onclick=\"return deleteSomething( 'comment-as-spam', $comment->comment_ID, '" . sprintf(__("You are about to mark as spam this comment by '%s'.\n'Cancel' to stop, 'OK' to mark as spam."), js_escape( $comment->comment_author)) . "', theCommentList );\">" . __('Spam') . "</a> ]";292 } // end if any comments to show291 echo " | <a href=\"" . wp_nonce_url("comment.php?action=deletecomment&dt=spam&p=" . $comment->comment_post_ID . "&c=" . $comment->comment_ID, 'delete-comment_' . $comment->comment_ID) . "\" onclick=\"return deleteSomething( 'comment-as-spam', $comment->comment_ID, '" . js_escape(sprintf(__("You are about to mark as spam this comment by '%s'.\n'Cancel' to stop, 'OK' to mark as spam."), $comment->comment_author)) . "', theCommentList );\">" . __('Spam') . "</a> "; 292 } 293 293 ?> 294 294 </p> trunk/wp-admin/users.php
r865 r900 86 86 'total' => ceil($this->total_users_for_query / $this->users_per_page), 87 87 'current' => $this->page, 88 'prev_text' => '« Previous Page',89 'next_text' => 'Next Page »',88 'prev_text' => __('« Previous Page'), 89 'next_text' => __('Next Page »'), 90 90 'base' => 'users.php?%_%', 91 91 'format' => 'userspage=%#%', trunk/wp-admin/wp-admin.css
r873 r900 291 291 padding: 1em 1em .2em; 292 292 margin: 0; 293 } 294 295 .commentlist li li { 296 border-bottom: 0px; 297 padding: 0; 293 298 } 294 299 trunk/wp-comments-post.php
r784 r900 19 19 } 20 20 21 $comment_author = trim( $_POST['author']);21 $comment_author = trim(strip_tags($_POST['author'])); 22 22 $comment_author_email = trim($_POST['email']); 23 23 $comment_author_url = trim($_POST['url']); trunk/wp-includes/class-pop3.php
r13 r900 4 4 * mail_fetch/setup.php 5 5 * 6 * Copyright (c) 1999-200 2The SquirrelMail Project Team6 * Copyright (c) 1999-2006 The SquirrelMail Project Team 7 7 * 8 8 * Copyright (c) 1999 CDI (cdi@thewebmasters.net) All Rights Reserved … … 14 14 * pop3 class 15 15 * 16 * $Id: class-pop3.php 2066 2005-01-07 01:29:49Z saxmatt$16 * $Id: class-pop3.php 4945 2007-02-25 18:19:21Z ryan $ 17 17 */ 18 18 … … 40 40 var $BANNER = ''; // Holds the banner returned by the 41 41 // pop server - used for apop() 42 43 var $RFC1939 = TRUE; // Set by noop(). See rfc1939.txt44 //45 42 46 43 var $ALLOWAPOP = FALSE; // Allow or disallow apop() … … 60 57 settype($timeout,"integer"); 61 58 $this->TIMEOUT = $timeout; 59 if (!ini_get('safe_mode')) 62 60 set_time_limit($timeout); 63 61 } … … 66 64 67 65 function update_timer () { 66 if (!ini_get('safe_mode')) 68 67 set_time_limit($this->TIMEOUT); 69 68 return true; … … 76 75 // If MAILSERVER is set, override $server with it's value 77 76 77 if (!isset($port) || !$port) {$port = 110;} 78 78 if(!empty($this->MAILSERVER)) 79 79 $server = $this->MAILSERVER; … … 85 85 } 86 86 87 $fp = fsockopen("$server", $port, $errno, $errstr);87 $fp = @fsockopen("$server", $port, $errno, $errstr); 88 88 89 89 if(!$fp) { … … 106 106 $this->FP = $fp; 107 107 $this->BANNER = $this->parse_banner($reply); 108 $this->RFC1939 = $this->noop(); 109 if($this->RFC1939) { 110 $this->ERROR = _("POP3: premature NOOP OK, NOT an RFC 1939 Compliant server"); 111 $this->quit(); 112 return false; 113 } else 114 return true; 115 } 116 117 function noop () { 118 119 if(!isset($this->FP)) { 120 $this->ERROR = _("POP3 noop:") . ' ' . _("No connection to server"); 121 return false; 122 } else { 123 $cmd = "NOOP"; 124 $reply = $this->send_cmd( $cmd ); 125 return( $this->is_ok( $reply ) ); 126 } 108 return true; 127 109 } 128 110 … … 159 141 $reply = $this->send_cmd("PASS $pass"); 160 142 if(!$this->is_ok($reply)) { 161 $this->ERROR = _("POP3 pass:") . ' ' . _(" authentication failed ") . "[$reply]";143 $this->ERROR = _("POP3 pass:") . ' ' . _("Authentication failed ") . "[$reply]"; 162 144 $this->quit(); 163 145 return false; … … 166 148 $count = $this->last("count"); 167 149 $this->COUNT = $count; 168 $this->RFC1939 = $this->noop(); 169 if(!$this->RFC1939) { 170 $this->ERROR = _("POP3 pass:") . ' ' . _("NOOP failed. Server not RFC 1939 compliant"); 171 $this->quit(); 172 return false; 173 } else 174 return $count; 150 return $count; 175 151 } 176 152 } … … 215 191 $count = $this->last("count"); 216 192 $this->COUNT = $count; 217 $this->RFC1939 = $this->noop(); 218 if(!$this->RFC1939) { 219 $this->ERROR = _("POP3 apop:") . ' ' . _("NOOP failed. Server not RFC 1939 compliant"); 220 $this->quit(); 221 return false; 222 } else 223 return $count; 193 return $count; 224 194 } 225 195 } … … 331 301 return false; 332 302 } 333 list($junk,$num,$size) = explode(" ",$reply);303 list($junk,$num,$size) = preg_split('/\s+/',$reply); 334 304 return $size; 335 305 } … … 354 324 return false; 355 325 } 356 list($thisMsg,$msgSize) = explode(" ",$line);326 list($thisMsg,$msgSize) = preg_split('/\s+/',$line); 357 327 settype($thisMsg,"integer"); 358 328 if($thisMsg != $msgC) … … 394 364 $MsgArray = array(); 395 365 396 $line = fgets($fp,$buffer);366 $line = ""; 397 367 while ( !ereg("^\.\r\n",$line)) 398 368 { 369 $line = fgets($fp,$buffer); 370 if (preg_match("/^\s+/", $line) && $count > 0) { 371 $MsgArray[$count-1] .= $line; 372 continue; 373 } 374 if(empty($line)) { break; } 375 399 376 $MsgArray[$count] = $line; 400 377 $count++; 401 $line = fgets($fp,$buffer);402 if(empty($line)) { break; }403 378 } 404 379 return $MsgArray; … … 424 399 } 425 400 426 $Vars = explode(" ",$reply);401 $Vars = preg_split('/\s+/',$reply); 427 402 $count = $Vars[1]; 428 403 $size = $Vars[2]; … … 555 530 return false; 556 531 } 557 list ($ok,$num,$myUidl) = explode(" ",$reply);532 list ($ok,$num,$myUidl) = preg_split('/\s+/',$reply); 558 533 return $myUidl; 559 534 } else { … … 586 561 break; 587 562 } 588 list ($msg,$msgUidl) = explode(" ",$line);563 list ($msg,$msgUidl) = preg_split('/\s+/',$line); 589 564 $msgUidl = $this->strip_clf($msgUidl); 590 565 if($count == $msg) { … … 657 632 { 658 633 $digit = substr($server_text, $count, 1); 659 if ( false !== $digit) {634 if (!empty($digit)) { 660 635 if( (!$outside) && ($digit != '<') && ($digit != '>') ) 661 636 { trunk/wp-includes/comment-template.php
r888 r900 291 291 } 292 292 293 $comments = apply_filters( 'comments_array', $comments, $post->ID ); 293 // keep $comments for legacy's sake (remember $table*? ;) ) 294 $comments = $wp_query->comments = apply_filters( 'comments_array', $comments, $post->ID ); 295 $wp_query->comment_count = count($wp_query->comments); 294 296 295 297 define('COMMENTS_TEMPLATE', true); trunk/wp-includes/feed-atom-comments.php
r899 r900 9 9 > 10 10 <title type="text"><?php 11 if ( is_single() || is_page()) {11 if ( is_singular() ) 12 12 printf(__('Comments on: %s'), get_the_title_rss()); 13 } else { 14 printf(__('Comments for %s'), get_bloginfo_rss('name')); 15 } 13 elseif ( is_search() ) 14 printf(__('Comments for %s searching on %s'), get_bloginfo_rss( 'name' ), attribute_escape($wp_query->query_vars['s'])); 15 else 16 printf(__('Comments for %s'), get_bloginfo_rss( 'name' ) . get_wp_title_rss()); 16 17 ?></title> 17 18 <subtitle type="text"><?php bloginfo_rss('description'); ?></subtitle> … … 25 26 26 27 <?php 27 $i = 0; 28 if (have_posts()) : 29 while (have_posts()) : the_post(); 30 if ($i < 1) { 31 $i++; 32 } 33 34 if (is_single() || is_page()) { 35 $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email, 36 comment_author_url, comment_date, comment_date_gmt, comment_content, comment_post_ID, 37 $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments 38 LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE comment_post_ID = '" . get_the_ID() . "' 39 AND $wpdb->comments.comment_approved = '1' AND $wpdb->posts.post_status = 'publish' 40 AND post_date_gmt < '" . gmdate("Y-m-d H:i:59") . "' 41 ORDER BY comment_date_gmt ASC" ); 42 } else { // if no post id passed in, we'll just use the last posts_per_rss comments. 43 $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email, 44 comment_author_url, comment_date, comment_date_gmt, comment_content, comment_post_ID, 45 $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments 46 LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE $wpdb->posts.post_status = 'publish' 47 AND $wpdb->comments.comment_approved = '1' AND post_date_gmt < '" . gmdate("Y-m-d H:i:s") . "' 48 ORDER BY comment_date_gmt DESC LIMIT " . get_option('posts_per_rss') ); 49 } 50 51 if ($comments) { 52 foreach ($comments as $comment) { 53 $GLOBALS['comment'] =& $comment; 54 get_post_custom($comment->comment_post_ID); 28 if ( have_comments() ) : while ( have_comments() ) : the_comment(); 29 $comment_post = get_post($comment->comment_post_ID); 30 get_post_custom($comment_post->ID); 55 31 ?> 56 32 <entry> 57 33 <title><?php 58 if ( !(is_single() || is_page())) {59 $title = get_the_title($comment ->comment_post_ID);34 if ( !is_singular() ) { 35 $title = get_the_title($comment_post->ID); 60 36 $title = apply_filters('the_title', $title); 61 37 $title = apply_filters('the_title_rss', $title); … … 70 46 <name><?php comment_author_rss(); ?></name> 71 47 <?php if (get_comment_author_url()) echo '<uri>' . get_comment_author_url() . '</uri>'; ?> 48 72 49 </author> 73 50 … … 75 52 <updated><?php echo mysql2date('D, d M Y H:i:s +0000', get_comment_time('Y-m-d H:i:s', true), false); ?></updated> 76 53 <published><?php echo mysql2date('D, d M Y H:i:s +0000', get_comment_time('Y-m-d H:i:s', true), false); ?></published> 77 78 <?php if (!empty($comment->post_password) && $_COOKIE['wp-postpass'] != $comment->post_password) { ?> 54 <?php if (!empty($comment_post->post_password) && $_COOKIE['wp-postpass'] != $comment_post->post_password) : ?> 79 55 <content type="html" xml:base="<?php comment_link(); ?>"><![CDATA[<?php echo get_the_password_form(); ?>]]></content> 80 <?php } else {?>56 <?php else : // post pass ?> 81 57 <content type="html" xml:base="<?php comment_link(); ?>"><![CDATA[<?php comment_text(); ?>]]></content> 82 <?php } ?> 58 <?php endif; // post pass 59 do_action('comment_atom_entry', $comment->comment_ID, $comment_post->ID); 60 ?> 83 61 </entry> 84 <?php 85 } 86 } 87 88 endwhile; 89 endif; 90 ?> 62 <?php endwhile; endif; ?> 91 63 </feed> trunk/wp-includes/feed-atom.php
r899 r900 39 39 <content type="<?php html_type_rss(); ?>" xml:base="<?php permalink_single_rss() ?>"><![CDATA[<?php the_content('', 0, '') ?>]]></content> 40 40 <?php endif; ?> 41 <?php rss_enclosure(); ?>41 <?php atom_enclosure(); ?> 42 42 <?php do_action('atom_entry'); ?> 43 43 </entry> trunk/wp-includes/feed-rss2-comments.php
r899 r900 8 8 xmlns:content="http://purl.org/rss/1.0/modules/content/"> 9 9 <channel> 10 <?php11 $i = 0; 12 if (have_posts()) : 13 while (have_posts()) : the_post(); 14 if ($i < 1) {15 $i++;16 ?> 17 <title><?php if (is_single() || is_page() ) { printf(__('Comments on: %s'), get_the_title_rss()); } else { printf(__('Comments for %s'), get_bloginfo_rss("name")); }?></title>10 <title><?php 11 if ( is_singular() ) 12 printf(__('Comments on: %s'), get_the_title_rss()); 13 elseif ( is_search() ) 14 printf(__('Comments for %s searching on %s'), get_bloginfo_rss( 'name' ), attribute_escape($wp_query->query_vars['s'])); 15 else 16 printf(__('Comments for %s'), get_bloginfo_rss( 'name' ) . get_wp_title_rss()); 17 ?></title> 18 18 <link><?php (is_single()) ? permalink_single_rss() : bloginfo_rss("url") ?></link> 19 19 <description><?php bloginfo_rss("description") ?></description> … … 22 22 23 23 <?php 24 if (is_single() || is_page()) { 25 $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email, 26 comment_author_url, comment_date, comment_date_gmt, comment_content, comment_post_ID, 27 $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments 28 LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE comment_post_ID = '" . get_the_ID() . "' 29 AND $wpdb->comments.comment_approved = '1' AND $wpdb->posts.post_status = 'publish' 30 AND post_date_gmt < '" . gmdate("Y-m-d H:i:59") . "' 31 ORDER BY comment_date_gmt ASC" ); 32 } else { // if no post id passed in, we'll just ue the last 10 comments. 33 $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email, 34 comment_author_url, comment_date, comment_date_gmt, comment_content, comment_post_ID, 35 $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments 36 LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE $wpdb->posts.post_status = 'publish' 37 AND $wpdb->comments.comment_approved = '1' AND post_date_gmt < '" . gmdate("Y-m-d H:i:s") . "' 38 ORDER BY comment_date_gmt DESC LIMIT " . get_option('posts_per_rss') ); 39 } 40 // this line is WordPress' motor, do not delete it. 41 if ($comments) { 42 foreach ($comments as $comment) { 43 $GLOBALS['comment'] =& $comment; 44 // Some plugins may need to know the metadata 45 // associated with this comment's post: 46 get_post_custom($comment->comment_post_ID); 24 if ( have_comments() ) : while ( have_comments() ) : the_comment(); 25 $comment_post = get_post($comment->comment_post_ID); 26 get_post_custom($comment_post->ID); 47 27 ?> 48 28 <item> 49 <title><?php if ( ! (is_single() || is_page()) ) { 50 $title = get_the_title($comment->comment_post_ID); 51 $title = apply_filters('the_title', $title); 52 $title = apply_filters('the_title_rss', $title); 53 printf(__('Comment on %1$s by %2$s'), $title, get_comment_author_rss()); 54 } else { 55 printf(__('By: %s'), get_comment_author_rss()); 56 } ?></title> 29 <title><?php 30 if ( !is_singular() ) { 31 $title = get_the_title($comment_post->ID); 32 $title = apply_filters('the_title', $title); 33 $title = apply_filters('the_title_rss', $title); 34 printf(__('Comment on %1$s by %2$s'), $title, get_comment_author_rss()); 35 } else { 36 printf(__('By: %s'), get_comment_author_rss()); 37 } 38 ?></title> 57 39 <link><?php comment_link() ?></link> 58 40 <author><?php echo get_comment_author_rss() ?></author> 59 41 <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_comment_time('Y-m-d H:i:s', true), false); ?></pubDate> 60 42 <guid><?php comment_link() ?></guid> 61 <?php 62 if (!empty($comment->post_password) && $_COOKIE['wp-postpass'] != $comment->post_password) { 63 ?> 43 <?php if (!empty($comment_post->post_password) && $_COOKIE['wp-postpass'] != $comment_post->post_password) : ?> 64 44 <description><?php _e('Protected Comments: Please enter your password to view comments.'); ?></description> 65 45 <content:encoded><![CDATA[<?php echo get_the_password_form() ?>]]></content:encoded> 66 <?php 67 } else { 68 ?> 46 <?php else : // post pass ?> 69 47 <description><?php comment_text_rss() ?></description> 70 48 <content:encoded><![CDATA[<?php comment_text() ?>]]></content:encoded> 71 <?php 72 } // close check for password 73 do_action('commentrss2_item', $comment->comment_ID, $comment->comment_post_ID); 74 ?> 49 <?php endif; // post pass 50 do_action('commentrss2_item', $comment->comment_ID, $comment_post->ID); 51 ?> 75 52 </item> 76 <?php 77 } 78 } 79 } 80 endwhile; endif; 81 ?> 53 <?php endwhile; endif; ?> 82 54 </channel> 83 55 </rss> trunk/wp-includes/feed.php
r899 r900 11 11 } 12 12 13 function get_wp_title_rss($sep = '»') { 14 $title = wp_title($sep, false); 15 $title = apply_filters('get_wp_title_rss', $title); 16 return $title; 17 } 13 18 14 19 function get_the_title_rss() { … … 91 96 92 97 function comments_rss_link($link_text = 'Comments RSS', $commentsrssfilename = 'nolongerused') { 93 $url = get_post_comments_feed_link(); ;98 $url = get_post_comments_feed_link(); 94 99 echo "<a href='$url'>$link_text</a>"; 95 100 } … … 174 179 return; 175 180 176 $custom_fields = get_post_custom(); 177 if ( is_array($custom_fields) ) { 178 while ( list($key, $val) = each($custom_fields) ) { 179 if ( $key == 'enclosure' ) { 180 if ( is_array($val) ) { 181 foreach ( (array) $val as $enc ) { 182 $enclosure = split( "\n", $enc ); 183 print "<enclosure url='".trim( htmlspecialchars($enclosure[ 0 ]) )."' length='".trim( $enclosure[ 1 ] )."' type='".trim( $enclosure[ 2 ] )."'/>\n"; 184 } 185 } 181 foreach (get_post_custom() as $key => $val) { 182 if ($key == 'enclosure') { 183 foreach ((array)$val as $enc) { 184 $enclosure = split("\n", $enc); 185 echo apply_filters('rss_enclosure', '<enclosure url="' . trim(htmlspecialchars($enclosure[0])) . '" length="' . trim($enclosure[1]) . '" type="' . trim($enclosure[2]) . '" />' . "\n"); 186 186 } 187 187 } … … 189 189 } 190 190 191 function atom_enclosure() { 192 global $id, $post; 193 if ( !empty($post->post_password) && ($_COOKIE['wp-postpass_'.COOKIEHASH] != $post->post_password) ) 194 return; 195 196 foreach (get_post_custom() as $key => $val) { 197 if ($key == 'enclosure') { 198 foreach ((array)$val as $enc) { 199 $enclosure = split("\n", $enc); 200 echo apply_filters('atom_enclosure', '<link href="' . trim(htmlspecialchars($enclosure[0])) . '" rel="enclosure" length="' . trim($enclosure[1]) . '" type="' . trim($enclosure[2]) . '" />' . "\n"); 201 } 202 } 203 } 204 } 205 191 206 ?> trunk/wp-includes/functions.php
r899 r900 963 963 964 964 if ( $feed == '' || $feed == 'feed' ) 965 $feed = 'rss2'; 966 967 $for_comments = false; 968 969 if ( is_singular() || get_query_var('withcomments') == 1 ) 970 $for_comments = true; 971 972 if ( false !== strpos($feed, 'comments-') ) { 973 $for_comments = true; 974 $feed = str_replace('comments-', '', $feed); 975 } 976 977 if ( get_query_var('withoutcomments') == 1 ) 978 $for_comments = false; 965 $feed = 'rss2'; 979 966 980 967 $hook = 'do_feed_' . $feed; 981 do_action($hook, $ for_comments);968 do_action($hook, $wp_query->is_comment_feed); 982 969 } 983 970 trunk/wp-includes/js/tinymce/plugins/wordpress/langs/en.js
r550 r900 30 30 numlist_desc : 'Ordered list (' + metaKey + '+o)', 31 31 outdent_desc : 'Outdent (' + metaKey + '+w)', 32 indent_desc : 'Indent List/Blockquote (' + metaKey + '+q)'32 indent_desc : 'Indent list/blockquote (' + metaKey + '+q)' 33 33 }); trunk/wp-includes/js/tinymce/tiny_mce_config.php
r899 r900 75 75 remove_linebreaks : false, 76 76 fix_list_elements : true, 77 gecko_spellcheck : true, 77 78 entities : "38,amp,60,lt,62,gt", 78 79 content_css : "<?php echo $mce_css; ?>", trunk/wp-includes/pluggable.php
r888 r900 163 163 if ( !function_exists('wp_mail') ) : 164 164 function wp_mail($to, $subject, $message, $headers = '') { 165 if( $headers == '' ) { 165 global $phpmailer; 166 167 if ( !is_object( $phpmailer ) ) { 168 require_once(ABSPATH . WPINC . '/class-phpmailer.php'); 169 require_once(ABSPATH . WPINC . '/class-smtp.php'); 170 $phpmailer = new PHPMailer(); 171 } 172 173 $mail = compact('to', 'subject', 'message', 'headers'); 174 $mail = apply_filters('wp_mail', $mail); 175 extract($mail); 176 177 if ( $headers == '' ) { 166 178 $headers = "MIME-Version: 1.0\n" . 167 179 "From: " . get_option('admin_email') . "\n" . … … 169 181 } 170 182 171 return @mail($to, $subject, $message, $headers); 183 $phpmailer->ClearAddresses(); 184 $phpmailer->ClearCCs(); 185 $phpmailer->ClearBCCs(); 186 $phpmailer->ClearReplyTos(); 187 $phpmailer->ClearAllRecipients(); 188 $phpmailer->ClearCustomHeaders(); 189 190 $phpmailer->FromName = "WordPress"; 191 $phpmailer->AddAddress("$to", ""); 192 $phpmailer->Subject = $subject; 193 $phpmailer->Body = $message; 194 $phpmailer->IsHTML(false); 195 $phpmailer->IsMail(); // set mailer to use php mail() 196 197 do_action_ref_array('phpmailer_init', array(&$phpmailer)); 198 199 $mailheaders = (array) explode( "\n", $headers ); 200 foreach ( $mailheaders as $line ) { 201 $header = explode( ":", $line ); 202 switch ( trim( $header[0] ) ) { 203 case "From": 204 $from = trim( str_replace( '"', '', $header[1] ) ); 205 if ( strpos( $from, '<' ) ) { 206 $phpmailer->FromName = str_replace( '"', '', substr( $header[1], 0, strpos( $header[1], '<' ) - 1 ) ); 207 $from = trim( substr( $from, strpos( $from, '<' ) + 1 ) ); 208 $from = str_replace( '>', '', $from ); 209 } else { 210 $phpmailer->FromName = $from; 211 } 212 $phpmailer->From = trim( $from ); 213 break; 214 default: 215 if ( $line != '' && $header[0] != 'MIME-Version' && $header[0] != 'Content-Type' ) 216 $phpmailer->AddCustomHeader( $line ); 217 break; 218 } 219 } 220 221 $result = @$phpmailer->Send(); 222 223 return $result; 172 224 } 173 225 endif; … … 223 275 (empty($_COOKIE[USER_COOKIE])) ) { 224 276 nocache_headers(); 225 226 277 wp_clearcookie(); 227 278 trunk/wp-includes/query.php
r896 r900 9 9 10 10 return $wp_query->get($var); 11 } 12 13 function set_query_var($var, $value) { 14 global $wp_query; 15 16 return $wp_query->set($var, $value); 11 17 } 12 18 … … 249 255 $wp_query->the_post(); 250 256 } 257 258 /* 259 * Comments loop. 260 */ 261 262 function have_comments() { 263 global $wp_query; 264 return $wp_query->have_comments(); 265 } 266 267 function the_comment() { 268 global $wp_query; 269 return $wp_query->the_comment(); 270 } 251 271 252 272 /* … … 266 286 var $in_the_loop = false; 267 287 var $post; 288 289 var $comments; 290 var $comment_count = 0; 291 var $current_comment = -1; 292 var $comment; 268 293 269 294 var $found_posts = 0; … … 283 308 var $is_search = false; 284 309 var $is_feed = false; 310 var $is_comment_feed = false; 285 311 var $is_trackback = false; 286 312 var $is_home = false; … … 306 332 $this->is_search = false; 307 333 $this->is_feed = false; 334 $this->is_comment_feed = false; 308 335 $this->is_trackback = false; 309 336 $this->is_home = false; … … 538 565 $this->is_singular = true; 539 566 567 if ( false !== strpos($qv['feed'], 'comments-') ) { 568 $this->query_vars['feed'] = $qv['feed'] = str_replace('comments-', '', $qv['feed']); 569 $qv['withcomments'] = 1; 570 } 571 572 if ( $this->is_feed && (!empty($qv['withcomments']) || ( empty($qv['withoutcomments']) && $this->is_singular ) ) ) 573 $this->is_comment_feed = true; 574 540 575 if ( ! ($this->is_singular || $this->is_archive || $this->is_search || $this->is_feed || $this->is_trackback || $this->is_404 || $this->is_admin || $this->is_comments_popup)) { 541 576 $this->is_home = true; … … 932 967 if ( is_user_logged_in() ) { 933 968 if ( 'post' == $post_type ) 934 $cap = ' edit_private_posts';969 $cap = 'read_private_posts'; 935 970 else 936 $cap = ' edit_private_pages';971 $cap = 'read_private_pages'; 937 972 938 973 if ( current_user_can($cap) ) … … 966 1001 $limits = 'LIMIT ' . $pgstrt . $q['posts_per_page']; 967 1002 } 1003 } 1004 1005 // Comments feeds 1006 if ( $this->is_comment_feed && ( $this->is_archive || $this->is_search || !$this->is_singular ) ) { 1007 if ( $this->is_archive || $this->is_search ) { 1008 $cjoin = "LEFT JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) $join "; 1009 $cwhere = "WHERE comment_approved = '1' $where"; 1010 $cgroupby = "GROUP BY $wpdb->comments.comment_id"; 1011 } else { // Other non singular e.g. front 1012 $cjoin = "LEFT JOIN $wpdb->posts ON ( $wpdb->comments.comment_post_ID = $wpdb->posts.ID )"; 1013 $cwhere = "WHERE post_status = 'publish' AND comment_approved = '1'"; 1014 $cgroupby = ''; 1015 } 1016 1017 $cjoin = apply_filters('comment_feed_join', $cjoin); 1018 $cwhere = apply_filters('comment_feed_where', $cwhere); 1019 $cgroupby = apply_filters('comment_feed_groupby', $cgroupby); 1020 1021 $this->comments = (array) $wpdb->get_results("SELECT $distinct $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere $cgroupby ORDER BY comment_date_gmt DESC LIMIT " . get_settings('posts_per_rss')); 1022 $this->comment_count = count($this->comments); 1023 1024 $post_ids = array(); 1025 1026 foreach ($this->comments as $comment) 1027 $post_ids[] = (int) $comment->comment_post_ID; 1028 1029 $post_ids = join(',', $post_ids); 1030 $join = ''; 1031 if ( $post_ids ) 1032 $where = "AND $wpdb->posts.ID IN ($post_ids) "; 1033 else 1034 $where = "AND 0"; 968 1035 } 969 1036 … … 987 1054 988 1055 $this->posts = $wpdb->get_results($this->request); 1056 1057 if ( $this->is_com
