From 87bb8cd69cc593fe6bed330fb1791eac9df87167 Mon Sep 17 00:00:00 2001
From: donncha
Date: Tue, 23 Oct 2007 18:28:40 +0000
Subject: Merge with WordPress, rev 6285 and untested
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@1125 7be80a69-a1ef-0310-a953-fb0f7c49ff36
---
wp-admin/includes/plugin.php | 42 ++++++++++++
wp-admin/includes/post.php | 47 ++++++++++++-
wp-admin/includes/schema.php | 12 ++--
wp-admin/includes/template.php | 152 +++++++++++++++++++++++++----------------
wp-admin/includes/upgrade.php | 21 +++---
wp-admin/includes/upload.php | 7 +-
wp-admin/includes/user.php | 12 ++--
7 files changed, 210 insertions(+), 83 deletions(-)
(limited to 'wp-admin/includes')
diff --git a/wp-admin/includes/plugin.php b/wp-admin/includes/plugin.php
index e5911bd..3c4f474 100644
--- a/wp-admin/includes/plugin.php
+++ b/wp-admin/includes/plugin.php
@@ -86,6 +86,48 @@ function get_plugins() {
return $wp_plugins;
}
+function activate_plugin($plugin) {
+ $current = get_option('active_plugins');
+ $plugin = trim($plugin);
+
+ if ( validate_file($plugin) )
+ return new WP_Error('plugin_invalid', __('Invalid plugin.'));
+ if ( ! file_exists(ABSPATH . PLUGINDIR . '/' . $plugin) )
+ return new WP_Error('plugin_not_found', __('Plugin file does not exist.'));
+
+ if (!in_array($plugin, $current)) {
+ wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), 'plugins.php?error=true&plugin=' . $plugin)); // we'll override this later if the plugin can be included without fatal error
+ ob_start();
+ @include(ABSPATH . PLUGINDIR . '/' . $plugin);
+ $current[] = $plugin;
+ sort($current);
+ update_option('active_plugins', $current);
+ do_action('activate_' . $plugin);
+ ob_end_clean();
+ }
+
+ return null;
+}
+
+function deactivate_plugins($plugins) {
+ $current = get_option('active_plugins');
+
+ if(!is_array($plugins))
+ $plugins = array($plugins);
+
+ foreach($plugins as $plugin) {
+ array_splice($current, array_search( $plugin, $current), 1 ); // Array-fu!
+ do_action('deactivate_' . trim( $plugin ));
+ }
+
+ update_option('active_plugins', $current);
+}
+
+function deactivate_all_plugins() {
+ $current = get_option('active_plugins');
+ deactivate_plugins($current);
+}
+
//
// Menu
//
diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php
index e27482c..b88e3b0 100644
--- a/wp-admin/includes/post.php
+++ b/wp-admin/includes/post.php
@@ -348,6 +348,8 @@ function add_meta( $post_ID ) {
if ( in_array($metakey, $protected) )
return false;
+ wp_cache_delete($post_ID, 'post_meta');
+
$result = $wpdb->query( "
INSERT INTO $wpdb->postmeta
(post_id,meta_key,meta_value )
@@ -362,6 +364,9 @@ function delete_meta( $mid ) {
global $wpdb;
$mid = (int) $mid;
+ $post_id = $wpdb->get_var("SELECT post_id FROM $wpdb->postmeta WHERE meta_id = '$mid'");
+ wp_cache_delete($post_id, 'post_meta');
+
return $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_id = '$mid'" );
}
@@ -408,6 +413,9 @@ function update_meta( $mid, $mkey, $mvalue ) {
if ( in_array($mkey, $protected) )
return false;
+ $post_id = $wpdb->get_var("SELECT post_id FROM $wpdb->postmeta WHERE meta_id = '$mid'");
+ wp_cache_delete($post_id, 'post_meta');
+
$mvalue = maybe_serialize( stripslashes( $mvalue ));
$mvalue = $wpdb->escape( $mvalue );
$mid = (int) $mid;
@@ -468,4 +476,41 @@ function _relocate_children( $old_ID, $new_ID ) {
return $wpdb->query( "UPDATE $wpdb->posts SET post_parent = $new_ID WHERE post_parent = $old_ID" );
}
-?>
\ No newline at end of file
+function wp_edit_posts_query( $q = '_GET' ) {
+ global $wpdb;
+ $$q['m'] = (int) $$q['m'];
+ $$q['cat'] = (int) $$q['cat'];
+ $post_stati = array( // array( adj, noun )
+ 'draft' => array(__('Draft'), _c('Drafts|manage posts header')),
+ 'future' => array(__('Scheduled'), __('Scheduled posts')),
+ 'pending' => array(__('Pending Review'), __('Pending posts')),
+ 'private' => array(__('Private'), __('Private posts')),
+ 'publish' => array(__('Published'), __('Published posts'))
+ );
+
+ $avail_post_stati = $wpdb->get_col("SELECT DISTINCT post_status FROM $wpdb->posts WHERE post_type = 'post'");
+
+ $post_status_q = '';
+ $post_status_label = _c('Posts|manage posts header');
+ if ( isset($$q['post_status']) && in_array( $$q['post_status'], array_keys($post_stati) ) ) {
+ $post_status_label = $post_stati[$$q['post_status']][1];
+ $post_status_q = '&post_status=' . $$q['post_status'];
+ }
+
+ if ( 'pending' === $$q['post_status'] ) {
+ $order = 'ASC';
+ $orderby = 'modified';
+ } elseif ( 'draft' === $$q['post_status'] ) {
+ $order = 'DESC';
+ $orderby = 'modified';
+ } else {
+ $order = 'DESC';
+ $orderby = 'date';
+ }
+
+ wp("what_to_show=posts$post_status_q&posts_per_page=20&order=$order&orderby=$orderby");
+
+ return array($post_stati, $avail_post_stati);
+}
+
+?>
diff --git a/wp-admin/includes/schema.php b/wp-admin/includes/schema.php
index de4e949..d76d5f7 100644
--- a/wp-admin/includes/schema.php
+++ b/wp-admin/includes/schema.php
@@ -4,7 +4,7 @@
global $wp_queries;
$charset_collate = '';
-if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) {
+if ( $wpdb->supports_collation() ) {
if ( ! empty($wpdb->charset) )
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
if ( ! empty($wpdb->collate) )
@@ -334,11 +334,11 @@ function populate_roles_160() {
global $wp_roles;
// Add roles
- add_role('administrator', __('Administrator'));
- add_role('editor', __('Editor'));
- add_role('author', __('Author'));
- add_role('contributor', __('Contributor'));
- add_role('subscriber', __('Subscriber'));
+ add_role('administrator', _c('Administrator|User role'));
+ add_role('editor', _c('Editor|User role'));
+ add_role('author', _c('Author|User role'));
+ add_role('contributor', _c('Contributor|User role'));
+ add_role('subscriber', _c('Subscriber|User role'));
// Add caps for Administrator role
$role = get_role('administrator');
diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php
index 1cf9284..c604d4c 100644
--- a/wp-admin/includes/template.php
+++ b/wp-admin/includes/template.php
@@ -14,10 +14,6 @@ function cat_rows( $parent = 0, $level = 0, $categories = 0 ) {
if ( $categories ) {
ob_start();
foreach ( $categories as $category ) {
- if ( $category->term_id == 0 ) {
- $wpdb->query("DELETE FROM $wpdb->terms WHERE term_id = 0");
- continue;
- }
if ( $category->parent == $parent) {
echo "\t" . _cat_row( $category, $level );
if ( isset($children[$category->term_id]) )
@@ -42,9 +38,10 @@ function _cat_row( $category, $level, $name_override = false ) {
if ( current_user_can( 'manage_categories' ) ) {
$edit = "".__( 'Edit' )."";
$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 .= "| 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' )."";
+ $edit .= " | term_id ) . "' class='delete:the-list:cat-$category->term_id delete'>".__( 'Delete' )."";
else
$edit .= " | ".__( "Default" );
} else
@@ -111,10 +108,6 @@ function get_nested_categories( $default = 0, $parent = 0 ) {
$result = array ();
if ( is_array( $cats ) ) {
foreach ( $cats as $cat) {
- if ( $cat == 0 ) {
- $wpdb->query("DELETE FROM $wpdb->terms WHERE term_id = 0");
- continue;
- }
$result[$cat]['children'] = get_nested_categories( $default, $cat);
$result[$cat]['cat_ID'] = $cat;
$result[$cat]['checked'] = in_array( $cat, $checked_categories );
@@ -171,6 +164,31 @@ function dropdown_link_categories( $default = 0 ) {
}
}
+// define the columns to display, the syntax is 'internal name' => 'display name'
+function wp_manage_posts_columns() {
+ $posts_columns = array();
+ $posts_columns['id'] = ' ' . __('ID') . ' ';
+ if ( 'draft' === $_GET['post_status'] )
+ $posts_columns['modified'] = __('Modified');
+ elseif ( 'pending' === $_GET['post_status'] )
+ $posts_columns['modified'] = __('Submitted');
+ else
+ $posts_columns['date'] = __('When');
+ $posts_columns['title'] = __('Title');
+ $posts_columns['categories'] = __('Categories');
+ if ( !in_array($_GET['post_status'], array('pending', 'draft', 'future')) )
+ $posts_columns['comments'] = '' . __('Comments') . ' ';
+ $posts_columns['author'] = __('Author');
+ $posts_columns = apply_filters('manage_posts_columns', $posts_columns);
+
+ // you can not edit these at the moment
+ $posts_columns['control_view'] = '';
+ $posts_columns['control_edit'] = '';
+ $posts_columns['control_delete'] = '';
+
+ return $posts_columns;
+}
+
function page_rows( $parent = 0, $level = 0, $pages = 0, $hierarchy = true ) {
global $wpdb, $class, $post;
@@ -197,9 +215,9 @@ function page_rows( $parent = 0, $level = 0, $pages = 0, $hierarchy = true ) {
|
|
post_modified ) _e('Unpublished'); else echo mysql2date( __('Y-m-d g:i a'), $post->post_modified ); ?> |
- |
+ |
" . __( 'Edit' ) . ""; } ?> |
- " . __( 'Delete' ) . ""; } ?> |
+ " . __( 'Delete' ) . ""; } ?> |
comment_ID;
$class = '';
$post = get_post($comment->comment_post_ID);
$authordata = get_userdata($post->post_author);
- $comment_status = wp_get_comment_status($comment->comment_ID);
+ $comment_status = wp_get_comment_status($id);
if ( 'unapproved' == $comment_status )
$class .= ' unapproved';
if ( $alt % 2 )
$class .= ' alternate';
- echo "
| |
'; //TBODY needed for list-manipulation JS
+ echo '| |
'; //TBODY needed for list-manipulation JS
return;
}
$count = 0;
@@ -345,43 +370,47 @@ function list_meta( $meta ) {
|
+
";
- foreach ( $meta as $entry ) {
- ++ $count;
- if ( $count % 2 )
- $style = 'alternate';
- else
- $style = '';
- if ('_' == $entry['meta_key'] { 0 } )
- $style .= ' hidden';
-
- if ( is_serialized( $entry['meta_value'] ) ) {
- if ( is_serialized_string( $entry['meta_value'] ) ) {
- // this is a serialized string, so we should display it
- $entry['meta_value'] = maybe_unserialize( $entry['meta_value'] );
- } else {
- // this is a serialized array/object so we should NOT display it
- --$count;
- continue;
- }
- }
+ foreach ( $meta as $entry )
+ echo _list_meta_row( $entry, $count );
+ echo "\n\t";
+}
- $key_js = js_escape( $entry['meta_key'] );
- $entry['meta_key'] = attribute_escape($entry['meta_key']);
- $entry['meta_value'] = attribute_escape($entry['meta_value']);
- $entry['meta_id'] = (int) $entry['meta_id'];
- $r .= "\n\t";
- $r .= "\n\t\t | ";
- $r .= "\n\t\t | ";
- $r .= "\n\t\t ";
- $r .= "\n\t\t | ";
- $r .= "\n\t
";
+function _list_meta_row( $entry, &$count ) {
+ $r = '';
+ ++ $count;
+ if ( $count % 2 )
+ $style = 'alternate';
+ else
+ $style = '';
+ if ('_' == $entry['meta_key'] { 0 } )
+ $style .= ' hidden';
+
+ if ( is_serialized( $entry['meta_value'] ) ) {
+ if ( is_serialized_string( $entry['meta_value'] ) ) {
+ // this is a serialized string, so we should display it
+ $entry['meta_value'] = maybe_unserialize( $entry['meta_value'] );
+ } else {
+ // this is a serialized array/object so we should NOT display it
+ --$count;
+ return;
+ }
}
- echo $r;
- echo "\n\t";
+
+ $key_js = js_escape( $entry['meta_key'] );
+ $entry['meta_key'] = attribute_escape($entry['meta_key']);
+ $entry['meta_value'] = attribute_escape($entry['meta_value']);
+ $entry['meta_id'] = (int) $entry['meta_id'];
+ $r .= "\n\t";
+ $r .= "\n\t\t | ";
+ $r .= "\n\t\t | ";
+ $r .= "\n\t\t ";
+ $r .= "\n\t\t";
+ $r .= "";
+ $r .= " | \n\t
";
+ return $r;
}
function meta_form() {
@@ -422,8 +451,11 @@ function meta_form() {
|
+|
+
+
+ |
-
get_results("SELECT * FROM $wpdb->categories ORDER BY cat_ID");
foreach ($categories as $category) {
$term_id = (int) $category->cat_ID;
@@ -587,6 +588,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')");
@@ -601,7 +603,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;
@@ -666,7 +672,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;
@@ -1010,7 +1016,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 "{$table}:
Found index:".$index_string."\n";
@@ -1248,12 +1253,10 @@ function translate_level_to_role($level) {
}
function wp_check_mysql_version() {
- global $wp_version;
-
- // Make sure the server has MySQL 4.0
- $mysql_version = preg_replace('|[^0-9\.]|', '', @mysql_get_server_info());
- if ( version_compare($mysql_version, '4.0.0', '<') )
- die(sprintf(__('ERROR: WordPress %s requires MySQL 4.0.0 or higher'), $wp_version));
+ global $wpdb;
+ $result = $wpdb->check_database_version();
+ if ( is_wp_error( $result ) )
+ die( $result->get_error_message() );
}
function maybe_disable_automattic_widgets() {
diff --git a/wp-admin/includes/upload.php b/wp-admin/includes/upload.php
index 61b0302..c66feeb 100644
--- a/wp-admin/includes/upload.php
+++ b/wp-admin/includes/upload.php
@@ -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 .= "\n";
- $r .= "\t\t\t\t".size_format(filesize($filesystem_path))."\n";
+ $size = @filesize($filesystem_path);
+ if ( !empty($size) )
+ $r .= "\t\t\t\t".size_format($size)."\n";
$r .= "\n\t\t\n\t\t\t
\n";
$r .= "\t\t\t\t\n";
$r .= "\t\t\t\t\n";
diff --git a/wp-admin/includes/user.php b/wp-admin/includes/user.php
index ca15057..bd017a4 100644
--- a/wp-admin/includes/user.php
+++ b/wp-admin/includes/user.php
@@ -87,7 +87,7 @@ function edit_user( $user_id = 0 ) {
$errors->add( 'pass', __( 'ERROR: Please enter your password twice.' ));
} else {
if ((empty ( $pass1 ) && !empty ( $pass2 ) ) || (empty ( $pass2 ) && !empty ( $pass1 ) ) )
- $errors->add( 'pass', __( "ERROR: you typed your new password only once." ));
+ $errors->add( 'pass', __( 'ERROR: You entered your new password only once.' ));
}
/* Check for "\" in password */
@@ -96,23 +96,23 @@ function edit_user( $user_id = 0 ) {
/* checking the password has been typed twice the same */
if ( $pass1 != $pass2 )
- $errors->add( 'pass', __( 'ERROR: Please type the same password in the two password fields.' ));
+ $errors->add( 'pass', __( 'ERROR: Please enter the same password in the two password fields.' ));
if (!empty ( $pass1 ))
$user->user_pass = $pass1;
if ( !$update && !validate_username( $user->user_login ) )
- $errors->add( 'user_login', __( 'ERROR: This username is invalid. Please enter a valid username.' ));
+ $errors->add( 'user_login', __( 'ERROR: This username is invalid. Please enter a valid username.' ));
if (!$update && username_exists( $user->user_login ))
- $errors->add( 'user_login', __( 'ERROR: This username is already registered, please choose another one.' ));
+ $errors->add( 'user_login', __( 'ERROR: This username is already registered. Please choose another one.' ));
/* checking e-mail address */
if ( empty ( $user->user_email ) ) {
- $errors->add( 'user_email', __( "ERROR: please type an e-mail address" ));
+ $errors->add( 'user_email', __( 'ERROR: Please enter an e-mail address.' ));
} else
if (!is_email( $user->user_email ) ) {
- $errors->add( 'user_email', __( "ERROR: the email address isn't correct" ));
+ $errors->add( 'user_email', __( "ERROR: The e-mail address isn't correct." ));
}
if ( $errors->get_error_codes() )
--
cgit