Compare commits

...

31 Commits
4.9.2 ... 2.3.1

Author SHA1 Message Date
ryan
4d08b86547 2.3.1
git-svn-id: http://svn.automattic.com/wordpress/tags/2.3.1@6293 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-26 16:10:08 +00:00
ryan
5f519c0d59 Ship it
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6292 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-26 16:08:17 +00:00
ryan
4a0f81aa39 Allow hypens in email addresses. Props Bobcat. fixes #5169 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6280 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-21 06:18:08 +00:00
ryan
29f61fb96e Getting ready for RC1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6279 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-20 19:22:40 +00:00
ryan
8ee19ffce1 Beta time
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6270 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-17 21:20:45 +00:00
ryan
f0802a73d9 Group results when selecting from post2cat and link2cat to avoid dupes. fixes #5223 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6268 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-17 21:09:02 +00:00
westi
9eec531922 Set the Sender on emails as well as from. Fixes #5007 for 2.3.1 props mattyrob
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6266 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-17 20:19:01 +00:00
markjaquith
30110216f2 Explicitly exclude previews from canonicalization. fixes #5203 for 2.3.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6264 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-17 20:15:18 +00:00
ryan
6ddf21d582 Prevent direct load of edit-post-rows.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6258 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-17 16:51:55 +00:00
ryan
0d612c6304 Add current_user_can() checks to link.php. Props DD32. fixes #4627 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6256 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-16 16:09:37 +00:00
ryan
d0314e0336 Use inner joins instead of left joins for taxonomy. Inner is faster. fixes #5179 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6253 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-15 20:14:56 +00:00
ryan
9c3151f5bb Use filename if no title. Props tellyworth. fixes #5080 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6234 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-12 22:15:32 +00:00
ryan
574d8bb7d3 Make sure initial query is saved when calling wp(). Props andy. fixes #5121 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6232 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-12 21:46:32 +00:00
ryan
52ea4aa917 Fix category assigment during link import. fixes #5107 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6231 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-12 21:24:08 +00:00
ryan
83f88345d4 Lose Convert All Categories button. It is confusing people. Props foolswisdom. fixes #5058 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6226 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-11 17:52:13 +00:00
markjaquith
801c850f18 check for a match against a lowercase host in wp_safe_redirect(). props BoltClock. fixes #5114 for 2.3.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6220 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-10 19:26:21 +00:00
ryan
cbe3e26f14 wlw manifest from josephscott. fixes #5023 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6211 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-09 21:09:49 +00:00
ryan
8422931569 Force prototype to load before jquery. Props mdawaffe. fixes #5067 for trunk
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6210 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-09 21:04:40 +00:00
ryan
521ee8a270 Apply filteres when returning empty array from get_pages. Props epper. fixes #4712 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6205 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-08 22:26:19 +00:00
westi
c12b431aa3 Ensure we have the default category id. Fixes #5150 for branches/2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6194 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-06 06:23:45 +00:00
ryan
3d8a0319cd Fix filesize warnings. fixes #5077 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6191 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-05 16:29:55 +00:00
ryan
349592dff0 Add some spacing. fixes #5137 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6190 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-05 16:28:42 +00:00
ryan
cc937bd40f New taxonomy intersection queries from xknown. fixes #5137 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6187 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-04 18:11:03 +00:00
ryan
77524aa0c4 Add page sanitization. Props xknown. fixes #5135 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6184 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-03 16:26:16 +00:00
ryan
208d86f6f8 Add sanitize_url. Don't convert ampersands in URLs when saving to DB. fixes #4411 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6183 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-03 16:17:54 +00:00
westi
76b2c8bef3 Update version for branches 2.3 fixes #5099
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6176 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-29 10:54:36 +00:00
ryan
d821c2d010 Spelling fix from zamoose. fixes #5095 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6175 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-28 17:37:36 +00:00
ryan
02bc8ab391 Gettext fix from nbachiyski. fixes #5086 for trunk
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-26 23:23:22 +00:00
ryan
9907c0290a Fix typo in category widget class name. Props joostdevalk. fixes #5079 for 2.3.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6170 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-26 16:12:42 +00:00
ryan
d93fbd7e13 Set TEST_COOKIE for SITECOOKIEPATH. see #5076
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6167 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-25 23:17:30 +00:00
ryan
2b50d1f647 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6166 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-25 00:37:21 +00:00
31 changed files with 195 additions and 131 deletions

View File

@@ -1,3 +1,4 @@
<?php if ( ! defined('ABSPATH') ) die(); ?>
<table class="widefat">
<thead>
<tr>

View File

