From 770613e763de080bd2c42d10bed74b2d573e4414 Mon Sep 17 00:00:00 2001 From: ryan Date: Fri, 25 May 2007 07:16:21 +0000 Subject: [PATCH] Admin includes reorg. see #4334 git-svn-id: http://svn.automattic.com/wordpress/trunk@5542 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/admin-ajax.php | 3 +- wp-admin/admin-db.php | 411 --- wp-admin/admin-functions.php | 2297 ----------------- wp-admin/admin.php | 6 +- wp-admin/includes/admin.php | 18 + wp-admin/includes/bookmark.php | 205 ++ wp-admin/includes/comment.php | 56 + wp-admin/includes/file.php | 189 ++ wp-admin/includes/image.php | 192 ++ wp-admin/includes/import.php | 44 + wp-admin/includes/misc.php | 170 ++ wp-admin/includes/plugin.php | 379 +++ wp-admin/includes/post.php | 466 ++++ .../schema.php} | 0 wp-admin/includes/taxonomy.php | 155 ++ wp-admin/includes/template.php | 589 +++++ wp-admin/includes/theme.php | 51 + .../upgrade.php} | 6 +- .../upload.php} | 1 + wp-admin/includes/user.php | 267 ++ wp-admin/install.php | 2 +- wp-admin/upgrade.php | 2 +- wp-admin/upload.php | 2 +- xmlrpc.php | 6 +- 24 files changed, 2791 insertions(+), 2726 deletions(-) delete mode 100644 wp-admin/admin-db.php delete mode 100644 wp-admin/admin-functions.php create mode 100644 wp-admin/includes/admin.php create mode 100644 wp-admin/includes/bookmark.php create mode 100644 wp-admin/includes/comment.php create mode 100644 wp-admin/includes/file.php create mode 100644 wp-admin/includes/image.php create mode 100644 wp-admin/includes/import.php create mode 100644 wp-admin/includes/misc.php create mode 100644 wp-admin/includes/plugin.php create mode 100644 wp-admin/includes/post.php rename wp-admin/{upgrade-schema.php => includes/schema.php} (100%) create mode 100644 wp-admin/includes/taxonomy.php create mode 100644 wp-admin/includes/template.php create mode 100644 wp-admin/includes/theme.php rename wp-admin/{upgrade-functions.php => includes/upgrade.php} (99%) rename wp-admin/{upload-functions.php => includes/upload.php} (99%) create mode 100644 wp-admin/includes/user.php diff --git a/wp-admin/admin-ajax.php b/wp-admin/admin-ajax.php index ad5064fd78..5a7b73a097 100644 --- a/wp-admin/admin-ajax.php +++ b/wp-admin/admin-ajax.php @@ -1,7 +1,6 @@ posts WHERE post_type = 'post' AND post_status = 'draft' AND post_author = $user_id ORDER BY ID DESC"; - $query = apply_filters('get_users_drafts', $query); - return $wpdb->get_results( $query ); -} - -function get_others_drafts( $user_id ) { - global $wpdb; - $user = get_userdata( $user_id ); - $level_key = $wpdb->prefix . 'user_level'; - - $editable = get_editable_user_ids( $user_id ); - - if( !$editable ) { - $other_drafts = ''; - } else { - $editable = join(',', $editable); - $other_drafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'draft' AND post_author IN ($editable) AND post_author != '$user_id' "); - } - - return apply_filters('get_others_drafts', $other_drafts); -} - -function get_editable_authors( $user_id ) { - global $wpdb; - - $editable = get_editable_user_ids( $user_id ); - - if( !$editable ) { - return false; - } else { - $editable = join(',', $editable); - $authors = $wpdb->get_results( "SELECT * FROM $wpdb->users WHERE ID IN ($editable) ORDER BY display_name" ); - } - - return apply_filters('get_editable_authors', $authors); -} - -function get_editable_user_ids( $user_id, $exclude_zeros = true ) { - global $wpdb; - - $user = new WP_User( $user_id ); - - if ( ! $user->has_cap('edit_others_posts') ) { - if ( $user->has_cap('edit_posts') || $exclude_zeros == false ) - return array($user->id); - else - return false; - } - - $level_key = $wpdb->prefix . 'user_level'; - - $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'"; - if ( $exclude_zeros ) - $query .= " AND meta_value != '0'"; - - return $wpdb->get_col( $query ); -} - -function get_author_user_ids() { - global $wpdb; - $level_key = $wpdb->prefix . 'user_level'; - - $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value != '0'"; - - return $wpdb->get_col( $query ); -} - -function get_nonauthor_user_ids() { - global $wpdb; - $level_key = $wpdb->prefix . 'user_level'; - - $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value = '0'"; - - return $wpdb->get_col( $query ); -} - -function wp_insert_category($catarr) { - global $wpdb; - - extract($catarr); - - if ( trim( $cat_name ) == '' ) - return 0; - - $cat_ID = (int) $cat_ID; - - // Are we updating or creating? - if ( !empty ($cat_ID) ) - $update = true; - else - $update = false; - - $name = $cat_name; - $description = $category_description; - $slug = $category_nicename; - $parent = $category_parent; - - $name = apply_filters('pre_category_name', $name); - - if ( empty ($slug) ) - $slug = sanitize_title($slug); - else - $slug = sanitize_title($slug); - $slug = apply_filters('pre_category_nicename', $slug); - - if ( empty ($description) ) - $description = ''; - $description = apply_filters('pre_category_description', $description); - - $parent = (int) $parent; - if ( empty($parent) || !get_category( $parent ) || ($cat_ID && cat_is_ancestor_of($cat_ID, $parent) ) ) - $parent = 0; - - $args = compact('slug', 'parent', 'description'); - - if ( $update ) - $cat_ID = wp_update_term($cat_ID, 'category', $args); - else - $cat_ID = wp_insert_term($cat_name, 'category', $args); - - return $cat_ID['term_id']; -} - -function wp_update_category($catarr) { - global $wpdb; - - $cat_ID = (int) $catarr['cat_ID']; - - if( $cat_ID == $catarr['category_parent'] ) - return false; - - // First, get all of the original fields - $category = get_category($cat_ID, ARRAY_A); - - // Escape data pulled from DB. - $category = add_magic_quotes($category); - - // Merge old and new fields with new fields overwriting old ones. - $catarr = array_merge($category, $catarr); - - return wp_insert_category($catarr); -} - -function wp_delete_category($cat_ID) { - global $wpdb; - - $cat_ID = (int) $cat_ID; - $default = get_option('default_category'); - - // Don't delete the default cat - if ( $cat_ID == $default ) - return 0; - - return wp_delete_term($cat_ID, 'category', "default=$default"); -} - -function wp_create_category($cat_name) { - if ( $id = category_exists($cat_name) ) - return $id; - - return wp_insert_category( array('cat_name' => $cat_name) ); -} - -function wp_create_categories($categories, $post_id = '') { - $cat_ids = array (); - foreach ($categories as $category) { - if ($id = category_exists($category)) - $cat_ids[] = $id; - else - if ($id = wp_create_category($category)) - $cat_ids[] = $id; - } - - if ($post_id) - wp_set_post_categories($post_id, $cat_ids); - - return $cat_ids; -} - -function category_exists($cat_name) { - return is_term($cat_name, 'category'); -} - -function tag_exists($tag_name) { - return is_term($tag_name, 'post_tag'); -} - -function wp_create_tag($tag_name) { - if ( $id = tag_exists($tag_name) ) - return $id; - - return wp_insert_term($tag_name, 'post_tag'); -} - -function wp_delete_user($id, $reassign = 'novalue') { - global $wpdb; - - $id = (int) $id; - $user = get_userdata($id); - - if ($reassign == 'novalue') { - $post_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_author = $id"); - - if ($post_ids) { - foreach ($post_ids as $post_id) - wp_delete_post($post_id); - } - - // Clean links - $wpdb->query("DELETE FROM $wpdb->links WHERE link_owner = $id"); - } else { - $reassign = (int) $reassign; - $wpdb->query("UPDATE $wpdb->posts SET post_author = {$reassign} WHERE post_author = {$id}"); - $wpdb->query("UPDATE $wpdb->links SET link_owner = {$reassign} WHERE link_owner = {$id}"); - } - - // FINALLY, delete user - do_action('delete_user', $id); - - $wpdb->query("DELETE FROM $wpdb->users WHERE ID = $id"); - $wpdb->query("DELETE FROM $wpdb->usermeta WHERE user_id = '$id'"); - - wp_cache_delete($id, 'users'); - wp_cache_delete($user->user_login, 'userlogins'); - - return true; -} - -function wp_revoke_user($id) { - $id = (int) $id; - - $user = new WP_User($id); - $user->remove_all_caps(); -} - -function wp_insert_link($linkdata) { - global $wpdb, $current_user; - - extract($linkdata); - - $update = false; - - if ( !empty($link_id) ) - $update = true; - - $link_id = (int) $link_id; - - if( trim( $link_name ) == '' ) - return 0; - $link_name = apply_filters('pre_link_name', $link_name); - - if( trim( $link_url ) == '' ) - return 0; - $link_url = apply_filters('pre_link_url', $link_url); - - if ( empty($link_rating) ) - $link_rating = 0; - else - $link_rating = (int) $link_rating; - - if ( empty($link_image) ) - $link_image = ''; - $link_image = apply_filters('pre_link_image', $link_image); - - if ( empty($link_target) ) - $link_target = ''; - $link_target = apply_filters('pre_link_target', $link_target); - - if ( empty($link_visible) ) - $link_visible = 'Y'; - $link_visibile = preg_replace('/[^YNyn]/', '', $link_visible); - - if ( empty($link_owner) ) - $link_owner = $current_user->id; - else - $link_owner = (int) $link_owner; - - if ( empty($link_notes) ) - $link_notes = ''; - $link_notes = apply_filters('pre_link_notes', $link_notes); - - if ( empty($link_description) ) - $link_description = ''; - $link_description = apply_filters('pre_link_description', $link_description); - - if ( empty($link_rss) ) - $link_rss = ''; - $link_rss = apply_filters('pre_link_rss', $link_rss); - - if ( empty($link_rel) ) - $link_rel = ''; - $link_rel = apply_filters('pre_link_rel', $link_rel); - - // Make sure we set a valid category - if (0 == count($link_category) || !is_array($link_category)) { - $link_category = array(get_option('default_link_category')); - } - - if ( $update ) { - $wpdb->query("UPDATE $wpdb->links SET link_url='$link_url', - link_name='$link_name', link_image='$link_image', - link_target='$link_target', - link_visible='$link_visible', link_description='$link_description', - link_rating='$link_rating', link_rel='$link_rel', - link_notes='$link_notes', link_rss = '$link_rss' - WHERE link_id='$link_id'"); - } else { - $wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_image, link_target, link_description, link_visible, link_owner, link_rating, link_rel, link_notes, link_rss) VALUES('$link_url','$link_name', '$link_image', '$link_target', '$link_description', '$link_visible', '$link_owner', '$link_rating', '$link_rel', '$link_notes', '$link_rss')"); - $link_id = (int) $wpdb->insert_id; - } - - wp_set_link_cats($link_id, $link_category); - - if ( $update ) - do_action('edit_link', $link_id); - else - do_action('add_link', $link_id); - - return $link_id; -} - -function wp_update_link($linkdata) { - global $wpdb; - - $link_id = (int) $linkdata['link_id']; - - $link = get_link($link_id, ARRAY_A); - - // Escape data pulled from DB. - $link = add_magic_quotes($link); - - // Passed link category list overwrites existing category list if not empty. - if ( isset($linkdata['link_category']) && is_array($linkdata['link_category']) - && 0 != count($linkdata['link_category']) ) - $link_cats = $linkdata['link_category']; - else - $link_cats = $link['link_category']; - - // Merge old and new fields with new fields overwriting old ones. - $linkdata = array_merge($link, $linkdata); - $linkdata['link_category'] = $link_cats; - - return wp_insert_link($linkdata); -} - -function wp_delete_link($link_id) { - global $wpdb; - - do_action('delete_link', $link_id); - - $categories = wp_get_link_cats($link_id); - if( is_array( $categories ) ) { - foreach ( $categories as $category ) { - $wpdb->query("UPDATE $wpdb->categories SET link_count = link_count - 1 WHERE cat_ID = '$category'"); - wp_cache_delete($category, 'category'); - do_action('edit_category', $cat_id); - } - } - - $wpdb->query("DELETE FROM $wpdb->link2cat WHERE link_id = '$link_id'"); - return $wpdb->query("DELETE FROM $wpdb->links WHERE link_id = '$link_id'"); - - do_action('deleted_link', $link_id); -} - -function wp_get_link_cats($link_id = 0) { - - $cats = get_object_terms($link_id, 'link_category', 'get=ids'); - - return array_unique($cats); -} - -function wp_set_link_cats($link_id = 0, $link_categories = array()) { - // If $link_categories isn't already an array, make it one: - if (!is_array($link_categories) || 0 == count($link_categories)) - $link_categories = array(get_option('default_link_category')); - - $link_categories = array_map('intval', $link_categories); - $link_categories = array_unique($link_categories); - - wp_set_object_terms($link_id, $link_categories, 'link_category'); -} // wp_set_link_cats() - -function post_exists($title, $content = '', $post_date = '') { - global $wpdb; - - if (!empty ($post_date)) - $post_date = "AND post_date = '$post_date'"; - - if (!empty ($title)) - return $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$title' $post_date"); - else - if (!empty ($content)) - return $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_content = '$content' $post_date"); - - return 0; -} - -function comment_exists($comment_author, $comment_date) { - global $wpdb; - - return $wpdb->get_var("SELECT comment_post_ID FROM $wpdb->comments - WHERE comment_author = '$comment_author' AND comment_date = '$comment_date'"); -} - -?> diff --git a/wp-admin/admin-functions.php b/wp-admin/admin-functions.php deleted file mode 100644 index a1eef49cee..0000000000 --- a/wp-admin/admin-functions.php +++ /dev/null @@ -1,2297 +0,0 @@ -get_error_message() ); - else - return $result; -} - -// Creates a new post from the "Write Post" form using $_POST information. -function wp_write_post() { - global $user_ID; - - if ( 'page' == $_POST['post_type'] ) { - if ( !current_user_can( 'edit_pages' ) ) - return new WP_Error( 'edit_pages', __( 'You are not allowed to create pages on this blog.' ) ); - } else { - if ( !current_user_can( 'edit_posts' ) ) - return new WP_Error( 'edit_posts', __( 'You are not allowed to create posts or drafts on this blog.' ) ); - } - - - // Check for autosave collisions - $temp_id = false; - if ( isset($_POST['temp_ID']) ) { - $temp_id = (int) $_POST['temp_ID']; - if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) ) - $draft_ids = array(); - foreach ( $draft_ids as $temp => $real ) - if ( time() + $temp > 86400 ) // 1 day: $temp is equal to -1 * time( then ) - unset($draft_ids[$temp]); - - if ( isset($draft_ids[$temp_id]) ) { // Edit, don't write - $_POST['post_ID'] = $draft_ids[$temp_id]; - unset($_POST['temp_ID']); - update_user_option( $user_ID, 'autosave_draft_ids', $draft_ids ); - return edit_post(); - } - } - - // Rename. - $_POST['post_content'] = $_POST['content']; - $_POST['post_excerpt'] = $_POST['excerpt']; - $_POST['post_parent'] = $_POST['parent_id']; - $_POST['to_ping'] = $_POST['trackback_url']; - - if (!empty ( $_POST['post_author_override'] ) ) { - $_POST['post_author'] = (int) $_POST['post_author_override']; - } else { - if (!empty ( $_POST['post_author'] ) ) { - $_POST['post_author'] = (int) $_POST['post_author']; - } else { - $_POST['post_author'] = (int) $_POST['user_ID']; - } - - } - - if ( $_POST['post_author'] != $_POST['user_ID'] ) { - if ( 'page' == $_POST['post_type'] ) { - if ( !current_user_can( 'edit_others_pages' ) ) - return new WP_Error( 'edit_others_pages', __( 'You are not allowed to create pages as this user.' ) ); - } else { - if ( !current_user_can( 'edit_others_posts' ) ) - return new WP_Error( 'edit_others_posts', __( 'You are not allowed to post as this user.' ) ); - - } - } - - // What to do based on which button they pressed - if ('' != $_POST['saveasdraft'] ) - $_POST['post_status'] = 'draft'; - if ('' != $_POST['saveasprivate'] ) - $_POST['post_status'] = 'private'; - if ('' != $_POST['publish'] ) - $_POST['post_status'] = 'publish'; - if ('' != $_POST['advanced'] ) - $_POST['post_status'] = 'draft'; - - if ( 'page' == $_POST['post_type'] ) { - if ('publish' == $_POST['post_status'] && !current_user_can( 'publish_pages' ) ) - $_POST['post_status'] = 'draft'; - } else { - if ('publish' == $_POST['post_status'] && !current_user_can( 'publish_posts' ) ) - $_POST['post_status'] = 'draft'; - } - - if (!isset( $_POST['comment_status'] )) - $_POST['comment_status'] = 'closed'; - - if (!isset( $_POST['ping_status'] )) - $_POST['ping_status'] = 'closed'; - - if (!empty ( $_POST['edit_date'] ) ) { - $aa = $_POST['aa']; - $mm = $_POST['mm']; - $jj = $_POST['jj']; - $hh = $_POST['hh']; - $mn = $_POST['mn']; - $ss = $_POST['ss']; - $jj = ($jj > 31 ) ? 31 : $jj; - $hh = ($hh > 23 ) ? $hh -24 : $hh; - $mn = ($mn > 59 ) ? $mn -60 : $mn; - $ss = ($ss > 59 ) ? $ss -60 : $ss; - $_POST['post_date'] = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $aa, $mm, $jj, $hh, $mn, $ss ); - $_POST['post_date_gmt'] = get_gmt_from_date( $_POST['post_date'] ); - } - - // Create the post. - $post_ID = wp_insert_post( $_POST ); - - add_meta( $post_ID ); - - // Reunite any orphaned attachments with their parent - if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) ) - $draft_ids = array(); - if ( $draft_temp_id = (int) array_search( $post_ID, $draft_ids ) ) - relocate_children( $draft_temp_id, $post_ID ); - if ( $temp_id && $temp_id != $draft_temp_id ) - relocate_children( $temp_id, $post_ID ); - - // Update autosave collision detection - if ( $temp_id ) { - $draft_ids[$temp_id] = $post_ID; - update_user_option( $user_ID, 'autosave_draft_ids', $draft_ids ); - } - - // Now that we have an ID we can fix any attachment anchor hrefs - fix_attachment_links( $post_ID ); - - return $post_ID; -} - -// Move child posts to a new parent -function relocate_children( $old_ID, $new_ID ) { - global $wpdb; - $old_ID = (int) $old_ID; - $new_ID = (int) $new_ID; - return $wpdb->query( "UPDATE $wpdb->posts SET post_parent = $new_ID WHERE post_parent = $old_ID" ); -} - -// Replace hrefs of attachment anchors with up-to-date permalinks. -function fix_attachment_links( $post_ID ) { - global $wp_rewrite; - - $post = & get_post( $post_ID, ARRAY_A ); - - $search = "#]+rel=('|\")[^'\"]*attachment[^>]*>#ie"; - - // See if we have any rel="attachment" links - if ( 0 == preg_match_all( $search, $post['post_content'], $anchor_matches, PREG_PATTERN_ORDER ) ) - return; - - $i = 0; - $search = "#[\s]+rel=(\"|')(.*?)wp-att-(\d+)\\1#i"; - foreach ( $anchor_matches[0] as $anchor ) { - if ( 0 == preg_match( $search, $anchor, $id_matches ) ) - continue; - - $id = (int) $id_matches[3]; - - // While we have the attachment ID, let's adopt any orphans. - $attachment = & get_post( $id, ARRAY_A ); - if ( ! empty( $attachment) && ! is_object( get_post( $attachment['post_parent'] ) ) ) { - $attachment['post_parent'] = $post_ID; - // Escape data pulled from DB. - $attachment = add_magic_quotes( $attachment); - wp_update_post( $attachment); - } - - $post_search[$i] = $anchor; - $post_replace[$i] = preg_replace( "#href=(\"|')[^'\"]*\\1#e", "stripslashes( 'href=\\1' ).get_attachment_link( $id ).stripslashes( '\\1' )", $anchor ); - ++$i; - } - - $post['post_content'] = str_replace( $post_search, $post_replace, $post['post_content'] ); - - // Escape data pulled from DB. - $post = add_magic_quotes( $post); - - return wp_update_post( $post); -} - -// Update an existing post with values provided in $_POST. -function edit_post() { - global $user_ID; - - $post_ID = (int) $_POST['post_ID']; - - if ( 'page' == $_POST['post_type'] ) { - if ( !current_user_can( 'edit_page', $post_ID ) ) - wp_die( __('You are not allowed to edit this page.' )); - } else { - if ( !current_user_can( 'edit_post', $post_ID ) ) - wp_die( __('You are not allowed to edit this post.' )); - } - - // Autosave shouldn't save too soon after a real save - if ( 'autosave' == $_POST['action'] ) { - $post =& get_post( $post_ID ); - $now = time(); - $then = strtotime($post->post_date_gmt . ' +0000'); - // Keep autosave_interval in sync with autosave-js.php. - $delta = apply_filters( 'autosave_interval', 120 ) / 2; - if ( ($now - $then) < $delta ) - return $post_ID; - } - - // Rename. - $_POST['ID'] = (int) $_POST['post_ID']; - $_POST['post_content'] = $_POST['content']; - $_POST['post_excerpt'] = $_POST['excerpt']; - $_POST['post_parent'] = $_POST['parent_id']; - $_POST['to_ping'] = $_POST['trackback_url']; - - if (!empty ( $_POST['post_author_override'] ) ) { - $_POST['post_author'] = (int) $_POST['post_author_override']; - } else - if (!empty ( $_POST['post_author'] ) ) { - $_POST['post_author'] = (int) $_POST['post_author']; - } else { - $_POST['post_author'] = (int) $_POST['user_ID']; - } - - if ( $_POST['post_author'] != $_POST['user_ID'] ) { - if ( 'page' == $_POST['post_type'] ) { - if ( !current_user_can( 'edit_others_pages' ) ) - wp_die( __('You are not allowed to edit pages as this user.' )); - } else { - if ( !current_user_can( 'edit_others_posts' ) ) - wp_die( __('You are not allowed to edit posts as this user.' )); - - } - } - - // What to do based on which button they pressed - if ('' != $_POST['saveasdraft'] ) - $_POST['post_status'] = 'draft'; - if ('' != $_POST['saveasprivate'] ) - $_POST['post_status'] = 'private'; - if ('' != $_POST['publish'] ) - $_POST['post_status'] = 'publish'; - if ('' != $_POST['advanced'] ) - $_POST['post_status'] = 'draft'; - - if ( 'page' == $_POST['post_type'] ) { - if ('publish' == $_POST['post_status'] && !current_user_can( 'edit_published_pages' )) - $_POST['post_status'] = 'draft'; - } else { - if ('publish' == $_POST['post_status'] && !current_user_can( 'edit_published_posts' )) - $_POST['post_status'] = 'draft'; - } - - if (!isset( $_POST['comment_status'] )) - $_POST['comment_status'] = 'closed'; - - if (!isset( $_POST['ping_status'] )) - $_POST['ping_status'] = 'closed'; - - if (!empty ( $_POST['edit_date'] ) ) { - $aa = $_POST['aa']; - $mm = $_POST['mm']; - $jj = $_POST['jj']; - $hh = $_POST['hh']; - $mn = $_POST['mn']; - $ss = $_POST['ss']; - $jj = ($jj > 31 ) ? 31 : $jj; - $hh = ($hh > 23 ) ? $hh -24 : $hh; - $mn = ($mn > 59 ) ? $mn -60 : $mn; - $ss = ($ss > 59 ) ? $ss -60 : $ss; - $_POST['post_date'] = "$aa-$mm-$jj $hh:$mn:$ss"; - $_POST['post_date_gmt'] = get_gmt_from_date( "$aa-$mm-$jj $hh:$mn:$ss" ); - } - - // Meta Stuff - if ( $_POST['meta'] ) { - foreach ( $_POST['meta'] as $key => $value ) - update_meta( $key, $value['key'], $value['value'] ); - } - - if ( $_POST['deletemeta'] ) { - foreach ( $_POST['deletemeta'] as $key => $value ) - delete_meta( $key ); - } - - add_meta( $post_ID ); - - wp_update_post( $_POST ); - - // Reunite any orphaned attachments with their parent - if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) ) - $draft_ids = array(); - if ( $draft_temp_id = (int) array_search( $post_ID, $draft_ids ) ) - relocate_children( $draft_temp_id, $post_ID ); - - // Now that we have an ID we can fix any attachment anchor hrefs - fix_attachment_links( $post_ID ); - - return $post_ID; -} - -function edit_comment() { - global $user_ID; - - $comment_ID = (int) $_POST['comment_ID']; - $comment_post_ID = (int) $_POST['comment_post_ID']; - - if (!current_user_can( 'edit_post', $comment_post_ID )) - wp_die( __('You are not allowed to edit comments on this post, so you cannot edit this comment.' )); - - $_POST['comment_author'] = $_POST['newcomment_author']; - $_POST['comment_author_email'] = $_POST['newcomment_author_email']; - $_POST['comment_author_url'] = $_POST['newcomment_author_url']; - $_POST['comment_approved'] = $_POST['comment_status']; - $_POST['comment_content'] = $_POST['content']; - $_POST['comment_ID'] = (int) $_POST['comment_ID']; - - if (!empty ( $_POST['edit_date'] ) ) { - $aa = $_POST['aa']; - $mm = $_POST['mm']; - $jj = $_POST['jj']; - $hh = $_POST['hh']; - $mn = $_POST['mn']; - $ss = $_POST['ss']; - $jj = ($jj > 31 ) ? 31 : $jj; - $hh = ($hh > 23 ) ? $hh -24 : $hh; - $mn = ($mn > 59 ) ? $mn -60 : $mn; - $ss = ($ss > 59 ) ? $ss -60 : $ss; - $_POST['comment_date'] = "$aa-$mm-$jj $hh:$mn:$ss"; - } - - wp_update_comment( $_POST); -} - -// Get an existing post and format it for editing. -function get_post_to_edit( $id ) { - - $post = get_post( $id ); - - $post->post_content = format_to_edit( $post->post_content, user_can_richedit() ); - $post->post_content = apply_filters( 'content_edit_pre', $post->post_content); - - $post->post_excerpt = format_to_edit( $post->post_excerpt); - $post->post_excerpt = apply_filters( 'excerpt_edit_pre', $post->post_excerpt); - - $post->post_title = format_to_edit( $post->post_title ); - $post->post_title = apply_filters( 'title_edit_pre', $post->post_title ); - - $post->post_password = format_to_edit( $post->post_password ); - - if ( $post->post_type == 'page' ) - $post->page_template = get_post_meta( $id, '_wp_page_template', true ); - - return $post; -} - -// Default post information to use when populating the "Write Post" form. -function get_default_post_to_edit() { - if ( !empty( $_REQUEST['post_title'] ) ) - $post_title = wp_specialchars( stripslashes( $_REQUEST['post_title'] )); - else if ( !empty( $_REQUEST['popuptitle'] ) ) { - $post_title = wp_specialchars( stripslashes( $_REQUEST['popuptitle'] )); - $post_title = funky_javascript_fix( $post_title ); - } else { - $post_title = ''; - } - - if ( !empty( $_REQUEST['content'] ) ) - $post_content = wp_specialchars( stripslashes( $_REQUEST['content'] )); - else if ( !empty( $post_title ) ) { - $text = wp_specialchars( stripslashes( urldecode( $_REQUEST['text'] ) ) ); - $text = funky_javascript_fix( $text); - $popupurl = clean_url($_REQUEST['popupurl']); - $post_content = ''.$post_title.''."\n$text"; - } - - if ( !empty( $_REQUEST['excerpt'] ) ) - $post_excerpt = wp_specialchars( stripslashes( $_REQUEST['excerpt'] )); - else - $post_excerpt = ''; - - $post->post_status = 'draft'; - $post->comment_status = get_option( 'default_comment_status' ); - $post->ping_status = get_option( 'default_ping_status' ); - $post->post_pingback = get_option( 'default_pingback_flag' ); - $post->post_category = get_option( 'default_category' ); - $post->post_content = apply_filters( 'default_content', $post_content); - $post->post_title = apply_filters( 'default_title', $post_title ); - $post->post_excerpt = apply_filters( 'default_excerpt', $post_excerpt); - $post->page_template = 'default'; - $post->post_parent = 0; - $post->menu_order = 0; - - return $post; -} - -function get_comment_to_edit( $id ) { - $comment = get_comment( $id ); - - $comment->comment_content = format_to_edit( $comment->comment_content, user_can_richedit() ); - $comment->comment_content = apply_filters( 'comment_edit_pre', $comment->comment_content); - - $comment->comment_author = format_to_edit( $comment->comment_author ); - $comment->comment_author_email = format_to_edit( $comment->comment_author_email ); - $comment->comment_author_url = format_to_edit( $comment->comment_author_url ); - - return $comment; -} - -function get_category_to_edit( $id ) { - $category = get_category( $id ); - - return $category; -} - -function wp_dropdown_roles( $default = false ) { - global $wp_roles; - $r = ''; - foreach( $wp_roles->role_names as $role => $name ) - if ( $default == $role ) // Make default first in list - $p = "\n\t"; - else - $r .= "\n\t"; - echo $p . $r; -} - - -function get_user_to_edit( $user_id ) { - $user = new WP_User( $user_id ); - $user->user_login = attribute_escape($user->user_login); - $user->user_email = attribute_escape($user->user_email); - $user->user_url = clean_url($user->user_url); - $user->first_name = attribute_escape($user->first_name); - $user->last_name = attribute_escape($user->last_name); - $user->display_name = attribute_escape($user->display_name); - $user->nickname = attribute_escape($user->nickname); - $user->aim = attribute_escape($user->aim); - $user->yim = attribute_escape($user->yim); - $user->jabber = attribute_escape($user->jabber); - $user->description = wp_specialchars($user->description); - - return $user; -} - -// Creates a new user from the "Users" form using $_POST information. - -function add_user() { - if ( func_num_args() ) { // The hackiest hack that ever did hack - global $current_user, $wp_roles; - $user_id = (int) func_get_arg( 0 ); - - if ( isset( $_POST['role'] ) ) { - if( $user_id != $current_user->id || $wp_roles->role_objects[$_POST['role']]->has_cap( 'edit_users' ) ) { - $user = new WP_User( $user_id ); - $user->set_role( $_POST['role'] ); - } - } - } else { - add_action( 'user_register', 'add_user' ); // See above - return edit_user(); - } -} - -function edit_user( $user_id = 0 ) { - global $current_user, $wp_roles, $wpdb; - if ( $user_id != 0 ) { - $update = true; - $user->ID = (int) $user_id; - $userdata = get_userdata( $user_id ); - $user->user_login = $wpdb->escape( $userdata->user_login ); - } else { - $update = false; - $user = ''; - } - - if ( isset( $_POST['user_login'] )) - $user->user_login = wp_specialchars( trim( $_POST['user_login'] )); - - $pass1 = $pass2 = ''; - if ( isset( $_POST['pass1'] )) - $pass1 = $_POST['pass1']; - if ( isset( $_POST['pass2'] )) - $pass2 = $_POST['pass2']; - - if ( isset( $_POST['role'] ) && current_user_can( 'edit_users' ) ) { - if( $user_id != $current_user->id || $wp_roles->role_objects[$_POST['role']]->has_cap( 'edit_users' )) - $user->role = $_POST['role']; - } - - if ( isset( $_POST['email'] )) - $user->user_email = wp_specialchars( trim( $_POST['email'] )); - if ( isset( $_POST['url'] ) ) { - $user->user_url = clean_url( trim( $_POST['url'] )); - $user->user_url = preg_match('/^(https?|ftps?|mailto|news|irc|gopher|nntp|feed|telnet):/is', $user->user_url) ? $user->user_url : 'http://'.$user->user_url; - } - if ( isset( $_POST['first_name'] )) - $user->first_name = wp_specialchars( trim( $_POST['first_name'] )); - if ( isset( $_POST['last_name'] )) - $user->last_name = wp_specialchars( trim( $_POST['last_name'] )); - if ( isset( $_POST['nickname'] )) - $user->nickname = wp_specialchars( trim( $_POST['nickname'] )); - if ( isset( $_POST['display_name'] )) - $user->display_name = wp_specialchars( trim( $_POST['display_name'] )); - if ( isset( $_POST['description'] )) - $user->description = trim( $_POST['description'] ); - if ( isset( $_POST['jabber'] )) - $user->jabber = wp_specialchars( trim( $_POST['jabber'] )); - if ( isset( $_POST['aim'] )) - $user->aim = wp_specialchars( trim( $_POST['aim'] )); - if ( isset( $_POST['yim'] )) - $user->yim = wp_specialchars( trim( $_POST['yim'] )); - if ( !$update ) - $user->rich_editing = 'true'; // Default to true for new users. - else if ( isset( $_POST['rich_editing'] ) ) - $user->rich_editing = $_POST['rich_editing']; - else - $user->rich_editing = 'false'; - - $errors = new WP_Error(); - - /* checking that username has been typed */ - if ( $user->user_login == '' ) - $errors->add( 'user_login', __( 'ERROR: Please enter a username.' )); - - /* checking the password has been typed twice */ - do_action_ref_array( 'check_passwords', array ( $user->user_login, & $pass1, & $pass2 )); - - if (!$update ) { - if ( $pass1 == '' || $pass2 == '' ) - $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." )); - } - - /* Check for "\" in password */ - if( strpos( " ".$pass1, "\\" ) ) - $errors->add( 'pass', __( 'ERROR: Passwords may not contain the character "\\".' )); - - /* 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.' )); - - 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.' )); - - if (!$update && username_exists( $user->user_login )) - $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" )); - } else - if (!is_email( $user->user_email ) ) { - $errors->add( 'user_email', __( "ERROR: the email address isn't correct" )); - } - - if ( $errors->get_error_codes() ) - return $errors; - - if ( $update ) { - $user_id = wp_update_user( get_object_vars( $user )); - } else { - $user_id = wp_insert_user( get_object_vars( $user )); - wp_new_user_notification( $user_id ); - } - return $user_id; -} - - -function get_link_to_edit( $link_id ) { - $link = get_link( $link_id ); - - $link->link_url = clean_url($link->link_url); - $link->link_name = attribute_escape($link->link_name); - $link->link_image = attribute_escape($link->link_image); - $link->link_description = attribute_escape($link->link_description); - $link->link_rss = clean_url($link->link_rss); - $link->link_rel = attribute_escape($link->link_rel); - $link->link_notes = wp_specialchars($link->link_notes); - $link->post_category = $link->link_category; - - return $link; -} - -function get_default_link_to_edit() { - if ( isset( $_GET['linkurl'] ) ) - $link->link_url = clean_url( $_GET['linkurl']); - else - $link->link_url = ''; - - if ( isset( $_GET['name'] ) ) - $link->link_name = attribute_escape( $_GET['name']); - else - $link->link_name = ''; - - $link->link_visible = 'Y'; - - return $link; -} - -function add_link() { - return edit_link(); -} - -function edit_link( $link_id = '' ) { - if (!current_user_can( 'manage_links' )) - wp_die( __( 'Cheatin’ uh?' )); - - $_POST['link_url'] = wp_specialchars( $_POST['link_url'] ); - $_POST['link_url'] = clean_url($_POST['link_url']); - $_POST['link_name'] = wp_specialchars( $_POST['link_name'] ); - $_POST['link_image'] = wp_specialchars( $_POST['link_image'] ); - $_POST['link_rss'] = clean_url($_POST['link_rss']); - $_POST['link_category'] = $_POST['post_category']; - - if ( !empty( $link_id ) ) { - $_POST['link_id'] = $link_id; - return wp_update_link( $_POST); - } else { - return wp_insert_link( $_POST); - } -} - -function url_shorten( $url ) { - $short_url = str_replace( 'http://', '', stripslashes( $url )); - $short_url = str_replace( 'www.', '', $short_url ); - if ('/' == substr( $short_url, -1 )) - $short_url = substr( $short_url, 0, -1 ); - if ( strlen( $short_url ) > 35 ) - $short_url = substr( $short_url, 0, 32 ).'...'; - return $short_url; -} - -function selected( $selected, $current) { - if ( $selected == $current) - echo ' selected="selected"'; -} - -function checked( $checked, $current) { - if ( $checked == $current) - echo ' checked="checked"'; -} - -function sort_cats( $cat1, $cat2 ) { - if ( $cat1['checked'] || $cat2['checked'] ) - return ( $cat1['checked'] && !$cat2['checked'] ) ? -1 : 1; - else - return strcasecmp( $cat1['cat_name'], $cat2['cat_name'] ); -} - -function get_tags_to_edit( $post_id ) { - global $wpdb; - - $post_id = (int) $post_id; - if ( !$post_id ) - return false; - - $tags = wp_get_post_tags($post_id); - - if ( !$tags ) - return false; - - foreach ( $tags as $tag ) - $tag_names[] = $tag->name; - $tags_to_edit = join( ', ', $tag_names ); - $tags_to_edit = attribute_escape( $tags_to_edit ); - $tags_to_edit = apply_filters( 'tags_to_edit', $tags_to_edit ); - return $tags_to_edit; -} - -function get_nested_categories( $default = 0, $parent = 0 ) { - global $post_ID, $mode, $wpdb; - - if ( $post_ID ) { - $checked_categories = wp_get_post_categories($post_ID); - - if ( count( $checked_categories ) == 0 ) { - // No selected categories, strange - $checked_categories[] = $default; - } - } else { - $checked_categories[] = $default; - } - - $cats = get_categories("child_of=$parent&hide_empty=0&get=ids"); - $result = array (); - - if ( is_array( $cats ) ) { - foreach ( $cats as $cat) { - //$result[$cat]['children'] = get_nested_categories( $default, $cat); - $result[$cat]['cat_ID'] = $cat; - $result[$cat]['checked'] = in_array( $cat, $checked_categories ); - $result[$cat]['cat_name'] = get_the_category_by_ID( $cat); - } - } - - $result = apply_filters('get_nested_categories', $result); - usort( $result, 'sort_cats' ); - - return $result; -} - -function write_nested_categories( $categories ) { - foreach ( $categories as $category ) { - echo '
  • "; - - if ( $category['children'] ) { - echo "\n"; - } - } -} - -function dropdown_categories( $default = 0 ) { - write_nested_categories( get_nested_categories( $default) ); -} - -function dropdown_link_categories( $default = 0 ) { - global $link_id; - - if ( $link_id ) { - $checked_categories = wp_get_link_cats($link_id); - - if ( count( $checked_categories ) == 0 ) { - // No selected categories, strange - $checked_categories[] = $default; - } - } else { - $checked_categories[] = $default; - } - - $categories = get_terms('link_category', 'orderby=count&hide_empty=0'); - - if ( empty($categories) ) - return; - - foreach ( $categories as $category ) { - $cat_id = $category->term_id; - $name = wp_specialchars( apply_filters('the_category', $category->name)); - $checked = in_array( $cat_id, $checked_categories ); - echo '
  • "; - } -} - -// Dandy new recursive multiple category stuff. -function cat_rows( $parent = 0, $level = 0, $categories = 0 ) { - if ( !$categories ) - $categories = get_categories( 'hide_empty=0' ); - - $children = _get_term_hierarchy('category'); - - if ( $categories ) { - ob_start(); - foreach ( $categories as $category ) { - if ( $category->parent == $parent) { - echo "\t" . _cat_row( $category, $level ); - if ( isset($children[$category->term_id]) ) - cat_rows( $category->term_id, $level +1, $categories ); - } - } - $output = ob_get_contents(); - ob_end_clean(); - - $output = apply_filters('cat_rows', $output); - - echo $output; - } else { - return false; - } -} - -function _cat_row( $category, $level, $name_override = false ) { - global $class; - - $pad = str_repeat( '— ', $level ); - if ( current_user_can( 'manage_categories' ) ) { - $edit = "".__( 'Edit' ).""; - $default_cat_id = (int) get_option( 'default_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' ).""; - else - $edit .= "".__( "Default" ); - } else - $edit = ''; - - $class = ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || " class='alternate'" == $class ) ? '' : " class='alternate'"; - - $category->count = number_format_i18n( $category->count ); - $posts_count = ( $category->count > 0 ) ? "$category->count" : $category->count; - return " - $category->term_id - " . ( $name_override ? $name_override : $pad . ' ' . $category->name ) . " - $category->description - $posts_count - $edit\n\t\n"; -} - -function page_rows( $parent = 0, $level = 0, $pages = 0, $hierarchy = true ) { - global $wpdb, $class, $post; - - if (!$pages ) - $pages = get_pages( 'sort_column=menu_order' ); - - if (! $pages ) - return false; - - foreach ( $pages as $post) { - setup_postdata( $post); - if ( $hierarchy && ($post->post_parent != $parent) ) - continue; - - $post->post_title = wp_specialchars( $post->post_title ); - $pad = str_repeat( '— ', $level ); - $id = (int) $post->ID; - $class = ('alternate' == $class ) ? '' : 'alternate'; -?> - - ID; ?> - - - - - post_modified ) _e('Unpublished'); else echo mysql2date( __('Y-m-d g:i a'), $post->post_modified ); ?> - - " . __( 'Edit' ) . ""; } ?> - " . __( 'Delete' ) . ""; } ?> - - -user_email; - $url = $user_object->user_url; - $short_url = str_replace( 'http://', '', $url ); - $short_url = str_replace( 'www.', '', $short_url ); - if ('/' == substr( $short_url, -1 )) - $short_url = substr( $short_url, 0, -1 ); - if ( strlen( $short_url ) > 35 ) - $short_url = substr( $short_url, 0, 32 ).'...'; - $numposts = get_usernumposts( $user_object->ID ); - $r = " - - - - $email - $short_url"; - $r .= "\n\t\t"; - if ( $numposts > 0 ) { - $r .= ""; - $r .= sprintf(__ngettext( 'View %s post', 'View %s posts', $numposts ), $numposts); - $r .= ''; - } - $r .= "\n\t\t"; - if ( current_user_can( 'edit_user', $user_object->ID ) ) { - $edit_link = add_query_arg( 'wp_http_referer', urlencode( clean_url( stripslashes( $_SERVER['REQUEST_URI'] ) ) ), "user-edit.php?user_id=$user_object->ID" ); - $r .= "".__( 'Edit' ).""; - } - $r .= "\n\t"; - return $r; -} - -function _wp_get_comment_list( $s = false, $start, $num ) { - global $wpdb; - - $start = (int) $start; - $num = (int) $num; - - if ( $s ) { - $s = $wpdb->escape($s); - $comments = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->comments WHERE - (comment_author LIKE '%$s%' OR - comment_author_email LIKE '%$s%' OR - comment_author_url LIKE ('%$s%') OR - comment_author_IP LIKE ('%$s%') OR - comment_content LIKE ('%$s%') ) AND - comment_approved != 'spam' - ORDER BY comment_date DESC LIMIT $start, $num"); - } else { - $comments = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->comments WHERE comment_approved = '0' OR comment_approved = '1' ORDER BY comment_date DESC LIMIT $start, $num" ); - } - - $total = $wpdb->get_var( "SELECT FOUND_ROWS()" ); - - return array($comments, $total); -} - -function _wp_comment_list_item( $id, $alt = 0 ) { - global $authordata, $comment, $wpdb; - $id = (int) $id; - $comment =& get_comment( $id ); - $class = ''; - $authordata = get_userdata($wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $comment->comment_post_ID")); - $comment_status = wp_get_comment_status($comment->comment_ID); - if ( 'unapproved' == $comment_status ) - $class .= ' unapproved'; - if ( $alt % 2 ) - $class .= ' alternate'; - echo "
  • "; -?> -

    comment_author_email) { ?>| comment_author_url && 'http://' != $comment->comment_author_url) { ?> | |

    - - - -

    — [ -comment_post_ID) ) { - echo " " . __('Edit') . ''; - echo ' | comment_author)) . "', theCommentList );\">" . __('Delete') . ' '; - if ( ('none' != $comment_status) && ( current_user_can('moderate_comments') ) ) { - echo ' | ' . __('Unapprove') . ' '; - echo ' | ' . __('Approve') . ' '; - } - echo " | 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') . " "; -} -$post = get_post($comment->comment_post_ID); -$post_title = wp_specialchars( $post->post_title, 'double' ); -$post_title = ('' == $post_title) ? "# $comment->comment_post_ID" : $post_title; -?> - ] —

    -
  • -term_id && $parent == $category->parent) { - $pad = str_repeat( '– ', $level ); - $category->name = wp_specialchars( $category->name ); - echo "\n\t"; - wp_dropdown_cats( $currentcat, $currentparent, $category->term_id, $level +1, $categories ); - } - } - } else { - return false; - } -} - -// Some postmeta stuff -function has_meta( $postid ) { - global $wpdb; - - return $wpdb->get_results( " - SELECT meta_key, meta_value, meta_id, post_id - FROM $wpdb->postmeta - WHERE post_id = '$postid' - ORDER BY meta_key,meta_id", ARRAY_A ); - -} - -function list_meta( $meta ) { - global $post_ID; - // Exit if no meta - if (!$meta ) { - echo ' '; //TBODY needed for list-manipulation JS - return; - } - $count = 0; -?> - - - - - - - -"; - 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; - } - } - - $key_js = js_escape( $entry['meta_key'] ); - $entry['meta_key'] = attribute_escape($entry['meta_key']); - $entry['meta_value'] = attribute_escape($entry['meta_value']); - $r .= "\n\t"; - $r .= "\n\t\t"; - $r .= "\n\t\t"; - $r .= "\n\t\t
    "; - $r .= "\n\t\t"; - $r .= "\n\t"; - } - echo $r; - echo "\n\t"; -} - -// Get a list of previously defined keys -function get_meta_keys() { - global $wpdb; - - $keys = $wpdb->get_col( " - SELECT meta_key - FROM $wpdb->postmeta - GROUP BY meta_key - ORDER BY meta_key" ); - - return $keys; -} - -function meta_form() { - global $wpdb; - $limit = (int) apply_filters( 'postmeta_form_limit', 30 ); - $keys = $wpdb->get_col( " - SELECT meta_key - FROM $wpdb->postmeta - GROUP BY meta_key - ORDER BY meta_id DESC - LIMIT $limit" ); - if ( $keys ) - natcasesort($keys); -?> -

    - - - - - - - - - - - -
    - - - -
    -

    -escape( stripslashes( trim( $_POST['metakeyselect'] ) ) ); - $metakeyinput = $wpdb->escape( stripslashes( trim( $_POST['metakeyinput'] ) ) ); - $metavalue = maybe_serialize( stripslashes( (trim( $_POST['metavalue'] ) ) )); - $metavalue = $wpdb->escape( $metavalue ); - - if ( ('0' === $metavalue || !empty ( $metavalue ) ) && ((('#NONE#' != $metakeyselect) && !empty ( $metakeyselect) ) || !empty ( $metakeyinput) ) ) { - // We have a key/value pair. If both the select and the - // input for the key have data, the input takes precedence: - - if ('#NONE#' != $metakeyselect) - $metakey = $metakeyselect; - - if ( $metakeyinput) - $metakey = $metakeyinput; // default - - $result = $wpdb->query( " - INSERT INTO $wpdb->postmeta - (post_id,meta_key,meta_value ) - VALUES ('$post_ID','$metakey','$metavalue' ) - " ); - return $wpdb->insert_id; - } - return false; -} // add_meta - -function delete_meta( $mid ) { - global $wpdb; - $mid = (int) $mid; - - return $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_id = '$mid'" ); -} - -function update_meta( $mid, $mkey, $mvalue ) { - global $wpdb; - $mvalue = maybe_serialize( stripslashes( $mvalue )); - $mvalue = $wpdb->escape( $mvalue ); - $mid = (int) $mid; - return $wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '$mkey', meta_value = '$mvalue' WHERE meta_id = '$mid'" ); -} - -function get_post_meta_by_id( $mid ) { - global $wpdb; - $mid = (int) $mid; - - $meta = $wpdb->get_row( "SELECT * FROM $wpdb->postmeta WHERE meta_id = '$mid'" ); - if ( is_serialized_string( $meta->meta_value ) ) - $meta->meta_value = maybe_unserialize( $meta->meta_value ); - return $meta; -} - -function touch_time( $edit = 1, $for_post = 1 ) { - global $wp_locale, $post, $comment; - - if ( $for_post ) - $edit = ( ('draft' == $post->post_status ) && (!$post->post_date || '0000-00-00 00:00:00' == $post->post_date ) ) ? false : true; - - echo '
    '; - - $time_adj = time() + (get_option( 'gmt_offset' ) * 3600 ); - $post_date = ($for_post) ? $post->post_date : $comment->comment_date; - $jj = ($edit) ? mysql2date( 'd', $post_date ) : gmdate( 'd', $time_adj ); - $mm = ($edit) ? mysql2date( 'm', $post_date ) : gmdate( 'm', $time_adj ); - $aa = ($edit) ? mysql2date( 'Y', $post_date ) : gmdate( 'Y', $time_adj ); - $hh = ($edit) ? mysql2date( 'H', $post_date ) : gmdate( 'H', $time_adj ); - $mn = ($edit) ? mysql2date( 'i', $post_date ) : gmdate( 'i', $time_adj ); - $ss = ($edit) ? mysql2date( 's', $post_date ) : gmdate( 's', $time_adj ); - - echo " - - @ - : - - -get_month( $mm ), $jj, $aa, $hh, $mn ); - } -?> -
    - $markerline ) { - if (strpos($markerline, '# BEGIN ' . $marker) !== false) - $state = false; - if ( $state ) { - if ( $n + 1 < count( $markerdata ) ) - fwrite( $f, "{$markerline}\n" ); - else - fwrite( $f, "{$markerline}" ); - } - if (strpos($markerline, '# END ' . $marker) !== false) { - fwrite( $f, "# BEGIN {$marker}\n" ); - if ( is_array( $insertion )) - foreach ( $insertion as $insertline ) - fwrite( $f, "{$insertline}\n" ); - fwrite( $f, "# END {$marker}\n" ); - $state = true; - $foundit = true; - } - } - } - if (!$foundit) { - fwrite( $f, "# BEGIN {$marker}\n" ); - foreach ( $insertion as $insertline ) - fwrite( $f, "{$insertline}\n" ); - fwrite( $f, "# END {$marker}\n" ); - } - fclose( $f ); - return true; - } else { - return false; - } -} - -// extract_from_markers: Owen Winkler -// Returns an array of strings from a file (.htaccess ) from between BEGIN -// and END markers. -function extract_from_markers( $filename, $marker ) { - $result = array (); - - if (!file_exists( $filename ) ) { - return $result; - } - - if ( $markerdata = explode( "\n", implode( '', file( $filename ) ) )); - { - $state = false; - foreach ( $markerdata as $markerline ) { - if (strpos($markerline, '# END ' . $marker) !== false) - $state = false; - if ( $state ) - $result[] = $markerline; - if (strpos($markerline, '# BEGIN ' . $marker) !== false) - $state = true; - } - } - - return $result; -} - -function got_mod_rewrite() { - global $is_apache; - - // take 3 educated guesses as to whether or not mod_rewrite is available - if ( !$is_apache ) - return false; - - if ( function_exists( 'apache_get_modules' ) ) { - if ( !in_array( 'mod_rewrite', apache_get_modules() ) ) - return false; - } - - return true; -} - -function save_mod_rewrite_rules() { - global $is_apache, $wp_rewrite; - $home_path = get_home_path(); - - if (!$wp_rewrite->using_mod_rewrite_permalinks() ) - return false; - - if (!((!file_exists( $home_path.'.htaccess' ) && is_writable( $home_path ) ) || is_writable( $home_path.'.htaccess' ) ) ) - return false; - - if (! got_mod_rewrite() ) - return false; - - $rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() ); - return insert_with_markers( $home_path.'.htaccess', 'WordPress', $rules ); -} - -function get_broken_themes() { - global $wp_broken_themes; - - get_themes(); - return $wp_broken_themes; -} - -function get_page_templates() { - $themes = get_themes(); - $theme = get_current_theme(); - $templates = $themes[$theme]['Template Files']; - $page_templates = array (); - - if ( is_array( $templates ) ) { - foreach ( $templates as $template ) { - $template_data = implode( '', file( ABSPATH.$template )); - preg_match( "|Template Name:(.*)|i", $template_data, $name ); - preg_match( "|Description:(.*)|i", $template_data, $description ); - - $name = $name[1]; - $description = $description[1]; - - if (!empty ( $name ) ) { - $page_templates[trim( $name )] = basename( $template ); - } - } - } - - return $page_templates; -} - -function page_template_dropdown( $default = '' ) { - $templates = get_page_templates(); - ksort( $templates ); - foreach (array_keys( $templates ) as $template ) - : if ( $default == $templates[$template] ) - $selected = " selected='selected'"; - else - $selected = ''; - echo "\n\t"; - endforeach; -} - -function parent_dropdown( $default = 0, $parent = 0, $level = 0 ) { - global $wpdb, $post_ID; - $items = $wpdb->get_results( "SELECT ID, post_parent, post_title FROM $wpdb->posts WHERE post_parent = $parent AND post_type = 'page' ORDER BY menu_order" ); - - if ( $items ) { - foreach ( $items as $item ) { - // A page cannot be its own parent. - if (!empty ( $post_ID ) ) { - if ( $item->ID == $post_ID ) { - continue; - } - } - $pad = str_repeat( ' ', $level * 3 ); - if ( $item->ID == $default) - $current = ' selected="selected"'; - else - $current = ''; - - echo "\n\t"; - parent_dropdown( $default, $item->ID, $level +1 ); - } - } else { - return false; - } -} - -function user_can_access_admin_page() { - global $pagenow; - global $menu; - global $submenu; - global $_wp_menu_nopriv; - global $_wp_submenu_nopriv; - global $plugin_page; - - $parent = get_admin_page_parent(); - - if ( isset( $_wp_submenu_nopriv[$parent][$pagenow] ) ) - return false; - - if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$parent][$plugin_page] ) ) - return false; - - if ( empty( $parent) ) { - if ( isset( $_wp_menu_nopriv[$pagenow] ) ) - return false; - if ( isset( $_wp_submenu_nopriv[$pagenow][$pagenow] ) ) - return false; - if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) ) - return false; - foreach (array_keys( $_wp_submenu_nopriv ) as $key ) { - if ( isset( $_wp_submenu_nopriv[$key][$pagenow] ) ) - return false; - if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$key][$plugin_page] ) ) - return false; - } - return true; - } - - if ( isset( $submenu[$parent] ) ) { - foreach ( $submenu[$parent] as $submenu_array ) { - if ( isset( $plugin_page ) && ( $submenu_array[2] == $plugin_page ) ) { - if ( current_user_can( $submenu_array[1] )) - return true; - else - return false; - } else if ( $submenu_array[2] == $pagenow ) { - if ( current_user_can( $submenu_array[1] )) - return true; - else - return false; - } - } - } - - foreach ( $menu as $menu_array ) { - if ( $menu_array[2] == $parent) { - if ( current_user_can( $menu_array[1] )) - return true; - else - return false; - } - } - - return true; -} - -function get_admin_page_title() { - global $title; - global $menu; - global $submenu; - global $pagenow; - global $plugin_page; - - if ( isset( $title ) && !empty ( $title ) ) { - return $title; - } - - $hook = get_plugin_page_hook( $plugin_page, $pagenow ); - - $parent = $parent1 = get_admin_page_parent(); - if ( empty ( $parent) ) { - foreach ( $menu as $menu_array ) { - if ( isset( $menu_array[3] ) ) { - if ( $menu_array[2] == $pagenow ) { - $title = $menu_array[3]; - return $menu_array[3]; - } else - if ( isset( $plugin_page ) && ($plugin_page == $menu_array[2] ) && ($hook == $menu_array[3] ) ) { - $title = $menu_array[3]; - return $menu_array[3]; - } - } else { - $title = $menu_array[0]; - return $title; - } - } - } else { - foreach (array_keys( $submenu ) as $parent) { - foreach ( $submenu[$parent] as $submenu_array ) { - if ( isset( $plugin_page ) && - ($plugin_page == $submenu_array[2] ) && - (($parent == $pagenow ) || ($parent == $plugin_page ) || ($plugin_page == $hook ) || (($pagenow == 'admin.php' ) && ($parent1 != $submenu_array[2] ) ) ) - ) { - $title = $submenu_array[3]; - return $submenu_array[3]; - } - - if ( $submenu_array[2] != $pagenow || isset( $_GET['page'] ) ) // not the current page - continue; - - if ( isset( $submenu_array[3] ) ) { - $title = $submenu_array[3]; - return $submenu_array[3]; - } else { - $title = $submenu_array[0]; - return $title; - } - } - } - } - - return $title; -} - -function get_admin_page_parent() { - global $parent_file; - global $menu; - global $submenu; - global $pagenow; - global $plugin_page; - global $_wp_real_parent_file; - global $_wp_menu_nopriv; - global $_wp_submenu_nopriv; - - if ( !empty ( $parent_file ) ) { - if ( isset( $_wp_real_parent_file[$parent_file] ) ) - $parent_file = $_wp_real_parent_file[$parent_file]; - - return $parent_file; - } - - if ( $pagenow == 'admin.php' && isset( $plugin_page ) ) { - foreach ( $menu as $parent_menu ) { - if ( $parent_menu[2] == $plugin_page ) { - $parent_file = $plugin_page; - if ( isset( $_wp_real_parent_file[$parent_file] ) ) - $parent_file = $_wp_real_parent_file[$parent_file]; - return $parent_file; - } - } - if ( isset( $_wp_menu_nopriv[$plugin_page] ) ) { - $parent_file = $plugin_page; - if ( isset( $_wp_real_parent_file[$parent_file] ) ) - $parent_file = $_wp_real_parent_file[$parent_file]; - return $parent_file; - } - } - - if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) ) { - $parent_file = $pagenow; - if ( isset( $_wp_real_parent_file[$parent_file] ) ) - $parent_file = $_wp_real_parent_file[$parent_file]; - return $parent_file; - } - - foreach (array_keys( $submenu ) as $parent) { - foreach ( $submenu[$parent] as $submenu_array ) { - if ( isset( $_wp_real_parent_file[$parent] ) ) - $parent = $_wp_real_parent_file[$parent]; - if ( $submenu_array[2] == $pagenow ) { - $parent_file = $parent; - return $parent; - } else - if ( isset( $plugin_page ) && ($plugin_page == $submenu_array[2] ) ) { - $parent_file = $parent; - return $parent; - } - } - } - - $parent_file = ''; - return ''; -} - -function add_menu_page( $page_title, $menu_title, $access_level, $file, $function = '' ) { - global $menu, $admin_page_hooks; - - $file = plugin_basename( $file ); - - $menu[] = array ( $menu_title, $access_level, $file, $page_title ); - - $admin_page_hooks[$file] = sanitize_title( $menu_title ); - - $hookname = get_plugin_page_hookname( $file, '' ); - if (!empty ( $function ) && !empty ( $hookname )) - add_action( $hookname, $function ); - - return $hookname; -} - -function add_submenu_page( $parent, $page_title, $menu_title, $access_level, $file, $function = '' ) { - global $submenu; - global $menu; - global $_wp_real_parent_file; - global $_wp_submenu_nopriv; - global $_wp_menu_nopriv; - - $file = plugin_basename( $file ); - - $parent = plugin_basename( $parent); - if ( isset( $_wp_real_parent_file[$parent] ) ) - $parent = $_wp_real_parent_file[$parent]; - - if ( !current_user_can( $access_level ) ) { - $_wp_submenu_nopriv[$parent][$file] = true; - return false; - } - - // If the parent doesn't already have a submenu, add a link to the parent - // as the first item in the submenu. If the submenu file is the same as the - // parent file someone is trying to link back to the parent manually. In - // this case, don't automatically add a link back to avoid duplication. - if (!isset( $submenu[$parent] ) && $file != $parent ) { - foreach ( $menu as $parent_menu ) { - if ( $parent_menu[2] == $parent && current_user_can( $parent_menu[1] ) ) - $submenu[$parent][] = $parent_menu; - } - } - - $submenu[$parent][] = array ( $menu_title, $access_level, $file, $page_title ); - - $hookname = get_plugin_page_hookname( $file, $parent); - if (!empty ( $function ) && !empty ( $hookname )) - add_action( $hookname, $function ); - - return $hookname; -} - -function add_options_page( $page_title, $menu_title, $access_level, $file, $function = '' ) { - return add_submenu_page( 'options-general.php', $page_title, $menu_title, $access_level, $file, $function ); -} - -function add_management_page( $page_title, $menu_title, $access_level, $file, $function = '' ) { - return add_submenu_page( 'edit.php', $page_title, $menu_title, $access_level, $file, $function ); -} - -function add_theme_page( $page_title, $menu_title, $access_level, $file, $function = '' ) { - return add_submenu_page( 'themes.php', $page_title, $menu_title, $access_level, $file, $function ); -} - -function add_users_page( $page_title, $menu_title, $access_level, $file, $function = '' ) { - if ( current_user_can('edit_users') ) - $parent = 'users.php'; - else - $parent = 'profile.php'; - return add_submenu_page( $parent, $page_title, $menu_title, $access_level, $file, $function ); -} - -function validate_file( $file, $allowed_files = '' ) { - if ( false !== strpos( $file, './' )) - return 1; - - if (':' == substr( $file, 1, 1 )) - return 2; - - if (!empty ( $allowed_files ) && (!in_array( $file, $allowed_files ) ) ) - return 3; - - return 0; -} - -function validate_file_to_edit( $file, $allowed_files = '' ) { - $file = stripslashes( $file ); - - $code = validate_file( $file, $allowed_files ); - - if (!$code ) - return $file; - - switch ( $code ) { - case 1 : - wp_die( __('Sorry, can’t edit files with ".." in the name. If you are trying to edit a file in your WordPress home directory, you can just type the name of the file in.' )); - - case 2 : - wp_die( __('Sorry, can’t call files with their real path.' )); - - case 3 : - wp_die( __('Sorry, that file cannot be edited.' )); - } -} - -function get_home_path() { - $home = get_option( 'home' ); - if ( $home != '' && $home != get_option( 'siteurl' ) ) { - $home_path = parse_url( $home ); - $home_path = $home_path['path']; - $root = str_replace( $_SERVER["PHP_SELF"], '', $_SERVER["SCRIPT_FILENAME"] ); - $home_path = trailingslashit( $root.$home_path ); - } else { - $home_path = ABSPATH; - } - - return $home_path; -} - -function get_real_file_to_edit( $file ) { - if ('index.php' == $file || '.htaccess' == $file ) { - $real_file = get_home_path().$file; - } else { - $real_file = ABSPATH.$file; - } - - return $real_file; -} - -$wp_file_descriptions = array ('index.php' => __( 'Main Index Template' ), 'style.css' => __( 'Stylesheet' ), 'comments.php' => __( 'Comments' ), 'comments-popup.php' => __( 'Popup Comments' ), 'footer.php' => __( 'Footer' ), 'header.php' => __( 'Header' ), 'sidebar.php' => __( 'Sidebar' ), 'archive.php' => __( 'Archives' ), 'category.php' => __( 'Category Template' ), 'page.php' => __( 'Page Template' ), 'search.php' => __( 'Search Results' ), 'single.php' => __( 'Single Post' ), '404.php' => __( '404 Template' ), 'my-hacks.php' => __( 'my-hacks.php (legacy hacks support)' ), '.htaccess' => __( '.htaccess (for rewrite rules )' ), - // Deprecated files - 'wp-layout.css' => __( 'Stylesheet' ), 'wp-comments.php' => __( 'Comments Template' ), 'wp-comments-popup.php' => __( 'Popup Comments Template' )); - -function get_file_description( $file ) { - global $wp_file_descriptions; - - if ( isset( $wp_file_descriptions[basename( $file )] ) ) { - return $wp_file_descriptions[basename( $file )]; - } - elseif ( file_exists( ABSPATH . $file ) && is_file( ABSPATH . $file ) ) { - $template_data = implode( '', file( ABSPATH . $file ) ); - if ( preg_match( "|Template Name:(.*)|i", $template_data, $name )) - return $name[1]; - } - - return basename( $file ); -} - -function update_recently_edited( $file ) { - $oldfiles = (array ) get_option( 'recently_edited' ); - if ( $oldfiles ) { - $oldfiles = array_reverse( $oldfiles ); - $oldfiles[] = $file; - $oldfiles = array_reverse( $oldfiles ); - $oldfiles = array_unique( $oldfiles ); - if ( 5 < count( $oldfiles )) - array_pop( $oldfiles ); - } else { - $oldfiles[] = $file; - } - update_option( 'recently_edited', $oldfiles ); -} - -function get_plugin_data( $plugin_file ) { - $plugin_data = implode( '', file( $plugin_file )); - preg_match( "|Plugin Name:(.*)|i", $plugin_data, $plugin_name ); - preg_match( "|Plugin URI:(.*)|i", $plugin_data, $plugin_uri ); - preg_match( "|Description:(.*)|i", $plugin_data, $description ); - preg_match( "|Author:(.*)|i", $plugin_data, $author_name ); - preg_match( "|Author URI:(.*)|i", $plugin_data, $author_uri ); - if ( preg_match( "|Version:(.*)|i", $plugin_data, $version )) - $version = trim( $version[1] ); - else - $version = ''; - - $description = wptexturize( trim( $description[1] )); - - $name = $plugin_name[1]; - $name = trim( $name ); - $plugin = $name; - if ('' != $plugin_uri[1] && '' != $name ) { - $plugin = ''.$plugin.''; - } - - if ('' == $author_uri[1] ) { - $author = trim( $author_name[1] ); - } else { - $author = '' . trim( $author_name[1] ) . ''; - } - - return array('Name' => $name, 'Title' => $plugin, 'Description' => $description, 'Author' => $author, 'Version' => $version); -} - -function get_plugins() { - global $wp_plugins; - - if ( isset( $wp_plugins ) ) { - return $wp_plugins; - } - - $wp_plugins = array (); - $plugin_root = ABSPATH . PLUGINDIR; - - // Files in wp-content/plugins directory - $plugins_dir = @ dir( $plugin_root); - if ( $plugins_dir ) { - while (($file = $plugins_dir->read() ) !== false ) { - if ( substr($file, 0, 1) == '.' ) - continue; - if ( is_dir( $plugin_root.'/'.$file ) ) { - $plugins_subdir = @ dir( $plugin_root.'/'.$file ); - if ( $plugins_subdir ) { - while (($subfile = $plugins_subdir->read() ) !== false ) { - if ( substr($subfile, 0, 1) == '.' ) - continue; - if ( substr($subfile, -4) == '.php' ) - $plugin_files[] = "$file/$subfile"; - } - } - } else { - if ( substr($file, -4) == '.php' ) - $plugin_files[] = $file; - } - } - } - - if ( !$plugins_dir || !$plugin_files ) - return $wp_plugins; - - foreach ( $plugin_files as $plugin_file ) { - if ( !is_readable( "$plugin_root/$plugin_file" ) ) - continue; - - $plugin_data = get_plugin_data( "$plugin_root/$plugin_file" ); - - if ( empty ( $plugin_data['Name'] ) ) - continue; - - $wp_plugins[plugin_basename( $plugin_file )] = $plugin_data; - } - - uasort( $wp_plugins, create_function( '$a, $b', 'return strnatcasecmp( $a["Name"], $b["Name"] );' )); - - return $wp_plugins; -} - -function get_plugin_page_hookname( $plugin_page, $parent_page ) { - global $admin_page_hooks; - - $parent = get_admin_page_parent(); - - if ( empty ( $parent_page ) || 'admin.php' == $parent_page ) { - if ( isset( $admin_page_hooks[$plugin_page] )) - $page_type = 'toplevel'; - else - if ( isset( $admin_page_hooks[$parent] )) - $page_type = $admin_page_hooks[$parent]; - } else - if ( isset( $admin_page_hooks[$parent_page] ) ) { - $page_type = $admin_page_hooks[$parent_page]; - } else { - $page_type = 'admin'; - } - - $plugin_name = preg_replace( '!\.php!', '', $plugin_page ); - - return $page_type.'_page_'.$plugin_name; -} - -function get_plugin_page_hook( $plugin_page, $parent_page ) { - global $wp_filter; - - $hook = get_plugin_page_hookname( $plugin_page, $parent_page ); - if ( isset( $wp_filter[$hook] )) - return $hook; - else - return ''; -} - -function browse_happy() { - $getit = __( 'WordPress recommends a better browser' ); - echo ' -

    Browse Happy

    - '; -} - -if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) - add_action( 'admin_footer', 'browse_happy' ); - -function documentation_link( $for ) { - return; -} - -function register_importer( $id, $name, $description, $callback ) { - global $wp_importers; - - $wp_importers[$id] = array ( $name, $description, $callback ); -} - -function get_importers() { - global $wp_importers; - uasort($wp_importers, create_function('$a, $b', 'return strcmp($a[0], $b[0]);')); - return $wp_importers; -} - -function current_theme_info() { - $themes = get_themes(); - $current_theme = get_current_theme(); - $ct->name = $current_theme; - $ct->title = $themes[$current_theme]['Title']; - $ct->version = $themes[$current_theme]['Version']; - $ct->parent_theme = $themes[$current_theme]['Parent Theme']; - $ct->template_dir = $themes[$current_theme]['Template Dir']; - $ct->stylesheet_dir = $themes[$current_theme]['Stylesheet Dir']; - $ct->template = $themes[$current_theme]['Template']; - $ct->stylesheet = $themes[$current_theme]['Stylesheet']; - $ct->screenshot = $themes[$current_theme]['Screenshot']; - $ct->description = $themes[$current_theme]['Description']; - $ct->author = $themes[$current_theme]['Author']; - return $ct; -} - - -// array wp_handle_upload ( array &file [, array overrides] ) -// file: reference to a single element of $_FILES. Call the function once for each uploaded file. -// overrides: an associative array of names=>values to override default variables with extract( $overrides, EXTR_OVERWRITE ). -// On success, returns an associative array of file attributes. -// On failure, returns $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ). -function wp_handle_upload( &$file, $overrides = false ) { - // The default error handler. - if (! function_exists( 'wp_handle_upload_error' ) ) { - function wp_handle_upload_error( &$file, $message ) { - return array( 'error'=>$message ); - } - } - - // You may define your own function and pass the name in $overrides['upload_error_handler'] - $upload_error_handler = 'wp_handle_upload_error'; - - // $_POST['action'] must be set and its value must equal $overrides['action'] or this: - $action = 'wp_handle_upload'; - - // Courtesy of php.net, the strings that describe the error indicated in $_FILES[{form field}]['error']. - $upload_error_strings = array( false, - __( "The uploaded file exceeds the upload_max_filesize directive in php.ini." ), - __( "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form." ), - __( "The uploaded file was only partially uploaded." ), - __( "No file was uploaded." ), - __( "Missing a temporary folder." ), - __( "Failed to write file to disk." )); - - // All tests are on by default. Most can be turned off by $override[{test_name}] = false; - $test_form = true; - $test_size = true; - - // If you override this, you must provide $ext and $type!!!! - $test_type = true; - - // Install user overrides. Did we mention that this voids your warranty? - if ( is_array( $overrides ) ) - extract( $overrides, EXTR_OVERWRITE ); - - // A correct form post will pass this test. - if ( $test_form && (!isset( $_POST['action'] ) || ($_POST['action'] != $action ) ) ) - return $upload_error_handler( $file, __( 'Invalid form submission.' )); - - // A successful upload will pass this test. It makes no sense to override this one. - if ( $file['error'] > 0 ) - return $upload_error_handler( $file, $upload_error_strings[$file['error']] ); - - // A non-empty file will pass this test. - if ( $test_size && !($file['size'] > 0 ) ) - return $upload_error_handler( $file, __( 'File is empty. Please upload something more substantial.' )); - - // A properly uploaded file will pass this test. There should be no reason to override this one. - if (! @ is_uploaded_file( $file['tmp_name'] ) ) - return $upload_error_handler( $file, __( 'Specified file failed upload test.' )); - - // A correct MIME type will pass this test. Override $mimes or use the upload_mimes filter. - if ( $test_type ) { - $wp_filetype = wp_check_filetype( $file['name'], $mimes ); - - extract( $wp_filetype ); - - if ( ( !$type || !$ext ) && !current_user_can( 'unfiltered_upload' ) ) - return $upload_error_handler( $file, __( 'File type does not meet security guidelines. Try another.' )); - - if ( !$ext ) - $ext = strrchr($file['name'], '.'); - } - - // A writable uploads dir will pass this test. Again, there's no point overriding this one. - if ( ! ( ( $uploads = wp_upload_dir() ) && false === $uploads['error'] ) ) - return $upload_error_handler( $file, $uploads['error'] ); - - // Increment the file number until we have a unique file to save in $dir. Use $override['unique_filename_callback'] if supplied. - if ( isset( $unique_filename_callback ) && function_exists( $unique_filename_callback ) ) { - $filename = $unique_filename_callback( $uploads['path'], $file['name'] ); - } else { - $number = ''; - $filename = str_replace( '#', '_', $file['name'] ); - $filename = str_replace( array( '\\', "'" ), '', $filename ); - if ( empty( $ext) ) - $ext = ''; - else - $ext = ".$ext"; - while ( file_exists( $uploads['path'] . "/$filename" ) ) { - if ( '' == "$number$ext" ) - $filename = $filename . ++$number . $ext; - else - $filename = str_replace( "$number$ext", ++$number . $ext, $filename ); - } - $filename = str_replace( $ext, '', $filename ); - $filename = sanitize_title_with_dashes( $filename ) . $ext; - } - - // Move the file to the uploads dir - $new_file = $uploads['path'] . "/$filename"; - if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) ) - wp_die( printf( __('The uploaded file could not be moved to %s.' ), $uploads['path'] )); - - // Set correct file permissions - $stat = stat( dirname( $new_file )); - $perms = $stat['mode'] & 0000666; - @ chmod( $new_file, $perms ); - - // Compute the URL - $url = $uploads['url'] . "/$filename"; - - $return = apply_filters( 'wp_handle_upload', array( 'file' => $new_file, 'url' => $url, 'type' => $type ) ); - - return $return; -} - -function wp_shrink_dimensions( $width, $height, $wmax = 128, $hmax = 96 ) { - if ( $height <= $hmax && $width <= $wmax ) - return array( $width, $height); - elseif ( $width / $height > $wmax / $hmax ) - return array( $wmax, (int) ($height / $width * $wmax )); - else - return array( (int) ($width / $height * $hmax ), $hmax ); -} - -function wp_import_cleanup( $id ) { - wp_delete_attachment( $id ); -} - -function wp_import_upload_form( $action ) { - $size = strtolower( ini_get( 'upload_max_filesize' ) ); - $bytes = 0; - if (strpos($size, 'k') !== false) - $bytes = $size * 1024; - if (strpos($size, 'm') !== false) - $bytes = $size * 1024 * 1024; - if (strpos($size, 'g') !== false) - $bytes = $size * 1024 * 1024 * 1024; - $size = apply_filters( 'import_upload_size_limit', $size ); -?> -
    -

    - - ( ) - - - -

    -

    - -

    -
    - false, 'test_type' => false ); - $file = wp_handle_upload( $_FILES['import'], $overrides ); - - if ( isset( $file['error'] ) ) - return $file; - - $url = $file['url']; - $type = $file['type']; - $file = addslashes( $file['file'] ); - $filename = basename( $file ); - - // Construct the object array - $object = array( 'post_title' => $filename, - 'post_content' => $url, - 'post_mime_type' => $type, - 'guid' => $url - ); - - // Save the data - $id = wp_insert_attachment( $object, $file ); - - return array( 'file' => $file, 'id' => $id ); -} - -function the_attachment_links( $id = false ) { - $id = (int) $id; - $post = & get_post( $id ); - - if ( $post->post_type != 'attachment' ) - return false; - - $icon = get_attachment_icon( $post->ID ); - $attachment_data = wp_get_attachment_metadata( $id ); - $thumb = isset( $attachment_data['thumb'] ); -?> - - 4 / 3 ) - return array( 128, (int) ($height / $width * 128 )); - else - return array( (int) ($width / $height * 96 ), 96 ); -} - -function wp_reset_vars( $vars ) { - for ( $i=0; $ipost_name); // just in case - if ( strlen($name) ) - echo ''; -} - - -// If siteurl or home changed, reset cookies and flush rewrite rules. -function update_home_siteurl( $old_value, $value ) { - global $wp_rewrite, $user_login, $user_pass_md5; - - if ( defined( "WP_INSTALLING" ) ) - return; - - // If home changed, write rewrite rules to new location. - $wp_rewrite->flush_rules(); - // Clear cookies for old paths. - wp_clearcookie(); - // Set cookies for new paths. - wp_setcookie( $user_login, $user_pass_md5, true, get_option( 'home' ), get_option( 'siteurl' )); -} - -add_action( 'update_option_home', 'update_home_siteurl', 10, 2 ); -add_action( 'update_option_siteurl', 'update_home_siteurl', 10, 2 ); - -function wp_crop_image( $src_file, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs = false, $dst_file = false ) { - if ( ctype_digit( $src_file ) ) // Handle int as attachment ID - $src_file = get_attached_file( $src_file ); - - $src = wp_load_image( $src_file ); - - if ( !is_resource( $src )) - return $src; - - $dst = imagecreatetruecolor( $dst_w, $dst_h ); - - if ( $src_abs ) { - $src_w -= $src_x; - $src_h -= $src_y; - } - - if (function_exists('imageantialias')) - imageantialias( $dst, true ); - - imagecopyresampled( $dst, $src, 0, 0, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h ); - - if ( !$dst_file ) - $dst_file = str_replace( basename( $src_file ), 'cropped-'.basename( $src_file ), $src_file ); - - $dst_file = preg_replace( '/\\.[^\\.]+$/', '.jpg', $dst_file ); - - if ( imagejpeg( $dst, $dst_file ) ) - return $dst_file; - else - return false; -} - -function wp_load_image( $file ) { - if ( ctype_digit( $file ) ) - $file = get_attached_file( $file ); - - if ( !file_exists( $file ) ) - return sprintf(__("File '%s' doesn't exist?"), $file); - - if ( ! function_exists('imagecreatefromstring') ) - return __('The GD image library is not installed.'); - - $contents = file_get_contents( $file ); - - $image = imagecreatefromstring( $contents ); - - if ( !is_resource( $image ) ) - return sprintf(__("File '%s' is not an image."), $file); - - return $image; -} - -function wp_generate_attachment_metadata( $attachment_id, $file ) { - $attachment = get_post( $attachment_id ); - - $metadata = array(); - if ( preg_match('!^image/!', get_post_mime_type( $attachment )) ) { - $imagesize = getimagesize($file); - $metadata['width'] = $imagesize['0']; - $metadata['height'] = $imagesize['1']; - list($uwidth, $uheight) = get_udims($metadata['width'], $metadata['height']); - $metadata['hwstring_small'] = "height='$uheight' width='$uwidth'"; - $metadata['file'] = $file; - - $max = apply_filters( 'wp_thumbnail_creation_size_limit', 3 * 1024 * 1024, $attachment_id, $file ); - - if ( $max < 0 || $metadata['width'] * $metadata['height'] < $max ) { - $max_side = apply_filters( 'wp_thumbnail_max_side_length', 128, $attachment_id, $file ); - $thumb = wp_create_thumbnail( $file, $max_side ); - - if ( @file_exists($thumb) ) - $metadata['thumb'] = basename($thumb); - } - } - return apply_filters( 'wp_generate_attachment_metadata', $metadata ); -} - -function wp_create_thumbnail( $file, $max_side, $effect = '' ) { - - // 1 = GIF, 2 = JPEG, 3 = PNG - - if ( file_exists( $file ) ) { - $type = getimagesize( $file ); - - // if the associated function doesn't exist - then it's not - // handle. duh. i hope. - - if (!function_exists( 'imagegif' ) && $type[2] == 1 ) { - $error = __( 'Filetype not supported. Thumbnail not created.' ); - } - elseif (!function_exists( 'imagejpeg' ) && $type[2] == 2 ) { - $error = __( 'Filetype not supported. Thumbnail not created.' ); - } - elseif (!function_exists( 'imagepng' ) && $type[2] == 3 ) { - $error = __( 'Filetype not supported. Thumbnail not created.' ); - } else { - - // create the initial copy from the original file - if ( $type[2] == 1 ) { - $image = imagecreatefromgif( $file ); - } - elseif ( $type[2] == 2 ) { - $image = imagecreatefromjpeg( $file ); - } - elseif ( $type[2] == 3 ) { - $image = imagecreatefrompng( $file ); - } - - if ( function_exists( 'imageantialias' )) - imageantialias( $image, TRUE ); - - $image_attr = getimagesize( $file ); - - // figure out the longest side - - if ( $image_attr[0] > $image_attr[1] ) { - $image_width = $image_attr[0]; - $image_height = $image_attr[1]; - $image_new_width = $max_side; - - $image_ratio = $image_width / $image_new_width; - $image_new_height = $image_height / $image_ratio; - //width is > height - } else { - $image_width = $image_attr[0]; - $image_height = $image_attr[1]; - $image_new_height = $max_side; - - $image_ratio = $image_height / $image_new_height; - $image_new_width = $image_width / $image_ratio; - //height > width - } - - $thumbnail = imagecreatetruecolor( $image_new_width, $image_new_height); - @ imagecopyresampled( $thumbnail, $image, 0, 0, 0, 0, $image_new_width, $image_new_height, $image_attr[0], $image_attr[1] ); - - // If no filters change the filename, we'll do a default transformation. - if ( basename( $file ) == $thumb = apply_filters( 'thumbnail_filename', basename( $file ) ) ) - $thumb = preg_replace( '!(\.[^.]+)?$!', '.thumbnail' . '$1', basename( $file ), 1 ); - - $thumbpath = str_replace( basename( $file ), $thumb, $file ); - - // move the thumbnail to its final destination - if ( $type[2] == 1 ) { - if (!imagegif( $thumbnail, $thumbpath ) ) { - $error = __( "Thumbnail path invalid" ); - } - } - elseif ( $type[2] == 2 ) { - if (!imagejpeg( $thumbnail, $thumbpath ) ) { - $error = __( "Thumbnail path invalid" ); - } - } - elseif ( $type[2] == 3 ) { - if (!imagepng( $thumbnail, $thumbpath ) ) { - $error = __( "Thumbnail path invalid" ); - } - } - - } - } else { - $error = __( 'File not found' ); - } - - if (!empty ( $error ) ) { - return $error; - } else { - return apply_filters( 'wp_create_thumbnail', $thumbpath ); - } -} - -?> diff --git a/wp-admin/admin.php b/wp-admin/admin.php index b5b83a7ad6..ac4c801dfa 100644 --- a/wp-admin/admin.php +++ b/wp-admin/admin.php @@ -9,9 +9,7 @@ if ( get_option('db_version') != $wp_db_version ) { exit; } -require_once(ABSPATH . 'wp-admin/admin-functions.php'); -require_once(ABSPATH . 'wp-admin/admin-db.php'); -require_once(ABSPATH . WPINC . '/registration.php'); +require_once(ABSPATH . 'wp-admin/includes/admin.php'); auth_redirect(); @@ -91,7 +89,7 @@ if (isset($plugin_page)) { if (! isset($_GET['noheader'])) require_once(ABSPATH . 'wp-admin/admin-header.php'); - require_once(ABSPATH . 'wp-admin/upgrade-functions.php'); + require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); define('WP_IMPORTING', true); diff --git a/wp-admin/includes/admin.php b/wp-admin/includes/admin.php new file mode 100644 index 0000000000..0c4c52cccb --- /dev/null +++ b/wp-admin/includes/admin.php @@ -0,0 +1,18 @@ + diff --git a/wp-admin/includes/bookmark.php b/wp-admin/includes/bookmark.php new file mode 100644 index 0000000000..28a6d57ea5 --- /dev/null +++ b/wp-admin/includes/bookmark.php @@ -0,0 +1,205 @@ +link_url = clean_url( $_GET['linkurl']); + else + $link->link_url = ''; + + if ( isset( $_GET['name'] ) ) + $link->link_name = attribute_escape( $_GET['name']); + else + $link->link_name = ''; + + $link->link_visible = 'Y'; + + return $link; +} + +function wp_delete_link($link_id) { + global $wpdb; + + do_action('delete_link', $link_id); + + $categories = wp_get_link_cats($link_id); + if( is_array( $categories ) ) { + foreach ( $categories as $category ) { + $wpdb->query("UPDATE $wpdb->categories SET link_count = link_count - 1 WHERE cat_ID = '$category'"); + wp_cache_delete($category, 'category'); + do_action('edit_category', $cat_id); + } + } + + $wpdb->query("DELETE FROM $wpdb->link2cat WHERE link_id = '$link_id'"); + return $wpdb->query("DELETE FROM $wpdb->links WHERE link_id = '$link_id'"); + + do_action('deleted_link', $link_id); +} + +function wp_get_link_cats($link_id = 0) { + + $cats = get_object_terms($link_id, 'link_category', 'get=ids'); + + return array_unique($cats); +} + +function get_link_to_edit( $link_id ) { + $link = get_link( $link_id ); + + $link->link_url = clean_url($link->link_url); + $link->link_name = attribute_escape($link->link_name); + $link->link_image = attribute_escape($link->link_image); + $link->link_description = attribute_escape($link->link_description); + $link->link_rss = clean_url($link->link_rss); + $link->link_rel = attribute_escape($link->link_rel); + $link->link_notes = wp_specialchars($link->link_notes); + $link->post_category = $link->link_category; + + return $link; +} + +function wp_insert_link($linkdata) { + global $wpdb, $current_user; + + extract($linkdata); + + $update = false; + + if ( !empty($link_id) ) + $update = true; + + $link_id = (int) $link_id; + + if( trim( $link_name ) == '' ) + return 0; + $link_name = apply_filters('pre_link_name', $link_name); + + if( trim( $link_url ) == '' ) + return 0; + $link_url = apply_filters('pre_link_url', $link_url); + + if ( empty($link_rating) ) + $link_rating = 0; + else + $link_rating = (int) $link_rating; + + if ( empty($link_image) ) + $link_image = ''; + $link_image = apply_filters('pre_link_image', $link_image); + + if ( empty($link_target) ) + $link_target = ''; + $link_target = apply_filters('pre_link_target', $link_target); + + if ( empty($link_visible) ) + $link_visible = 'Y'; + $link_visibile = preg_replace('/[^YNyn]/', '', $link_visible); + + if ( empty($link_owner) ) + $link_owner = $current_user->id; + else + $link_owner = (int) $link_owner; + + if ( empty($link_notes) ) + $link_notes = ''; + $link_notes = apply_filters('pre_link_notes', $link_notes); + + if ( empty($link_description) ) + $link_description = ''; + $link_description = apply_filters('pre_link_description', $link_description); + + if ( empty($link_rss) ) + $link_rss = ''; + $link_rss = apply_filters('pre_link_rss', $link_rss); + + if ( empty($link_rel) ) + $link_rel = ''; + $link_rel = apply_filters('pre_link_rel', $link_rel); + + // Make sure we set a valid category + if (0 == count($link_category) || !is_array($link_category)) { + $link_category = array(get_option('default_link_category')); + } + + if ( $update ) { + $wpdb->query("UPDATE $wpdb->links SET link_url='$link_url', + link_name='$link_name', link_image='$link_image', + link_target='$link_target', + link_visible='$link_visible', link_description='$link_description', + link_rating='$link_rating', link_rel='$link_rel', + link_notes='$link_notes', link_rss = '$link_rss' + WHERE link_id='$link_id'"); + } else { + $wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_image, link_target, link_description, link_visible, link_owner, link_rating, link_rel, link_notes, link_rss) VALUES('$link_url','$link_name', '$link_image', '$link_target', '$link_description', '$link_visible', '$link_owner', '$link_rating', '$link_rel', '$link_notes', '$link_rss')"); + $link_id = (int) $wpdb->insert_id; + } + + wp_set_link_cats($link_id, $link_category); + + if ( $update ) + do_action('edit_link', $link_id); + else + do_action('add_link', $link_id); + + return $link_id; +} + +function wp_set_link_cats($link_id = 0, $link_categories = array()) { + // If $link_categories isn't already an array, make it one: + if (!is_array($link_categories) || 0 == count($link_categories)) + $link_categories = array(get_option('default_link_category')); + + $link_categories = array_map('intval', $link_categories); + $link_categories = array_unique($link_categories); + + wp_set_object_terms($link_id, $link_categories, 'link_category'); +} // wp_set_link_cats() + +function wp_update_link($linkdata) { + global $wpdb; + + $link_id = (int) $linkdata['link_id']; + + $link = get_link($link_id, ARRAY_A); + + // Escape data pulled from DB. + $link = add_magic_quotes($link); + + // Passed link category list overwrites existing category list if not empty. + if ( isset($linkdata['link_category']) && is_array($linkdata['link_category']) + && 0 != count($linkdata['link_category']) ) + $link_cats = $linkdata['link_category']; + else + $link_cats = $link['link_category']; + + // Merge old and new fields with new fields overwriting old ones. + $linkdata = array_merge($link, $linkdata); + $linkdata['link_category'] = $link_cats; + + return wp_insert_link($linkdata); +} + +?> \ No newline at end of file diff --git a/wp-admin/includes/comment.php b/wp-admin/includes/comment.php new file mode 100644 index 0000000000..94def91f96 --- /dev/null +++ b/wp-admin/includes/comment.php @@ -0,0 +1,56 @@ +get_var("SELECT comment_post_ID FROM $wpdb->comments + WHERE comment_author = '$comment_author' AND comment_date = '$comment_date'"); +} + +function edit_comment() { + global $user_ID; + + $comment_ID = (int) $_POST['comment_ID']; + $comment_post_ID = (int) $_POST['comment_post_ID']; + + if (!current_user_can( 'edit_post', $comment_post_ID )) + wp_die( __('You are not allowed to edit comments on this post, so you cannot edit this comment.' )); + + $_POST['comment_author'] = $_POST['newcomment_author']; + $_POST['comment_author_email'] = $_POST['newcomment_author_email']; + $_POST['comment_author_url'] = $_POST['newcomment_author_url']; + $_POST['comment_approved'] = $_POST['comment_status']; + $_POST['comment_content'] = $_POST['content']; + $_POST['comment_ID'] = (int) $_POST['comment_ID']; + + if (!empty ( $_POST['edit_date'] ) ) { + $aa = $_POST['aa']; + $mm = $_POST['mm']; + $jj = $_POST['jj']; + $hh = $_POST['hh']; + $mn = $_POST['mn']; + $ss = $_POST['ss']; + $jj = ($jj > 31 ) ? 31 : $jj; + $hh = ($hh > 23 ) ? $hh -24 : $hh; + $mn = ($mn > 59 ) ? $mn -60 : $mn; + $ss = ($ss > 59 ) ? $ss -60 : $ss; + $_POST['comment_date'] = "$aa-$mm-$jj $hh:$mn:$ss"; + } + + wp_update_comment( $_POST); +} + +function get_comment_to_edit( $id ) { + $comment = get_comment( $id ); + + $comment->comment_content = format_to_edit( $comment->comment_content, user_can_richedit() ); + $comment->comment_content = apply_filters( 'comment_edit_pre', $comment->comment_content); + + $comment->comment_author = format_to_edit( $comment->comment_author ); + $comment->comment_author_email = format_to_edit( $comment->comment_author_email ); + $comment->comment_author_url = format_to_edit( $comment->comment_author_url ); + + return $comment; +} + +?> \ No newline at end of file diff --git a/wp-admin/includes/file.php b/wp-admin/includes/file.php new file mode 100644 index 0000000000..94ee96dab8 --- /dev/null +++ b/wp-admin/includes/file.php @@ -0,0 +1,189 @@ + __( 'Main Index Template' ), 'style.css' => __( 'Stylesheet' ), 'comments.php' => __( 'Comments' ), 'comments-popup.php' => __( 'Popup Comments' ), 'footer.php' => __( 'Footer' ), 'header.php' => __( 'Header' ), 'sidebar.php' => __( 'Sidebar' ), 'archive.php' => __( 'Archives' ), 'category.php' => __( 'Category Template' ), 'page.php' => __( 'Page Template' ), 'search.php' => __( 'Search Results' ), 'single.php' => __( 'Single Post' ), '404.php' => __( '404 Template' ), 'my-hacks.php' => __( 'my-hacks.php (legacy hacks support)' ), '.htaccess' => __( '.htaccess (for rewrite rules )' ), + // Deprecated files + 'wp-layout.css' => __( 'Stylesheet' ), 'wp-comments.php' => __( 'Comments Template' ), 'wp-comments-popup.php' => __( 'Popup Comments Template' )); +function get_file_description( $file ) { + global $wp_file_descriptions; + + if ( isset( $wp_file_descriptions[basename( $file )] ) ) { + return $wp_file_descriptions[basename( $file )]; + } + elseif ( file_exists( ABSPATH . $file ) && is_file( ABSPATH . $file ) ) { + $template_data = implode( '', file( ABSPATH . $file ) ); + if ( preg_match( "|Template Name:(.*)|i", $template_data, $name )) + return $name[1]; + } + + return basename( $file ); +} + +function get_home_path() { + $home = get_option( 'home' ); + if ( $home != '' && $home != get_option( 'siteurl' ) ) { + $home_path = parse_url( $home ); + $home_path = $home_path['path']; + $root = str_replace( $_SERVER["PHP_SELF"], '', $_SERVER["SCRIPT_FILENAME"] ); + $home_path = trailingslashit( $root.$home_path ); + } else { + $home_path = ABSPATH; + } + + return $home_path; +} + +function get_real_file_to_edit( $file ) { + if ('index.php' == $file || '.htaccess' == $file ) { + $real_file = get_home_path().$file; + } else { + $real_file = ABSPATH.$file; + } + + return $real_file; +} + +function validate_file( $file, $allowed_files = '' ) { + if ( false !== strpos( $file, './' )) + return 1; + + if (':' == substr( $file, 1, 1 )) + return 2; + + if (!empty ( $allowed_files ) && (!in_array( $file, $allowed_files ) ) ) + return 3; + + return 0; +} + +function validate_file_to_edit( $file, $allowed_files = '' ) { + $file = stripslashes( $file ); + + $code = validate_file( $file, $allowed_files ); + + if (!$code ) + return $file; + + switch ( $code ) { + case 1 : + wp_die( __('Sorry, can’t edit files with ".." in the name. If you are trying to edit a file in your WordPress home directory, you can just type the name of the file in.' )); + + case 2 : + wp_die( __('Sorry, can’t call files with their real path.' )); + + case 3 : + wp_die( __('Sorry, that file cannot be edited.' )); + } +} + +// array wp_handle_upload ( array &file [, array overrides] ) +// file: reference to a single element of $_FILES. Call the function once for each uploaded file. +// overrides: an associative array of names=>values to override default variables with extract( $overrides, EXTR_OVERWRITE ). +// On success, returns an associative array of file attributes. +// On failure, returns $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ). +function wp_handle_upload( &$file, $overrides = false ) { + // The default error handler. + if (! function_exists( 'wp_handle_upload_error' ) ) { + function wp_handle_upload_error( &$file, $message ) { + return array( 'error'=>$message ); + } + } + + // You may define your own function and pass the name in $overrides['upload_error_handler'] + $upload_error_handler = 'wp_handle_upload_error'; + + // $_POST['action'] must be set and its value must equal $overrides['action'] or this: + $action = 'wp_handle_upload'; + + // Courtesy of php.net, the strings that describe the error indicated in $_FILES[{form field}]['error']. + $upload_error_strings = array( false, + __( "The uploaded file exceeds the upload_max_filesize directive in php.ini." ), + __( "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form." ), + __( "The uploaded file was only partially uploaded." ), + __( "No file was uploaded." ), + __( "Missing a temporary folder." ), + __( "Failed to write file to disk." )); + + // All tests are on by default. Most can be turned off by $override[{test_name}] = false; + $test_form = true; + $test_size = true; + + // If you override this, you must provide $ext and $type!!!! + $test_type = true; + + // Install user overrides. Did we mention that this voids your warranty? + if ( is_array( $overrides ) ) + extract( $overrides, EXTR_OVERWRITE ); + + // A correct form post will pass this test. + if ( $test_form && (!isset( $_POST['action'] ) || ($_POST['action'] != $action ) ) ) + return $upload_error_handler( $file, __( 'Invalid form submission.' )); + + // A successful upload will pass this test. It makes no sense to override this one. + if ( $file['error'] > 0 ) + return $upload_error_handler( $file, $upload_error_strings[$file['error']] ); + + // A non-empty file will pass this test. + if ( $test_size && !($file['size'] > 0 ) ) + return $upload_error_handler( $file, __( 'File is empty. Please upload something more substantial.' )); + + // A properly uploaded file will pass this test. There should be no reason to override this one. + if (! @ is_uploaded_file( $file['tmp_name'] ) ) + return $upload_error_handler( $file, __( 'Specified file failed upload test.' )); + + // A correct MIME type will pass this test. Override $mimes or use the upload_mimes filter. + if ( $test_type ) { + $wp_filetype = wp_check_filetype( $file['name'], $mimes ); + + extract( $wp_filetype ); + + if ( ( !$type || !$ext ) && !current_user_can( 'unfiltered_upload' ) ) + return $upload_error_handler( $file, __( 'File type does not meet security guidelines. Try another.' )); + + if ( !$ext ) + $ext = strrchr($file['name'], '.'); + } + + // A writable uploads dir will pass this test. Again, there's no point overriding this one. + if ( ! ( ( $uploads = wp_upload_dir() ) && false === $uploads['error'] ) ) + return $upload_error_handler( $file, $uploads['error'] ); + + // Increment the file number until we have a unique file to save in $dir. Use $override['unique_filename_callback'] if supplied. + if ( isset( $unique_filename_callback ) && function_exists( $unique_filename_callback ) ) { + $filename = $unique_filename_callback( $uploads['path'], $file['name'] ); + } else { + $number = ''; + $filename = str_replace( '#', '_', $file['name'] ); + $filename = str_replace( array( '\\', "'" ), '', $filename ); + if ( empty( $ext) ) + $ext = ''; + else + $ext = ".$ext"; + while ( file_exists( $uploads['path'] . "/$filename" ) ) { + if ( '' == "$number$ext" ) + $filename = $filename . ++$number . $ext; + else + $filename = str_replace( "$number$ext", ++$number . $ext, $filename ); + } + $filename = str_replace( $ext, '', $filename ); + $filename = sanitize_title_with_dashes( $filename ) . $ext; + } + + // Move the file to the uploads dir + $new_file = $uploads['path'] . "/$filename"; + if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) ) + wp_die( printf( __('The uploaded file could not be moved to %s.' ), $uploads['path'] )); + + // Set correct file permissions + $stat = stat( dirname( $new_file )); + $perms = $stat['mode'] & 0000666; + @ chmod( $new_file, $perms ); + + // Compute the URL + $url = $uploads['url'] . "/$filename"; + + $return = apply_filters( 'wp_handle_upload', array( 'file' => $new_file, 'url' => $url, 'type' => $type ) ); + + return $return; +} + +?> diff --git a/wp-admin/includes/image.php b/wp-admin/includes/image.php new file mode 100644 index 0000000000..4e5c4ed2bb --- /dev/null +++ b/wp-admin/includes/image.php @@ -0,0 +1,192 @@ + 4 / 3 ) + return array( 128, (int) ($height / $width * 128 )); + else + return array( (int) ($width / $height * 96 ), 96 ); +} + +function wp_create_thumbnail( $file, $max_side, $effect = '' ) { + + // 1 = GIF, 2 = JPEG, 3 = PNG + + if ( file_exists( $file ) ) { + $type = getimagesize( $file ); + + // if the associated function doesn't exist - then it's not + // handle. duh. i hope. + + if (!function_exists( 'imagegif' ) && $type[2] == 1 ) { + $error = __( 'Filetype not supported. Thumbnail not created.' ); + } + elseif (!function_exists( 'imagejpeg' ) && $type[2] == 2 ) { + $error = __( 'Filetype not supported. Thumbnail not created.' ); + } + elseif (!function_exists( 'imagepng' ) && $type[2] == 3 ) { + $error = __( 'Filetype not supported. Thumbnail not created.' ); + } else { + + // create the initial copy from the original file + if ( $type[2] == 1 ) { + $image = imagecreatefromgif( $file ); + } + elseif ( $type[2] == 2 ) { + $image = imagecreatefromjpeg( $file ); + } + elseif ( $type[2] == 3 ) { + $image = imagecreatefrompng( $file ); + } + + if ( function_exists( 'imageantialias' )) + imageantialias( $image, TRUE ); + + $image_attr = getimagesize( $file ); + + // figure out the longest side + + if ( $image_attr[0] > $image_attr[1] ) { + $image_width = $image_attr[0]; + $image_height = $image_attr[1]; + $image_new_width = $max_side; + + $image_ratio = $image_width / $image_new_width; + $image_new_height = $image_height / $image_ratio; + //width is > height + } else { + $image_width = $image_attr[0]; + $image_height = $image_attr[1]; + $image_new_height = $max_side; + + $image_ratio = $image_height / $image_new_height; + $image_new_width = $image_width / $image_ratio; + //height > width + } + + $thumbnail = imagecreatetruecolor( $image_new_width, $image_new_height); + @ imagecopyresampled( $thumbnail, $image, 0, 0, 0, 0, $image_new_width, $image_new_height, $image_attr[0], $image_attr[1] ); + + // If no filters change the filename, we'll do a default transformation. + if ( basename( $file ) == $thumb = apply_filters( 'thumbnail_filename', basename( $file ) ) ) + $thumb = preg_replace( '!(\.[^.]+)?$!', '.thumbnail' . '$1', basename( $file ), 1 ); + + $thumbpath = str_replace( basename( $file ), $thumb, $file ); + + // move the thumbnail to its final destination + if ( $type[2] == 1 ) { + if (!imagegif( $thumbnail, $thumbpath ) ) { + $error = __( "Thumbnail path invalid" ); + } + } + elseif ( $type[2] == 2 ) { + if (!imagejpeg( $thumbnail, $thumbpath ) ) { + $error = __( "Thumbnail path invalid" ); + } + } + elseif ( $type[2] == 3 ) { + if (!imagepng( $thumbnail, $thumbpath ) ) { + $error = __( "Thumbnail path invalid" ); + } + } + + } + } else { + $error = __( 'File not found' ); + } + + if (!empty ( $error ) ) { + return $error; + } else { + return apply_filters( 'wp_create_thumbnail', $thumbpath ); + } +} + +function wp_crop_image( $src_file, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs = false, $dst_file = false ) { + if ( ctype_digit( $src_file ) ) // Handle int as attachment ID + $src_file = get_attached_file( $src_file ); + + $src = wp_load_image( $src_file ); + + if ( !is_resource( $src )) + return $src; + + $dst = imagecreatetruecolor( $dst_w, $dst_h ); + + if ( $src_abs ) { + $src_w -= $src_x; + $src_h -= $src_y; + } + + if (function_exists('imageantialias')) + imageantialias( $dst, true ); + + imagecopyresampled( $dst, $src, 0, 0, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h ); + + if ( !$dst_file ) + $dst_file = str_replace( basename( $src_file ), 'cropped-'.basename( $src_file ), $src_file ); + + $dst_file = preg_replace( '/\\.[^\\.]+$/', '.jpg', $dst_file ); + + if ( imagejpeg( $dst, $dst_file ) ) + return $dst_file; + else + return false; +} + +function wp_generate_attachment_metadata( $attachment_id, $file ) { + $attachment = get_post( $attachment_id ); + + $metadata = array(); + if ( preg_match('!^image/!', get_post_mime_type( $attachment )) ) { + $imagesize = getimagesize($file); + $metadata['width'] = $imagesize['0']; + $metadata['height'] = $imagesize['1']; + list($uwidth, $uheight) = get_udims($metadata['width'], $metadata['height']); + $metadata['hwstring_small'] = "height='$uheight' width='$uwidth'"; + $metadata['file'] = $file; + + $max = apply_filters( 'wp_thumbnail_creation_size_limit', 3 * 1024 * 1024, $attachment_id, $file ); + + if ( $max < 0 || $metadata['width'] * $metadata['height'] < $max ) { + $max_side = apply_filters( 'wp_thumbnail_max_side_length', 128, $attachment_id, $file ); + $thumb = wp_create_thumbnail( $file, $max_side ); + + if ( @file_exists($thumb) ) + $metadata['thumb'] = basename($thumb); + } + } + return apply_filters( 'wp_generate_attachment_metadata', $metadata ); +} + +function wp_load_image( $file ) { + if ( ctype_digit( $file ) ) + $file = get_attached_file( $file ); + + if ( !file_exists( $file ) ) + return sprintf(__("File '%s' doesn't exist?"), $file); + + if ( ! function_exists('imagecreatefromstring') ) + return __('The GD image library is not installed.'); + + $contents = file_get_contents( $file ); + + $image = imagecreatefromstring( $contents ); + + if ( !is_resource( $image ) ) + return sprintf(__("File '%s' is not an image."), $file); + + return $image; +} + +function wp_shrink_dimensions( $width, $height, $wmax = 128, $hmax = 96 ) { + if ( $height <= $hmax && $width <= $wmax ) + return array( $width, $height); + elseif ( $width / $height > $wmax / $hmax ) + return array( $wmax, (int) ($height / $width * $wmax )); + else + return array( (int) ($width / $height * $hmax ), $hmax ); +} + +?> diff --git a/wp-admin/includes/import.php b/wp-admin/includes/import.php new file mode 100644 index 0000000000..22a8aa1442 --- /dev/null +++ b/wp-admin/includes/import.php @@ -0,0 +1,44 @@ + false, 'test_type' => false ); + $file = wp_handle_upload( $_FILES['import'], $overrides ); + + if ( isset( $file['error'] ) ) + return $file; + + $url = $file['url']; + $type = $file['type']; + $file = addslashes( $file['file'] ); + $filename = basename( $file ); + + // Construct the object array + $object = array( 'post_title' => $filename, + 'post_content' => $url, + 'post_mime_type' => $type, + 'guid' => $url + ); + + // Save the data + $id = wp_insert_attachment( $object, $file ); + + return array( 'file' => $file, 'id' => $id ); +} + +?> diff --git a/wp-admin/includes/misc.php b/wp-admin/includes/misc.php new file mode 100644 index 0000000000..46a9bc3996 --- /dev/null +++ b/wp-admin/includes/misc.php @@ -0,0 +1,170 @@ + $markerline ) { + if (strpos($markerline, '# BEGIN ' . $marker) !== false) + $state = false; + if ( $state ) { + if ( $n + 1 < count( $markerdata ) ) + fwrite( $f, "{$markerline}\n" ); + else + fwrite( $f, "{$markerline}" ); + } + if (strpos($markerline, '# END ' . $marker) !== false) { + fwrite( $f, "# BEGIN {$marker}\n" ); + if ( is_array( $insertion )) + foreach ( $insertion as $insertline ) + fwrite( $f, "{$insertline}\n" ); + fwrite( $f, "# END {$marker}\n" ); + $state = true; + $foundit = true; + } + } + } + if (!$foundit) { + fwrite( $f, "# BEGIN {$marker}\n" ); + foreach ( $insertion as $insertline ) + fwrite( $f, "{$insertline}\n" ); + fwrite( $f, "# END {$marker}\n" ); + } + fclose( $f ); + return true; + } else { + return false; + } +} + +function save_mod_rewrite_rules() { + global $is_apache, $wp_rewrite; + $home_path = get_home_path(); + + if (!$wp_rewrite->using_mod_rewrite_permalinks() ) + return false; + + if (!((!file_exists( $home_path.'.htaccess' ) && is_writable( $home_path ) ) || is_writable( $home_path.'.htaccess' ) ) ) + return false; + + if (! got_mod_rewrite() ) + return false; + + $rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() ); + return insert_with_markers( $home_path.'.htaccess', 'WordPress', $rules ); +} + +function update_recently_edited( $file ) { + $oldfiles = (array ) get_option( 'recently_edited' ); + if ( $oldfiles ) { + $oldfiles = array_reverse( $oldfiles ); + $oldfiles[] = $file; + $oldfiles = array_reverse( $oldfiles ); + $oldfiles = array_unique( $oldfiles ); + if ( 5 < count( $oldfiles )) + array_pop( $oldfiles ); + } else { + $oldfiles[] = $file; + } + update_option( 'recently_edited', $oldfiles ); +} + +// If siteurl or home changed, reset cookies and flush rewrite rules. +function update_home_siteurl( $old_value, $value ) { + global $wp_rewrite, $user_login, $user_pass_md5; + + if ( defined( "WP_INSTALLING" ) ) + return; + + // If home changed, write rewrite rules to new location. + $wp_rewrite->flush_rules(); + // Clear cookies for old paths. + wp_clearcookie(); + // Set cookies for new paths. + wp_setcookie( $user_login, $user_pass_md5, true, get_option( 'home' ), get_option( 'siteurl' )); +} + +add_action( 'update_option_home', 'update_home_siteurl', 10, 2 ); +add_action( 'update_option_siteurl', 'update_home_siteurl', 10, 2 ); + +function url_shorten( $url ) { + $short_url = str_replace( 'http://', '', stripslashes( $url )); + $short_url = str_replace( 'www.', '', $short_url ); + if ('/' == substr( $short_url, -1 )) + $short_url = substr( $short_url, 0, -1 ); + if ( strlen( $short_url ) > 35 ) + $short_url = substr( $short_url, 0, 32 ).'...'; + return $short_url; +} + +function wp_reset_vars( $vars ) { + for ( $i=0; $i diff --git a/wp-admin/includes/plugin.php b/wp-admin/includes/plugin.php new file mode 100644 index 0000000000..fa65037250 --- /dev/null +++ b/wp-admin/includes/plugin.php @@ -0,0 +1,379 @@ +'.$plugin.''; + } + + if ('' == $author_uri[1] ) { + $author = trim( $author_name[1] ); + } else { + $author = '' . trim( $author_name[1] ) . ''; + } + + return array('Name' => $name, 'Title' => $plugin, 'Description' => $description, 'Author' => $author, 'Version' => $version); +} + +function get_plugins() { + global $wp_plugins; + + if ( isset( $wp_plugins ) ) { + return $wp_plugins; + } + + $wp_plugins = array (); + $plugin_root = ABSPATH . PLUGINDIR; + + // Files in wp-content/plugins directory + $plugins_dir = @ dir( $plugin_root); + if ( $plugins_dir ) { + while (($file = $plugins_dir->read() ) !== false ) { + if ( substr($file, 0, 1) == '.' ) + continue; + if ( is_dir( $plugin_root.'/'.$file ) ) { + $plugins_subdir = @ dir( $plugin_root.'/'.$file ); + if ( $plugins_subdir ) { + while (($subfile = $plugins_subdir->read() ) !== false ) { + if ( substr($subfile, 0, 1) == '.' ) + continue; + if ( substr($subfile, -4) == '.php' ) + $plugin_files[] = "$file/$subfile"; + } + } + } else { + if ( substr($file, -4) == '.php' ) + $plugin_files[] = $file; + } + } + } + + if ( !$plugins_dir || !$plugin_files ) + return $wp_plugins; + + foreach ( $plugin_files as $plugin_file ) { + if ( !is_readable( "$plugin_root/$plugin_file" ) ) + continue; + + $plugin_data = get_plugin_data( "$plugin_root/$plugin_file" ); + + if ( empty ( $plugin_data['Name'] ) ) + continue; + + $wp_plugins[plugin_basename( $plugin_file )] = $plugin_data; + } + + uasort( $wp_plugins, create_function( '$a, $b', 'return strnatcasecmp( $a["Name"], $b["Name"] );' )); + + return $wp_plugins; +} + +// +// Menu +// + +function add_menu_page( $page_title, $menu_title, $access_level, $file, $function = '' ) { + global $menu, $admin_page_hooks; + + $file = plugin_basename( $file ); + + $menu[] = array ( $menu_title, $access_level, $file, $page_title ); + + $admin_page_hooks[$file] = sanitize_title( $menu_title ); + + $hookname = get_plugin_page_hookname( $file, '' ); + if (!empty ( $function ) && !empty ( $hookname )) + add_action( $hookname, $function ); + + return $hookname; +} + +function add_submenu_page( $parent, $page_title, $menu_title, $access_level, $file, $function = '' ) { + global $submenu; + global $menu; + global $_wp_real_parent_file; + global $_wp_submenu_nopriv; + global $_wp_menu_nopriv; + + $file = plugin_basename( $file ); + + $parent = plugin_basename( $parent); + if ( isset( $_wp_real_parent_file[$parent] ) ) + $parent = $_wp_real_parent_file[$parent]; + + if ( !current_user_can( $access_level ) ) { + $_wp_submenu_nopriv[$parent][$file] = true; + return false; + } + + // If the parent doesn't already have a submenu, add a link to the parent + // as the first item in the submenu. If the submenu file is the same as the + // parent file someone is trying to link back to the parent manually. In + // this case, don't automatically add a link back to avoid duplication. + if (!isset( $submenu[$parent] ) && $file != $parent ) { + foreach ( $menu as $parent_menu ) { + if ( $parent_menu[2] == $parent && current_user_can( $parent_menu[1] ) ) + $submenu[$parent][] = $parent_menu; + } + } + + $submenu[$parent][] = array ( $menu_title, $access_level, $file, $page_title ); + + $hookname = get_plugin_page_hookname( $file, $parent); + if (!empty ( $function ) && !empty ( $hookname )) + add_action( $hookname, $function ); + + return $hookname; +} + +function add_management_page( $page_title, $menu_title, $access_level, $file, $function = '' ) { + return add_submenu_page( 'edit.php', $page_title, $menu_title, $access_level, $file, $function ); +} + +function add_options_page( $page_title, $menu_title, $access_level, $file, $function = '' ) { + return add_submenu_page( 'options-general.php', $page_title, $menu_title, $access_level, $file, $function ); +} + +function add_theme_page( $page_title, $menu_title, $access_level, $file, $function = '' ) { + return add_submenu_page( 'themes.php', $page_title, $menu_title, $access_level, $file, $function ); +} + +function add_users_page( $page_title, $menu_title, $access_level, $file, $function = '' ) { + if ( current_user_can('edit_users') ) + $parent = 'users.php'; + else + $parent = 'profile.php'; + return add_submenu_page( $parent, $page_title, $menu_title, $access_level, $file, $function ); +} + +// +// Pluggable Menu Support -- Private +// + +function get_admin_page_parent() { + global $parent_file; + global $menu; + global $submenu; + global $pagenow; + global $plugin_page; + global $_wp_real_parent_file; + global $_wp_menu_nopriv; + global $_wp_submenu_nopriv; + + if ( !empty ( $parent_file ) ) { + if ( isset( $_wp_real_parent_file[$parent_file] ) ) + $parent_file = $_wp_real_parent_file[$parent_file]; + + return $parent_file; + } + + if ( $pagenow == 'admin.php' && isset( $plugin_page ) ) { + foreach ( $menu as $parent_menu ) { + if ( $parent_menu[2] == $plugin_page ) { + $parent_file = $plugin_page; + if ( isset( $_wp_real_parent_file[$parent_file] ) ) + $parent_file = $_wp_real_parent_file[$parent_file]; + return $parent_file; + } + } + if ( isset( $_wp_menu_nopriv[$plugin_page] ) ) { + $parent_file = $plugin_page; + if ( isset( $_wp_real_parent_file[$parent_file] ) ) + $parent_file = $_wp_real_parent_file[$parent_file]; + return $parent_file; + } + } + + if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) ) { + $parent_file = $pagenow; + if ( isset( $_wp_real_parent_file[$parent_file] ) ) + $parent_file = $_wp_real_parent_file[$parent_file]; + return $parent_file; + } + + foreach (array_keys( $submenu ) as $parent) { + foreach ( $submenu[$parent] as $submenu_array ) { + if ( isset( $_wp_real_parent_file[$parent] ) ) + $parent = $_wp_real_parent_file[$parent]; + if ( $submenu_array[2] == $pagenow ) { + $parent_file = $parent; + return $parent; + } else + if ( isset( $plugin_page ) && ($plugin_page == $submenu_array[2] ) ) { + $parent_file = $parent; + return $parent; + } + } + } + + $parent_file = ''; + return ''; +} + +function get_admin_page_title() { + global $title; + global $menu; + global $submenu; + global $pagenow; + global $plugin_page; + + if ( isset( $title ) && !empty ( $title ) ) { + return $title; + } + + $hook = get_plugin_page_hook( $plugin_page, $pagenow ); + + $parent = $parent1 = get_admin_page_parent(); + if ( empty ( $parent) ) { + foreach ( $menu as $menu_array ) { + if ( isset( $menu_array[3] ) ) { + if ( $menu_array[2] == $pagenow ) { + $title = $menu_array[3]; + return $menu_array[3]; + } else + if ( isset( $plugin_page ) && ($plugin_page == $menu_array[2] ) && ($hook == $menu_array[3] ) ) { + $title = $menu_array[3]; + return $menu_array[3]; + } + } else { + $title = $menu_array[0]; + return $title; + } + } + } else { + foreach (array_keys( $submenu ) as $parent) { + foreach ( $submenu[$parent] as $submenu_array ) { + if ( isset( $plugin_page ) && + ($plugin_page == $submenu_array[2] ) && + (($parent == $pagenow ) || ($parent == $plugin_page ) || ($plugin_page == $hook ) || (($pagenow == 'admin.php' ) && ($parent1 != $submenu_array[2] ) ) ) + ) { + $title = $submenu_array[3]; + return $submenu_array[3]; + } + + if ( $submenu_array[2] != $pagenow || isset( $_GET['page'] ) ) // not the current page + continue; + + if ( isset( $submenu_array[3] ) ) { + $title = $submenu_array[3]; + return $submenu_array[3]; + } else { + $title = $submenu_array[0]; + return $title; + } + } + } + } + + return $title; +} + +function get_plugin_page_hook( $plugin_page, $parent_page ) { + global $wp_filter; + + $hook = get_plugin_page_hookname( $plugin_page, $parent_page ); + if ( isset( $wp_filter[$hook] )) + return $hook; + else + return ''; +} + +function get_plugin_page_hookname( $plugin_page, $parent_page ) { + global $admin_page_hooks; + + $parent = get_admin_page_parent(); + + if ( empty ( $parent_page ) || 'admin.php' == $parent_page ) { + if ( isset( $admin_page_hooks[$plugin_page] )) + $page_type = 'toplevel'; + else + if ( isset( $admin_page_hooks[$parent] )) + $page_type = $admin_page_hooks[$parent]; + } else + if ( isset( $admin_page_hooks[$parent_page] ) ) { + $page_type = $admin_page_hooks[$parent_page]; + } else { + $page_type = 'admin'; + } + + $plugin_name = preg_replace( '!\.php!', '', $plugin_page ); + + return $page_type.'_page_'.$plugin_name; +} + +function user_can_access_admin_page() { + global $pagenow; + global $menu; + global $submenu; + global $_wp_menu_nopriv; + global $_wp_submenu_nopriv; + global $plugin_page; + + $parent = get_admin_page_parent(); + + if ( isset( $_wp_submenu_nopriv[$parent][$pagenow] ) ) + return false; + + if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$parent][$plugin_page] ) ) + return false; + + if ( empty( $parent) ) { + if ( isset( $_wp_menu_nopriv[$pagenow] ) ) + return false; + if ( isset( $_wp_submenu_nopriv[$pagenow][$pagenow] ) ) + return false; + if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) ) + return false; + foreach (array_keys( $_wp_submenu_nopriv ) as $key ) { + if ( isset( $_wp_submenu_nopriv[$key][$pagenow] ) ) + return false; + if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$key][$plugin_page] ) ) + return false; + } + return true; + } + + if ( isset( $submenu[$parent] ) ) { + foreach ( $submenu[$parent] as $submenu_array ) { + if ( isset( $plugin_page ) && ( $submenu_array[2] == $plugin_page ) ) { + if ( current_user_can( $submenu_array[1] )) + return true; + else + return false; + } else if ( $submenu_array[2] == $pagenow ) { + if ( current_user_can( $submenu_array[1] )) + return true; + else + return false; + } + } + } + + foreach ( $menu as $menu_array ) { + if ( $menu_array[2] == $parent) { + if ( current_user_can( $menu_array[1] )) + return true; + else + return false; + } + } + + return true; +} + +?> \ No newline at end of file diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php new file mode 100644 index 0000000000..fdf73c58cc --- /dev/null +++ b/wp-admin/includes/post.php @@ -0,0 +1,466 @@ +post_date_gmt . ' +0000'); + // Keep autosave_interval in sync with autosave-js.php. + $delta = apply_filters( 'autosave_interval', 120 ) / 2; + if ( ($now - $then) < $delta ) + return $post_ID; + } + + // Rename. + $_POST['ID'] = (int) $_POST['post_ID']; + $_POST['post_content'] = $_POST['content']; + $_POST['post_excerpt'] = $_POST['excerpt']; + $_POST['post_parent'] = $_POST['parent_id']; + $_POST['to_ping'] = $_POST['trackback_url']; + + if (!empty ( $_POST['post_author_override'] ) ) { + $_POST['post_author'] = (int) $_POST['post_author_override']; + } else + if (!empty ( $_POST['post_author'] ) ) { + $_POST['post_author'] = (int) $_POST['post_author']; + } else { + $_POST['post_author'] = (int) $_POST['user_ID']; + } + + if ( $_POST['post_author'] != $_POST['user_ID'] ) { + if ( 'page' == $_POST['post_type'] ) { + if ( !current_user_can( 'edit_others_pages' ) ) + wp_die( __('You are not allowed to edit pages as this user.' )); + } else { + if ( !current_user_can( 'edit_others_posts' ) ) + wp_die( __('You are not allowed to edit posts as this user.' )); + + } + } + + // What to do based on which button they pressed + if ('' != $_POST['saveasdraft'] ) + $_POST['post_status'] = 'draft'; + if ('' != $_POST['saveasprivate'] ) + $_POST['post_status'] = 'private'; + if ('' != $_POST['publish'] ) + $_POST['post_status'] = 'publish'; + if ('' != $_POST['advanced'] ) + $_POST['post_status'] = 'draft'; + + if ( 'page' == $_POST['post_type'] ) { + if ('publish' == $_POST['post_status'] && !current_user_can( 'edit_published_pages' )) + $_POST['post_status'] = 'draft'; + } else { + if ('publish' == $_POST['post_status'] && !current_user_can( 'edit_published_posts' )) + $_POST['post_status'] = 'draft'; + } + + if (!isset( $_POST['comment_status'] )) + $_POST['comment_status'] = 'closed'; + + if (!isset( $_POST['ping_status'] )) + $_POST['ping_status'] = 'closed'; + + if (!empty ( $_POST['edit_date'] ) ) { + $aa = $_POST['aa']; + $mm = $_POST['mm']; + $jj = $_POST['jj']; + $hh = $_POST['hh']; + $mn = $_POST['mn']; + $ss = $_POST['ss']; + $jj = ($jj > 31 ) ? 31 : $jj; + $hh = ($hh > 23 ) ? $hh -24 : $hh; + $mn = ($mn > 59 ) ? $mn -60 : $mn; + $ss = ($ss > 59 ) ? $ss -60 : $ss; + $_POST['post_date'] = "$aa-$mm-$jj $hh:$mn:$ss"; + $_POST['post_date_gmt'] = get_gmt_from_date( "$aa-$mm-$jj $hh:$mn:$ss" ); + } + + // Meta Stuff + if ( $_POST['meta'] ) { + foreach ( $_POST['meta'] as $key => $value ) + update_meta( $key, $value['key'], $value['value'] ); + } + + if ( $_POST['deletemeta'] ) { + foreach ( $_POST['deletemeta'] as $key => $value ) + delete_meta( $key ); + } + + add_meta( $post_ID ); + + wp_update_post( $_POST ); + + // Reunite any orphaned attachments with their parent + if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) ) + $draft_ids = array(); + if ( $draft_temp_id = (int) array_search( $post_ID, $draft_ids ) ) + _relocate_children( $draft_temp_id, $post_ID ); + + // Now that we have an ID we can fix any attachment anchor hrefs + _fix_attachment_links( $post_ID ); + + return $post_ID; +} + +// Default post information to use when populating the "Write Post" form. +function get_default_post_to_edit() { + if ( !empty( $_REQUEST['post_title'] ) ) + $post_title = wp_specialchars( stripslashes( $_REQUEST['post_title'] )); + else if ( !empty( $_REQUEST['popuptitle'] ) ) { + $post_title = wp_specialchars( stripslashes( $_REQUEST['popuptitle'] )); + $post_title = funky_javascript_fix( $post_title ); + } else { + $post_title = ''; + } + + if ( !empty( $_REQUEST['content'] ) ) + $post_content = wp_specialchars( stripslashes( $_REQUEST['content'] )); + else if ( !empty( $post_title ) ) { + $text = wp_specialchars( stripslashes( urldecode( $_REQUEST['text'] ) ) ); + $text = funky_javascript_fix( $text); + $popupurl = clean_url($_REQUEST['popupurl']); + $post_content = ''.$post_title.''."\n$text"; + } + + if ( !empty( $_REQUEST['excerpt'] ) ) + $post_excerpt = wp_specialchars( stripslashes( $_REQUEST['excerpt'] )); + else + $post_excerpt = ''; + + $post->post_status = 'draft'; + $post->comment_status = get_option( 'default_comment_status' ); + $post->ping_status = get_option( 'default_ping_status' ); + $post->post_pingback = get_option( 'default_pingback_flag' ); + $post->post_category = get_option( 'default_category' ); + $post->post_content = apply_filters( 'default_content', $post_content); + $post->post_title = apply_filters( 'default_title', $post_title ); + $post->post_excerpt = apply_filters( 'default_excerpt', $post_excerpt); + $post->page_template = 'default'; + $post->post_parent = 0; + $post->menu_order = 0; + + return $post; +} + +// Get an existing post and format it for editing. +function get_post_to_edit( $id ) { + + $post = get_post( $id ); + + $post->post_content = format_to_edit( $post->post_content, user_can_richedit() ); + $post->post_content = apply_filters( 'content_edit_pre', $post->post_content); + + $post->post_excerpt = format_to_edit( $post->post_excerpt); + $post->post_excerpt = apply_filters( 'excerpt_edit_pre', $post->post_excerpt); + + $post->post_title = format_to_edit( $post->post_title ); + $post->post_title = apply_filters( 'title_edit_pre', $post->post_title ); + + $post->post_password = format_to_edit( $post->post_password ); + + if ( $post->post_type == 'page' ) + $post->page_template = get_post_meta( $id, '_wp_page_template', true ); + + return $post; +} + +function post_exists($title, $content = '', $post_date = '') { + global $wpdb; + + if (!empty ($post_date)) + $post_date = "AND post_date = '$post_date'"; + + if (!empty ($title)) + return $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$title' $post_date"); + else + if (!empty ($content)) + return $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_content = '$content' $post_date"); + + return 0; +} + +// Creates a new post from the "Write Post" form using $_POST information. +function wp_write_post() { + global $user_ID; + + if ( 'page' == $_POST['post_type'] ) { + if ( !current_user_can( 'edit_pages' ) ) + return new WP_Error( 'edit_pages', __( 'You are not allowed to create pages on this blog.' ) ); + } else { + if ( !current_user_can( 'edit_posts' ) ) + return new WP_Error( 'edit_posts', __( 'You are not allowed to create posts or drafts on this blog.' ) ); + } + + + // Check for autosave collisions + $temp_id = false; + if ( isset($_POST['temp_ID']) ) { + $temp_id = (int) $_POST['temp_ID']; + if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) ) + $draft_ids = array(); + foreach ( $draft_ids as $temp => $real ) + if ( time() + $temp > 86400 ) // 1 day: $temp is equal to -1 * time( then ) + unset($draft_ids[$temp]); + + if ( isset($draft_ids[$temp_id]) ) { // Edit, don't write + $_POST['post_ID'] = $draft_ids[$temp_id]; + unset($_POST['temp_ID']); + update_user_option( $user_ID, 'autosave_draft_ids', $draft_ids ); + return edit_post(); + } + } + + // Rename. + $_POST['post_content'] = $_POST['content']; + $_POST['post_excerpt'] = $_POST['excerpt']; + $_POST['post_parent'] = $_POST['parent_id']; + $_POST['to_ping'] = $_POST['trackback_url']; + + if (!empty ( $_POST['post_author_override'] ) ) { + $_POST['post_author'] = (int) $_POST['post_author_override']; + } else { + if (!empty ( $_POST['post_author'] ) ) { + $_POST['post_author'] = (int) $_POST['post_author']; + } else { + $_POST['post_author'] = (int) $_POST['user_ID']; + } + + } + + if ( $_POST['post_author'] != $_POST['user_ID'] ) { + if ( 'page' == $_POST['post_type'] ) { + if ( !current_user_can( 'edit_others_pages' ) ) + return new WP_Error( 'edit_others_pages', __( 'You are not allowed to create pages as this user.' ) ); + } else { + if ( !current_user_can( 'edit_others_posts' ) ) + return new WP_Error( 'edit_others_posts', __( 'You are not allowed to post as this user.' ) ); + + } + } + + // What to do based on which button they pressed + if ('' != $_POST['saveasdraft'] ) + $_POST['post_status'] = 'draft'; + if ('' != $_POST['saveasprivate'] ) + $_POST['post_status'] = 'private'; + if ('' != $_POST['publish'] ) + $_POST['post_status'] = 'publish'; + if ('' != $_POST['advanced'] ) + $_POST['post_status'] = 'draft'; + + if ( 'page' == $_POST['post_type'] ) { + if ('publish' == $_POST['post_status'] && !current_user_can( 'publish_pages' ) ) + $_POST['post_status'] = 'draft'; + } else { + if ('publish' == $_POST['post_status'] && !current_user_can( 'publish_posts' ) ) + $_POST['post_status'] = 'draft'; + } + + if (!isset( $_POST['comment_status'] )) + $_POST['comment_status'] = 'closed'; + + if (!isset( $_POST['ping_status'] )) + $_POST['ping_status'] = 'closed'; + + if (!empty ( $_POST['edit_date'] ) ) { + $aa = $_POST['aa']; + $mm = $_POST['mm']; + $jj = $_POST['jj']; + $hh = $_POST['hh']; + $mn = $_POST['mn']; + $ss = $_POST['ss']; + $jj = ($jj > 31 ) ? 31 : $jj; + $hh = ($hh > 23 ) ? $hh -24 : $hh; + $mn = ($mn > 59 ) ? $mn -60 : $mn; + $ss = ($ss > 59 ) ? $ss -60 : $ss; + $_POST['post_date'] = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $aa, $mm, $jj, $hh, $mn, $ss ); + $_POST['post_date_gmt'] = get_gmt_from_date( $_POST['post_date'] ); + } + + // Create the post. + $post_ID = wp_insert_post( $_POST ); + + add_meta( $post_ID ); + + // Reunite any orphaned attachments with their parent + if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) ) + $draft_ids = array(); + if ( $draft_temp_id = (int) array_search( $post_ID, $draft_ids ) ) + _relocate_children( $draft_temp_id, $post_ID ); + if ( $temp_id && $temp_id != $draft_temp_id ) + _relocate_children( $temp_id, $post_ID ); + + // Update autosave collision detection + if ( $temp_id ) { + $draft_ids[$temp_id] = $post_ID; + update_user_option( $user_ID, 'autosave_draft_ids', $draft_ids ); + } + + // Now that we have an ID we can fix any attachment anchor hrefs + _fix_attachment_links( $post_ID ); + + return $post_ID; +} + +function write_post() { + $result = wp_write_post(); + if( is_wp_error( $result ) ) + wp_die( $result->get_error_message() ); + else + return $result; +} + +// +// Post Meta +// + +function add_meta( $post_ID ) { + global $wpdb; + $post_ID = (int) $post_ID; + + $metakeyselect = $wpdb->escape( stripslashes( trim( $_POST['metakeyselect'] ) ) ); + $metakeyinput = $wpdb->escape( stripslashes( trim( $_POST['metakeyinput'] ) ) ); + $metavalue = maybe_serialize( stripslashes( (trim( $_POST['metavalue'] ) ) )); + $metavalue = $wpdb->escape( $metavalue ); + + if ( ('0' === $metavalue || !empty ( $metavalue ) ) && ((('#NONE#' != $metakeyselect) && !empty ( $metakeyselect) ) || !empty ( $metakeyinput) ) ) { + // We have a key/value pair. If both the select and the + // input for the key have data, the input takes precedence: + + if ('#NONE#' != $metakeyselect) + $metakey = $metakeyselect; + + if ( $metakeyinput) + $metakey = $metakeyinput; // default + + $result = $wpdb->query( " + INSERT INTO $wpdb->postmeta + (post_id,meta_key,meta_value ) + VALUES ('$post_ID','$metakey','$metavalue' ) + " ); + return $wpdb->insert_id; + } + return false; +} // add_meta + +function delete_meta( $mid ) { + global $wpdb; + $mid = (int) $mid; + + return $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_id = '$mid'" ); +} + +// Get a list of previously defined keys +function get_meta_keys() { + global $wpdb; + + $keys = $wpdb->get_col( " + SELECT meta_key + FROM $wpdb->postmeta + GROUP BY meta_key + ORDER BY meta_key" ); + + return $keys; +} + +function get_post_meta_by_id( $mid ) { + global $wpdb; + $mid = (int) $mid; + + $meta = $wpdb->get_row( "SELECT * FROM $wpdb->postmeta WHERE meta_id = '$mid'" ); + if ( is_serialized_string( $meta->meta_value ) ) + $meta->meta_value = maybe_unserialize( $meta->meta_value ); + return $meta; +} + +// Some postmeta stuff +function has_meta( $postid ) { + global $wpdb; + + return $wpdb->get_results( " + SELECT meta_key, meta_value, meta_id, post_id + FROM $wpdb->postmeta + WHERE post_id = '$postid' + ORDER BY meta_key,meta_id", ARRAY_A ); + +} + +function update_meta( $mid, $mkey, $mvalue ) { + global $wpdb; + $mvalue = maybe_serialize( stripslashes( $mvalue )); + $mvalue = $wpdb->escape( $mvalue ); + $mid = (int) $mid; + return $wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '$mkey', meta_value = '$mvalue' WHERE meta_id = '$mid'" ); +} + +// +// Private +// + +// Replace hrefs of attachment anchors with up-to-date permalinks. +function _fix_attachment_links( $post_ID ) { + global $wp_rewrite; + + $post = & get_post( $post_ID, ARRAY_A ); + + $search = "#]+rel=('|\")[^'\"]*attachment[^>]*>#ie"; + + // See if we have any rel="attachment" links + if ( 0 == preg_match_all( $search, $post['post_content'], $anchor_matches, PREG_PATTERN_ORDER ) ) + return; + + $i = 0; + $search = "#[\s]+rel=(\"|')(.*?)wp-att-(\d+)\\1#i"; + foreach ( $anchor_matches[0] as $anchor ) { + if ( 0 == preg_match( $search, $anchor, $id_matches ) ) + continue; + + $id = (int) $id_matches[3]; + + // While we have the attachment ID, let's adopt any orphans. + $attachment = & get_post( $id, ARRAY_A ); + if ( ! empty( $attachment) && ! is_object( get_post( $attachment['post_parent'] ) ) ) { + $attachment['post_parent'] = $post_ID; + // Escape data pulled from DB. + $attachment = add_magic_quotes( $attachment); + wp_update_post( $attachment); + } + + $post_search[$i] = $anchor; + $post_replace[$i] = preg_replace( "#href=(\"|')[^'\"]*\\1#e", "stripslashes( 'href=\\1' ).get_attachment_link( $id ).stripslashes( '\\1' )", $anchor ); + ++$i; + } + + $post['post_content'] = str_replace( $post_search, $post_replace, $post['post_content'] ); + + // Escape data pulled from DB. + $post = add_magic_quotes( $post); + + return wp_update_post( $post); +} + +// Move child posts to a new parent +function _relocate_children( $old_ID, $new_ID ) { + global $wpdb; + $old_ID = (int) $old_ID; + $new_ID = (int) $new_ID; + return $wpdb->query( "UPDATE $wpdb->posts SET post_parent = $new_ID WHERE post_parent = $old_ID" ); +} + +?> \ No newline at end of file diff --git a/wp-admin/upgrade-schema.php b/wp-admin/includes/schema.php similarity index 100% rename from wp-admin/upgrade-schema.php rename to wp-admin/includes/schema.php diff --git a/wp-admin/includes/taxonomy.php b/wp-admin/includes/taxonomy.php new file mode 100644 index 0000000000..268bd0d8e2 --- /dev/null +++ b/wp-admin/includes/taxonomy.php @@ -0,0 +1,155 @@ + $cat_name) ); +} + +function wp_create_categories($categories, $post_id = '') { + $cat_ids = array (); + foreach ($categories as $category) { + if ($id = category_exists($category)) + $cat_ids[] = $id; + else + if ($id = wp_create_category($category)) + $cat_ids[] = $id; + } + + if ($post_id) + wp_set_post_categories($post_id, $cat_ids); + + return $cat_ids; +} + +function wp_delete_category($cat_ID) { + global $wpdb; + + $cat_ID = (int) $cat_ID; + $default = get_option('default_category'); + + // Don't delete the default cat + if ( $cat_ID == $default ) + return 0; + + return wp_delete_term($cat_ID, 'category', "default=$default"); +} + +function wp_insert_category($catarr) { + global $wpdb; + + extract($catarr); + + if ( trim( $cat_name ) == '' ) + return 0; + + $cat_ID = (int) $cat_ID; + + // Are we updating or creating? + if ( !empty ($cat_ID) ) + $update = true; + else + $update = false; + + $name = $cat_name; + $description = $category_description; + $slug = $category_nicename; + $parent = $category_parent; + + $name = apply_filters('pre_category_name', $name); + + if ( empty ($slug) ) + $slug = sanitize_title($slug); + else + $slug = sanitize_title($slug); + $slug = apply_filters('pre_category_nicename', $slug); + + if ( empty ($description) ) + $description = ''; + $description = apply_filters('pre_category_description', $description); + + $parent = (int) $parent; + if ( empty($parent) || !get_category( $parent ) || ($cat_ID && cat_is_ancestor_of($cat_ID, $parent) ) ) + $parent = 0; + + $args = compact('slug', 'parent', 'description'); + + if ( $update ) + $cat_ID = wp_update_term($cat_ID, 'category', $args); + else + $cat_ID = wp_insert_term($cat_name, 'category', $args); + + return $cat_ID['term_id']; +} + +function wp_update_category($catarr) { + global $wpdb; + + $cat_ID = (int) $catarr['cat_ID']; + + if( $cat_ID == $catarr['category_parent'] ) + return false; + + // First, get all of the original fields + $category = get_category($cat_ID, ARRAY_A); + + // Escape data pulled from DB. + $category = add_magic_quotes($category); + + // Merge old and new fields with new fields overwriting old ones. + $catarr = array_merge($category, $catarr); + + return wp_insert_category($catarr); +} + +// +// Tags +// + +function get_tags_to_edit( $post_id ) { + global $wpdb; + + $post_id = (int) $post_id; + if ( !$post_id ) + return false; + + $tags = wp_get_post_tags($post_id); + + if ( !$tags ) + return false; + + foreach ( $tags as $tag ) + $tag_names[] = $tag->name; + $tags_to_edit = join( ', ', $tag_names ); + $tags_to_edit = attribute_escape( $tags_to_edit ); + $tags_to_edit = apply_filters( 'tags_to_edit', $tags_to_edit ); + return $tags_to_edit; +} + +function tag_exists($tag_name) { + return is_term($tag_name, 'post_tag'); +} + +function wp_create_tag($tag_name) { + if ( $id = tag_exists($tag_name) ) + return $id; + + return wp_insert_term($tag_name, 'post_tag'); +} + +?> \ No newline at end of file diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php new file mode 100644 index 0000000000..54ecb1be52 --- /dev/null +++ b/wp-admin/includes/template.php @@ -0,0 +1,589 @@ +parent == $parent) { + echo "\t" . _cat_row( $category, $level ); + if ( isset($children[$category->term_id]) ) + cat_rows( $category->term_id, $level +1, $categories ); + } + } + $output = ob_get_contents(); + ob_end_clean(); + + $output = apply_filters('cat_rows', $output); + + echo $output; + } else { + return false; + } +} + +function _cat_row( $category, $level, $name_override = false ) { + global $class; + + $pad = str_repeat( '— ', $level ); + if ( current_user_can( 'manage_categories' ) ) { + $edit = "".__( 'Edit' ).""; + $default_cat_id = (int) get_option( 'default_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' ).""; + else + $edit .= "".__( "Default" ); + } else + $edit = ''; + + $class = ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || " class='alternate'" == $class ) ? '' : " class='alternate'"; + + $category->count = number_format_i18n( $category->count ); + $posts_count = ( $category->count > 0 ) ? "$category->count" : $category->count; + return " + $category->term_id + " . ( $name_override ? $name_override : $pad . ' ' . $category->name ) . " + $category->description + $posts_count + $edit\n\t\n"; +} + +function checked( $checked, $current) { + if ( $checked == $current) + echo ' checked="checked"'; +} + +// TODO: Remove? +function documentation_link( $for ) { + return; +} + +function selected( $selected, $current) { + if ( $selected == $current) + echo ' selected="selected"'; +} + +// +// Nasty Category Stuff +// + +function sort_cats( $cat1, $cat2 ) { + if ( $cat1['checked'] || $cat2['checked'] ) + return ( $cat1['checked'] && !$cat2['checked'] ) ? -1 : 1; + else + return strcasecmp( $cat1['cat_name'], $cat2['cat_name'] ); +} + +function get_nested_categories( $default = 0, $parent = 0 ) { + global $post_ID, $mode, $wpdb; + + if ( $post_ID ) { + $checked_categories = wp_get_post_categories($post_ID); + + if ( count( $checked_categories ) == 0 ) { + // No selected categories, strange + $checked_categories[] = $default; + } + } else { + $checked_categories[] = $default; + } + + $cats = get_categories("child_of=$parent&hide_empty=0&get=ids"); + $result = array (); + + if ( is_array( $cats ) ) { + foreach ( $cats as $cat) { + // TODO fix hierarchy + //$result[$cat]['children'] = get_nested_categories( $default, $cat); + $result[$cat]['cat_ID'] = $cat; + $result[$cat]['checked'] = in_array( $cat, $checked_categories ); + $result[$cat]['cat_name'] = get_the_category_by_ID( $cat); + } + } + + $result = apply_filters('get_nested_categories', $result); + usort( $result, 'sort_cats' ); + + return $result; +} + +function write_nested_categories( $categories ) { + foreach ( $categories as $category ) { + echo '
  • "; + + if ( $category['children'] ) { + echo "
      \n"; + write_nested_categories( $category['children'] ); + echo "
    \n"; + } + } +} + +function dropdown_categories( $default = 0 ) { + write_nested_categories( get_nested_categories( $default) ); +} + +function dropdown_link_categories( $default = 0 ) { + global $link_id; + + if ( $link_id ) { + $checked_categories = wp_get_link_cats($link_id); + + if ( count( $checked_categories ) == 0 ) { + // No selected categories, strange + $checked_categories[] = $default; + } + } else { + $checked_categories[] = $default; + } + + $categories = get_terms('link_category', 'orderby=count&hide_empty=0'); + + if ( empty($categories) ) + return; + + foreach ( $categories as $category ) { + $cat_id = $category->term_id; + $name = wp_specialchars( apply_filters('the_category', $category->name)); + $checked = in_array( $cat_id, $checked_categories ); + echo '
  • "; + } +} + +function page_rows( $parent = 0, $level = 0, $pages = 0, $hierarchy = true ) { + global $wpdb, $class, $post; + + if (!$pages ) + $pages = get_pages( 'sort_column=menu_order' ); + + if (! $pages ) + return false; + + foreach ( $pages as $post) { + setup_postdata( $post); + if ( $hierarchy && ($post->post_parent != $parent) ) + continue; + + $post->post_title = wp_specialchars( $post->post_title ); + $pad = str_repeat( '— ', $level ); + $id = (int) $post->ID; + $class = ('alternate' == $class ) ? '' : 'alternate'; +?> + + ID; ?> + + + + + post_modified ) _e('Unpublished'); else echo mysql2date( __('Y-m-d g:i a'), $post->post_modified ); ?> + + " . __( 'Edit' ) . ""; } ?> + " . __( 'Delete' ) . ""; } ?> + + +user_email; + $url = $user_object->user_url; + $short_url = str_replace( 'http://', '', $url ); + $short_url = str_replace( 'www.', '', $short_url ); + if ('/' == substr( $short_url, -1 )) + $short_url = substr( $short_url, 0, -1 ); + if ( strlen( $short_url ) > 35 ) + $short_url = substr( $short_url, 0, 32 ).'...'; + $numposts = get_usernumposts( $user_object->ID ); + $r = " + + + + $email + $short_url"; + $r .= "\n\t\t"; + if ( $numposts > 0 ) { + $r .= ""; + $r .= sprintf(__ngettext( 'View %s post', 'View %s posts', $numposts ), $numposts); + $r .= ''; + } + $r .= "\n\t\t"; + if ( current_user_can( 'edit_user', $user_object->ID ) ) { + $edit_link = add_query_arg( 'wp_http_referer', urlencode( clean_url( stripslashes( $_SERVER['REQUEST_URI'] ) ) ), "user-edit.php?user_id=$user_object->ID" ); + $r .= "".__( 'Edit' ).""; + } + $r .= "\n\t"; + return $r; +} + +function _wp_get_comment_list( $s = false, $start, $num ) { + global $wpdb; + + $start = (int) $start; + $num = (int) $num; + + if ( $s ) { + $s = $wpdb->escape($s); + $comments = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->comments WHERE + (comment_author LIKE '%$s%' OR + comment_author_email LIKE '%$s%' OR + comment_author_url LIKE ('%$s%') OR + comment_author_IP LIKE ('%$s%') OR + comment_content LIKE ('%$s%') ) AND + comment_approved != 'spam' + ORDER BY comment_date DESC LIMIT $start, $num"); + } else { + $comments = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->comments WHERE comment_approved = '0' OR comment_approved = '1' ORDER BY comment_date DESC LIMIT $start, $num" ); + } + + $total = $wpdb->get_var( "SELECT FOUND_ROWS()" ); + + return array($comments, $total); +} + +function _wp_comment_list_item( $id, $alt = 0 ) { + global $authordata, $comment, $wpdb; + $id = (int) $id; + $comment =& get_comment( $id ); + $class = ''; + $authordata = get_userdata($wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $comment->comment_post_ID")); + $comment_status = wp_get_comment_status($comment->comment_ID); + if ( 'unapproved' == $comment_status ) + $class .= ' unapproved'; + if ( $alt % 2 ) + $class .= ' alternate'; + echo "
  • "; +?> +

    comment_author_email) { ?>| comment_author_url && 'http://' != $comment->comment_author_url) { ?> | |

    + + + +

    — [ +comment_post_ID) ) { + echo " " . __('Edit') . ''; + echo ' | comment_author)) . "', theCommentList );\">" . __('Delete') . ' '; + if ( ('none' != $comment_status) && ( current_user_can('moderate_comments') ) ) { + echo ' | ' . __('Unapprove') . ' '; + echo ' | ' . __('Approve') . ' '; + } + echo " | 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') . " "; +} +$post = get_post($comment->comment_post_ID); +$post_title = wp_specialchars( $post->post_title, 'double' ); +$post_title = ('' == $post_title) ? "# $comment->comment_post_ID" : $post_title; +?> + ] —

    +
  • +term_id && $parent == $category->parent) { + $pad = str_repeat( '– ', $level ); + $category->name = wp_specialchars( $category->name ); + echo "\n\t"; + wp_dropdown_cats( $currentcat, $currentparent, $category->term_id, $level +1, $categories ); + } + } + } else { + return false; + } +} + +function list_meta( $meta ) { + global $post_ID; + // Exit if no meta + if (!$meta ) { + echo ' '; //TBODY needed for list-manipulation JS + return; + } + $count = 0; +?> + + + + + + + +"; + 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; + } + } + + $key_js = js_escape( $entry['meta_key'] ); + $entry['meta_key'] = attribute_escape($entry['meta_key']); + $entry['meta_value'] = attribute_escape($entry['meta_value']); + $r .= "\n\t"; + $r .= "\n\t\t"; + $r .= "\n\t\t"; + $r .= "\n\t\t
    "; + $r .= "\n\t\t"; + $r .= "\n\t"; + } + echo $r; + echo "\n\t"; +} + +function meta_form() { + global $wpdb; + $limit = (int) apply_filters( 'postmeta_form_limit', 30 ); + $keys = $wpdb->get_col( " + SELECT meta_key + FROM $wpdb->postmeta + GROUP BY meta_key + ORDER BY meta_id DESC + LIMIT $limit" ); + if ( $keys ) + natcasesort($keys); +?> +

    + + + + + + + + + + + +
    + + + +
    +

    +post_status ) && (!$post->post_date || '0000-00-00 00:00:00' == $post->post_date ) ) ? false : true; + + echo '
    '; + + $time_adj = time() + (get_option( 'gmt_offset' ) * 3600 ); + $post_date = ($for_post) ? $post->post_date : $comment->comment_date; + $jj = ($edit) ? mysql2date( 'd', $post_date ) : gmdate( 'd', $time_adj ); + $mm = ($edit) ? mysql2date( 'm', $post_date ) : gmdate( 'm', $time_adj ); + $aa = ($edit) ? mysql2date( 'Y', $post_date ) : gmdate( 'Y', $time_adj ); + $hh = ($edit) ? mysql2date( 'H', $post_date ) : gmdate( 'H', $time_adj ); + $mn = ($edit) ? mysql2date( 'i', $post_date ) : gmdate( 'i', $time_adj ); + $ss = ($edit) ? mysql2date( 's', $post_date ) : gmdate( 's', $time_adj ); + + echo " + + @ + : + + +get_month( $mm ), $jj, $aa, $hh, $mn ); + } +?> +
    + $template"; + endforeach; +} + +function parent_dropdown( $default = 0, $parent = 0, $level = 0 ) { + global $wpdb, $post_ID; + $items = $wpdb->get_results( "SELECT ID, post_parent, post_title FROM $wpdb->posts WHERE post_parent = $parent AND post_type = 'page' ORDER BY menu_order" ); + + if ( $items ) { + foreach ( $items as $item ) { + // A page cannot be its own parent. + if (!empty ( $post_ID ) ) { + if ( $item->ID == $post_ID ) { + continue; + } + } + $pad = str_repeat( ' ', $level * 3 ); + if ( $item->ID == $default) + $current = ' selected="selected"'; + else + $current = ''; + + echo "\n\t"; + parent_dropdown( $default, $item->ID, $level +1 ); + } + } else { + return false; + } +} + +function browse_happy() { + $getit = __( 'WordPress recommends a better browser' ); + echo ' +

    Browse Happy

    + '; +} + +if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) + add_action( 'admin_footer', 'browse_happy' ); + +function the_attachment_links( $id = false ) { + $id = (int) $id; + $post = & get_post( $id ); + + if ( $post->post_type != 'attachment' ) + return false; + + $icon = get_attachment_icon( $post->ID ); + $attachment_data = wp_get_attachment_metadata( $id ); + $thumb = isset( $attachment_data['thumb'] ); +?> + +role_names as $role => $name ) + if ( $default == $role ) // Make default first in list + $p = "\n\t"; + else + $r .= "\n\t"; + echo $p . $r; +} + +function wp_import_upload_form( $action ) { + $size = strtolower( ini_get( 'upload_max_filesize' ) ); + $bytes = 0; + if (strpos($size, 'k') !== false) + $bytes = $size * 1024; + if (strpos($size, 'm') !== false) + $bytes = $size * 1024 * 1024; + if (strpos($size, 'g') !== false) + $bytes = $size * 1024 * 1024 * 1024; + $size = apply_filters( 'import_upload_size_limit', $size ); +?> +
    +

    + + ( ) + + + +

    +

    + +

    +
    +post_name); // just in case + if ( strlen($name) ) + echo ''; +} + +?> diff --git a/wp-admin/includes/theme.php b/wp-admin/includes/theme.php new file mode 100644 index 0000000000..c00ac7f9a7 --- /dev/null +++ b/wp-admin/includes/theme.php @@ -0,0 +1,51 @@ +name = $current_theme; + $ct->title = $themes[$current_theme]['Title']; + $ct->version = $themes[$current_theme]['Version']; + $ct->parent_theme = $themes[$current_theme]['Parent Theme']; + $ct->template_dir = $themes[$current_theme]['Template Dir']; + $ct->stylesheet_dir = $themes[$current_theme]['Stylesheet Dir']; + $ct->template = $themes[$current_theme]['Template']; + $ct->stylesheet = $themes[$current_theme]['Stylesheet']; + $ct->screenshot = $themes[$current_theme]['Screenshot']; + $ct->description = $themes[$current_theme]['Description']; + $ct->author = $themes[$current_theme]['Author']; + return $ct; +} + +function get_broken_themes() { + global $wp_broken_themes; + + get_themes(); + return $wp_broken_themes; +} + +function get_page_templates() { + $themes = get_themes(); + $theme = get_current_theme(); + $templates = $themes[$theme]['Template Files']; + $page_templates = array (); + + if ( is_array( $templates ) ) { + foreach ( $templates as $template ) { + $template_data = implode( '', file( ABSPATH.$template )); + preg_match( "|Template Name:(.*)|i", $template_data, $name ); + preg_match( "|Description:(.*)|i", $template_data, $description ); + + $name = $name[1]; + $description = $description[1]; + + if (!empty ( $name ) ) { + $page_templates[trim( $name )] = basename( $template ); + } + } + } + + return $page_templates; +} + +?> diff --git a/wp-admin/upgrade-functions.php b/wp-admin/includes/upgrade.php similarity index 99% rename from wp-admin/upgrade-functions.php rename to wp-admin/includes/upgrade.php index 7ff8e072e0..915520652d 100644 --- a/wp-admin/upgrade-functions.php +++ b/wp-admin/includes/upgrade.php @@ -2,10 +2,8 @@ if ( file_exists(ABSPATH . 'wp-content/install.php') ) require (ABSPATH . 'wp-content/install.php'); -require_once(ABSPATH . '/wp-admin/admin-functions.php'); -require_once(ABSPATH . '/wp-admin/admin-db.php'); -require_once(ABSPATH . '/wp-admin/upgrade-schema.php'); -require_once(ABSPATH . WPINC . '/registration.php'); +require_once(ABSPATH . '/wp-admin/includes/admin.php'); +require_once(ABSPATH . '/wp-admin/includes/schema.php'); if ( !function_exists('wp_install') ) : function wp_install($blog_title, $user_name, $user_email, $public, $meta='') { diff --git a/wp-admin/upload-functions.php b/wp-admin/includes/upload.php similarity index 99% rename from wp-admin/upload-functions.php rename to wp-admin/includes/upload.php index 75e0b3bdd3..92c1ceaf83 100644 --- a/wp-admin/upload-functions.php +++ b/wp-admin/includes/upload.php @@ -1,4 +1,5 @@ id || $wp_roles->role_objects[$_POST['role']]->has_cap( 'edit_users' ) ) { + $user = new WP_User( $user_id ); + $user->set_role( $_POST['role'] ); + } + } + } else { + add_action( 'user_register', 'add_user' ); // See above + return edit_user(); + } +} + +function edit_user( $user_id = 0 ) { + global $current_user, $wp_roles, $wpdb; + if ( $user_id != 0 ) { + $update = true; + $user->ID = (int) $user_id; + $userdata = get_userdata( $user_id ); + $user->user_login = $wpdb->escape( $userdata->user_login ); + } else { + $update = false; + $user = ''; + } + + if ( isset( $_POST['user_login'] )) + $user->user_login = wp_specialchars( trim( $_POST['user_login'] )); + + $pass1 = $pass2 = ''; + if ( isset( $_POST['pass1'] )) + $pass1 = $_POST['pass1']; + if ( isset( $_POST['pass2'] )) + $pass2 = $_POST['pass2']; + + if ( isset( $_POST['role'] ) && current_user_can( 'edit_users' ) ) { + if( $user_id != $current_user->id || $wp_roles->role_objects[$_POST['role']]->has_cap( 'edit_users' )) + $user->role = $_POST['role']; + } + + if ( isset( $_POST['email'] )) + $user->user_email = wp_specialchars( trim( $_POST['email'] )); + if ( isset( $_POST['url'] ) ) { + $user->user_url = clean_url( trim( $_POST['url'] )); + $user->user_url = preg_match('/^(https?|ftps?|mailto|news|irc|gopher|nntp|feed|telnet):/is', $user->user_url) ? $user->user_url : 'http://'.$user->user_url; + } + if ( isset( $_POST['first_name'] )) + $user->first_name = wp_specialchars( trim( $_POST['first_name'] )); + if ( isset( $_POST['last_name'] )) + $user->last_name = wp_specialchars( trim( $_POST['last_name'] )); + if ( isset( $_POST['nickname'] )) + $user->nickname = wp_specialchars( trim( $_POST['nickname'] )); + if ( isset( $_POST['display_name'] )) + $user->display_name = wp_specialchars( trim( $_POST['display_name'] )); + if ( isset( $_POST['description'] )) + $user->description = trim( $_POST['description'] ); + if ( isset( $_POST['jabber'] )) + $user->jabber = wp_specialchars( trim( $_POST['jabber'] )); + if ( isset( $_POST['aim'] )) + $user->aim = wp_specialchars( trim( $_POST['aim'] )); + if ( isset( $_POST['yim'] )) + $user->yim = wp_specialchars( trim( $_POST['yim'] )); + if ( !$update ) + $user->rich_editing = 'true'; // Default to true for new users. + else if ( isset( $_POST['rich_editing'] ) ) + $user->rich_editing = $_POST['rich_editing']; + else + $user->rich_editing = 'false'; + + $errors = new WP_Error(); + + /* checking that username has been typed */ + if ( $user->user_login == '' ) + $errors->add( 'user_login', __( 'ERROR: Please enter a username.' )); + + /* checking the password has been typed twice */ + do_action_ref_array( 'check_passwords', array ( $user->user_login, & $pass1, & $pass2 )); + + if (!$update ) { + if ( $pass1 == '' || $pass2 == '' ) + $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." )); + } + + /* Check for "\" in password */ + if( strpos( " ".$pass1, "\\" ) ) + $errors->add( 'pass', __( 'ERROR: Passwords may not contain the character "\\".' )); + + /* 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.' )); + + 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.' )); + + if (!$update && username_exists( $user->user_login )) + $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" )); + } else + if (!is_email( $user->user_email ) ) { + $errors->add( 'user_email', __( "ERROR: the email address isn't correct" )); + } + + if ( $errors->get_error_codes() ) + return $errors; + + if ( $update ) { + $user_id = wp_update_user( get_object_vars( $user )); + } else { + $user_id = wp_insert_user( get_object_vars( $user )); + wp_new_user_notification( $user_id ); + } + return $user_id; +} + +function get_author_user_ids() { + global $wpdb; + $level_key = $wpdb->prefix . 'user_level'; + + $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value != '0'"; + + return $wpdb->get_col( $query ); +} + +function get_editable_authors( $user_id ) { + global $wpdb; + + $editable = get_editable_user_ids( $user_id ); + + if( !$editable ) { + return false; + } else { + $editable = join(',', $editable); + $authors = $wpdb->get_results( "SELECT * FROM $wpdb->users WHERE ID IN ($editable) ORDER BY display_name" ); + } + + return apply_filters('get_editable_authors', $authors); +} + +function get_editable_user_ids( $user_id, $exclude_zeros = true ) { + global $wpdb; + + $user = new WP_User( $user_id ); + + if ( ! $user->has_cap('edit_others_posts') ) { + if ( $user->has_cap('edit_posts') || $exclude_zeros == false ) + return array($user->id); + else + return false; + } + + $level_key = $wpdb->prefix . 'user_level'; + + $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'"; + if ( $exclude_zeros ) + $query .= " AND meta_value != '0'"; + + return $wpdb->get_col( $query ); +} + +function get_nonauthor_user_ids() { + global $wpdb; + $level_key = $wpdb->prefix . 'user_level'; + + $query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value = '0'"; + + return $wpdb->get_col( $query ); +} + +function get_others_drafts( $user_id ) { + global $wpdb; + $user = get_userdata( $user_id ); + $level_key = $wpdb->prefix . 'user_level'; + + $editable = get_editable_user_ids( $user_id ); + + if( !$editable ) { + $other_drafts = ''; + } else { + $editable = join(',', $editable); + $other_drafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'draft' AND post_author IN ($editable) AND post_author != '$user_id' "); + } + + return apply_filters('get_others_drafts', $other_drafts); +} + +function get_user_to_edit( $user_id ) { + $user = new WP_User( $user_id ); + $user->user_login = attribute_escape($user->user_login); + $user->user_email = attribute_escape($user->user_email); + $user->user_url = clean_url($user->user_url); + $user->first_name = attribute_escape($user->first_name); + $user->last_name = attribute_escape($user->last_name); + $user->display_name = attribute_escape($user->display_name); + $user->nickname = attribute_escape($user->nickname); + $user->aim = attribute_escape($user->aim); + $user->yim = attribute_escape($user->yim); + $user->jabber = attribute_escape($user->jabber); + $user->description = wp_specialchars($user->description); + + return $user; +} + +function get_users_drafts( $user_id ) { + global $wpdb; + $user_id = (int) $user_id; + $query = "SELECT ID, post_title FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'draft' AND post_author = $user_id ORDER BY ID DESC"; + $query = apply_filters('get_users_drafts', $query); + return $wpdb->get_results( $query ); +} + +function wp_delete_user($id, $reassign = 'novalue') { + global $wpdb; + + $id = (int) $id; + $user = get_userdata($id); + + if ($reassign == 'novalue') { + $post_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_author = $id"); + + if ($post_ids) { + foreach ($post_ids as $post_id) + wp_delete_post($post_id); + } + + // Clean links + $wpdb->query("DELETE FROM $wpdb->links WHERE link_owner = $id"); + } else { + $reassign = (int) $reassign; + $wpdb->query("UPDATE $wpdb->posts SET post_author = {$reassign} WHERE post_author = {$id}"); + $wpdb->query("UPDATE $wpdb->links SET link_owner = {$reassign} WHERE link_owner = {$id}"); + } + + // FINALLY, delete user + do_action('delete_user', $id); + + $wpdb->query("DELETE FROM $wpdb->users WHERE ID = $id"); + $wpdb->query("DELETE FROM $wpdb->usermeta WHERE user_id = '$id'"); + + wp_cache_delete($id, 'users'); + wp_cache_delete($user->user_login, 'userlogins'); + + return true; +} + +function wp_revoke_user($id) { + $id = (int) $id; + + $user = new WP_User($id); + $user->remove_all_caps(); +} + +?> \ No newline at end of file diff --git a/wp-admin/install.php b/wp-admin/install.php index e04189a53c..13a20e55b4 100644 --- a/wp-admin/install.php +++ b/wp-admin/install.php @@ -6,7 +6,7 @@ if (!file_exists('../wp-config.php')) { } require_once('../wp-config.php'); -require_once('./upgrade-functions.php'); +require_once('./includes/upgrade.php'); if (isset($_GET['step'])) $step = $_GET['step']; diff --git a/wp-admin/upgrade.php b/wp-admin/upgrade.php index e33e70ba86..9ca17b3540 100644 --- a/wp-admin/upgrade.php +++ b/wp-admin/upgrade.php @@ -5,7 +5,7 @@ if (!file_exists('../wp-config.php')) require('../wp-config.php'); timer_start(); -require_once(ABSPATH . '/wp-admin/upgrade-functions.php'); +require_once(ABSPATH . '/wp-admin/includes/upgrade.php'); if (isset($_GET['step'])) $step = (int) $_GET['step']; diff --git a/wp-admin/upload.php b/wp-admin/upload.php index 2aa3f66244..8d8e4d5518 100644 --- a/wp-admin/upload.php +++ b/wp-admin/upload.php @@ -16,7 +16,7 @@ $post_id = (int) $post_id; if ( $action == 'edit' && !$ID ) wp_die(__("You are not allowed to be here")); -require_once('upload-functions.php'); +require_once('includes/upload.php'); if ( !$tab ) $tab = 'browse-all'; diff --git a/xmlrpc.php b/xmlrpc.php index c55d46516a..389a9a8a83 100644 --- a/xmlrpc.php +++ b/xmlrpc.php @@ -39,7 +39,7 @@ header('Content-type: text/xml; charset=' . get_option('blog_charset'), true); exit; } -include_once(ABSPATH . 'wp-admin/admin-functions.php'); +include_once(ABSPATH . 'wp-admin/includes/admin.php'); include_once(ABSPATH . WPINC . '/class-IXR.php'); // Turn off all warnings and errors. @@ -490,10 +490,6 @@ class wp_xmlrpc_server extends IXR_Server { return(new IXR_Error(401, __("Sorry, you do not have the right to add a category."))); } - // We need this to make use of the wp_insert_category() - // funciton. - require_once(ABSPATH . "wp-admin/admin-db.php"); - // If no slug was provided make it empty so that // WordPress will generate one. if(empty($category["slug"])) {