@@ -30,7 +30,7 @@ class MT_Import {
<input type="hidden" name="upload_type" value="ftp" />
<?php _e('Or use <code>mt-export.txt</code> in your <code>/wp-content/</code> directory'); ?></p>
<p class="submit">
<input type="submit" value="<?php _e(sprintf('Import %s', 'mt-export.txt &raquo;')); ?>" />
<input type="submit" value="<?php echo attribute_escape(__('Import mt-export.txt &raquo;')); ?>" />
</p>
</form>
<p><?php _e('The importer is smart enough not to import duplicates, so you can run this multiple times without worry if&#8212;for whatever reason&#8212;it doesn\'t finish. If you get an <strong>out of memory</strong> error try splitting up the import file into pieces.'); ?> </p>

View File

@@ -157,7 +157,7 @@ class UTW_Import {
// run that funky magic!
$tags_added = $this->tag2post();
echo '<p>' . sprintf( __('Done! <strong>%s</strong> tags where added!'), $tags_added ) . '<br /></p>';
echo '<p>' . sprintf( __('Done! <strong>%s</strong> tags were added!'), $tags_added ) . '<br /></p>';
echo '<form action="admin.php?import=utw&amp;step=4" method="post">';
wp_nonce_field('import-utw');
@@ -273,4 +273,4 @@ $utw_import = new UTW_Import();
// add it to the import page!
register_importer('utw', 'Ultimate Tag Warrior', __('Import Ultimate Tag Warrior tags into the new native tagging structure.'), array($utw_import, 'dispatch'));
?>
?>

View File

@@ -63,7 +63,7 @@ class WP_Categories_to_Tags {
print '</ul>';
print '<p class="submit"><input type="submit" name="maybe_convert_all_cats" value="' . __('Convert All Categories') . '" /> <input type="submit" name="submit" value="' . __('Convert &raquo;') . '" /></p>';
print '<p class="submit"><input type="submit" name="submit" value="' . __('Convert &raquo;') . '" /></p>';
print '</form>';
}
@@ -140,11 +140,23 @@ class WP_Categories_to_Tags {
foreach ( $posts as $post ) {
if ( !$wpdb->get_var("SELECT object_id FROM $wpdb->term_relationships WHERE object_id = '$post' AND term_taxonomy_id = '$id'") )
$wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES ('$post', '$id')");
clean_post_cache($post);
}
} else {
$tt_ids = $wpdb->get_col("SELECT term_taxonomy_id FROM $wpdb->term_taxonomy WHERE term_id = '{$category->term_id}' AND taxonomy = 'category'");
if ( $tt_ids ) {
$posts = $wpdb->get_col("SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id IN (" . join(',', $tt_ids) . ") GROUP BY object_id");
foreach ( (array) $posts as $post )
clean_post_cache($post);
}
// Change the category to a tag.
$wpdb->query("UPDATE $wpdb->term_taxonomy SET taxonomy = 'post_tag' WHERE term_id = '{$category->term_id}' AND taxonomy = 'category'");
$terms = $wpdb->get_col("SELECT term_id FROM $wpdb->term_taxonomy WHERE parent = '{$category->term_id}' AND taxonomy = 'category'");
foreach ( (array) $terms as $term )
clean_category_cache($term);
// Set all parents to 0 (root-level) if their parent was the converted tag
$wpdb->query("UPDATE $wpdb->term_taxonomy SET parent = 0 WHERE parent = '{$category->term_id}' AND taxonomy = 'category'");
}
@@ -160,41 +172,9 @@ class WP_Categories_to_Tags {
print '</ul>';
}
function convert_all_confirm() {
print '<div class="narrow">';
print '<h3>' . __('Confirm') . '</h3>';
print '<p>' . __('You are about to convert all categories to tags. Are you sure you want to continue?') . '</p>';
print '<form action="admin.php?import=wp-cat2tag" method="post">';
wp_nonce_field('import-cat2tag');
print '<p style="text-align:center" class="submit"><input type="submit" value="' . __('Yes') . '" name="yes_convert_all_cats" />&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="' . __('No') . '" name="no_dont_do_it" /></p>';
print '</form>';
print '</div>';
}
function convert_all() {
global $wpdb;
$this->populate_all_categories();
foreach ( $this->all_categories as $category )
$this->categories_to_convert[] = $category->term_id;
$this->convert_them();
}
function init() {
if (isset($_POST['maybe_convert_all_cats'])) {
$step = 3;
} elseif (isset($_POST['yes_convert_all_cats'])) {
$step = 4;
} elseif (isset($_POST['no_dont_do_it'])) {
die('no_dont_do_it');
} else {
$step = (isset($_GET['step'])) ? (int) $_GET['step'] : 1;
}
$step = (isset($_GET['step'])) ? (int) $_GET['step'] : 1;
$this->header();
@@ -214,14 +194,6 @@ class WP_Categories_to_Tags {
case 2 :
$this->convert_them();
break;
case 3 :
$this->convert_all_confirm();
break;
case 4 :
$this->convert_all();
break;
}
}

View File

@@ -38,6 +38,7 @@ function _cat_row( $category, $level, $name_override = false ) {
if ( current_user_can( 'manage_categories' ) ) {
$edit = "<a href='categories.php?action=edit&amp;cat_ID=$category->term_id' class='edit'>".__( 'Edit' )."</a></td>";
$default_cat_id = (int) get_option( 'default_category' );
$default_link_cat_id = (int) get_option( 'default_link_category' );
if ( $category->term_id != $default_cat_id )
$edit .= "<td><a href='" . wp_nonce_url( "categories.php?action=delete&amp;cat_ID=$category->term_id", 'delete-category_' . $category->term_id ) . "' onclick=\"return deleteSomething( 'cat', $category->term_id, '" . js_escape(sprintf( __("You are about to delete the category '%s'.\nAll posts that were only assigned to this category will be assigned to the '%s' category.\nAll links that were only assigned to this category will be assigned to the '%s' category.\n'OK' to delete, 'Cancel' to stop." ), $category->name, get_catname( $default_cat_id ), get_catname( $default_link_cat_id ) )) . "' );\" class='delete'>".__( 'Delete' )."</a>";
@@ -493,7 +494,7 @@ function parent_dropdown( $default = 0, $parent = 0, $level = 0 ) {
else
$current = '';
echo "\n\t<option value='$item->ID'$current>$pad $item->post_title</option>";
echo "\n\t<option value='$item->ID'$current>$pad " . wp_specialchars($item->post_title) . "</option>";
parent_dropdown( $default, $item->ID, $level +1 );
}
} else {

View File

@@ -533,6 +533,7 @@ function upgrade_230() {
// Convert categories to terms.
$tt_ids = array();
$have_tags = false;
$categories = $wpdb->get_results("SELECT * FROM $wpdb->categories ORDER BY cat_ID");
foreach ($categories as $category) {
$term_id = (int) $category->cat_ID;
@@ -579,6 +580,7 @@ function upgrade_230() {
}
if ( !empty($category->tag_count) ) {
$have_tags = true;
$count = (int) $category->tag_count;
$taxonomy = 'post_tag';
$wpdb->query("INSERT INTO $wpdb->term_taxonomy (term_id, taxonomy, description, parent, count) VALUES ('$term_id', '$taxonomy', '$description', '$parent', '$count')");
@@ -593,7 +595,11 @@ function upgrade_230() {
}
}
$posts = $wpdb->get_results("SELECT * FROM $wpdb->post2cat");
$select = 'post_id, category_id';
if ( $have_tags )
$select .= ', rel_type';
$posts = $wpdb->get_results("SELECT $select FROM $wpdb->post2cat GROUP BY post_id, category_id");
foreach ( $posts as $post ) {
$post_id = (int) $post->post_id;
$term_id = (int) $post->category_id;
@@ -658,7 +664,7 @@ function upgrade_230() {
// Set default to the last category we grabbed during the upgrade loop.
update_option('default_link_category', $default_link_cat);
} else {
$links = $wpdb->get_results("SELECT * FROM $wpdb->link2cat");
$links = $wpdb->get_results("SELECT link_id, category_id FROM $wpdb->link2cat GROUP BY link_id, category_id");
foreach ( $links as $link ) {
$link_id = (int) $link->link_id;
$term_id = (int) $link->category_id;
@@ -1002,7 +1008,6 @@ function dbDelta($queries, $execute = true) {
}
// Add the column list to the index create string
$index_string .= ' ('.$index_columns.')';
error_log("Index string: $index_string", 0);
if(!(($aindex = array_search($index_string, $indices)) === false)) {
unset($indices[$aindex]);
//echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br />Found index:".$index_string."</pre>\n";

View File

@@ -31,6 +31,9 @@ function wp_upload_display( $dims = false, $href = '' ) {
$src = wp_make_link_relative( $src_base );
$src_base = str_replace($src, '', $src_base);
if ( !trim($post_title) )
$post_title = basename($src);
$r = '';
if ( $href )
@@ -39,7 +42,9 @@ function wp_upload_display( $dims = false, $href = '' ) {
$r .= "\t\t\t$innerHTML";
if ( $href )
$r .= "</a>\n";
$r .= "\t\t\t\t<span class='upload-file-size'>".size_format(filesize($filesystem_path))."</span>\n";
$size = @filesize($filesystem_path);
if ( !empty($size) )
$r .= "\t\t\t\t<span class='upload-file-size'>".size_format($size)."</span>\n";
$r .= "\n\t\t<div class='upload-file-data'>\n\t\t\t<p>\n";
$r .= "\t\t\t\t<input type='hidden' name='attachment-url-$id' id='attachment-url-$id' value='$src' />\n";
$r .= "\t\t\t\t<input type='hidden' name='attachment-url-base-$id' id='attachment-url-base-$id' value='$src_base' />\n";

View File

@@ -45,10 +45,10 @@ switch ($step) {
<p style="clear: both; margin-top: 1em;"><?php _e('Now select a category you want to put these links in.') ?><br />
<?php _e('Category:') ?> <select name="cat_id">
<?php
$categories = get_categories('hide_empty=0');
$categories = get_terms('link_category', 'get=all');
foreach ($categories as $category) {
?>
<option value="<?php echo $category->cat_ID; ?>"><?php echo wp_specialchars(apply_filters('link_category', $category->cat_name)); ?></option>
<option value="<?php echo $category->term_id; ?>"><?php echo wp_specialchars(apply_filters('link_category', $category->name)); ?></option>
<?php
} // end foreach
?>

View File

@@ -3,6 +3,9 @@ require_once ('admin.php');
wp_reset_vars(array('action', 'cat_id', 'linkurl', 'name', 'image', 'description', 'visible', 'target', 'category', 'link_id', 'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel', 'notes', 'linkcheck[]'));
if ( ! current_user_can('manage_links') )
wp_die( __('You do not have sufficient permissions to edit the links for this blog.') );
if ('' != $_POST['deletebookmarks'])
$action = 'deletebookmarks';
if ('' != $_POST['move'])
@@ -13,13 +16,9 @@ if ('' != $_POST['linkcheck'])
$this_file = 'link-manager.php';
switch ($action) {
case 'deletebookmarks' :
case 'deletebookmarks' :
check_admin_referer('bulk-bookmarks');
// check the current user's level first.
if (!current_user_can('manage_links'))
wp_die(__('Cheatin&#8217; uh?'));
//for each link id (in $linkcheck[]) change category to selected value
if (count($linkcheck) == 0) {
wp_redirect($this_file);
@@ -41,10 +40,6 @@ switch ($action) {
case 'move' :
check_admin_referer('bulk-bookmarks');
// check the current user's level first.
if (!current_user_can('manage_links'))
wp_die(__('Cheatin&#8217; uh?'));
//for each link id (in $linkcheck[]) change category to selected value
if (count($linkcheck) == 0) {
wp_redirect($this_file);
@@ -63,7 +58,7 @@ switch ($action) {
add_link();
wp_redirect(wp_get_referer().'?added=true');
wp_redirect( wp_get_referer() . '?added=true' );
exit;
break;
@@ -81,9 +76,6 @@ switch ($action) {
$link_id = (int) $_GET['link_id'];
check_admin_referer('delete-bookmark_' . $link_id);
if (!current_user_can('manage_links'))
wp_die(__('Cheatin&#8217; uh?'));
wp_delete_link($link_id);
wp_redirect($this_file);
@@ -97,21 +89,18 @@ switch ($action) {
$parent_file = 'link-manager.php';
$submenu_file = 'link-manager.php';
$title = __('Edit Link');
include_once ('admin-header.php');
if (!current_user_can('manage_links'))
wp_die(__('You do not have sufficient permissions to edit the links for this blog.'));
$link_id = (int) $_GET['link_id'];
if (!$link = get_link_to_edit($link_id))
wp_die(__('Link not found.'));
include_once ('admin-header.php');
include ('edit-link-form.php');
include ('admin-footer.php');
break;
default :
break;
}
include ('admin-footer.php');
?>
?>

View File

@@ -113,7 +113,7 @@ function get_bookmarks($args = '') {
}
if (!empty($category_query)) {
$category_query .= ") AND taxonomy = 'link_category'";
$join = " LEFT JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) LEFT JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id";
$join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id";
}
if (get_option('links_recently_updated_time')) {

View File

@@ -4,7 +4,7 @@
function redirect_canonical($requested_url=NULL, $do_redirect=true) {
global $wp_rewrite, $posts, $is_IIS;
if ( is_feed() || is_trackback() || is_search() || is_comments_popup() || is_admin() || $is_IIS || ( isset($_POST) && count($_POST) ) )
if ( is_feed() || is_trackback() || is_search() || is_comments_popup() || is_admin() || $is_IIS || ( isset($_POST) && count($_POST) ) || is_preview() )
return;
if ( !$requested_url ) {

View File

@@ -25,9 +25,18 @@ foreach ( $filters as $filter ) {
add_filter($filter, 'wp_filter_kses');
}
// URL
// Save URL
$filters = array('pre_comment_author_url', 'pre_user_url', 'pre_link_url', 'pre_link_image',
'pre_link_rss', 'comment_url');
'pre_link_rss');
foreach ( $filters as $filter ) {
add_filter($filter, 'strip_tags');
add_filter($filter, 'trim');
add_filter($filter, 'sanitize_url');
add_filter($filter, 'wp_filter_kses');
}
// Display URL
$filters = array('user_url', 'link_url', 'link_image', 'link_rss', 'comment_url');
foreach ( $filters as $filter ) {
add_filter($filter, 'strip_tags');
add_filter($filter, 'trim');
@@ -127,6 +136,7 @@ add_filter('comment_email', 'antispambot');
// Actions
add_action('wp_head', 'rsd_link');
add_action('wp_head', 'wlwmanifest_link');
add_action('wp_head', 'locale_stylesheet');
add_action('publish_future_post', 'wp_publish_post', 10, 1);
add_action('wp_head', 'noindex', 1);
@@ -156,4 +166,4 @@ add_action('template_redirect', 'wp_old_slug_redirect');
add_action('edit_post', 'wp_check_for_changed_slugs');
add_action('edit_form_advanced', 'wp_remember_old_slug');
?>
?>

View File

@@ -1087,7 +1087,7 @@ function wp_richedit_pre($text) {
return apply_filters('richedit_pre', $output);
}
function clean_url( $url, $protocols = null ) {
function clean_url( $url, $protocols = null, $context = 'display' ) {
$original_url = $url;
if ('' == $url) return $url;
@@ -1103,13 +1103,20 @@ function clean_url( $url, $protocols = null ) {
substr( $url, 0, 1 ) != '/' && !preg_match('/^[a-z0-9-]+?\.php/i', $url) )
$url = 'http://' . $url;
$url = preg_replace('/&([^#])(?![a-z]{2,8};)/', '&#038;$1', $url);
// Replace ampersands ony when displaying.
if ( 'display' == $context )
$url = preg_replace('/&([^#])(?![a-z]{2,8};)/', '&#038;$1', $url);
if ( !is_array($protocols) )
$protocols = array('http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet');
if ( wp_kses_bad_protocol( $url, $protocols ) != $url )
return '';
return apply_filters('clean_url', $url, $original_url);
return apply_filters('clean_url', $url, $original_url, $context);
}
function sanitize_url( $url, $protocols = null ) {
return clean_url( $url, $protocols, 'db');
}
// Borrowed from the PHP Manual user notes. Convert entities, while

View File

@@ -726,9 +726,12 @@ function wp_remote_fopen( $uri ) {
}
function wp($query_vars = '') {
global $wp;
global $wp, $wp_query, $wp_the_query;
$wp->main($query_vars);
if( !isset($wp_the_query) )
$wp_the_query = $wp_query;
}
function get_status_header_desc( $code ) {

View File

@@ -829,6 +829,11 @@ function rsd_link() {
echo ' <link rel="EditURI" type="application/rsd+xml" title="RSD" href="' . get_bloginfo('wpurl') . "/xmlrpc.php?rsd\" />\n";
}
function wlwmanifest_link() {
echo ' <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="'
. get_bloginfo('wpurl') . '/wp-includes/wlwmanifest.xml" /> ';
}
function noindex() {
// If the blog is not public, tell robots to go away.
if ( '0' == get_option('blog_public') )

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@@ -225,6 +225,7 @@ function wp_mail( $to, $subject, $message, $headers = '' ) {
// Set the from name and email
$phpmailer->From = apply_filters( 'wp_mail_from', $from_email );
$phpmailer->Sender = apply_filters( 'wp_mail_from', $from_email );
$phpmailer->FromName = apply_filters( 'wp_mail_from_name', $from_name );
// Set destination address
@@ -436,7 +437,7 @@ function wp_safe_redirect($location, $status = 302) {
$allowed_hosts = (array) apply_filters('allowed_redirect_hosts', array($wpp['host']), $lp['host']);
if ( isset($lp['host']) && !in_array($lp['host'], $allowed_hosts) )
if ( isset($lp['host']) && ( !in_array($lp['host'], $allowed_hosts) && $lp['host'] != strtolower($wpp['host'])) )
$location = get_option('siteurl') . '/wp-admin/';
wp_redirect($location, $status);

View File

@@ -102,7 +102,7 @@ function &get_post(&$post, $output = OBJECT, $filter = 'raw') {
$_post = null;
} elseif ( is_object($post) ) {
if ( 'page' == $post->post_type )
return get_page($post, $output);
return get_page($post, $output, $filter);
if ( !isset($post_cache[$blog_id][$post->ID]) )
$post_cache[$blog_id][$post->ID] = &$post;
$_post = & $post_cache[$blog_id][$post->ID];
@@ -111,12 +111,12 @@ function &get_post(&$post, $output = OBJECT, $filter = 'raw') {
if ( isset($post_cache[$blog_id][$post]) )
$_post = & $post_cache[$blog_id][$post];
elseif ( $_post = wp_cache_get($post, 'pages') )
return get_page($_post, $output);
return get_page($_post, $output, $filter);
else {
$query = "SELECT * FROM $wpdb->posts WHERE ID = '$post' LIMIT 1";
$_post = & $wpdb->get_row($query);
if ( 'page' == $_post->post_type )
return get_page($_post, $output);
return get_page($_post, $output, $filter);
$post_cache[$blog_id][$post] = & $_post;
}
}
@@ -972,7 +972,7 @@ function get_all_page_ids() {
// Retrieves page data given a page ID or page object.
// Handles page caching.
function &get_page(&$page, $output = OBJECT) {
function &get_page(&$page, $output = OBJECT, $filter = 'raw') {
global $wpdb, $blog_id;
if ( empty($page) ) {
@@ -985,7 +985,7 @@ function &get_page(&$page, $output = OBJECT) {
}
} elseif ( is_object($page) ) {
if ( 'post' == $page->post_type )
return get_post($page, $output);
return get_post($page, $output, $filter);
wp_cache_add($page->ID, $page, 'pages');
$_page = $page;
} else {
@@ -998,12 +998,12 @@ function &get_page(&$page, $output = OBJECT) {
$_page = & $GLOBALS['page'];
wp_cache_add($_page->ID, $_page, 'pages');
} elseif ( isset($GLOBALS['post_cache'][$blog_id][$page]) ) { // it's actually a page, and is cached
return get_post($page, $output);
return get_post($page, $output, $filter);
} else { // it's not in any caches, so off to the DB we go
// Why are we using assignment for this query?
$_page = & $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID= '$page' LIMIT 1");
if ( 'post' == $_page->post_type )
return get_post($_page, $output);
return get_post($_page, $output, $filter);
// Potential issue: we're not checking to see if the post_type = 'page'
// So all non-'post' posts will get cached as pages.
wp_cache_add($_page->ID, $_page, 'pages');
@@ -1011,6 +1011,8 @@ function &get_page(&$page, $output = OBJECT) {
}
}
$_page = sanitize_post($_page, $filter);
// at this point, one way or another, $_post contains the page object
if ( $output == OBJECT ) {
@@ -1201,7 +1203,7 @@ function &get_pages($args = '') {
$pages = $wpdb->get_results($query);
if ( empty($pages) )
return array();
return apply_filters('get_pages', array(), $r);
// Update cache.
update_page_cache($pages);

View File

@@ -932,7 +932,7 @@ class WP_Query {
}
if ( !empty($q['category__in']) ) {
$join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";
$join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";
$whichcat .= " AND $wpdb->term_taxonomy.taxonomy = 'category' ";
$include_cats = "'" . implode("', '", $q['category__in']) . "'";
$whichcat .= " AND $wpdb->term_taxonomy.term_id IN ($include_cats) ";
@@ -948,15 +948,6 @@ class WP_Query {
}
}
if ( !empty($q['category__and']) ) {
$count = 0;
foreach ( $q['category__and'] as $category_and ) {
$join .= " LEFT JOIN $wpdb->term_relationships AS tr$count ON ($wpdb->posts.ID = tr$count.object_id) LEFT JOIN $wpdb->term_taxonomy AS tt$count ON (tr$count.term_taxonomy_id = tt$count.term_taxonomy_id) ";
$whichcat .= " AND tt$count.term_id = '$category_and' ";
$count++;
}
}
// Category stuff for nice URLs
if ( '' != $q['category_name'] ) {
$reqcat = get_category_by_path($q['category_name']);
@@ -982,7 +973,7 @@ class WP_Query {
$q['cat'] = $reqcat;
$join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";
$join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";
$whichcat = " AND $wpdb->term_taxonomy.taxonomy = 'category' ";
$in_cats = array($q['cat']);
$in_cats = array_merge($in_cats, get_term_children($q['cat'], 'category'));
@@ -1024,7 +1015,7 @@ class WP_Query {
}
if ( !empty($q['tag__in']) ) {
$join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";
$join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) ";
$whichcat .= " AND $wpdb->term_taxonomy.taxonomy = 'post_tag' ";
$include_tags = "'" . implode("', '", $q['tag__in']) . "'";
$whichcat .= " AND $wpdb->term_taxonomy.term_id IN ($include_tags) ";
@@ -1034,7 +1025,7 @@ class WP_Query {
}
if ( !empty($q['tag_slug__in']) ) {
$join = " LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) LEFT JOIN $wpdb->terms ON ($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id) ";
$join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) INNER JOIN $wpdb->terms ON ($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id) ";
$whichcat .= " AND $wpdb->term_taxonomy.taxonomy = 'post_tag' ";
$include_tags = "'" . implode("', '", $q['tag_slug__in']) . "'";
$whichcat .= " AND $wpdb->terms.slug IN ($include_tags) ";
@@ -1051,28 +1042,32 @@ class WP_Query {
}
}
if ( !empty($q['tag__and']) ) {
$count = 0;
foreach ( $q['tag__and'] as $tag_and ) {
$join .= " LEFT JOIN $wpdb->term_relationships AS tr$count ON ($wpdb->posts.ID = tr$count.object_id) LEFT JOIN $wpdb->term_taxonomy AS tt$count ON (tr$count.term_taxonomy_id = tt$count.term_taxonomy_id) ";
$whichcat .= " AND tt$count.term_id = '$tag_and' ";
$count++;
}
$reqtag = is_term( $q['tag__and'][0], 'post_tag' );
if ( !empty($reqtag) )
$q['tag_id'] = $reqtag['term_id'];
}
// Tag and slug intersections.
$intersections = array('category__and' => 'category', 'tag__and' => 'post_tag', 'tag_slug__and' => 'post_tag');
foreach ($intersections as $item => $taxonomy) {
if ( empty($q[$item]) ) continue;
if ( !empty($q['tag_slug__and']) ) {
$count = 0;
foreach ( $q['tag_slug__and'] as $tag_and ) {
$join .= " LEFT JOIN $wpdb->term_relationships AS tr$count ON ($wpdb->posts.ID = tr$count.object_id) LEFT JOIN $wpdb->term_taxonomy AS tt$count ON (tr$count.term_taxonomy_id = tt$count.term_taxonomy_id) LEFT JOIN $wpdb->terms AS term$count ON (tt$count.term_id = term$count.term_id) ";
$whichcat .= " AND term$count.slug = '$tag_and' ";
$count++;
if ( $item != 'category__and' ) {
$reqtag = is_term( $q[$item][0], 'post_tag' );
if ( !empty($reqtag) )
$q['tag_id'] = $reqtag['term_id'];
}
$taxonomy_field = $item == 'tag_slug__and' ? 'slug' : 'term_id';
$q[$item] = array_unique($q[$item]);
$tsql = "SELECT p.ID FROM $wpdb->posts p INNER JOIN $wpdb->term_relationships tr ON (p.ID = tr.object_id) INNER JOIN $wpdb->term_taxonomy tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id) INNER JOIN $wpdb->terms t ON (tt.term_id = t.term_id)";
$tsql .= " WHERE tt.taxonomy = '$taxonomy' AND t.$taxonomy_field IN ('" . implode("', '", $q[$item]) . "')";
$tsql .= " GROUP BY p.ID HAVING count(p.ID) = " . count($q[$item]);
$post_ids = $wpdb->get_col($tsql);
if ( count($post_ids) )
$whichcat .= " AND $wpdb->posts.ID IN (" . implode(', ', $post_ids) . ") ";
else {
$whichcat = " AND 0 = 1";
break;
}
$reqtag = is_term( $q['tag_slug__and'][0], 'post_tag' );
if ( !empty($reqtag) )
$q['tag_id'] = $reqtag['term_id'];
}
// Author/user stuff

View File

@@ -421,4 +421,24 @@ function wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false
}
$wp_scripts->enqueue( $handle );
}
function wp_prototype_before_jquery( $js_array ) {
if ( false === $jquery = array_search( 'jquery', $js_array ) )
return $js_array;
if ( false === $prototype = array_search( 'prototype', $js_array ) )
return $js_array;
if ( $prototype < $jquery )
return $js_array;
unset($js_array[$prototype]);
array_splice( $js_array, $jquery, 0, 'prototype' );
return $js_array;
}
add_filter( 'print_scripts_array', 'wp_prototype_before_jquery' );
?>

View File

@@ -1357,7 +1357,7 @@ function _pad_term_counts(&$terms, $taxonomy) {
}
// Get the object and term ids and stick them in a lookup table
$results = $wpdb->get_results("SELECT object_id, term_taxonomy_id FROM $wpdb->term_relationships LEFT JOIN $wpdb->posts ON object_id = ID WHERE term_taxonomy_id IN (".join(',', array_keys($term_ids)).") AND post_type = 'post' AND post_status = 'publish'");
$results = $wpdb->get_results("SELECT object_id, term_taxonomy_id FROM $wpdb->term_relationships INNER JOIN $wpdb->posts ON object_id = ID WHERE term_taxonomy_id IN (".join(',', array_keys($term_ids)).") AND post_type = 'post' AND post_status = 'publish'");
foreach ( $results as $row ) {
$id = $term_ids[$row->term_taxonomy_id];
++$term_items[$id][$row->object_id];

View File

@@ -2,7 +2,7 @@
// This holds the version number in a separate file so we can bump it without cluttering the SVN
$wp_version = '2.3';
$wp_version = '2.3.1';
$wp_db_version = 6124;
?>

View File

@@ -786,7 +786,7 @@ function wp_widget_categories_register() {
}
$dims = array( 'width' => 350, 'height' => 170 );
$class = array( 'classname' => 'widget_catgories' );
$class = array( 'classname' => 'widget_categories' );
for ( $i = 1; $i <= 9; $i++ ) {
$name = sprintf( __( 'Categories %d' ), $i );
@@ -1001,7 +1001,7 @@ function wp_widget_rss_control($number) {
$options = $newoptions = get_option('widget_rss');
if ( $_POST["rss-submit-$number"] ) {
$newoptions[$number]['items'] = (int) $_POST["rss-items-$number"];
$url = clean_url(strip_tags(stripslashes($_POST["rss-url-$number"])));
$url = sanitize_url(strip_tags(stripslashes($_POST["rss-url-$number"])));
$newoptions[$number]['title'] = trim(strip_tags(stripslashes($_POST["rss-title-$number"])));
if ( $url !== $options[$number]['url'] ) {
require_once(ABSPATH . WPINC . '/rss.php');

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns="http://schemas.microsoft.com/wlw/manifest/weblog">
<options>
<clientType>WordPress</clientType>
<supportsKeywords>Yes</supportsKeywords>
</options>
<weblog>
<serviceName>WordPress</serviceName>
<imageUrl>images/wlw/wp-icon.png</imageUrl>
<watermarkImageUrl>images/wlw/wp-watermark.png</watermarkImageUrl>
<homepageLinkText>View site</homepageLinkText>
<adminLinkText>Dashboard</adminLinkText>
<adminUrl>
<![CDATA[
{blog-postapi-url}/../wp-admin/
]]>
</adminUrl>
<postEditingUrl>
<![CDATA[
{blog-postapi-url}/../wp-admin/post.php?action=edit&post={post-id}
]]>
</postEditingUrl>
</weblog>
<buttons>
<button>
<id>0</id>
<text>Manage Comments</text>
<imageUrl>images/wlw/wp-comments.png</imageUrl>
<clickUrl>
<![CDATA[
{blog-postapi-url}/../wp-admin/edit-comments.php
]]>
</clickUrl>
</button>
</buttons>
</manifest>

View File

@@ -22,6 +22,8 @@ if ( defined('RELOCATE') ) { // Move flag is set
//Set a cookie now to see if they are supported by the browser.
setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN);
if ( SITECOOKIEPATH != COOKIEPATH )
setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN);
// Rather than duplicating this HTML all over the place, we'll stick it in function
function login_header($title = 'Login', $message = '') {

View File

@@ -60,12 +60,15 @@ for ($i=1; $i <= $count; $i++) :
$subject = $subject[0];
}
// Set the author using the email address (To or Reply-To, the last used)
// Set the author using the email address (From or Reply-To, the last used)
// otherwise use the site admin
if (preg_match('/From: /', $line) | preg_match('/Reply-To: /', $line)) {
$author=trim($line);
if ( ereg("([a-zA-Z0-9\_\-\.]+@[\a-zA-z0-9\_\-\.]+)", $author , $regs) ) {
$author = $regs[1];
if ( preg_match('/(From|Reply-To): /', $line) ) {
if ( preg_match('|[a-z0-9_.-]+@[a-z0-9_.-]+(?!.*<)|i', $line, $matches) )
$author = $matches[0];
else
$author = trim($line);
$author = sanitize_email($author);
if ( is_email($author) ) {
echo "Author = {$author} <p>";
$author = $wpdb->escape($author);
$result = $wpdb->get_row("SELECT ID FROM $wpdb->users WHERE user_email='$author' LIMIT 1");