Upgrade WordPress to v3.2.1.
authormrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Nov 2011 00:12:56 +0000 (00:12 +0000)
committermrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Nov 2011 00:12:56 +0000 (00:12 +0000)
* blog:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@100207 268f45cc-cd09-0410-ab3c-d52691b4dbfc

746 files changed:
Websites/webkit.org/ChangeLog
Websites/webkit.org/blog/license.txt
Websites/webkit.org/blog/wp-activate.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/admin-ajax.php
Websites/webkit.org/blog/wp-admin/admin-footer.php
Websites/webkit.org/blog/wp-admin/admin-header.php
Websites/webkit.org/blog/wp-admin/admin-post.php
Websites/webkit.org/blog/wp-admin/admin.php
Websites/webkit.org/blog/wp-admin/async-upload.php
Websites/webkit.org/blog/wp-admin/categories.php [deleted file]
Websites/webkit.org/blog/wp-admin/comment.php
Websites/webkit.org/blog/wp-admin/credits.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/colors-classic-rtl.css
Websites/webkit.org/blog/wp-admin/css/colors-classic-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/colors-classic.css
Websites/webkit.org/blog/wp-admin/css/colors-classic.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/colors-fresh-rtl.css
Websites/webkit.org/blog/wp-admin/css/colors-fresh-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/colors-fresh.css
Websites/webkit.org/blog/wp-admin/css/colors-fresh.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/dashboard-rtl.css
Websites/webkit.org/blog/wp-admin/css/dashboard-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/dashboard.css
Websites/webkit.org/blog/wp-admin/css/dashboard.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/global-rtl.css
Websites/webkit.org/blog/wp-admin/css/global-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/global.css
Websites/webkit.org/blog/wp-admin/css/global.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/ie-rtl.css
Websites/webkit.org/blog/wp-admin/css/ie-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/ie.css
Websites/webkit.org/blog/wp-admin/css/ie.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/install-rtl.css
Websites/webkit.org/blog/wp-admin/css/install-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/install.css
Websites/webkit.org/blog/wp-admin/css/install.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/login-rtl.css
Websites/webkit.org/blog/wp-admin/css/login-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/login.css
Websites/webkit.org/blog/wp-admin/css/login.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/media-rtl.css
Websites/webkit.org/blog/wp-admin/css/media-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/media.css
Websites/webkit.org/blog/wp-admin/css/media.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/ms.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/ms.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/nav-menu-rtl.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/nav-menu-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/nav-menu.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/nav-menu.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/plugin-install-rtl.css
Websites/webkit.org/blog/wp-admin/css/plugin-install-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/plugin-install.css
Websites/webkit.org/blog/wp-admin/css/plugin-install.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/press-this-rtl.css
Websites/webkit.org/blog/wp-admin/css/press-this-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/press-this.css
Websites/webkit.org/blog/wp-admin/css/press-this.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/theme-editor-rtl.css
Websites/webkit.org/blog/wp-admin/css/theme-editor-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/theme-editor.css
Websites/webkit.org/blog/wp-admin/css/theme-editor.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/theme-install-rtl.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/theme-install-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/theme-install.css
Websites/webkit.org/blog/wp-admin/css/theme-install.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/widgets-rtl.css
Websites/webkit.org/blog/wp-admin/css/widgets-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/widgets.css
Websites/webkit.org/blog/wp-admin/css/widgets.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/wp-admin-rtl.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/wp-admin-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/wp-admin.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/css/wp-admin.dev.css [moved from Websites/webkit.org/blog/wp-admin/wp-admin.css with 50% similarity]
Websites/webkit.org/blog/wp-admin/custom-background.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/custom-header.php
Websites/webkit.org/blog/wp-admin/edit-attachment-rows.php [deleted file]
Websites/webkit.org/blog/wp-admin/edit-category-form.php [deleted file]
Websites/webkit.org/blog/wp-admin/edit-comments.php
Websites/webkit.org/blog/wp-admin/edit-form-advanced.php
Websites/webkit.org/blog/wp-admin/edit-form-comment.php
Websites/webkit.org/blog/wp-admin/edit-link-categories.php [deleted file]
Websites/webkit.org/blog/wp-admin/edit-link-category-form.php [deleted file]
Websites/webkit.org/blog/wp-admin/edit-link-form.php
Websites/webkit.org/blog/wp-admin/edit-page-form.php [deleted file]
Websites/webkit.org/blog/wp-admin/edit-pages.php [deleted file]
Websites/webkit.org/blog/wp-admin/edit-post-rows.php [deleted file]
Websites/webkit.org/blog/wp-admin/edit-tag-form.php
Websites/webkit.org/blog/wp-admin/edit-tags.php
Websites/webkit.org/blog/wp-admin/edit.php
Websites/webkit.org/blog/wp-admin/export.php
Websites/webkit.org/blog/wp-admin/freedoms.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/gears-manifest.php
Websites/webkit.org/blog/wp-admin/images/arrows-dark-vs.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/arrows-dark.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/arrows-vs.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/arrows.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/blue-grad.png
Websites/webkit.org/blog/wp-admin/images/browse-happy.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/button-grad-active-vs.png [deleted file]
Websites/webkit.org/blog/wp-admin/images/button-grad-vs.png [deleted file]
Websites/webkit.org/blog/wp-admin/images/ed-bg-vs.gif
Websites/webkit.org/blog/wp-admin/images/fav-arrow-rtl.gif
Websites/webkit.org/blog/wp-admin/images/fav-arrow-vs.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/fav-arrow.gif
Websites/webkit.org/blog/wp-admin/images/fav-top-vs.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/fav-top.png [deleted file]
Websites/webkit.org/blog/wp-admin/images/gray-star.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/icons32-vs.png
Websites/webkit.org/blog/wp-admin/images/icons32.png
Websites/webkit.org/blog/wp-admin/images/imgedit-icons.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/list-vs.png [deleted file]
Websites/webkit.org/blog/wp-admin/images/logo-ghost.png
Websites/webkit.org/blog/wp-admin/images/logo-login.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/logo-login.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/media-button-image.gif
Websites/webkit.org/blog/wp-admin/images/media-button-music.gif
Websites/webkit.org/blog/wp-admin/images/media-button-other.gif
Websites/webkit.org/blog/wp-admin/images/media-button-video.gif
Websites/webkit.org/blog/wp-admin/images/menu-arrow-frame-rtl.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/menu-arrow-frame.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/menu-bits-rtl-vs.gif
Websites/webkit.org/blog/wp-admin/images/menu-bits-rtl.gif
Websites/webkit.org/blog/wp-admin/images/menu-bits-vs.gif
Websites/webkit.org/blog/wp-admin/images/menu-bits.gif
Websites/webkit.org/blog/wp-admin/images/menu-dark-rtl-vs.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/menu-dark-vs.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/menu-shadow-rtl.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/menu-shadow.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/menu-vs.png
Websites/webkit.org/blog/wp-admin/images/menu.png
Websites/webkit.org/blog/wp-admin/images/press-this.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/resize-rtl.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/screen-options-left.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/screen-options-right-up.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/screen-options-right.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/screen-options-toggle-vs.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/screen-options-toggle.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/sort.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/star.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/star.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/upload-classic.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/upload-fresh.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/visit-site-button-grad-vs.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/visit-site-button-grad.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/widgets-arrow-vs.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/widgets-arrow.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/wp-logo-vs.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/wp-logo-vs.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/images/wp-logo.gif [deleted file]
Websites/webkit.org/blog/wp-admin/images/wp-logo.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/import.php
Websites/webkit.org/blog/wp-admin/import/blogger.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/blogware.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/dotclear.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/greymatter.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/livejournal.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/mt.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/opml.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/rss.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/stp.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/textpattern.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/utw.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/wordpress.php [deleted file]
Websites/webkit.org/blog/wp-admin/import/wp-cat2tag.php [deleted file]
Websites/webkit.org/blog/wp-admin/includes/admin.php
Websites/webkit.org/blog/wp-admin/includes/bookmark.php
Websites/webkit.org/blog/wp-admin/includes/class-ftp.php
Websites/webkit.org/blog/wp-admin/includes/class-pclzip.php
Websites/webkit.org/blog/wp-admin/includes/class-wp-comments-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-filesystem-base.php
Websites/webkit.org/blog/wp-admin/includes/class-wp-filesystem-direct.php
Websites/webkit.org/blog/wp-admin/includes/class-wp-filesystem-ftpext.php
Websites/webkit.org/blog/wp-admin/includes/class-wp-filesystem-ftpsockets.php
Websites/webkit.org/blog/wp-admin/includes/class-wp-filesystem-ssh2.php
Websites/webkit.org/blog/wp-admin/includes/class-wp-importer.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-links-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-media-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-ms-sites-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-ms-themes-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-ms-users-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-plugin-install-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-plugins-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-posts-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-terms-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-theme-install-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-themes-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/class-wp-upgrader.php
Websites/webkit.org/blog/wp-admin/includes/class-wp-users-list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/comment.php
Websites/webkit.org/blog/wp-admin/includes/dashboard.php
Websites/webkit.org/blog/wp-admin/includes/deprecated.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/export.php
Websites/webkit.org/blog/wp-admin/includes/file.php
Websites/webkit.org/blog/wp-admin/includes/image-edit.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/image.php
Websites/webkit.org/blog/wp-admin/includes/import.php
Websites/webkit.org/blog/wp-admin/includes/internal-linking.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/list-table.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/manifest.php
Websites/webkit.org/blog/wp-admin/includes/media.php
Websites/webkit.org/blog/wp-admin/includes/menu.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/meta-boxes.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/misc.php
Websites/webkit.org/blog/wp-admin/includes/ms-deprecated.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/ms.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/nav-menu.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/includes/plugin-install.php
Websites/webkit.org/blog/wp-admin/includes/plugin.php
Websites/webkit.org/blog/wp-admin/includes/post.php
Websites/webkit.org/blog/wp-admin/includes/schema.php
Websites/webkit.org/blog/wp-admin/includes/taxonomy.php
Websites/webkit.org/blog/wp-admin/includes/template.php
Websites/webkit.org/blog/wp-admin/includes/theme-install.php
Websites/webkit.org/blog/wp-admin/includes/theme.php
Websites/webkit.org/blog/wp-admin/includes/update-core.php
Websites/webkit.org/blog/wp-admin/includes/update.php
Websites/webkit.org/blog/wp-admin/includes/upgrade.php
Websites/webkit.org/blog/wp-admin/includes/user.php
Websites/webkit.org/blog/wp-admin/includes/widgets.php
Websites/webkit.org/blog/wp-admin/index-extra.php
Websites/webkit.org/blog/wp-admin/index.php
Websites/webkit.org/blog/wp-admin/install-helper.php
Websites/webkit.org/blog/wp-admin/install.php
Websites/webkit.org/blog/wp-admin/js/categories.dev.js
Websites/webkit.org/blog/wp-admin/js/categories.js
Websites/webkit.org/blog/wp-admin/js/comment.dev.js
Websites/webkit.org/blog/wp-admin/js/comment.js
Websites/webkit.org/blog/wp-admin/js/common.dev.js
Websites/webkit.org/blog/wp-admin/js/common.js
Websites/webkit.org/blog/wp-admin/js/custom-background.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/custom-background.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/custom-fields.dev.js
Websites/webkit.org/blog/wp-admin/js/custom-fields.js
Websites/webkit.org/blog/wp-admin/js/dashboard.dev.js
Websites/webkit.org/blog/wp-admin/js/dashboard.js
Websites/webkit.org/blog/wp-admin/js/edit-comments.dev.js
Websites/webkit.org/blog/wp-admin/js/edit-comments.js
Websites/webkit.org/blog/wp-admin/js/editor.dev.js
Websites/webkit.org/blog/wp-admin/js/editor.js
Websites/webkit.org/blog/wp-admin/js/farbtastic.js
Websites/webkit.org/blog/wp-admin/js/gallery.dev.js
Websites/webkit.org/blog/wp-admin/js/gallery.js
Websites/webkit.org/blog/wp-admin/js/image-edit.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/image-edit.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/inline-edit-post.dev.js
Websites/webkit.org/blog/wp-admin/js/inline-edit-post.js
Websites/webkit.org/blog/wp-admin/js/inline-edit-tax.dev.js
Websites/webkit.org/blog/wp-admin/js/inline-edit-tax.js
Websites/webkit.org/blog/wp-admin/js/link.dev.js
Websites/webkit.org/blog/wp-admin/js/link.js
Websites/webkit.org/blog/wp-admin/js/media-upload.dev.js
Websites/webkit.org/blog/wp-admin/js/media-upload.js
Websites/webkit.org/blog/wp-admin/js/media.dev.js
Websites/webkit.org/blog/wp-admin/js/media.js
Websites/webkit.org/blog/wp-admin/js/nav-menu.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/nav-menu.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/page.dev.js [deleted file]
Websites/webkit.org/blog/wp-admin/js/page.js [deleted file]
Websites/webkit.org/blog/wp-admin/js/password-strength-meter.dev.js
Websites/webkit.org/blog/wp-admin/js/password-strength-meter.js
Websites/webkit.org/blog/wp-admin/js/plugin-install.dev.js
Websites/webkit.org/blog/wp-admin/js/plugin-install.js
Websites/webkit.org/blog/wp-admin/js/post.dev.js
Websites/webkit.org/blog/wp-admin/js/post.js
Websites/webkit.org/blog/wp-admin/js/postbox.dev.js
Websites/webkit.org/blog/wp-admin/js/postbox.js
Websites/webkit.org/blog/wp-admin/js/revisions-js.php
Websites/webkit.org/blog/wp-admin/js/set-post-thumbnail.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/set-post-thumbnail.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/slug.dev.js [deleted file]
Websites/webkit.org/blog/wp-admin/js/slug.js [deleted file]
Websites/webkit.org/blog/wp-admin/js/tags.dev.js
Websites/webkit.org/blog/wp-admin/js/tags.js
Websites/webkit.org/blog/wp-admin/js/theme-preview.dev.js
Websites/webkit.org/blog/wp-admin/js/theme-preview.js
Websites/webkit.org/blog/wp-admin/js/theme.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/theme.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/user-profile.dev.js
Websites/webkit.org/blog/wp-admin/js/user-profile.js
Websites/webkit.org/blog/wp-admin/js/utils.dev.js
Websites/webkit.org/blog/wp-admin/js/utils.js
Websites/webkit.org/blog/wp-admin/js/widgets.dev.js
Websites/webkit.org/blog/wp-admin/js/widgets.js
Websites/webkit.org/blog/wp-admin/js/word-count.dev.js
Websites/webkit.org/blog/wp-admin/js/word-count.js
Websites/webkit.org/blog/wp-admin/js/wp-fullscreen.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/wp-fullscreen.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/js/wp-gears.dev.js [deleted file]
Websites/webkit.org/blog/wp-admin/js/wp-gears.js [deleted file]
Websites/webkit.org/blog/wp-admin/js/xfn.dev.js
Websites/webkit.org/blog/wp-admin/js/xfn.js
Websites/webkit.org/blog/wp-admin/link-add.php
Websites/webkit.org/blog/wp-admin/link-category.php [deleted file]
Websites/webkit.org/blog/wp-admin/link-manager.php
Websites/webkit.org/blog/wp-admin/link-parse-opml.php
Websites/webkit.org/blog/wp-admin/link.php
Websites/webkit.org/blog/wp-admin/load-scripts.php
Websites/webkit.org/blog/wp-admin/load-styles.php
Websites/webkit.org/blog/wp-admin/maint/repair.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/media-new.php
Websites/webkit.org/blog/wp-admin/media-upload.php
Websites/webkit.org/blog/wp-admin/media.php
Websites/webkit.org/blog/wp-admin/menu-header.php
Websites/webkit.org/blog/wp-admin/menu.php
Websites/webkit.org/blog/wp-admin/moderation.php
Websites/webkit.org/blog/wp-admin/ms-admin.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/ms-delete-site.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/ms-edit.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/ms-options.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/ms-sites.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/ms-themes.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/ms-upgrade-network.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/ms-users.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/my-sites.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/nav-menus.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/admin.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/edit.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/index-extra.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/index.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/menu.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/plugin-editor.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/plugin-install.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/plugins.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/profile.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/settings.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/setup.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/site-info.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/site-new.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/site-settings.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/site-themes.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/site-users.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/sites.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/theme-editor.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/theme-install.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/themes.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/update-core.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/update.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/upgrade.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/user-edit.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/user-new.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/network/users.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/options-discussion.php
Websites/webkit.org/blog/wp-admin/options-general.php
Websites/webkit.org/blog/wp-admin/options-head.php
Websites/webkit.org/blog/wp-admin/options-media.php
Websites/webkit.org/blog/wp-admin/options-misc.php [deleted file]
Websites/webkit.org/blog/wp-admin/options-permalink.php
Websites/webkit.org/blog/wp-admin/options-privacy.php
Websites/webkit.org/blog/wp-admin/options-reading.php
Websites/webkit.org/blog/wp-admin/options-writing.php
Websites/webkit.org/blog/wp-admin/options.php
Websites/webkit.org/blog/wp-admin/page-new.php [deleted file]
Websites/webkit.org/blog/wp-admin/page.php [deleted file]
Websites/webkit.org/blog/wp-admin/plugin-editor.php
Websites/webkit.org/blog/wp-admin/plugin-install.php
Websites/webkit.org/blog/wp-admin/plugins.php
Websites/webkit.org/blog/wp-admin/post-new.php
Websites/webkit.org/blog/wp-admin/post.php
Websites/webkit.org/blog/wp-admin/press-this.php
Websites/webkit.org/blog/wp-admin/profile.php
Websites/webkit.org/blog/wp-admin/revision.php
Websites/webkit.org/blog/wp-admin/rtl.css [deleted file]
Websites/webkit.org/blog/wp-admin/setup-config.php
Websites/webkit.org/blog/wp-admin/sidebar.php [deleted file]
Websites/webkit.org/blog/wp-admin/theme-editor.php
Websites/webkit.org/blog/wp-admin/theme-install.php
Websites/webkit.org/blog/wp-admin/themes.php
Websites/webkit.org/blog/wp-admin/tools.php
Websites/webkit.org/blog/wp-admin/update-core.php
Websites/webkit.org/blog/wp-admin/update-links.php [deleted file]
Websites/webkit.org/blog/wp-admin/update.php
Websites/webkit.org/blog/wp-admin/upgrade.php
Websites/webkit.org/blog/wp-admin/upload.php
Websites/webkit.org/blog/wp-admin/user-edit.php
Websites/webkit.org/blog/wp-admin/user-new.php
Websites/webkit.org/blog/wp-admin/user/admin.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/user/index-extra.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/user/index.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/user/menu.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/user/profile.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/user/user-edit.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-admin/users.php
Websites/webkit.org/blog/wp-admin/widgets.php
Websites/webkit.org/blog/wp-app.php
Websites/webkit.org/blog/wp-atom.php
Websites/webkit.org/blog/wp-comments-post.php
Websites/webkit.org/blog/wp-commentsrss2.php
Websites/webkit.org/blog/wp-config-sample.php
Websites/webkit.org/blog/wp-cron.php
Websites/webkit.org/blog/wp-feed.php
Websites/webkit.org/blog/wp-includes/Text/Diff.php
Websites/webkit.org/blog/wp-includes/Text/Diff/Engine/native.php
Websites/webkit.org/blog/wp-includes/Text/Diff/Engine/shell.php
Websites/webkit.org/blog/wp-includes/Text/Diff/Engine/string.php
Websites/webkit.org/blog/wp-includes/Text/Diff/Engine/xdiff.php
Websites/webkit.org/blog/wp-includes/Text/Diff/Renderer.php
Websites/webkit.org/blog/wp-includes/Text/Diff/Renderer/inline.php
Websites/webkit.org/blog/wp-includes/admin-bar.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/author-template.php
Websites/webkit.org/blog/wp-includes/bookmark-template.php
Websites/webkit.org/blog/wp-includes/bookmark.php
Websites/webkit.org/blog/wp-includes/cache.php
Websites/webkit.org/blog/wp-includes/canonical.php
Websites/webkit.org/blog/wp-includes/capabilities.php
Websites/webkit.org/blog/wp-includes/category-template.php
Websites/webkit.org/blog/wp-includes/category.php
Websites/webkit.org/blog/wp-includes/class-IXR.php
Websites/webkit.org/blog/wp-includes/class-feed.php
Websites/webkit.org/blog/wp-includes/class-http.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/class-json.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/class-oembed.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/class-phpass.php
Websites/webkit.org/blog/wp-includes/class-phpmailer.php
Websites/webkit.org/blog/wp-includes/class-pop3.php
Websites/webkit.org/blog/wp-includes/class-simplepie.php
Websites/webkit.org/blog/wp-includes/class-smtp.php
Websites/webkit.org/blog/wp-includes/class-snoopy.php
Websites/webkit.org/blog/wp-includes/class-wp-admin-bar.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/class-wp-ajax-response.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/class-wp-error.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/class-wp-http-ixr-client.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/class-wp-walker.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/class-wp-xmlrpc-server.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/class-wp.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/class.wp-dependencies.php
Websites/webkit.org/blog/wp-includes/class.wp-scripts.php
Websites/webkit.org/blog/wp-includes/class.wp-styles.php
Websites/webkit.org/blog/wp-includes/classes.php [deleted file]
Websites/webkit.org/blog/wp-includes/comment-template.php
Websites/webkit.org/blog/wp-includes/comment.php
Websites/webkit.org/blog/wp-includes/compat.php
Websites/webkit.org/blog/wp-includes/cron.php
Websites/webkit.org/blog/wp-includes/css/admin-bar-rtl.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/css/admin-bar-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/css/admin-bar.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/css/admin-bar.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/css/jquery-ui-dialog.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/css/jquery-ui-dialog.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/default-constants.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/default-filters.php
Websites/webkit.org/blog/wp-includes/default-widgets.php
Websites/webkit.org/blog/wp-includes/deprecated.php
Websites/webkit.org/blog/wp-includes/feed-atom-comments.php
Websites/webkit.org/blog/wp-includes/feed-atom.php
Websites/webkit.org/blog/wp-includes/feed-rdf.php
Websites/webkit.org/blog/wp-includes/feed-rss.php
Websites/webkit.org/blog/wp-includes/feed-rss2-comments.php
Websites/webkit.org/blog/wp-includes/feed-rss2.php
Websites/webkit.org/blog/wp-includes/feed.php
Websites/webkit.org/blog/wp-includes/formatting.php
Websites/webkit.org/blog/wp-includes/functions.php
Websites/webkit.org/blog/wp-includes/functions.wp-scripts.php
Websites/webkit.org/blog/wp-includes/functions.wp-styles.php
Websites/webkit.org/blog/wp-includes/general-template.php
Websites/webkit.org/blog/wp-includes/gettext.php [deleted file]
Websites/webkit.org/blog/wp-includes/http.php
Websites/webkit.org/blog/wp-includes/images/admin-bar-sprite-rtl.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/images/admin-bar-sprite.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/images/upload.png
Websites/webkit.org/blog/wp-includes/images/wpmini-blue.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/admin-bar.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/admin-bar.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/autosave.dev.js
Websites/webkit.org/blog/wp-includes/js/autosave.js
Websites/webkit.org/blog/wp-includes/js/codepress/codepress.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/codepress.html [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/codepress.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/engines/gecko.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/engines/khtml.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/engines/msie.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/engines/older.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/engines/opera.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/images/line-numbers.png [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/asp.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/asp.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/autoit.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/autoit.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/csharp.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/csharp.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/css.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/css.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/generic.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/generic.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/html.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/html.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/java.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/java.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/javascript.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/javascript.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/perl.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/perl.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/php.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/php.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/ruby.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/ruby.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/sql.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/sql.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/text.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/text.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/vbscript.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/vbscript.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/xsl.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/languages/xsl.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/codepress/license.txt [deleted file]
Websites/webkit.org/blog/wp-includes/js/imgareaselect/border-anim-h.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/imgareaselect/border-anim-v.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/imgareaselect/imgareaselect.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/imgareaselect/jquery.imgareaselect.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/imgareaselect/jquery.imgareaselect.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/jcrop/jquery.Jcrop.js
Websites/webkit.org/blog/wp-includes/js/jquery/interface.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/jquery/jquery.form.dev.js
Websites/webkit.org/blog/wp-includes/js/jquery/jquery.form.js
Websites/webkit.org/blog/wp-includes/js/jquery/jquery.js
Websites/webkit.org/blog/wp-includes/js/jquery/jquery.query.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/jquery/jquery.serialize-object.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/jquery/suggest.dev.js
Websites/webkit.org/blog/wp-includes/js/jquery/suggest.js
Websites/webkit.org/blog/wp-includes/js/jquery/ui.button.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/jquery/ui.core.js
Websites/webkit.org/blog/wp-includes/js/jquery/ui.dialog.js
Websites/webkit.org/blog/wp-includes/js/jquery/ui.draggable.js
Websites/webkit.org/blog/wp-includes/js/jquery/ui.droppable.js
Websites/webkit.org/blog/wp-includes/js/jquery/ui.mouse.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/jquery/ui.position.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/jquery/ui.resizable.js
Websites/webkit.org/blog/wp-includes/js/jquery/ui.selectable.js
Websites/webkit.org/blog/wp-includes/js/jquery/ui.sortable.js
Websites/webkit.org/blog/wp-includes/js/jquery/ui.tabs.js
Websites/webkit.org/blog/wp-includes/js/jquery/ui.widget.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/json2.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/json2.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/l10n.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/l10n.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/prototype.js
Websites/webkit.org/blog/wp-includes/js/quicktags.dev.js
Websites/webkit.org/blog/wp-includes/js/quicktags.js
Websites/webkit.org/blog/wp-includes/js/scriptaculous/MIT-LICENSE
Websites/webkit.org/blog/wp-includes/js/scriptaculous/builder.js
Websites/webkit.org/blog/wp-includes/js/scriptaculous/controls.js
Websites/webkit.org/blog/wp-includes/js/scriptaculous/dragdrop.js
Websites/webkit.org/blog/wp-includes/js/scriptaculous/effects.js
Websites/webkit.org/blog/wp-includes/js/scriptaculous/prototype.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/scriptaculous/scriptaculous.js
Websites/webkit.org/blog/wp-includes/js/scriptaculous/slider.js
Websites/webkit.org/blog/wp-includes/js/scriptaculous/sound.js
Websites/webkit.org/blog/wp-includes/js/scriptaculous/unittest.js
Websites/webkit.org/blog/wp-includes/js/scriptaculous/wp-scriptaculous.js
Websites/webkit.org/blog/wp-includes/js/swfobject.js
Websites/webkit.org/blog/wp-includes/js/swfupload/handlers.dev.js
Websites/webkit.org/blog/wp-includes/js/swfupload/handlers.js
Websites/webkit.org/blog/wp-includes/js/swfupload/license.txt [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/swfupload/plugins/swfupload.speed.js
Websites/webkit.org/blog/wp-includes/js/swfupload/plugins/swfupload.swfobject.js
Websites/webkit.org/blog/wp-includes/js/swfupload/swfupload-all.js
Websites/webkit.org/blog/wp-includes/js/thickbox/thickbox.js
Websites/webkit.org/blog/wp-includes/js/tinymce/blank.htm [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/langs/wp-langs-en.js
Websites/webkit.org/blog/wp-includes/js/tinymce/langs/wp-langs.php
Websites/webkit.org/blog/wp-includes/js/tinymce/license.txt
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/inlinepopups/template.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/css/content.css [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/css/media.css
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/editor_plugin.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/img/flv_player.swf [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/js/media.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/media.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/moxieplayer.swf [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/paste/editor_plugin.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/paste/js/pastetext.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/paste/js/pasteword.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/paste/pastetext.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/paste/pasteword.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/safari/blank.htm [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/safari/editor_plugin.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/spellchecker/changelog.txt [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/EnchantSpell.php
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/PSpellShell.php
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/spellchecker/classes/utils/JSON.php
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/spellchecker/config.php [changed mode: 0755->0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/spellchecker/editor_plugin.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/spellchecker/includes/general.php
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/spellchecker/rpc.php
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/tabfocus/editor_plugin.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wordpress/css/content.css
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wordpress/editor_plugin.dev.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wordpress/img/embedded.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wordpress/img/help.gif [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wordpress/img/more.gif [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wordpress/img/toolbars.gif [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpdialogs/editor_plugin.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpdialogs/editor_plugin.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpdialogs/js/popup.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpdialogs/js/popup.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpdialogs/js/wpdialog.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpdialogs/js/wpdialog.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpeditimage/editimage.html
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.dev.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpfullscreen/css/wp-fullscreen.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.dev.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.js
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wplink/css/wplink-rtl.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wplink/css/wplink-rtl.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wplink/css/wplink.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wplink/css/wplink.dev.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wplink/editor_plugin.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wplink/editor_plugin.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wplink/img/toggle-arrow.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wplink/js/wplink.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/wplink/js/wplink.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/about.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/anchor.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/charmap.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/color_picker.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/editor_template.js
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/image.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/flash.gif [moved from Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/img/flash.gif with 100% similarity]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/fm.gif [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/icons.gif
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/iframe.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/pagebreak.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/quicktime.gif [moved from Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/img/quicktime.gif with 100% similarity]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/realmedia.gif [moved from Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/img/realmedia.gif with 100% similarity]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/sflogo.png [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/shockwave.gif [moved from Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/img/shockwave.gif with 100% similarity]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/trans.gif [moved from Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/img/trans.gif with 100% similarity]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/video.gif [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/windowsmedia.gif [moved from Websites/webkit.org/blog/wp-includes/js/tinymce/plugins/media/img/windowsmedia.gif with 100% similarity]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/img/wpicons.png [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/js/about.js
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/js/anchor.js
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/js/charmap.js
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/js/color_picker.js
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/js/image.js
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/js/link.js
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/js/source_editor.js
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/link.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/shortcuts.htm [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/default/content.css
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/default/dialog.css
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/default/ui.css
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/highcontrast/content.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/highcontrast/dialog.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/highcontrast/ui.css [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/content.css
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/dialog.css
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui.css
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui_black.css
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui_silver.css
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css
Websites/webkit.org/blog/wp-includes/js/tinymce/themes/advanced/source_editor.htm
Websites/webkit.org/blog/wp-includes/js/tinymce/tiny_mce.js
Websites/webkit.org/blog/wp-includes/js/tinymce/tiny_mce_popup.js
Websites/webkit.org/blog/wp-includes/js/tinymce/utils/editable_selects.js
Websites/webkit.org/blog/wp-includes/js/tinymce/utils/form_utils.js
Websites/webkit.org/blog/wp-includes/js/tinymce/utils/mctabs.js
Websites/webkit.org/blog/wp-includes/js/tinymce/utils/validate.js
Websites/webkit.org/blog/wp-includes/js/tinymce/wp-mce-help.php
Websites/webkit.org/blog/wp-includes/js/tinymce/wp-tinymce.js [deleted file]
Websites/webkit.org/blog/wp-includes/js/tinymce/wp-tinymce.js.gz
Websites/webkit.org/blog/wp-includes/js/tinymce/wp-tinymce.php
Websites/webkit.org/blog/wp-includes/js/wp-ajax-response.dev.js
Websites/webkit.org/blog/wp-includes/js/wp-ajax-response.js
Websites/webkit.org/blog/wp-includes/js/wp-list-revisions.dev.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/wp-list-revisions.js [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/js/wp-lists.dev.js
Websites/webkit.org/blog/wp-includes/js/wp-lists.js
Websites/webkit.org/blog/wp-includes/kses.php
Websites/webkit.org/blog/wp-includes/l10n.php
Websites/webkit.org/blog/wp-includes/link-template.php
Websites/webkit.org/blog/wp-includes/load.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/locale.php
Websites/webkit.org/blog/wp-includes/media.php
Websites/webkit.org/blog/wp-includes/meta.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/ms-blogs.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/ms-default-constants.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/ms-default-filters.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/ms-deprecated.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/ms-files.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/ms-functions.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/ms-load.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/ms-settings.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/nav-menu-template.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/nav-menu.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/pluggable-deprecated.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/pluggable.php
Websites/webkit.org/blog/wp-includes/plugin.php
Websites/webkit.org/blog/wp-includes/pomo/entry.php
Websites/webkit.org/blog/wp-includes/pomo/mo.php
Websites/webkit.org/blog/wp-includes/pomo/po.php
Websites/webkit.org/blog/wp-includes/pomo/streams.php
Websites/webkit.org/blog/wp-includes/pomo/translations.php
Websites/webkit.org/blog/wp-includes/post-template.php
Websites/webkit.org/blog/wp-includes/post-thumbnail-template.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/post.php
Websites/webkit.org/blog/wp-includes/query.php
Websites/webkit.org/blog/wp-includes/registration-functions.php
Websites/webkit.org/blog/wp-includes/registration.php
Websites/webkit.org/blog/wp-includes/rewrite.php
Websites/webkit.org/blog/wp-includes/rss-functions.php
Websites/webkit.org/blog/wp-includes/rss.php
Websites/webkit.org/blog/wp-includes/script-loader.php
Websites/webkit.org/blog/wp-includes/shortcodes.php
Websites/webkit.org/blog/wp-includes/streams.php [deleted file]
Websites/webkit.org/blog/wp-includes/taxonomy.php
Websites/webkit.org/blog/wp-includes/template-loader.php
Websites/webkit.org/blog/wp-includes/theme-compat/comments-popup.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/theme-compat/comments.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/theme-compat/footer.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/theme-compat/header.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/theme-compat/sidebar.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-includes/theme.php
Websites/webkit.org/blog/wp-includes/update.php
Websites/webkit.org/blog/wp-includes/user.php
Websites/webkit.org/blog/wp-includes/vars.php
Websites/webkit.org/blog/wp-includes/version.php
Websites/webkit.org/blog/wp-includes/widgets.php
Websites/webkit.org/blog/wp-includes/wp-db.php
Websites/webkit.org/blog/wp-includes/wp-diff.php
Websites/webkit.org/blog/wp-links-opml.php
Websites/webkit.org/blog/wp-load.php
Websites/webkit.org/blog/wp-login.php
Websites/webkit.org/blog/wp-mail.php
Websites/webkit.org/blog/wp-pass.php
Websites/webkit.org/blog/wp-rdf.php
Websites/webkit.org/blog/wp-register.php
Websites/webkit.org/blog/wp-rss.php
Websites/webkit.org/blog/wp-rss2.php
Websites/webkit.org/blog/wp-signup.php [new file with mode: 0644]
Websites/webkit.org/blog/wp-trackback.php

index 39512ee..3250285 100644 (file)
@@ -1,3 +1,9 @@
+2011-11-14  Mark Rowe  <mrowe@apple.com>
+
+        Upgrade WordPress to v3.2.1.
+
+        * blog:
+
 2011-10-28  Dean Jackson  <dino@apple.com>
 
         Remove this horribly outdated file. It was showing up in
index d31195a..431a146 100644 (file)
@@ -1,8 +1,47 @@
+WordPress - Web publishing software\r
+\r
+Copyright 2011 by the contributors\r
+\r
+This program is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2 of the License, or\r
+(at your option) any later version.\r
+\r
+This program is distributed in the hope that it will be useful,\r
+but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+GNU General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with this program; if not, write to the Free Software\r
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
+\r
+This program incorporates work covered by the following copyright and\r
+permission notices:\r
+\r
+  b2 is (c) 2001, 2002 Michel Valdrighi - m@tidakada.com -\r
+  http://tidakada.com\r
+\r
+  Wherever third party code has been used, credit has been given in the code's\r
+  comments.\r
+\r
+  b2 is released under the GPL\r
+\r
+and\r
+\r
+  WordPress - Web publishing software\r
+\r
+  Copyright 2003-2010 by the contributors\r
+\r
+  WordPress is released under the GPL\r
+\r
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
+\r
                    GNU GENERAL PUBLIC LICENSE\r
                       Version 2, June 1991\r
 \r
- Copyright (C) 1989, 1991 Free Software Foundation, Inc. \r
             51 Franklin St, Fifth Floor, Boston, MA 02110, USA\r
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.\r
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA\r
 \r
  Everyone is permitted to copy and distribute verbatim copies\r
  of this license document, but changing it is not allowed.\r
@@ -279,3 +318,10 @@ POSSIBILITY OF SUCH DAMAGES.
 \r
                     END OF TERMS AND CONDITIONS\r
 \r
+\r
+WRITTEN OFFER\r
+\r
+The source code for any program binaries or compressed scripts that are\r
+included with WordPress can be freely obtained at the following URL:\r
+\r
+       http://wordpress.org/download/source/\r
diff --git a/Websites/webkit.org/blog/wp-activate.php b/Websites/webkit.org/blog/wp-activate.php
new file mode 100644 (file)
index 0000000..1ec4028
--- /dev/null
@@ -0,0 +1,102 @@
+<?php
+define( 'WP_INSTALLING', true );
+
+/** Sets up the WordPress Environment. */
+require( dirname(__FILE__) . '/wp-load.php' );
+
+require( './wp-blog-header.php' );
+
+if ( !is_multisite() ) {
+       wp_redirect( site_url( '/wp-login.php?action=register' ) );
+       die();
+}
+
+if ( is_object( $wp_object_cache ) )
+       $wp_object_cache->cache_enabled = false;
+
+do_action( 'activate_header' );
+
+function do_activate_header() {
+       do_action( 'activate_wp_head' );
+}
+add_action( 'wp_head', 'do_activate_header' );
+
+function wpmu_activate_stylesheet() {
+       ?>
+       <style type="text/css">
+               form { margin-top: 2em; }
+               #submit, #key { width: 90%; font-size: 24px; }
+               #language { margin-top: .5em; }
+               .error { background: #f66; }
+               span.h3 { padding: 0 8px; font-size: 1.3em; font-family: "Lucida Grande", Verdana, Arial, "Bitstream Vera Sans", sans-serif; font-weight: bold; color: #333; }
+       </style>
+       <?php
+}
+add_action( 'wp_head', 'wpmu_activate_stylesheet' );
+
+get_header();
+?>
+
+<div id="content" class="widecolumn">
+       <?php if ( empty($_GET['key']) && empty($_POST['key']) ) { ?>
+
+               <h2><?php _e('Activation Key Required') ?></h2>
+               <form name="activateform" id="activateform" method="post" action="<?php echo network_site_url('wp-activate.php'); ?>">
+                       <p>
+                           <label for="key"><?php _e('Activation Key:') ?></label>
+                           <br /><input type="text" name="key" id="key" value="" size="50" />
+                       </p>
+                       <p class="submit">
+                           <input id="submit" type="submit" name="Submit" class="submit" value="<?php esc_attr_e('Activate') ?>" />
+                       </p>
+               </form>
+
+       <?php } else {
+
+               $key = !empty($_GET['key']) ? $_GET['key'] : $_POST['key'];
+               $result = wpmu_activate_signup($key);
+               if ( is_wp_error($result) ) {
+                       if ( 'already_active' == $result->get_error_code() || 'blog_taken' == $result->get_error_code() ) {
+                           $signup = $result->get_error_data();
+                               ?>
+                               <h2><?php _e('Your account is now active!'); ?></h2>
+                               <?php
+                               echo '<p class="lead-in">';
+                               if ( $signup->domain . $signup->path == '' ) {
+                                       printf( __('Your account has been activated. You may now <a href="%1$s">log in</a> to the site using your chosen username of &#8220;%2$s&#8221;.  Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href="%4$s">reset your password</a>.'), network_site_url( 'wp-login.php', 'login' ), $signup->user_login, $signup->user_email, network_site_url( 'wp-login.php?action=lostpassword', 'login' ) );
+                               } else {
+                                       printf( __('Your site at <a href="%1$s">%2$s</a> is active. You may now log in to your site using your chosen username of &#8220;%3$s&#8221;.  Please check your email inbox at %4$s for your password and login instructions.  If you do not receive an email, please check your junk or spam folder.  If you still do not receive an email within an hour, you can <a href="%5$s">reset your password</a>.'), 'http://' . $signup->domain, $signup->domain, $signup->user_login, $signup->user_email, network_site_url( 'wp-login.php?action=lostpassword' ) );
+                               }
+                               echo '</p>';
+                       } else {
+                               ?>
+                               <h2><?php _e('An error occurred during the activation'); ?></h2>
+                               <?php
+                           echo '<p>'.$result->get_error_message().'</p>';
+                       }
+               } else {
+                       extract($result);
+                       $url = get_blogaddress_by_id( (int) $blog_id);
+                       $user = new WP_User( (int) $user_id);
+                       ?>
+                       <h2><?php _e('Your account is now active!'); ?></h2>
+
+                       <div id="signup-welcome">
+                               <p><span class="h3"><?php _e('Username:'); ?></span> <?php echo $user->user_login ?></p>
+                               <p><span class="h3"><?php _e('Password:'); ?></span> <?php echo $password; ?></p>
+                       </div>
+
+                       <?php if ( $url != network_home_url('', 'http') ) : ?>
+                               <p class="view"><?php printf( __('Your account is now activated. <a href="%1$s">View your site</a> or <a href="%2$s">Log in</a>'), $url, $url . 'wp-login.php' ); ?></p>
+                       <?php else: ?>
+                               <p class="view"><?php printf( __('Your account is now activated. <a href="%1$s">Log in</a> or go back to the <a href="%2$s">homepage</a>.' ), network_site_url('wp-login.php', 'login'), network_home_url() ); ?></p>
+                       <?php endif;
+               }
+       }
+       ?>
+</div>
+<script type="text/javascript">
+       var key_input = document.getElementById('key');
+       key_input && key_input.focus();
+</script>
+<?php get_footer(); ?>
\ No newline at end of file
index 7f04dd7..18a853b 100644 (file)
@@ -9,52 +9,84 @@
 /**
  * Executing AJAX process.
  *
- * @since unknown
+ * @since 2.1.0
  */
 define('DOING_AJAX', true);
 define('WP_ADMIN', true);
 
+if ( ! isset( $_REQUEST['action'] ) )
+       die('-1');
+
 require_once('../wp-load.php');
-require_once('includes/admin.php');
+
+require_once('./includes/admin.php');
 @header('Content-Type: text/html; charset=' . get_option('blog_charset'));
+send_nosniff_header();
 
 do_action('admin_init');
 
 if ( ! is_user_logged_in() ) {
 
-       if ( $_POST['action'] == 'autosave' ) {
+       if ( isset( $_POST['action'] ) && $_POST['action'] == 'autosave' ) {
                $id = isset($_POST['post_ID'])? (int) $_POST['post_ID'] : 0;
 
                if ( ! $id )
                        die('-1');
 
-               $message = sprintf( __('<strong>ALERT: You are logged out!</strong> Could not save draft. <a href="%s" target="blank">Please log in again.</a>'), wp_login_url() );
-                       $x = new WP_Ajax_Response( array(
-                               'what' => 'autosave',
-                               'id' => $id,
-                               'data' => $message
-                       ) );
-                       $x->send();
+               $message = sprintf( __('<strong>ALERT: You are logged out!</strong> Could not save draft. <a href="%s" target="_blank">Please log in again.</a>'), wp_login_url() );
+               $x = new WP_Ajax_Response( array(
+                       'what' => 'autosave',
+                       'id' => $id,
+                       'data' => $message
+               ) );
+               $x->send();
        }
 
-       if ( !empty( $_POST['action']) )
-               do_action( 'wp_ajax_nopriv_' . $_POST['action'] );
+       if ( !empty( $_REQUEST['action'] ) )
+               do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );
 
        die('-1');
 }
 
 if ( isset( $_GET['action'] ) ) :
 switch ( $action = $_GET['action'] ) :
-case 'ajax-tag-search' :
-       if ( !current_user_can( 'edit_posts' ) )
-               die('-1');
+case 'fetch-list' :
 
-       $s = $_GET['q']; // is this slashed already?
+       $list_class = $_GET['list_args']['class'];
+       check_ajax_referer( "fetch-list-$list_class", '_ajax_fetch_list_nonce' );
 
-       if ( isset($_GET['tax']) )
-               $taxonomy = sanitize_title($_GET['tax']);
-       else
+       $current_screen = (object) $_GET['list_args']['screen'];
+       //TODO fix this in a better way see #15336
+       $current_screen->is_network = 'false' === $current_screen->is_network ? false : true;
+       $current_screen->is_user = 'false' === $current_screen->is_user ? false : true;
+
+       define( 'WP_NETWORK_ADMIN', $current_screen->is_network );
+       define( 'WP_USER_ADMIN', $current_screen->is_user );
+
+       $wp_list_table = _get_list_table( $list_class );
+       if ( ! $wp_list_table )
+               die( '0' );
+
+       if ( ! $wp_list_table->ajax_user_can() )
+               die( '-1' );
+
+       $wp_list_table->ajax_response();
+
+       die( '0' );
+       break;
+case 'ajax-tag-search' :
+       if ( isset( $_GET['tax'] ) ) {
+               $taxonomy = sanitize_key( $_GET['tax'] );
+               $tax = get_taxonomy( $taxonomy );
+               if ( ! $tax )
+                       die( '0' );
+               if ( ! current_user_can( $tax->cap->assign_terms ) )
+                       die( '-1' );
+       } else {
                die('0');
+       }
+
+       $s = stripslashes( $_GET['q'] );
 
        if ( false !== strpos( $s, ',' ) ) {
                $s = explode( ',', $s );
@@ -64,7 +96,7 @@ case 'ajax-tag-search' :
        if ( strlen( $s ) < 2 )
                die; // require 2 chars for matching
 
-       $results = $wpdb->get_col( "SELECT t.name FROM $wpdb->term_taxonomy AS tt INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = '$taxonomy' AND t.name LIKE ('%" . $s . "%')" );
+       $results = $wpdb->get_col( $wpdb->prepare( "SELECT t.name FROM $wpdb->term_taxonomy AS tt INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s AND t.name LIKE (%s)", $taxonomy, '%' . like_escape( $s ) . '%' ) );
 
        echo join( $results, "\n" );
        die;
@@ -91,10 +123,12 @@ case 'wp-compression-test' :
                        echo $test_str;
                        die;
                 } elseif ( 2 == $_GET['test'] ) {
-                       if ( false !== strpos( strtolower($_SERVER['HTTP_ACCEPT_ENCODING']), 'deflate') && function_exists('gzdeflate') && ! $force_gzip ) {
+                       if ( !isset($_SERVER['HTTP_ACCEPT_ENCODING']) )
+                               die('-1');
+                       if ( false !== stripos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'deflate') && function_exists('gzdeflate') && ! $force_gzip ) {
                                header('Content-Encoding: deflate');
                                $out = gzdeflate( $test_str, 1 );
-                       } elseif ( false !== strpos( strtolower($_SERVER['HTTP_ACCEPT_ENCODING']), 'gzip') && function_exists('gzencode') ) {
+                       } elseif ( false !== stripos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && function_exists('gzencode') ) {
                                header('Content-Encoding: gzip');
                                $out = gzencode( $test_str, 1 );
                        } else {
@@ -111,6 +145,33 @@ case 'wp-compression-test' :
 
        die('0');
        break;
+case 'imgedit-preview' :
+       $post_id = intval($_GET['postid']);
+       if ( empty($post_id) || !current_user_can('edit_post', $post_id) )
+               die('-1');
+
+       check_ajax_referer( "image_editor-$post_id" );
+
+       include_once( ABSPATH . 'wp-admin/includes/image-edit.php' );
+       if ( ! stream_preview_image($post_id) )
+               die('-1');
+
+       die();
+       break;
+case 'menu-quick-search':
+       if ( ! current_user_can( 'edit_theme_options' ) )
+               die('-1');
+
+       require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
+
+       _wp_ajax_menu_quick_search( $_REQUEST );
+
+       exit;
+       break;
+case 'oembed-cache' :
+       $return = ( $wp_embed->cache_oembed( $_GET['post'] ) ) ? '1' : '0';
+       die( $return );
+       break;
 default :
        do_action( 'wp_ajax_' . $_GET['action'] );
        die('0');
@@ -128,7 +189,7 @@ endif;
  * @param int $comment_id
  * @return die
  */
-function _wp_ajax_delete_comment_response( $comment_id ) {
+function _wp_ajax_delete_comment_response( $comment_id, $delta = -1 ) {
        $total = (int) @$_POST['_total'];
        $per_page = (int) @$_POST['_per_page'];
        $page = (int) @$_POST['_page'];
@@ -137,40 +198,39 @@ function _wp_ajax_delete_comment_response( $comment_id ) {
        if ( !$total || !$per_page || !$page || !$url )
                die( (string) time() );
 
-       if ( --$total < 0 ) // Take the total from POST and decrement it (since we just deleted one)
+       $total += $delta;
+       if ( $total < 0 )
                $total = 0;
 
-       if ( 0 != $total % $per_page && 1 != mt_rand( 1, $per_page ) ) // Only do the expensive stuff on a page-break, and about 1 other time per page
-               die( (string) time() );
+       // Only do the expensive stuff on a page-break, and about 1 other time per page
+       if ( 0 == $total % $per_page || 1 == mt_rand( 1, $per_page ) ) {
+               $post_id = 0;
+               $status = 'total_comments'; // What type of comment count are we looking for?
+               $parsed = parse_url( $url );
+               if ( isset( $parsed['query'] ) ) {
+                       parse_str( $parsed['query'], $query_vars );
+                       if ( !empty( $query_vars['comment_status'] ) )
+                               $status = $query_vars['comment_status'];
+                       if ( !empty( $query_vars['p'] ) )
+                               $post_id = (int) $query_vars['p'];
+               }
 
-       $status = 'total_comments'; // What type of comment count are we looking for?
-       $parsed = parse_url( $url );
-       if ( isset( $parsed['query'] ) ) {
-               parse_str( $parsed['query'], $query_vars );
-               if ( !empty( $query_vars['comment_status'] ) )
-                       $status = $query_vars['comment_status'];
+               $comment_count = wp_count_comments($post_id);
+
+               if ( isset( $comment_count->$status ) ) // We're looking for a known type of comment count
+                       $total = $comment_count->$status;
+                       // else use the decremented value from above
        }
 
-       $comment_count = wp_count_comments();
        $time = time(); // The time since the last comment count
 
-       if ( isset( $comment_count->$status ) ) // We're looking for a known type of comment count
-               $total = $comment_count->$status;
-       // else use the decremented value from above
-
-       $page_links = paginate_links( array(
-               'base' => add_query_arg( 'apage', '%#%', $url ),
-               'format' => '',
-               'prev_text' => __('&laquo;'),
-               'next_text' => __('&raquo;'),
-               'total' => ceil($total / $per_page),
-               'current' => $page
-       ) );
        $x = new WP_Ajax_Response( array(
                'what' => 'comment',
                'id' => $comment_id, // here for completeness - not used
                'supplemental' => array(
-                       'pageLinks' => $page_links,
+                       'total_items_i18n' => sprintf( _n( '1 item', '%s items', $total ), number_format_i18n( $total ) ),
+                       'total_pages' => ceil( $total / $per_page ),
+                       'total_pages_i18n' => number_format_i18n( ceil( $total / $per_page ) ),
                        'total' => $total,
                        'time' => $time
                )
@@ -178,95 +238,145 @@ function _wp_ajax_delete_comment_response( $comment_id ) {
        $x->send();
 }
 
+function _wp_ajax_add_hierarchical_term() {
+       $action = $_POST['action'];
+       $taxonomy = get_taxonomy(substr($action, 4));
+       check_ajax_referer( $action, '_ajax_nonce-add-' . $taxonomy->name );
+       if ( !current_user_can( $taxonomy->cap->edit_terms ) )
+               die('-1');
+       $names = explode(',', $_POST['new'.$taxonomy->name]);
+       $parent = isset($_POST['new'.$taxonomy->name.'_parent']) ? (int) $_POST['new'.$taxonomy->name.'_parent'] : 0;
+       if ( 0 > $parent )
+               $parent = 0;
+       if ( $taxonomy->name == 'category' )
+               $post_category = isset($_POST['post_category']) ? (array) $_POST['post_category'] : array();
+       else
+               $post_category = ( isset($_POST['tax_input']) && isset($_POST['tax_input'][$taxonomy->name]) ) ? (array) $_POST['tax_input'][$taxonomy->name] : array();
+       $checked_categories = array_map( 'absint', (array) $post_category );
+       $popular_ids = wp_popular_terms_checklist($taxonomy->name, 0, 10, false);
+
+       foreach ( $names as $cat_name ) {
+               $cat_name = trim($cat_name);
+               $category_nicename = sanitize_title($cat_name);
+               if ( '' === $category_nicename )
+                       continue;
+               if ( !($cat_id = term_exists($cat_name, $taxonomy->name, $parent)) ) {
+                       $new_term = wp_insert_term($cat_name, $taxonomy->name, array('parent' => $parent));
+                       $cat_id = $new_term['term_id'];
+               }
+               $checked_categories[] = $cat_id;
+               if ( $parent ) // Do these all at once in a second
+                       continue;
+               $category = get_term( $cat_id, $taxonomy->name );
+               ob_start();
+                       wp_terms_checklist( 0, array( 'taxonomy' => $taxonomy->name, 'descendants_and_self' => $cat_id, 'selected_cats' => $checked_categories, 'popular_cats' => $popular_ids ));
+               $data = ob_get_contents();
+               ob_end_clean();
+               $add = array(
+                       'what' => $taxonomy->name,
+                       'id' => $cat_id,
+                       'data' => str_replace( array("\n", "\t"), '', $data),
+                       'position' => -1
+               );
+       }
+
+       if ( $parent ) { // Foncy - replace the parent and all its children
+               $parent = get_term( $parent, $taxonomy->name );
+               $term_id = $parent->term_id;
+
+               while ( $parent->parent ) { // get the top parent
+                       $parent = &get_term( $parent->parent, $taxonomy->name );
+                       if ( is_wp_error( $parent ) )
+                               break;
+                       $term_id = $parent->term_id;
+               }
+
+               ob_start();
+                       wp_terms_checklist( 0, array('taxonomy' => $taxonomy->name, 'descendants_and_self' => $term_id, 'selected_cats' => $checked_categories, 'popular_cats' => $popular_ids));
+               $data = ob_get_contents();
+               ob_end_clean();
+               $add = array(
+                       'what' => $taxonomy->name,
+                       'id' => $term_id,
+                       'data' => str_replace( array("\n", "\t"), '', $data),
+                       'position' => -1
+               );
+       }
+
+       ob_start();
+               wp_dropdown_categories( array(
+                       'taxonomy' => $taxonomy->name, 'hide_empty' => 0, 'name' => 'new'.$taxonomy->name.'_parent', 'orderby' => 'name',
+                       'hierarchical' => 1, 'show_option_none' => '&mdash; '.$taxonomy->labels->parent_item.' &mdash;'
+               ) );
+       $sup = ob_get_contents();
+       ob_end_clean();
+       $add['supplemental'] = array( 'newcat_parent' => $sup );
+
+       $x = new WP_Ajax_Response( $add );
+       $x->send();
+}
+
 $id = isset($_POST['id'])? (int) $_POST['id'] : 0;
 switch ( $action = $_POST['action'] ) :
 case 'delete-comment' : // On success, die with time() instead of 1
-       check_ajax_referer( "delete-comment_$id" );
        if ( !$comment = get_comment( $id ) )
                die( (string) time() );
        if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
                die('-1');
 
-       if ( isset($_POST['spam']) && 1 == $_POST['spam'] ) {
-               if ( 'spam' == wp_get_comment_status( $comment->comment_ID ) )
+       check_ajax_referer( "delete-comment_$id" );
+       $status = wp_get_comment_status( $comment->comment_ID );
+
+       $delta = -1;
+       if ( isset($_POST['trash']) && 1 == $_POST['trash'] ) {
+               if ( 'trash' == $status )
                        die( (string) time() );
-               $r = wp_set_comment_status( $comment->comment_ID, 'spam' );
-       } else {
+               $r = wp_trash_comment( $comment->comment_ID );
+       } elseif ( isset($_POST['untrash']) && 1 == $_POST['untrash'] ) {
+               if ( 'trash' != $status )
+                       die( (string) time() );
+               $r = wp_untrash_comment( $comment->comment_ID );
+               if ( ! isset( $_POST['comment_status'] ) || $_POST['comment_status'] != 'trash' ) // undo trash, not in trash
+                       $delta = 1;
+       } elseif ( isset($_POST['spam']) && 1 == $_POST['spam'] ) {
+               if ( 'spam' == $status )
+                       die( (string) time() );
+               $r = wp_spam_comment( $comment->comment_ID );
+       } elseif ( isset($_POST['unspam']) && 1 == $_POST['unspam'] ) {
+               if ( 'spam' != $status )
+                       die( (string) time() );
+               $r = wp_unspam_comment( $comment->comment_ID );
+               if ( ! isset( $_POST['comment_status'] ) || $_POST['comment_status'] != 'spam' ) // undo spam, not in spam
+                       $delta = 1;
+       } elseif ( isset($_POST['delete']) && 1 == $_POST['delete'] ) {
                $r = wp_delete_comment( $comment->comment_ID );
+       } else {
+               die('-1');
        }
+
        if ( $r ) // Decide if we need to send back '1' or a more complicated response including page links and comment counts
-               _wp_ajax_delete_comment_response( $comment->comment_ID );
+               _wp_ajax_delete_comment_response( $comment->comment_ID, $delta );
        die( '0' );
        break;
-case 'delete-cat' :
-       check_ajax_referer( "delete-category_$id" );
-       if ( !current_user_can( 'manage_categories' ) )
-               die('-1');
+case 'delete-tag' :
+       $tag_id = (int) $_POST['tag_ID'];
+       check_ajax_referer( "delete-tag_$tag_id" );
 
-       $cat = get_category( $id );
-       if ( !$cat || is_wp_error( $cat ) )
-               die('1');
+       $taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
+       $tax = get_taxonomy($taxonomy);
 
-       if ( wp_delete_category( $id ) )
-               die('1');
-       else
-               die('0');
-       break;
-case 'delete-tag' :
-       check_ajax_referer( "delete-tag_$id" );
-       if ( !current_user_can( 'manage_categories' ) )
+       if ( !current_user_can( $tax->cap->delete_terms ) )
                die('-1');
 
-       if ( !empty($_POST['taxonomy']) )
-               $taxonomy = $_POST['taxonomy'];
-       else
-               $taxonomy = 'post_tag';
-
-       $tag = get_term( $id, $taxonomy );
+       $tag = get_term( $tag_id, $taxonomy );
        if ( !$tag || is_wp_error( $tag ) )
                die('1');
 
-       if ( wp_delete_term($id, $taxonomy))
+       if ( wp_delete_term($tag_id, $taxonomy))
                die('1');
        else
                die('0');
        break;
-case 'delete-link-cat' :
-       check_ajax_referer( "delete-link-category_$id" );
-       if ( !current_user_can( 'manage_categories' ) )
-               die('-1');
-
-       $cat = get_term( $id, 'link_category' );
-       if ( !$cat || is_wp_error( $cat ) )
-               die('1');
-
-       $cat_name = get_term_field('name', $id, 'link_category');
-
-       $default = get_option('default_link_category');
-
-       // Don't delete the default cats.
-       if ( $id == $default ) {
-               $x = new WP_AJAX_Response( array(
-                       'what' => 'link-cat',
-                       'id' => $id,
-                       'data' => new WP_Error( 'default-link-cat', sprintf(__("Can&#8217;t delete the <strong>%s</strong> category: this is the default one"), $cat_name) )
-               ) );
-               $x->send();
-       }
-
-       $r = wp_delete_term($id, 'link_category', array('default' => $default));
-       if ( !$r )
-               die('0');
-       if ( is_wp_error($r) ) {
-               $x = new WP_AJAX_Response( array(
-                       'what' => 'link-cat',
-                       'id' => $id,
-                       'data' => $r
-               ) );
-               $x->send();
-       }
-       die('1');
-       break;
 case 'delete-link' :
        check_ajax_referer( "delete-bookmark_$id" );
        if ( !current_user_can( 'manage_links' ) )
@@ -286,7 +396,7 @@ case 'delete-meta' :
        if ( !$meta = get_post_meta_by_id( $id ) )
                die('1');
 
-       if ( !current_user_can( 'edit_post', $meta->post_id ) )
+       if ( !current_user_can( 'edit_post', $meta->post_id ) || is_protected_meta( $meta->meta_key ) )
                die('-1');
        if ( delete_meta( $meta->meta_id ) )
                die('1');
@@ -305,6 +415,25 @@ case 'delete-post' :
        else
                die('0');
        break;
+case 'trash-post' :
+case 'untrash-post' :
+       check_ajax_referer( "{$action}_$id" );
+       if ( !current_user_can( 'delete_post', $id ) )
+               die('-1');
+
+       if ( !get_post( $id ) )
+               die('1');
+
+       if ( 'trash-post' == $action )
+               $done = wp_trash_post( $id );
+       else
+               $done = wp_untrash_post( $id );
+
+       if ( $done )
+               die('1');
+
+       die('0');
+       break;
 case 'delete-page' :
        check_ajax_referer( "{$action}_$id" );
        if ( !current_user_can( 'delete_page', $id ) )
@@ -328,23 +457,19 @@ case 'dim-comment' : // On success, die with time() instead of 1
                $x->send();
        }
 
-       if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
-               die('-1');
-       if ( !current_user_can( 'moderate_comments' ) )
+       if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) && !current_user_can( 'moderate_comments' ) )
                die('-1');
 
        $current = wp_get_comment_status( $comment->comment_ID );
        if ( $_POST['new'] == $current )
                die( (string) time() );
 
-       $r = 0;
-       if ( in_array( $current, array( 'unapproved', 'spam' ) ) ) {
-               check_ajax_referer( "approve-comment_$id" );
+       check_ajax_referer( "approve-comment_$id" );
+       if ( in_array( $current, array( 'unapproved', 'spam' ) ) )
                $result = wp_set_comment_status( $comment->comment_ID, 'approve', true );
-       } else {
-               check_ajax_referer( "unapprove-comment_$id" );
+       else
                $result = wp_set_comment_status( $comment->comment_ID, 'hold', true );
-       }
+
        if ( is_wp_error($result) ) {
                $x = new WP_Ajax_Response( array(
                        'what' => 'comment',
@@ -357,58 +482,6 @@ case 'dim-comment' : // On success, die with time() instead of 1
        _wp_ajax_delete_comment_response( $comment->comment_ID );
        die( '0' );
        break;
-case 'add-category' : // On the Fly
-       check_ajax_referer( $action );
-       if ( !current_user_can( 'manage_categories' ) )
-               die('-1');
-       $names = explode(',', $_POST['newcat']);
-       if ( 0 > $parent = (int) $_POST['newcat_parent'] )
-               $parent = 0;
-       $post_category = isset($_POST['post_category'])? (array) $_POST['post_category'] : array();
-       $checked_categories = array_map( 'absint', (array) $post_category );
-       $popular_ids = isset( $_POST['popular_ids'] ) ?
-                       array_map( 'absint', explode( ',', $_POST['popular_ids'] ) ) :
-                       false;
-
-       $x = new WP_Ajax_Response();
-       foreach ( $names as $cat_name ) {
-               $cat_name = trim($cat_name);
-               $category_nicename = sanitize_title($cat_name);
-               if ( '' === $category_nicename )
-                       continue;
-               $cat_id = wp_create_category( $cat_name, $parent );
-               $checked_categories[] = $cat_id;
-               if ( $parent ) // Do these all at once in a second
-                       continue;
-               $category = get_category( $cat_id );
-               ob_start();
-                       wp_category_checklist( 0, $cat_id, $checked_categories, $popular_ids );
-               $data = ob_get_contents();
-               ob_end_clean();
-               $x->add( array(
-                       'what' => 'category',
-                       'id' => $cat_id,
-                       'data' => $data,
-                       'position' => -1
-               ) );
-       }
-       if ( $parent ) { // Foncy - replace the parent and all its children
-               $parent = get_category( $parent );
-               ob_start();
-                       dropdown_categories( 0, $parent );
-               $data = ob_get_contents();
-               ob_end_clean();
-               $x->add( array(
-                       'what' => 'category',
-                       'id' => $parent->term_id,
-                       'old_id' => $parent->term_id,
-                       'data' => $data,
-                       'position' => -1
-               ) );
-
-       }
-       $x->send();
-       break;
 case 'add-link-category' : // On the Fly
        check_ajax_referer( $action );
        if ( !current_user_can( 'manage_categories' ) )
@@ -420,7 +493,7 @@ case 'add-link-category' : // On the Fly
                $slug = sanitize_title($cat_name);
                if ( '' === $slug )
                        continue;
-               if ( !$cat_id = is_term( $cat_name, 'link_category' ) ) {
+               if ( !$cat_id = term_exists( $cat_name, 'link_category' ) ) {
                        $cat_id = wp_insert_term( $cat_name, 'link_category' );
                }
                $cat_id = $cat_id['term_id'];
@@ -434,153 +507,77 @@ case 'add-link-category' : // On the Fly
        }
        $x->send();
        break;
-case 'add-cat' : // From Manage->Categories
-       check_ajax_referer( 'add-category' );
-       if ( !current_user_can( 'manage_categories' ) )
+case 'add-tag' :
+       check_ajax_referer( 'add-tag', '_wpnonce_add-tag' );
+       $post_type = !empty($_POST['post_type']) ? $_POST['post_type'] : 'post';
+       $taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
+       $tax = get_taxonomy($taxonomy);
+
+       if ( !current_user_can( $tax->cap->edit_terms ) )
                die('-1');
 
-       if ( '' === trim($_POST['cat_name']) ) {
-               $x = new WP_Ajax_Response( array(
-                       'what' => 'cat',
-                       'id' => new WP_Error( 'cat_name', __('You did not enter a category name.') )
-               ) );
-               $x->send();
-       }
+       $x = new WP_Ajax_Response();
 
-       if ( category_exists( trim( $_POST['cat_name'] ), $_POST['category_parent'] ) ) {
-               $x = new WP_Ajax_Response( array(
-                       'what' => 'cat',
-                       'id' => new WP_Error( 'cat_exists', __('The category you are trying to create already exists.'), array( 'form-field' => 'cat_name' ) ),
-               ) );
-               $x->send();
-       }
+       $tag = wp_insert_term($_POST['tag-name'], $taxonomy, $_POST );
 
-       $cat = wp_insert_category( $_POST, true );
+       if ( !$tag || is_wp_error($tag) || (!$tag = get_term( $tag['term_id'], $taxonomy )) ) {
+               $message = __('An error has occurred. Please reload the page and try again.');
+               if ( is_wp_error($tag) && $tag->get_error_message() )
+                       $message = $tag->get_error_message();
 
-       if ( is_wp_error($cat) ) {
-               $x = new WP_Ajax_Response( array(
-                       'what' => 'cat',
-                       'id' => $cat
+               $x->add( array(
+                       'what' => 'taxonomy',
+                       'data' => new WP_Error('error', $message )
                ) );
                $x->send();
        }
 
-       if ( !$cat || (!$cat = get_category( $cat )) )
-               die('0');
+       set_current_screen( $_POST['screen'] );
 
-       $level = 0;
-       $cat_full_name = $cat->name;
-       $_cat = $cat;
-       while ( $_cat->parent ) {
-               $_cat = get_category( $_cat->parent );
-               $cat_full_name = $_cat->name . ' &#8212; ' . $cat_full_name;
-               $level++;
-       }
-       $cat_full_name = esc_attr($cat_full_name);
+       $wp_list_table = _get_list_table('WP_Terms_List_Table');
 
-       $x = new WP_Ajax_Response( array(
-               'what' => 'cat',
-               'id' => $cat->term_id,
-               'position' => -1,
-               'data' => _cat_row( $cat, $level, $cat_full_name ),
-               'supplemental' => array('name' => $cat_full_name, 'show-link' => sprintf(__( 'Category <a href="#%s">%s</a> added' ), "cat-$cat->term_id", $cat_full_name))
-       ) );
-       $x->send();
-       break;
-case 'add-link-cat' : // From Blogroll -> Categories
-       check_ajax_referer( 'add-link-category' );
-       if ( !current_user_can( 'manage_categories' ) )
-               die('-1');
-
-       if ( '' === trim($_POST['name']) ) {
-               $x = new WP_Ajax_Response( array(
-                       'what' => 'link-cat',
-                       'id' => new WP_Error( 'name', __('You did not enter a category name.') )
-               ) );
-               $x->send();
-       }
-
-       $r = wp_insert_term($_POST['name'], 'link_category', $_POST );
-       if ( is_wp_error( $r ) ) {
-               $x = new WP_AJAX_Response( array(
-                       'what' => 'link-cat',
-                       'id' => $r
-               ) );
-               $x->send();
+       $level = 0;
+       if ( is_taxonomy_hierarchical($taxonomy) ) {
+               $level = count( get_ancestors( $tag->term_id, $taxonomy ) );
+               ob_start();
+               $wp_list_table->single_row( $tag, $level );
+               $noparents = ob_get_clean();
        }
 
-       extract($r, EXTR_SKIP);
-
-       if ( !$link_cat = link_cat_row( $term_id ) )
-               die('0');
-
-       $x = new WP_Ajax_Response( array(
-               'what' => 'link-cat',
-               'id' => $term_id,
-               'position' => -1,
-               'data' => $link_cat
-       ) );
-       $x->send();
-       break;
-case 'add-tag' : // From Manage->Tags
-       check_ajax_referer( 'add-tag' );
-       if ( !current_user_can( 'manage_categories' ) )
-               die('-1');
+       ob_start();
+       $wp_list_table->single_row( $tag );
+       $parents = ob_get_clean();
 
-       if ( '' === trim($_POST['name']) ) {
-               $x = new WP_Ajax_Response( array(
-                       'what' => 'tag',
-                       'id' => new WP_Error( 'name', __('You did not enter a tag name.') )
+       $x->add( array(
+               'what' => 'taxonomy',
+               'supplemental' => compact('parents', 'noparents')
                ) );
-               $x->send();
-       }
-
-       if ( !empty($_POST['taxonomy']) )
-               $taxonomy = $_POST['taxonomy'];
-       else
-               $taxonomy = 'post_tag';
-
-       $tag = wp_insert_term($_POST['name'], $taxonomy, $_POST );
-
-       if ( is_wp_error($tag) ) {
-               $x = new WP_Ajax_Response( array(
-                       'what' => 'tag',
-                       'id' => $tag
+       $x->add( array(
+               'what' => 'term',
+               'position' => $level,
+               'supplemental' => (array) $tag
                ) );
-               $x->send();
-       }
-
-       if ( !$tag || (!$tag = get_term( $tag['term_id'], $taxonomy )) )
-               die('0');
-
-       $tag_full_name = $tag->name;
-       $tag_full_name = esc_attr($tag_full_name);
-
-       $x = new WP_Ajax_Response( array(
-               'what' => 'tag',
-               'id' => $tag->term_id,
-               'position' => '-1',
-               'data' => _tag_row( $tag, '', $taxonomy ),
-               'supplemental' => array('name' => $tag_full_name, 'show-link' => sprintf(__( 'Tag <a href="#%s">%s</a> added' ), "tag-$tag->term_id", $tag_full_name))
-       ) );
        $x->send();
        break;
 case 'get-tagcloud' :
-       if ( !current_user_can( 'edit_posts' ) )
-               die('-1');
-
-       if ( isset($_POST['tax']) )
-               $taxonomy = sanitize_title($_POST['tax']);
-       else
+       if ( isset( $_POST['tax'] ) ) {
+               $taxonomy = sanitize_key( $_POST['tax'] );
+               $tax = get_taxonomy( $taxonomy );
+               if ( ! $tax )
+                       die( '0' );
+               if ( ! current_user_can( $tax->cap->assign_terms ) )
+                       die( '-1' );
+       } else {
                die('0');
+       }
 
        $tags = get_terms( $taxonomy, array( 'number' => 45, 'orderby' => 'count', 'order' => 'DESC' ) );
 
        if ( empty( $tags ) )
-               die( __('No tags found!') );
+               die( isset( $tax->no_tagcloud ) ? $tax->no_tagcloud : __('No tags found!') );
 
-       if ( is_wp_error($tags) )
-               die($tags->get_error_message());
+       if ( is_wp_error( $tags ) )
+               die( $tags->get_error_message() );
 
        foreach ( $tags as $key => $tag ) {
                $tags[ $key ]->link = '#';
@@ -597,66 +594,30 @@ case 'get-tagcloud' :
 
        exit;
        break;
-case 'add-comment' :
-       check_ajax_referer( $action );
-       if ( !current_user_can( 'edit_post', $id ) )
-               die('-1');
-       $search = isset($_POST['s']) ? $_POST['s'] : false;
-       $status = isset($_POST['comment_status']) ? $_POST['comment_status'] : 'all';
-       $per_page = isset($_POST['per_page']) ?  (int) $_POST['per_page'] + 8 : 28;
-       $start = isset($_POST['page']) ? ( intval($_POST['page']) * $per_page ) -1 : $per_page - 1;
-       if ( 1 > $start )
-               $start = 27;
-
-       $mode = isset($_POST['mode']) ? $_POST['mode'] : 'detail';
-       $p = isset($_POST['p']) ? $_POST['p'] : 0;
-       $comment_type = isset($_POST['comment_type']) ? $_POST['comment_type'] : '';
-       list($comments, $total) = _wp_get_comment_list( $status, $search, $start, 1, $p, $comment_type );
-
-       if ( get_option('show_avatars') )
-               add_filter( 'comment_author', 'floated_admin_avatar' );
-
-       if ( !$comments )
-               die('1');
-       $x = new WP_Ajax_Response();
-       foreach ( (array) $comments as $comment ) {
-               get_comment( $comment );
-               ob_start();
-                       _wp_comment_row( $comment->comment_ID, $mode, $status, true, true );
-                       $comment_list_item = ob_get_contents();
-               ob_end_clean();
-               $x->add( array(
-                       'what' => 'comment',
-                       'id' => $comment->comment_ID,
-                       'data' => $comment_list_item
-               ) );
-       }
-       $x->send();
-       break;
 case 'get-comments' :
        check_ajax_referer( $action );
 
-       $post_ID = (int) $_POST['post_ID'];
-       if ( !current_user_can( 'edit_post', $post_ID ) )
-               die('-1');
+       set_current_screen( 'edit-comments' );
 
-       $start = isset($_POST['start']) ? intval($_POST['start']) : 0;
-       $num = isset($_POST['num']) ? intval($_POST['num']) : 10;
+       $wp_list_table = _get_list_table('WP_Post_Comments_List_Table');
 
-       list($comments, $total) = _wp_get_comment_list( false, false, $start, $num, $post_ID );
+       if ( !current_user_can( 'edit_post', $post_id ) )
+               die('-1');
+
+       $wp_list_table->prepare_items();
 
-       if ( !$comments )
+       if ( !$wp_list_table->has_items() )
                die('1');
 
-       $comment_list_item = '';
        $x = new WP_Ajax_Response();
-       foreach ( (array) $comments as $comment ) {
+       ob_start();
+       foreach ( $wp_list_table->items as $comment ) {
                get_comment( $comment );
-               ob_start();
-                       _wp_comment_row( $comment->comment_ID, 'single', false, false );
-                       $comment_list_item .= ob_get_contents();
-               ob_end_clean();
+               $wp_list_table->single_row( $comment );
        }
+       $comment_list_item = ob_get_contents();
+       ob_end_clean();
+
        $x->add( array(
                'what' => 'comments',
                'data' => $comment_list_item
@@ -664,7 +625,9 @@ case 'get-comments' :
        $x->send();
        break;
 case 'replyto-comment' :
-       check_ajax_referer( $action );
+       check_ajax_referer( $action, '_ajax_nonce-replyto-comment' );
+
+       set_current_screen( 'edit-comments' );
 
        $comment_post_ID = (int) $_POST['comment_post_ID'];
        if ( !current_user_can( 'edit_post', $comment_post_ID ) )
@@ -674,7 +637,7 @@ case 'replyto-comment' :
 
        if ( empty($status) )
                die('1');
-       elseif ( in_array($status, array('draft', 'pending') ) )
+       elseif ( in_array($status, array('draft', 'pending', 'trash') ) )
                die( __('Error: you are replying to a comment on a draft post.') );
 
        $user = wp_get_current_user();
@@ -697,43 +660,59 @@ case 'replyto-comment' :
                die( __('Error: please type a comment.') );
 
        $comment_parent = absint($_POST['comment_ID']);
+       $comment_auto_approved = false;
        $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');
 
        $comment_id = wp_new_comment( $commentdata );
        $comment = get_comment($comment_id);
        if ( ! $comment ) die('1');
 
-       $modes = array( 'single', 'detail', 'dashboard' );
-       $mode = isset($_POST['mode']) && in_array( $_POST['mode'], $modes ) ? $_POST['mode'] : 'detail';
-       $position = ( isset($_POST['position']) && (int) $_POST['position']) ? (int) $_POST['position'] : '-1';
-       $checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
+       $position = ( isset($_POST['position']) && (int) $_POST['position'] ) ? (int) $_POST['position'] : '-1';
 
-       if ( get_option('show_avatars') && 'single' != $mode )
-               add_filter( 'comment_author', 'floated_admin_avatar' );
 
-       $x = new WP_Ajax_Response();
+       // automatically approve parent comment
+       if ( !empty($_POST['approve_parent']) ) {
+               $parent = get_comment( $comment_parent );
+
+               if ( $parent && $parent->comment_approved === '0' && $parent->comment_post_ID == $comment_post_ID ) {
+                       if ( wp_set_comment_status( $parent->comment_ID, 'approve' ) )
+                               $comment_auto_approved = true;
+               }
+       }
 
        ob_start();
-               if ( 'dashboard' == $mode ) {
+               if ( 'dashboard' == $_REQUEST['mode'] ) {
                        require_once( ABSPATH . 'wp-admin/includes/dashboard.php' );
-                       _wp_dashboard_recent_comments_row( $comment, false );
+                       _wp_dashboard_recent_comments_row( $comment );
                } else {
-                       _wp_comment_row( $comment->comment_ID, $mode, false, $checkbox );
+                       if ( 'single' == $_REQUEST['mode'] ) {
+                               $wp_list_table = _get_list_table('WP_Post_Comments_List_Table');
+                       } else {
+                               $wp_list_table = _get_list_table('WP_Comments_List_Table');
+                       }
+                       $wp_list_table->single_row( $comment );
                }
                $comment_list_item = ob_get_contents();
        ob_end_clean();
 
-       $x->add( array(
+       $response =  array(
                'what' => 'comment',
                'id' => $comment->comment_ID,
                'data' => $comment_list_item,
                'position' => $position
-       ));
+       );
+
+       if ( $comment_auto_approved )
+               $response['supplemental'] = array( 'parent_approved' => $parent->comment_ID );
 
+       $x = new WP_Ajax_Response();
+       $x->add( $response );
        $x->send();
        break;
 case 'edit-comment' :
-       check_ajax_referer( 'replyto-comment' );
+       check_ajax_referer( 'replyto-comment', '_ajax_nonce-replyto-comment' );
+
+       set_current_screen( 'edit-comments' );
 
        $comment_post_ID = (int) $_POST['comment_post_ID'];
        if ( ! current_user_can( 'edit_post', $comment_post_ID ) )
@@ -746,21 +725,19 @@ case 'edit-comment' :
        $_POST['comment_status'] = $_POST['status'];
        edit_comment();
 
-       $mode = ( isset($_POST['mode']) && 'single' == $_POST['mode'] ) ? 'single' : 'detail';
        $position = ( isset($_POST['position']) && (int) $_POST['position']) ? (int) $_POST['position'] : '-1';
-       $checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
-       $comments_listing = isset($_POST['comments_listing']) ? $_POST['comments_listing'] : '';
+       $comments_status = isset($_POST['comments_listing']) ? $_POST['comments_listing'] : '';
 
-       if ( get_option('show_avatars') && 'single' != $mode )
-               add_filter( 'comment_author', 'floated_admin_avatar' );
-
-       $x = new WP_Ajax_Response();
+       $checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
+       $wp_list_table = _get_list_table( $checkbox ? 'WP_Comments_List_Table' : 'WP_Post_Comments_List_Table' );
 
        ob_start();
-               _wp_comment_row( $comment_id, $mode, $comments_listing, $checkbox );
+               $wp_list_table->single_row( get_comment( $comment_id ) );
                $comment_list_item = ob_get_contents();
        ob_end_clean();
 
+       $x = new WP_Ajax_Response();
+
        $x->add( array(
                'what' => 'edit_comment',
                'id' => $comment->comment_ID,
@@ -770,20 +747,90 @@ case 'edit-comment' :
 
        $x->send();
        break;
+case 'add-menu-item' :
+       if ( ! current_user_can( 'edit_theme_options' ) )
+               die('-1');
+
+       check_ajax_referer( 'add-menu_item', 'menu-settings-column-nonce' );
+
+       require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
+
+       // For performance reasons, we omit some object properties from the checklist.
+       // The following is a hacky way to restore them when adding non-custom items.
+
+       $menu_items_data = array();
+       foreach ( (array) $_POST['menu-item'] as $menu_item_data ) {
+               if (
+                       ! empty( $menu_item_data['menu-item-type'] ) &&
+                       'custom' != $menu_item_data['menu-item-type'] &&
+                       ! empty( $menu_item_data['menu-item-object-id'] )
+               ) {
+                       switch( $menu_item_data['menu-item-type'] ) {
+                               case 'post_type' :
+                                       $_object = get_post( $menu_item_data['menu-item-object-id'] );
+                               break;
+
+                               case 'taxonomy' :
+                                       $_object = get_term( $menu_item_data['menu-item-object-id'], $menu_item_data['menu-item-object'] );
+                               break;
+                       }
+
+                       $_menu_items = array_map( 'wp_setup_nav_menu_item', array( $_object ) );
+                       $_menu_item = array_shift( $_menu_items );
+
+                       // Restore the missing menu item properties
+                       $menu_item_data['menu-item-description'] = $_menu_item->description;
+               }
+
+               $menu_items_data[] = $menu_item_data;
+       }
+
+       $item_ids = wp_save_nav_menu_items( 0, $menu_items_data );
+       if ( is_wp_error( $item_ids ) )
+               die('-1');
+
+       foreach ( (array) $item_ids as $menu_item_id ) {
+               $menu_obj = get_post( $menu_item_id );
+               if ( ! empty( $menu_obj->ID ) ) {
+                       $menu_obj = wp_setup_nav_menu_item( $menu_obj );
+                       $menu_obj->label = $menu_obj->title; // don't show "(pending)" in ajax-added items
+                       $menu_items[] = $menu_obj;
+               }
+       }
+
+       if ( ! empty( $menu_items ) ) {
+               $args = array(
+                       'after' => '',
+                       'before' => '',
+                       'link_after' => '',
+                       'link_before' => '',
+                       'walker' => new Walker_Nav_Menu_Edit,
+               );
+               echo walk_nav_menu_tree( $menu_items, 0, (object) $args );
+       }
+       break;
 case 'add-meta' :
-       check_ajax_referer( 'add-meta' );
+       check_ajax_referer( 'add-meta', '_ajax_nonce-add-meta' );
        $c = 0;
        $pid = (int) $_POST['post_id'];
+       $post = get_post( $pid );
+
        if ( isset($_POST['metakeyselect']) || isset($_POST['metakeyinput']) ) {
                if ( !current_user_can( 'edit_post', $pid ) )
                        die('-1');
                if ( isset($_POST['metakeyselect']) && '#NONE#' == $_POST['metakeyselect'] && empty($_POST['metakeyinput']) )
                        die('1');
-               if ( $pid < 0 ) {
+               if ( $post->post_status == 'auto-draft' ) {
+                       $save_POST = $_POST; // Backup $_POST
+                       $_POST = array(); // Make it empty for edit_post()
+                       $_POST['action'] = 'draft'; // Warning fix
+                       $_POST['post_ID'] = $pid;
+                       $_POST['post_type'] = $post->post_type;
+                       $_POST['post_status'] = 'draft';
                        $now = current_time('timestamp', 1);
-                       if ( $pid = wp_insert_post( array(
-                               'post_title' => sprintf('Draft created on %s at %s', date(get_option('date_format'), $now), date(get_option('time_format'), $now))
-                       ) ) {
+                       $_POST['post_title'] = sprintf('Draft created on %s at %s', date(get_option('date_format'), $now), date(get_option('time_format'), $now));
+
+                       if ( $pid = edit_post() ) {
                                if ( is_wp_error( $pid ) ) {
                                        $x = new WP_Ajax_Response( array(
                                                'what' => 'meta',
@@ -791,6 +838,7 @@ case 'add-meta' :
                                        ) );
                                        $x->send();
                                }
+                               $_POST = $save_POST; // Now we can restore original $_POST again
                                if ( !$mid = add_meta( $pid ) )
                                        die(__('Please provide a custom field value.'));
                        } else {
@@ -810,15 +858,21 @@ case 'add-meta' :
                        'position' => 1,
                        'supplemental' => array('postid' => $pid)
                ) );
-       } else {
-               $mid = (int) array_pop(array_keys($_POST['meta']));
+       } else { // Update?
+               $mid = (int) array_pop( array_keys($_POST['meta']) );
                $key = $_POST['meta'][$mid]['key'];
                $value = $_POST['meta'][$mid]['value'];
+               if ( '' == trim($key) )
+                       die(__('Please provide a custom field name.'));
+               if ( '' == trim($value) )
+                       die(__('Please provide a custom field value.'));
                if ( !$meta = get_post_meta_by_id( $mid ) )
                        die('0'); // if meta doesn't exist
                if ( !current_user_can( 'edit_post', $meta->post_id ) )
                        die('-1');
-               if ( $meta->meta_value != stripslashes($value) ) {
+               if ( is_protected_meta( $meta->meta_key ) )
+                       die('-1');
+               if ( $meta->meta_value != stripslashes($value) || $meta->meta_key != stripslashes($key) ) {
                        if ( !$u = update_meta( $mid, $key, $value ) )
                                die('0'); // We know meta exists; we also know it's unchanged (or DB error, in which case there are bigger problems).
                }
@@ -843,7 +897,6 @@ case 'add-user' :
        check_ajax_referer( $action );
        if ( !current_user_can('create_users') )
                die('-1');
-       require_once(ABSPATH . WPINC . '/registration.php');
        if ( !$user_id = add_user() )
                die('0');
        elseif ( is_wp_error( $user_id ) ) {
@@ -855,10 +908,12 @@ case 'add-user' :
        }
        $user_object = new WP_User( $user_id );
 
+       $wp_list_table = _get_list_table('WP_Users_List_Table');
+
        $x = new WP_Ajax_Response( array(
                'what' => 'user',
                'id' => $user_id,
-               'data' => user_row( $user_object, '', $user_object->roles[0] ),
+               'data' => $wp_list_table->single_row( $user_object, '', $user_object->roles[0] ),
                'supplemental' => array(
                        'show-link' => sprintf(__( 'User <a href="#%s">%s</a> added' ), "user-$user_id", $user_object->user_login),
                        'role' => $user_object->roles[0]
@@ -870,74 +925,71 @@ case 'autosave' : // The name of this action is hardcoded in edit_post()
        define( 'DOING_AUTOSAVE', true );
 
        $nonce_age = check_ajax_referer( 'autosave', 'autosavenonce' );
-       global $current_user;
 
        $_POST['post_category'] = explode(",", $_POST['catslist']);
-       if($_POST['post_type'] == 'page' || empty($_POST['post_category']))
+       if ( $_POST['post_type'] == 'page' || empty($_POST['post_category']) )
                unset($_POST['post_category']);
 
        $do_autosave = (bool) $_POST['autosave'];
        $do_lock = true;
 
-       $data = '';
+       $data = $alert = '';
        /* translators: draft saved date format, see http://php.net/date */
        $draft_saved_date_format = __('g:i:s a');
-       $message = sprintf( __('Draft Saved at %s.'), date_i18n( $draft_saved_date_format ) );
+       /* translators: %s: date and time */
+       $message = sprintf( __('Draft saved at %s.'), date_i18n( $draft_saved_date_format ) );
 
        $supplemental = array();
+       if ( isset($login_grace_period) )
+               $alert .= sprintf( __('Your login has expired. Please open a new browser window and <a href="%s" target="_blank">log in again</a>. '), add_query_arg( 'interim-login', 1, wp_login_url() ) );
 
        $id = $revision_id = 0;
-       if($_POST['post_ID'] < 0) {
+
+       $post_ID = (int) $_POST['post_ID'];
+       $_POST['ID'] = $post_ID;
+       $post = get_post($post_ID);
+       if ( 'auto-draft' == $post->post_status )
                $_POST['post_status'] = 'draft';
-               $_POST['temp_ID'] = $_POST['post_ID'];
-               if ( $do_autosave ) {
-                       $id = wp_write_post();
-                       $data = $message;
-               }
-       } else {
-               $post_ID = (int) $_POST['post_ID'];
-               $_POST['ID'] = $post_ID;
-               $post = get_post($post_ID);
 
-               if ( $last = wp_check_post_lock( $post->ID ) ) {
-                       $do_autosave = $do_lock = false;
+       if ( $last = wp_check_post_lock( $post->ID ) ) {
+               $do_autosave = $do_lock = false;
 
-                       $last_user = get_userdata( $last );
-                       $last_user_name = $last_user ? $last_user->display_name : __( 'Someone' );
-                       $data = new WP_Error( 'locked', sprintf(
-                               $_POST['post_type'] == 'page' ? __( 'Autosave disabled: %s is currently editing this page.' ) : __( 'Autosave disabled: %s is currently editing this post.' ),
-                               esc_html( $last_user_name )
-                       ) );
+               $last_user = get_userdata( $last );
+               $last_user_name = $last_user ? $last_user->display_name : __( 'Someone' );
+               $data = __( 'Autosave disabled.' );
 
-                       $supplemental['disable_autosave'] = 'disable';
-               }
+               $supplemental['disable_autosave'] = 'disable';
+               $alert .= sprintf( __( '%s is currently editing this article. If you update it, you will overwrite the changes.' ), esc_html( $last_user_name ) );
+       }
 
-               if ( 'page' == $post->post_type ) {
-                       if ( !current_user_can('edit_page', $post_ID) )
-                               die(__('You are not allowed to edit this page.'));
-               } else {
-                       if ( !current_user_can('edit_post', $post_ID) )
-                               die(__('You are not allowed to edit this post.'));
-               }
+       if ( 'page' == $post->post_type ) {
+               if ( !current_user_can('edit_page', $post_ID) )
+                       die(__('You are not allowed to edit this page.'));
+       } else {
+               if ( !current_user_can('edit_post', $post_ID) )
+                       die(__('You are not allowed to edit this post.'));
+       }
 
-               if ( $do_autosave ) {
-                       // Drafts are just overwritten by autosave
-                       if ( 'draft' == $post->post_status ) {
-                               $id = edit_post();
-                       } else { // Non drafts are not overwritten.  The autosave is stored in a special post revision.
-                               $revision_id = wp_create_post_autosave( $post->ID );
-                               if ( is_wp_error($revision_id) )
-                                       $id = $revision_id;
-                               else
-                                       $id = $post->ID;
-                       }
-                       $data = $message;
-               } else {
-                       $id = $post->ID;
+       if ( $do_autosave ) {
+               // Drafts and auto-drafts are just overwritten by autosave
+               if ( 'auto-draft' == $post->post_status || 'draft' == $post->post_status ) {
+                       $id = edit_post();
+               } else { // Non drafts are not overwritten.  The autosave is stored in a special post revision.
+                       $revision_id = wp_create_post_autosave( $post->ID );
+                       if ( is_wp_error($revision_id) )
+                               $id = $revision_id;
+                       else
+                               $id = $post->ID;
                }
+               $data = $message;
+       } else {
+               if ( isset( $_POST['auto_draft'] ) && '1' == $_POST['auto_draft'] )
+                       $id = 0; // This tells us it didn't actually save
+               else
+                       $id = $post->ID;
        }
 
-       if ( $do_lock && $id && is_numeric($id) )
+       if ( $do_lock && ( isset( $_POST['auto_draft'] ) && ( $_POST['auto_draft'] != '1' ) ) && $id && is_numeric($id) )
                wp_set_post_lock( $id );
 
        if ( $nonce_age == 2 ) {
@@ -953,6 +1005,9 @@ case 'autosave' : // The name of this action is hardcoded in edit_post()
                }
        }
 
+       if ( ! empty($alert) )
+               $supplemental['alert'] = $alert;
+
        $x = new WP_Ajax_Response( array(
                'what' => 'autosave',
                'id' => $id,
@@ -961,26 +1016,14 @@ case 'autosave' : // The name of this action is hardcoded in edit_post()
        ) );
        $x->send();
        break;
-case 'autosave-generate-nonces' :
-       check_ajax_referer( 'autosave', 'autosavenonce' );
-       $ID = (int) $_POST['post_ID'];
-       if($_POST['post_type'] == 'post') {
-               if(current_user_can('edit_post', $ID))
-                       die(wp_create_nonce('update-post_' . $ID));
-       }
-       if($_POST['post_type'] == 'page') {
-               if(current_user_can('edit_page', $ID)) {
-                       die(wp_create_nonce('update-page_' . $ID));
-               }
-       }
-       die('0');
-break;
 case 'closed-postboxes' :
        check_ajax_referer( 'closedpostboxes', 'closedpostboxesnonce' );
-       $closed = isset( $_POST['closed'] ) ? $_POST['closed'] : '';
-       $closed = explode( ',', $_POST['closed'] );
-       $hidden = isset( $_POST['hidden'] ) ? $_POST['hidden'] : '';
-       $hidden = explode( ',', $_POST['hidden'] );
+       $closed = isset( $_POST['closed'] ) ? explode( ',', $_POST['closed']) : array();
+       $closed = array_filter($closed);
+
+       $hidden = isset( $_POST['hidden'] ) ? explode( ',', $_POST['hidden']) : array();
+       $hidden = array_filter($hidden);
+
        $page = isset( $_POST['page'] ) ? $_POST['page'] : '';
 
        if ( !preg_match( '/^[a-z_-]+$/', $page ) )
@@ -990,11 +1033,11 @@ case 'closed-postboxes' :
                die('-1');
 
        if ( is_array($closed) )
-               update_usermeta($user->ID, 'closedpostboxes_'.$page, $closed);
+               update_user_option($user->ID, "closedpostboxes_$page", $closed, true);
 
        if ( is_array($hidden) ) {
-               $hidden = array_diff( $hidden, array('submitdiv', 'pagesubmitdiv', 'linksubmitdiv') ); // postboxes that are always shown
-               update_usermeta($user->ID, 'meta-box-hidden_'.$page, $hidden);
+               $hidden = array_diff( $hidden, array('submitdiv', 'linksubmitdiv', 'manage-menu', 'create-menu') ); // postboxes that are always shown
+               update_user_option($user->ID, "metaboxhidden_$page", $hidden, true);
        }
 
        die('1');
@@ -1012,8 +1055,87 @@ case 'hidden-columns' :
                die('-1');
 
        if ( is_array($hidden) )
-               update_usermeta($user->ID, "manage-$page-columns-hidden", $hidden);
+               update_user_option($user->ID, "manage{$page}columnshidden", $hidden, true);
+
+       die('1');
+       break;
+case 'menu-get-metabox' :
+       if ( ! current_user_can( 'edit_theme_options' ) )
+               die('-1');
+
+       require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
+
+       if ( isset( $_POST['item-type'] ) && 'post_type' == $_POST['item-type'] ) {
+               $type = 'posttype';
+               $callback = 'wp_nav_menu_item_post_type_meta_box';
+               $items = (array) get_post_types( array( 'show_in_nav_menus' => true ), 'object' );
+       } elseif ( isset( $_POST['item-type'] ) && 'taxonomy' == $_POST['item-type'] ) {
+               $type = 'taxonomy';
+               $callback = 'wp_nav_menu_item_taxonomy_meta_box';
+               $items = (array) get_taxonomies( array( 'show_ui' => true ), 'object' );
+       }
+
+       if ( ! empty( $_POST['item-object'] ) && isset( $items[$_POST['item-object']] ) ) {
+               $item = apply_filters( 'nav_menu_meta_box_object', $items[ $_POST['item-object'] ] );
+               ob_start();
+               call_user_func_array($callback, array(
+                       null,
+                       array(
+                               'id' => 'add-' . $item->name,
+                               'title' => $item->labels->name,
+                               'callback' => $callback,
+                               'args' => $item,
+                       )
+               ));
+
+               $markup = ob_get_clean();
+
+               echo json_encode(array(
+                       'replace-id' => $type . '-' . $item->name,
+                       'markup' => $markup,
+               ));
+       }
+
+       exit;
+       break;
+case 'menu-quick-search':
+       if ( ! current_user_can( 'edit_theme_options' ) )
+               die('-1');
+
+       require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
+
+       _wp_ajax_menu_quick_search( $_REQUEST );
+
+       exit;
+       break;
+case 'wp-link-ajax':
+       require_once ABSPATH . 'wp-admin/includes/internal-linking.php';
+
+       check_ajax_referer( 'internal-linking', '_ajax_linking_nonce' );
 
+       $args = array();
+
+       if ( isset( $_POST['search'] ) )
+               $args['s'] = stripslashes( $_POST['search'] );
+       $args['pagenum'] = ! empty( $_POST['page'] ) ? absint( $_POST['page'] ) : 1;
+
+       $results = wp_link_query( $args );
+
+       if ( ! isset( $results ) )
+               die( '0' );
+
+       echo json_encode( $results );
+       echo "\n";
+
+       exit;
+       break;
+case 'menu-locations-save':
+       if ( ! current_user_can( 'edit_theme_options' ) )
+               die('-1');
+       check_ajax_referer( 'add-menu_item', 'menu-settings-column-nonce' );
+       if ( ! isset( $_POST['menu-locations'] ) )
+               die('0');
+       set_theme_mod( 'nav_menu_locations', array_map( 'absint', $_POST['menu-locations'] ) );
        die('1');
        break;
 case 'meta-box-order':
@@ -1029,10 +1151,10 @@ case 'meta-box-order':
                die('-1');
 
        if ( $order )
-               update_user_option($user->ID, "meta-box-order_$page", $order);
+               update_user_option($user->ID, "meta-box-order_$page", $order, true);
 
        if ( $page_columns )
-               update_usermeta($user->ID, "screen_layout_$page", $page_columns);
+               update_user_option($user->ID, "screen_layout_$page", $page_columns, true);
 
        die('1');
        break;
@@ -1045,7 +1167,7 @@ case 'sample-permalink':
        check_ajax_referer( 'samplepermalink', 'samplepermalinknonce' );
        $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
        $title = isset($_POST['new_title'])? $_POST['new_title'] : '';
-       $slug = isset($_POST['new_slug'])? $_POST['new_slug'] : '';
+       $slug = isset($_POST['new_slug'])? $_POST['new_slug'] : null;
        die(get_sample_permalink_html($post_id, $title, $slug));
 break;
 case 'inline-save':
@@ -1062,6 +1184,8 @@ case 'inline-save':
                        die( __('You are not allowed to edit this post.') );
        }
 
+       set_current_screen( $_POST['screen'] );
+
        if ( $last = wp_check_post_lock( $post_ID ) ) {
                $last_user = get_userdata( $last );
                $last_user_name = $last_user ? $last_user->display_name : __( 'Someone' );
@@ -1097,77 +1221,48 @@ case 'inline-save':
        // update the post
        edit_post();
 
-       $post = array();
-       if ( 'page' == $_POST['post_type'] ) {
-               $post[] = get_post($_POST['post_ID']);
-               page_rows($post);
-       } elseif ( 'post' == $_POST['post_type'] ) {
-               $mode = $_POST['post_view'];
-               $post[] = get_post($_POST['post_ID']);
-               post_rows($post);
-       }
+       $wp_list_table = _get_list_table('WP_Posts_List_Table');
+
+       $mode = $_POST['post_view'];
+       $wp_list_table->display_rows( array( get_post( $_POST['post_ID'] ) ) );
 
        exit;
        break;
 case 'inline-save-tax':
        check_ajax_referer( 'taxinlineeditnonce', '_inline_edit' );
 
-       if ( ! current_user_can('manage_categories') )
-               die( __('Cheatin&#8217; uh?') );
-
-       if ( ! isset($_POST['tax_ID']) || ! ( $id = (int) $_POST['tax_ID'] ) )
-               die(-1);
-
-       switch ($_POST['tax_type']) {
-               case 'cat' :
-                       $data = array();
-                       $data['cat_ID'] = $id;
-                       $data['cat_name'] = $_POST['name'];
-                       $data['category_nicename'] = $_POST['slug'];
-                       if ( isset($_POST['parent']) && (int) $_POST['parent'] > 0 )
-                               $data['category_parent'] = $_POST['parent'];
-
-                       $cat = get_category($id, ARRAY_A);
-                       $data['category_description'] = $cat['category_description'];
-
-                       $updated = wp_update_category($data);
-
-                       if ( $updated && !is_wp_error($updated) )
-                               echo _cat_row( $updated, 0 );
-                       else
-                               die( __('Category not updated.') );
+       $taxonomy = sanitize_key( $_POST['taxonomy'] );
+       $tax = get_taxonomy( $taxonomy );
+       if ( ! $tax )
+               die( '0' );
 
-                       break;
-               case 'link-cat' :
-                       $updated = wp_update_term($id, 'link_category', $_POST);
+       if ( ! current_user_can( $tax->cap->edit_terms ) )
+               die( '-1' );
 
-                       if ( $updated && !is_wp_error($updated) )
-                               echo link_cat_row($updated['term_id']);
-                       else
-                               die( __('Category not updated.') );
+       set_current_screen( 'edit-' . $taxonomy );
 
-                       break;
-               case 'tag' :
-                       if ( !empty($_POST['taxonomy']) )
-                               $taxonomy = $_POST['taxonomy'];
-                       else
-                               $taxonomy = 'post_tag';
-
-                       $tag = get_term( $id, $taxonomy );
-                       $_POST['description'] = $tag->description;
+       $wp_list_table = _get_list_table('WP_Terms_List_Table');
 
-                       $updated = wp_update_term($id, $taxonomy, $_POST);
-                       if ( $updated && !is_wp_error($updated) ) {
-                               $tag = get_term( $updated['term_id'], $taxonomy );
-                               if ( !$tag || is_wp_error( $tag ) )
-                                       die( __('Tag not updated.') );
+       if ( ! isset($_POST['tax_ID']) || ! ( $id = (int) $_POST['tax_ID'] ) )
+               die(-1);
 
-                               echo _tag_row($tag);
-                       } else {
-                               die( __('Tag not updated.') );
-                       }
+       $tag = get_term( $id, $taxonomy );
+       $_POST['description'] = $tag->description;
+
+       $updated = wp_update_term($id, $taxonomy, $_POST);
+       if ( $updated && !is_wp_error($updated) ) {
+               $tag = get_term( $updated['term_id'], $taxonomy );
+               if ( !$tag || is_wp_error( $tag ) ) {
+                       if ( is_wp_error($tag) && $tag->get_error_message() )
+                               die( $tag->get_error_message() );
+                       die( __('Item not updated.') );
+               }
 
-                       break;
+               echo $wp_list_table->single_row( $tag );
+       } else {
+               if ( is_wp_error($updated) && $updated->get_error_message() )
+                       die( $updated->get_error_message() );
+               die( __('Item not updated.') );
        }
 
        exit;
@@ -1178,27 +1273,33 @@ case 'find_posts':
        if ( empty($_POST['ps']) )
                exit;
 
-       $what = isset($_POST['pages']) ? 'page' : 'post';
+       if ( !empty($_POST['post_type']) && in_array( $_POST['post_type'], get_post_types() ) )
+               $what = $_POST['post_type'];
+       else
+               $what = 'post';
+
        $s = stripslashes($_POST['ps']);
        preg_match_all('/".*?("|$)|((?<=[\\s",+])|^)[^\\s",+]+/', $s, $matches);
-       $search_terms = array_map(create_function('$a', 'return trim($a, "\\"\'\\n\\r ");'), $matches[0]);
+       $search_terms = array_map('_search_terms_tidy', $matches[0]);
 
        $searchand = $search = '';
-       foreach( (array) $search_terms as $term) {
-               $term = addslashes_gpc($term);
+       foreach ( (array) $search_terms as $term ) {
+               $term = esc_sql( like_escape( $term ) );
                $search .= "{$searchand}(($wpdb->posts.post_title LIKE '%{$term}%') OR ($wpdb->posts.post_content LIKE '%{$term}%'))";
                $searchand = ' AND ';
        }
-       $term = $wpdb->escape($s);
+       $term = esc_sql( like_escape( $s ) );
        if ( count($search_terms) > 1 && $search_terms[0] != $s )
                $search .= " OR ($wpdb->posts.post_title LIKE '%{$term}%') OR ($wpdb->posts.post_content LIKE '%{$term}%')";
 
-       $posts = $wpdb->get_results( "SELECT ID, post_title, post_status, post_date FROM $wpdb->posts WHERE post_type = '$what' AND $search ORDER BY post_date_gmt DESC LIMIT 50" );
+       $posts = $wpdb->get_results( "SELECT ID, post_title, post_status, post_date FROM $wpdb->posts WHERE post_type = '$what' AND post_status IN ('draft', 'publish') AND ($search) ORDER BY post_date_gmt DESC LIMIT 50" );
 
-       if ( ! $posts )
-               exit( __('No posts found.') );
+       if ( ! $posts ) {
+               $posttype = get_post_type_object($what);
+               exit($posttype->labels->not_found);
+       }
 
-       $html = '<table class="widefat" cellspacing="0"><thead><tr><th class="found-radio"><br /></th><th>'.__('Title').'</th><th>'.__('Time').'</th><th>'.__('Status').'</th></tr></thead><tbody>';
+       $html = '<table class="widefat" cellspacing="0"><thead><tr><th class="found-radio"><br /></th><th>'.__('Title').'</th><th>'.__('Date').'</th><th>'.__('Status').'</th></tr></thead><tbody>';
        foreach ( $posts as $post ) {
 
                switch ( $post->post_status ) {
@@ -1213,7 +1314,7 @@ case 'find_posts':
                                $stat = __('Pending Review');
                                break;
                        case 'draft' :
-                               $stat = __('Unpublished');
+                               $stat = __('Draft');
                                break;
                }
 
@@ -1237,23 +1338,10 @@ case 'find_posts':
        $x->send();
 
        break;
-case 'lj-importer' :
-       check_ajax_referer( 'lj-api-import' );
-       if ( !current_user_can( 'publish_posts' ) )
-               die('-1');
-       if ( empty( $_POST['step'] ) )
-               die( '-1' );
-       define('WP_IMPORTING', true);
-       include( ABSPATH . 'wp-admin/import/livejournal.php' );
-       $result = $lj_api_import->{ 'step' . ( (int) $_POST['step'] ) }();
-       if ( is_wp_error( $result ) )
-               echo $result->get_error_message();
-       die;
-       break;
 case 'widgets-order' :
        check_ajax_referer( 'save-sidebar-widgets', 'savewidgets' );
 
-       if ( !current_user_can('switch_themes') )
+       if ( !current_user_can('edit_theme_options') )
                die('-1');
 
        unset( $_POST['savewidgets'], $_POST['action'] );
@@ -1283,7 +1371,7 @@ case 'widgets-order' :
 case 'save-widget' :
        check_ajax_referer( 'save-sidebar-widgets', 'savewidgets' );
 
-       if ( !current_user_can('switch_themes') || !isset($_POST['id_base']) )
+       if ( !current_user_can('edit_theme_options') || !isset($_POST['id_base']) )
                die('-1');
 
        unset( $_POST['savewidgets'], $_POST['action'] );
@@ -1297,7 +1385,7 @@ case 'save-widget' :
        $sidebar_id = $_POST['sidebar'];
        $multi_number = !empty($_POST['multi_number']) ? (int) $_POST['multi_number'] : 0;
        $settings = isset($_POST['widget-' . $id_base]) && is_array($_POST['widget-' . $id_base]) ? $_POST['widget-' . $id_base] : false;
-       $error = '<p>' . __('An error has occured. Please reload the page and try again.') . '</p>';
+       $error = '<p>' . __('An error has occurred. Please reload the page and try again.') . '</p>';
 
        $sidebars = wp_get_sidebars_widgets();
        $sidebar = isset($sidebars[$sidebar_id]) ? $sidebars[$sidebar_id] : array();
@@ -1348,6 +1436,117 @@ case 'save-widget' :
 
        die();
        break;
+case 'image-editor':
+       $attachment_id = intval($_POST['postid']);
+       if ( empty($attachment_id) || !current_user_can('edit_post', $attachment_id) )
+               die('-1');
+
+       check_ajax_referer( "image_editor-$attachment_id" );
+       include_once( ABSPATH . 'wp-admin/includes/image-edit.php' );
+
+       $msg = false;
+       switch ( $_POST['do'] ) {
+               case 'save' :
+                       $msg = wp_save_image($attachment_id);
+                       $msg = json_encode($msg);
+                       die($msg);
+                       break;
+               case 'scale' :
+                       $msg = wp_save_image($attachment_id);
+                       break;
+               case 'restore' :
+                       $msg = wp_restore_image($attachment_id);
+                       break;
+       }
+
+       wp_image_editor($attachment_id, $msg);
+       die();
+       break;
+case 'set-post-thumbnail':
+       $post_ID = intval( $_POST['post_id'] );
+       if ( !current_user_can( 'edit_post', $post_ID ) )
+               die( '-1' );
+       $thumbnail_id = intval( $_POST['thumbnail_id'] );
+
+       check_ajax_referer( "set_post_thumbnail-$post_ID" );
+
+       if ( $thumbnail_id == '-1' ) {
+               delete_post_meta( $post_ID, '_thumbnail_id' );
+               die( _wp_post_thumbnail_html() );
+       }
+
+       if ( set_post_thumbnail( $post_ID, $thumbnail_id ) )
+               die( _wp_post_thumbnail_html( $thumbnail_id ) );
+       die( '0' );
+       break;
+case 'date_format' :
+       die( date_i18n( sanitize_option( 'date_format', $_POST['date'] ) ) );
+       break;
+case 'time_format' :
+       die( date_i18n( sanitize_option( 'time_format', $_POST['date'] ) ) );
+       break;
+case 'wp-fullscreen-save-post' :
+       if ( isset($_POST['post_ID']) )
+               $post_id = (int) $_POST['post_ID'];
+       else
+               $post_id = 0;
+
+       $post = null;
+       $post_type_object = null;
+       $post_type = null;
+       if ( $post_id ) {
+               $post = get_post($post_id);
+               if ( $post ) {
+                       $post_type_object = get_post_type_object($post->post_type);
+                       if ( $post_type_object ) {
+                               $post_type = $post->post_type;
+                               $current_screen->post_type = $post->post_type;
+                               $current_screen->id = $current_screen->post_type;
+                       }
+               }
+       } elseif ( isset($_POST['post_type']) ) {
+               $post_type_object = get_post_type_object($_POST['post_type']);
+               if ( $post_type_object ) {
+                       $post_type = $post_type_object->name;
+                       $current_screen->post_type = $post_type;
+                       $current_screen->id = $current_screen->post_type;
+               }
+       }
+
+       check_ajax_referer('update-' . $post_type . '_' . $post_id, '_wpnonce');
+
+       $post_id = edit_post();
+
+       if ( is_wp_error($post_id) ) {
+               if ( $post_id->get_error_message() )
+                       $message = $post_id->get_error_message();
+               else
+                       $message = __('Save failed');
+
+               echo json_encode( array( 'message' => $message, 'last_edited' => '' ) );
+               die();
+       } else {
+               $message = __('Saved.');
+       }
+
+       if ( $post ) {
+               $last_date = mysql2date( get_option('date_format'), $post->post_modified );
+               $last_time = mysql2date( get_option('time_format'), $post->post_modified );
+       } else {
+               $last_date = date_i18n( get_option('date_format') );
+               $last_time = date_i18n( get_option('time_format') );
+       }
+
+       if ( $last_id = get_post_meta($post_id, '_edit_last', true) ) {
+               $last_user = get_userdata($last_id);
+               $last_edited = sprintf( __('Last edited by %1$s on %2$s at %3$s'), esc_html( $last_user->display_name ), $last_date, $last_time );
+       } else {
+               $last_edited = sprintf( __('Last edited on %1$s at %2$s'), $last_date, $last_time );
+       }
+
+       echo json_encode( array( 'message' => $message, 'last_edited' => $last_edited ) );
+       die();
+       break;
 default :
        do_action( 'wp_ajax_' . $_POST['action'] );
        die('0');
index a43a4e4..04d7315 100644 (file)
@@ -14,22 +14,28 @@ if ( !defined('ABSPATH') )
 <div class="clear"></div></div><!-- wpbody-content -->
 <div class="clear"></div></div><!-- wpbody -->
 <div class="clear"></div></div><!-- wpcontent -->
-</div><!-- wpwrap -->
 
 <div id="footer">
+<?php do_action( 'in_admin_footer' ); ?>
 <p id="footer-left" class="alignleft"><?php
-do_action( 'in_admin_footer' );
 $upgrade = apply_filters( 'update_footer', '' );
-echo apply_filters( 'admin_footer_text', '<span id="footer-thankyou">' . __('Thank you for creating with <a href="http://wordpress.org/">WordPress</a>.').'</span> | '.__('<a href="http://codex.wordpress.org/">Documentation</a>').' | '.__('<a href="http://wordpress.org/support/forum/4">Feedback</a>') ); ?>
-</p>
-<?php // if ( $is_IE ) browse_happy(); ?>
+$footer_text = array(
+       '<span id="footer-thankyou">' . __( 'Thank you for creating with <a href="http://wordpress.org/">WordPress</a>.' ) . '</span>',
+       __( '<a href="http://codex.wordpress.org/">Documentation</a>' ),
+       sprintf( __( '<a href="%s">Freedoms</a>' ), admin_url( 'freedoms.php' ) ),
+       __('<a href="http://wordpress.org/support/forum/4">Feedback</a>'),
+       sprintf(__('<a href="%s">Credits</a>'), admin_url('credits.php') ),
+);
+echo apply_filters( 'admin_footer_text', implode( ' &bull; ', $footer_text ) );
+unset( $footer_text );
+?></p>
 <p id="footer-upgrade" class="alignright"><?php echo $upgrade; ?></p>
 <div class="clear"></div>
 </div>
 <?php
 do_action('admin_footer', '');
 do_action('admin_print_footer_scripts');
-do_action("admin_footer-$hook_suffix");
+do_action("admin_footer-" . $GLOBALS['hook_suffix']);
 
 // get_site_option() won't exist when auto upgrading from <= 2.7
 if ( function_exists('get_site_option') ) {
@@ -39,6 +45,7 @@ if ( function_exists('get_site_option') ) {
 
 ?>
 
+<div class="clear"></div></div><!-- wpwrap -->
 <script type="text/javascript">if(typeof wpOnload=='function')wpOnload();</script>
 </body>
 </html>
index 27c496a..18b5ff3 100644 (file)
@@ -7,47 +7,66 @@
  */
 
 @header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
-if (!isset($_GET["page"])) require_once('admin.php');
+if ( ! defined( 'WP_ADMIN' ) )
+       require_once( './admin.php' );
 
 get_admin_page_title();
 $title = esc_html( strip_tags( $title ) );
+
+if ( is_network_admin() )
+       $admin_title = __( 'Network Admin' );
+elseif ( is_user_admin() )
+       $admin_title = __( 'Global Dashboard' );
+else
+       $admin_title = get_bloginfo( 'name' );
+
+if ( $admin_title == $title )
+       $admin_title = sprintf( __( '%1$s &#8212; WordPress' ), $title );
+else
+       $admin_title = sprintf( __( '%1$s &lsaquo; %2$s &#8212; WordPress' ), $title, $admin_title );
+
+$admin_title = apply_filters( 'admin_title', $admin_title, $title );
+
 wp_user_settings();
-wp_menu_unfold();
+
 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" <?php do_action('admin_xml_ns'); ?> <?php language_attributes(); ?>>
 <head>
 <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
-<title><?php echo $title; ?> &lsaquo; <?php bloginfo('name') ?>  &#8212; WordPress</title>
+<title><?php echo $admin_title; ?></title>
 <?php
 
-wp_admin_css( 'css/global' );
+wp_admin_css( 'global' );
 wp_admin_css();
-wp_admin_css( 'css/colors' );
-wp_admin_css( 'css/ie' );
+wp_admin_css( 'colors' );
+wp_admin_css( 'ie' );
+if ( is_multisite() )
+       wp_admin_css( 'ms' );
 wp_enqueue_script('utils');
 
-$hook_suffix = '';
-if ( isset($page_hook) )
-       $hook_suffix = "$page_hook";
-else if ( isset($plugin_page) )
-       $hook_suffix = "$plugin_page";
-else if ( isset($pagenow) )
-       $hook_suffix = "$pagenow";
-
 $admin_body_class = preg_replace('/[^a-z0-9_-]+/i', '-', $hook_suffix);
 ?>
 <script type="text/javascript">
 //<![CDATA[
 addLoadEvent = function(func){if(typeof jQuery!="undefined")jQuery(document).ready(func);else if(typeof wpOnload!='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
-var userSettings = {'url':'<?php echo SITECOOKIEPATH; ?>','uid':'<?php if ( ! isset($current_user) ) $current_user = wp_get_current_user(); echo $current_user->ID; ?>','time':'<?php echo time() ?>'};
-var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>', pagenow = '<?php echo substr($pagenow, 0, -4); ?>', adminpage = '<?php echo $admin_body_class; ?>';
+var userSettings = {
+               'url': '<?php echo SITECOOKIEPATH; ?>',
+               'uid': '<?php if ( ! isset($current_user) ) $current_user = wp_get_current_user(); echo $current_user->ID; ?>',
+               'time':'<?php echo time() ?>'
+       },
+       ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>',
+       pagenow = '<?php echo $current_screen->id; ?>',
+       typenow = '<?php if ( isset($current_screen->post_type) ) echo $current_screen->post_type; ?>',
+       adminpage = '<?php echo $admin_body_class; ?>',
+       thousandsSeparator = '<?php echo addslashes( $wp_locale->number_format['thousands_sep'] ); ?>',
+       decimalPoint = '<?php echo addslashes( $wp_locale->number_format['decimal_point'] ); ?>',
+       isRtl = <?php echo (int) is_rtl(); ?>;
 //]]>
 </script>
 <?php
 
-if ( in_array( $pagenow, array('post.php', 'post-new.php', 'page.php', 'page-new.php') ) ) {
-       add_action( 'admin_print_footer_scripts', 'wp_tiny_mce', 25 );
+if ( in_array( $pagenow, array('post.php', 'post-new.php') ) ) {
        wp_enqueue_script('quicktags');
 }
 
@@ -59,9 +78,18 @@ do_action('admin_print_scripts');
 do_action("admin_head-$hook_suffix");
 do_action('admin_head');
 
-if ( get_user_setting('mfold') == 'f' ) {
+if ( get_user_setting('mfold') == 'f' )
        $admin_body_class .= ' folded';
-}
+
+if ( is_admin_bar_showing() )
+       $admin_body_class .= ' admin-bar';
+
+if ( is_rtl() )
+       $admin_body_class .= ' rtl';
+
+$admin_body_class .= ' branch-' . str_replace( '.', '-', floatval( $wp_version ) );
+$admin_body_class .= ' version-' . str_replace( '.', '-', preg_replace( '/^([.0-9]+).*/', '$1', $wp_version ) );
+$admin_body_class .= ' admin-color-' . sanitize_html_class( get_user_option( 'admin_color' ), 'fresh' );
 
 if ( $is_iphone ) { ?>
 <style type="text/css">.row-actions{visibility:visible;}</style>
@@ -79,17 +107,25 @@ document.body.className = c;
 </script>
 
 <div id="wpwrap">
+<?php require(ABSPATH . 'wp-admin/menu-header.php'); ?>
 <div id="wpcontent">
 <div id="wphead">
 <?php
-$blog_name = get_bloginfo('name', 'display');
+
+if ( is_network_admin() )
+       $blog_name = sprintf( __('%s Network Admin'), esc_html($current_site->site_name) );
+elseif ( is_user_admin() )
+       $blog_name = sprintf( __('%s Global Dashboard'), esc_html($current_site->site_name) );
+else
+       $blog_name = get_bloginfo('name', 'display');
 if ( '' == $blog_name ) {
-       $blog_name = '&nbsp;';
+       $blog_name = __( 'Visit Site' );
 } else {
        $blog_name_excerpt = wp_html_excerpt($blog_name, 40);
        if ( $blog_name != $blog_name_excerpt )
                $blog_name_excerpt = trim($blog_name_excerpt) . '&hellip;';
        $blog_name = $blog_name_excerpt;
+       unset($blog_name_excerpt);
 }
 $title_class = '';
 if ( function_exists('mb_strlen') ) {
@@ -101,28 +137,83 @@ if ( function_exists('mb_strlen') ) {
 }
 ?>
 
-<img id="header-logo" src="../wp-includes/images/blank.gif" alt="" width="32" height="32" /> <h1 id="site-heading" <?php echo $title_class ?>><a href="<?php echo trailingslashit( get_bloginfo('url') ); ?>" title="<?php _e('Visit Site') ?>"><span id="site-title"><?php echo $blog_name ?></span> <em id="site-visit-button"><?php _e('Visit Site') ?></em></a></h1>
+<img id="header-logo" src="<?php echo esc_url( includes_url( 'images/blank.gif' ) ); ?>" alt="" width="16" height="16" />
+<h1 id="site-heading" <?php echo $title_class ?>>
+       <a href="<?php echo trailingslashit( get_bloginfo( 'url' ) ); ?>" title="<?php esc_attr_e('Visit Site') ?>">
+               <span id="site-title"><?php echo $blog_name ?></span>
+       </a>
+</h1>
+
+<?php
+
+do_action('in_admin_header');
+
+$links = array();
+
+// Generate user profile and info links.
+$links[5] = sprintf( __('Howdy, %1$s'), $user_identity );
+
+$links[8] = '<a href="profile.php" title="' . esc_attr__('Edit your profile') . '">' . __('Your Profile') . '</a>';
+
+if ( is_multisite() && is_super_admin() ) {
+       if ( !is_network_admin() )
+               $links[10] = '<a href="' . network_admin_url() . '" title="' . ( ! empty( $update_title ) ? $update_title : esc_attr__('Network Admin') ) . '">' . __('Network Admin') . ( ! empty( $total_update_count ) ? ' (' . number_format_i18n( $total_update_count ) . ')' : '' ) . '</a>';
+       else
+               $links[10] = '<a href="' . get_dashboard_url( get_current_user_id() ) . '" title="' . esc_attr__('Site Admin') . '">' . __('Site Admin') . '</a>';
+}
+
+$links[15] = '<a href="' . wp_logout_url() . '" title="' . esc_attr__('Log Out') . '">' . __('Log Out') . '</a>';
+
+$links = apply_filters( 'admin_user_info_links', $links, $current_user );
+ksort( $links );
+
+// Trim whitespace and pipes from links, then convert to list items.
+$links = array_map( 'trim', $links, array_fill( 0, count( $links ), " |\n\t" ) );
+
+$howdy = array_shift( $links );
+
+$links_no_js = implode( ' | ', $links );
+$links_js = '<li>' . implode( '</li><li>', $links ) . '</li>';
+
+?>
 
 <div id="wphead-info">
 <div id="user_info">
-<p><?php printf(__('Howdy, <a href="%1$s" title="Edit your profile">%2$s</a>'), 'profile.php', $user_identity) ?>
-<?php if ( ! $is_opera ) { ?><span class="turbo-nag hidden"> | <a href="tools.php"><?php _e('Turbo') ?></a></span><?php } ?> |
-<a href="<?php echo wp_logout_url() ?>" title="<?php _e('Log Out') ?>"><?php _e('Log Out'); ?></a></p>
+       <p class="hide-if-js"><?php echo "$howdy | $links_no_js"; ?></p>
+
+       <div class="hide-if-no-js">
+               <p><?php echo $howdy; ?></p>
+               <div id="user_info_arrow"></div>
+               <div id="user_info_links_wrap"><div id="user_info_links">
+                       <ul><?php echo $links_js; ?></ul>
+               </div></div>
+       </div>
 </div>
-
-<?php favorite_actions($hook_suffix); ?>
 </div>
+
 </div>
 
 <div id="wpbody">
-<?php require(ABSPATH . 'wp-admin/menu-header.php'); ?>
+<?php
+unset($title_class, $blog_name, $total_update_count, $update_title);
+
+$current_screen->parent_file = $parent_file;
+$current_screen->parent_base = preg_replace('/\?.*$/', '', $parent_file);
+$current_screen->parent_base = str_replace('.php', '', $current_screen->parent_base);
+?>
 
 <div id="wpbody-content">
 <?php
-screen_meta($hook_suffix);
+screen_meta($current_screen);
 
-do_action('admin_notices');
+if ( is_network_admin() )
+       do_action('network_admin_notices');
+elseif ( is_user_admin() )
+       do_action('user_admin_notices');
+else
+       do_action('admin_notices');
 
-if ( $parent_file == 'options-general.php' ) {
+do_action('all_admin_notices');
+
+if ( $parent_file == 'options-general.php' )
        require(ABSPATH . 'wp-admin/options-head.php');
-}
index d18bf71..5f9eccb 100644 (file)
@@ -6,7 +6,7 @@
  * @subpackage Administration
  */
 
-/** We are located in WordPress Administration Panels */
+/** We are located in WordPress Administration Screens */
 define('WP_ADMIN', true);
 
 if ( defined('ABSPATH') )
index f8405f9..ce1227d 100644 (file)
@@ -7,17 +7,27 @@
  */
 
 /**
- * In WordPress Administration Panels
+ * In WordPress Administration Screens
  *
- * @since unknown
+ * @since 2.3.2
  */
-if ( !defined('WP_ADMIN') )
+if ( ! defined('WP_ADMIN') )
        define('WP_ADMIN', TRUE);
 
-if ( defined('ABSPATH') )
-       require_once(ABSPATH . 'wp-load.php');
-else
-       require_once('../wp-load.php');
+if ( ! defined('WP_NETWORK_ADMIN') )
+       define('WP_NETWORK_ADMIN', FALSE);
+
+if ( ! defined('WP_USER_ADMIN') )
+       define('WP_USER_ADMIN', FALSE);
+
+if ( ! WP_NETWORK_ADMIN && ! WP_USER_ADMIN ) {
+       define('WP_BLOG_ADMIN', TRUE);
+}
+
+if ( isset($_GET['import']) && !defined('WP_LOAD_IMPORTERS') )
+       define('WP_LOAD_IMPORTERS', true);
+
+require_once(dirname(dirname(__FILE__)) . '/wp-load.php');
 
 if ( get_option('db_upgraded') ) {
        $wp_rewrite->flush_rules();
@@ -30,8 +40,25 @@ if ( get_option('db_upgraded') ) {
         */
        do_action('after_db_upgrade');
 } elseif ( get_option('db_version') != $wp_db_version ) {
-       wp_redirect(admin_url('upgrade.php?_wp_http_referer=' . urlencode(stripslashes($_SERVER['REQUEST_URI']))));
-       exit;
+       if ( !is_multisite() ) {
+               wp_redirect(admin_url('upgrade.php?_wp_http_referer=' . urlencode(stripslashes($_SERVER['REQUEST_URI']))));
+               exit;
+       } elseif ( apply_filters( 'do_mu_upgrade', true ) ) {
+               /**
+                * On really small MU installs run the upgrader every time,
+                * else run it less often to reduce load.
+                *
+                * @since 2.8.4b
+                */
+               $c = get_blog_count();
+               if ( $c <= 50 || ( $c > 50 && mt_rand( 0, (int)( $c / 50 ) ) == 1 ) ) {
+                       require_once( ABSPATH . WPINC . '/http.php' );
+                       $response = wp_remote_get( admin_url( 'upgrade.php?step=1' ), array( 'timeout' => 120, 'httpversion' => '1.1' ) );
+                       do_action( 'after_mu_upgrade', $response );
+                       unset($response);
+               }
+               unset($c);
+       }
 }
 
 require_once(ABSPATH . 'wp-admin/includes/admin.php');
@@ -40,36 +67,55 @@ auth_redirect();
 
 nocache_headers();
 
-update_category_cache();
+// Schedule trash collection
+if ( !wp_next_scheduled('wp_scheduled_delete') && !defined('WP_INSTALLING') )
+       wp_schedule_event(time(), 'daily', 'wp_scheduled_delete');
 
 set_screen_options();
 
-$posts_per_page = get_option('posts_per_page');
 $date_format = get_option('date_format');
 $time_format = get_option('time_format');
 
-wp_reset_vars(array('profile', 'redirect', 'redirect_url', 'a', 'popuptitle', 'popupurl', 'text', 'trackback', 'pingback'));
-
-wp_admin_css_color('classic', __('Blue'), admin_url("css/colors-classic.css"), array('#073447', '#21759B', '#EAF3FA', '#BBD8E7'));
-wp_admin_css_color('fresh', __('Gray'), admin_url("css/colors-fresh.css"), array('#464646', '#6D6D6D', '#F1F1F1', '#DFDFDF'));
+wp_reset_vars(array('profile', 'redirect', 'redirect_url', 'a', 'text', 'trackback', 'pingback'));
 
 wp_enqueue_script( 'common' );
 wp_enqueue_script( 'jquery-color' );
 
 $editing = false;
 
-if (isset($_GET['page'])) {
+if ( isset($_GET['page']) ) {
        $plugin_page = stripslashes($_GET['page']);
        $plugin_page = plugin_basename($plugin_page);
 }
 
-require(ABSPATH . 'wp-admin/menu.php');
+if ( isset($_GET['post_type']) )
+       $typenow = sanitize_key($_GET['post_type']);
+else
+       $typenow = '';
+
+if ( isset($_GET['taxonomy']) )
+       $taxnow = sanitize_key($_GET['taxonomy']);
+else
+       $taxnow = '';
+
+if ( WP_NETWORK_ADMIN )
+       require(ABSPATH . 'wp-admin/network/menu.php');
+elseif ( WP_USER_ADMIN )
+       require(ABSPATH . 'wp-admin/user/menu.php');
+else
+       require(ABSPATH . 'wp-admin/menu.php');
+
+if ( current_user_can( 'manage_options' ) )
+       @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
 
 do_action('admin_init');
 
-// Handle plugin admin pages.
-if (isset($plugin_page)) {
-       if( ! $page_hook = get_plugin_page_hook($plugin_page, $pagenow) ) {
+if ( isset($plugin_page) ) {
+       if ( !empty($typenow) )
+               $the_parent = $pagenow . '?post_type=' . $typenow;
+       else
+               $the_parent = $pagenow;
+       if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) {
                $page_hook = get_plugin_page_hook($plugin_page, $plugin_page);
                // backwards compatibility for plugins using add_management_page
                if ( empty( $page_hook ) && 'edit.php' == $pagenow && '' != get_plugin_page_hook($plugin_page, 'tools.php') ) {
@@ -78,11 +124,25 @@ if (isset($plugin_page)) {
                                $query_string = $_SERVER[ 'QUERY_STRING' ];
                        else
                                $query_string = 'page=' . $plugin_page;
-                       wp_redirect( 'tools.php?' . $query_string );
+                       wp_redirect( admin_url('tools.php?' . $query_string) );
                        exit;
                }
        }
+       unset($the_parent);
+}
 
+$hook_suffix = '';
+if ( isset($page_hook) )
+       $hook_suffix = $page_hook;
+else if ( isset($plugin_page) )
+       $hook_suffix = $plugin_page;
+else if ( isset($pagenow) )
+       $hook_suffix = $pagenow;
+
+set_current_screen();
+
+// Handle plugin admin pages.
+if ( isset($plugin_page) ) {
        if ( $page_hook ) {
                do_action('load-' . $page_hook);
                if (! isset($_GET['noheader']))
@@ -90,19 +150,22 @@ if (isset($plugin_page)) {
 
                do_action($page_hook);
        } else {
-               if ( validate_file($plugin_page) ) {
+               if ( validate_file($plugin_page) )
                        wp_die(__('Invalid plugin page'));
-               }
 
-               if (! ( file_exists(WP_PLUGIN_DIR . "/$plugin_page") && is_file(WP_PLUGIN_DIR . "/$plugin_page") ) )
+
+               if ( !( file_exists(WP_PLUGIN_DIR . "/$plugin_page") && is_file(WP_PLUGIN_DIR . "/$plugin_page") ) && !( file_exists(WPMU_PLUGIN_DIR . "/$plugin_page") && is_file(WPMU_PLUGIN_DIR . "/$plugin_page") ) )
                        wp_die(sprintf(__('Cannot load %s.'), htmlentities($plugin_page)));
 
                do_action('load-' . $plugin_page);
 
-               if (isset($_GET['noheader']))
+               if ( !isset($_GET['noheader']))
                        require_once(ABSPATH . 'wp-admin/admin-header.php');
 
-               include(WP_PLUGIN_DIR . "/$plugin_page");
+               if ( file_exists(WPMU_PLUGIN_DIR . "/$plugin_page") )
+                       include(WPMU_PLUGIN_DIR . "/$plugin_page");
+               else
+                       include(WP_PLUGIN_DIR . "/$plugin_page");
        }
 
        include(ABSPATH . 'wp-admin/admin-footer.php');
@@ -116,15 +179,15 @@ if (isset($plugin_page)) {
                wp_die(__('You are not allowed to import.'));
 
        if ( validate_file($importer) ) {
-               wp_die(__('Invalid importer.'));
+               wp_redirect( admin_url( 'import.php?invalid=' . $importer ) );
+               exit;
        }
 
        // Allow plugins to define importers as well
-       if ( !isset($wp_importers) || !isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2]))
-       {
-               if (! file_exists(ABSPATH . "wp-admin/import/$importer.php"))
-               {
-                       wp_die(__('Cannot load importer.'));
+       if ( !isset($wp_importers) || !isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2])) {
+               if (! file_exists(ABSPATH . "wp-admin/import/$importer.php")) {
+                       wp_redirect( admin_url( 'import.php?invalid=' . $importer ) );
+                       exit;
                }
                include(ABSPATH . "wp-admin/import/$importer.php");
        }
@@ -140,6 +203,9 @@ if (isset($plugin_page)) {
 
        define('WP_IMPORTING', true);
 
+       if ( apply_filters( 'force_filtered_html_on_import', false ) )
+               kses_init_filters();  // Always filter imported data with kses on multisite.
+
        call_user_func($wp_importers[$importer][2]);
 
        include(ABSPATH . 'wp-admin/admin-footer.php');
@@ -151,6 +217,19 @@ if (isset($plugin_page)) {
        exit();
 } else {
        do_action("load-$pagenow");
+       // Backwards compatibility with old load-page-new.php, load-page.php,
+       // and load-categories.php actions.
+       if ( $typenow == 'page' ) {
+               if ( $pagenow == 'post-new.php' )
+                       do_action( 'load-page-new.php' );
+               elseif ( $pagenow == 'post.php' )
+                       do_action( 'load-page.php' );
+       }  elseif ( $pagenow == 'edit-tags.php' ) {
+               if ( $taxnow == 'category' )
+                       do_action( 'load-categories.php' );
+               elseif ( $taxnow == 'link_category' )
+                       do_action( 'load-edit-link-categories.php' );
+       }
 }
 
 if ( !empty($_REQUEST['action']) )
index 4197c86..6fa6518 100644 (file)
@@ -18,8 +18,10 @@ if ( is_ssl() && empty($_COOKIE[SECURE_AUTH_COOKIE]) && !empty($_REQUEST['auth_c
        $_COOKIE[SECURE_AUTH_COOKIE] = $_REQUEST['auth_cookie'];
 elseif ( empty($_COOKIE[AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) )
        $_COOKIE[AUTH_COOKIE] = $_REQUEST['auth_cookie'];
+if ( empty($_COOKIE[LOGGED_IN_COOKIE]) && !empty($_REQUEST['logged_in_cookie']) )
+       $_COOKIE[LOGGED_IN_COOKIE] = $_REQUEST['logged_in_cookie'];
 unset($current_user);
-require_once('admin.php');
+require_once('./admin.php');
 
 header('Content-Type: text/plain; charset=' . get_option('blog_charset'));
 
@@ -28,6 +30,13 @@ if ( !current_user_can('upload_files') )
 
 // just fetch the detail form for that attachment
 if ( isset($_REQUEST['attachment_id']) && ($id = intval($_REQUEST['attachment_id'])) && $_REQUEST['fetch'] ) {
+       $post = get_post( $id );
+       if ( 'attachment' != $post->post_type )
+               wp_die( __( 'Unknown post type.' ) );
+       $post_type_object = get_post_type_object( 'attachment' );
+       if ( ! current_user_can( $post_type_object->cap->edit_post, $id ) )
+               wp_die( __( 'You are not allowed to edit this item.' ) );
+
        if ( 2 == $_REQUEST['fetch'] ) {
                add_filter('attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2);
                echo get_media_item($id, array( 'send' => false, 'delete' => true ));
@@ -41,16 +50,18 @@ if ( isset($_REQUEST['attachment_id']) && ($id = intval($_REQUEST['attachment_id
 check_admin_referer('media-form');
 
 $id = media_handle_upload('async-upload', $_REQUEST['post_id']);
-if (is_wp_error($id)) {
-       echo '<div id="media-upload-error">'.esc_html($id->get_error_message()).'</div>';
+if ( is_wp_error($id) ) {
+       echo '<div class="error-div">
+       <a class="dismiss" href="#" onclick="jQuery(this).parents(\'div.media-item\').slideUp(200, function(){jQuery(this).remove();});">' . __('Dismiss') . '</a>
+       <strong>' . sprintf(__('&#8220;%s&#8221; has failed to upload due to an error'), esc_html($_FILES['async-upload']['name']) ) . '</strong><br />' .
+       esc_html($id->get_error_message()) . '</div>';
        exit;
 }
 
 if ( $_REQUEST['short'] ) {
        // short form response - attachment ID only
        echo $id;
-}
-else {
+} else {
        // long form response - big chunk o html
        $type = $_REQUEST['type'];
        echo apply_filters("async_upload_{$type}", $id);
diff --git a/Websites/webkit.org/blog/wp-admin/categories.php b/Websites/webkit.org/blog/wp-admin/categories.php
deleted file mode 100644 (file)
index 8d26b9e..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-<?php
-/**
- * Categories Management Panel
- *
- * @package WordPress
- * @subpackage Administration
- */
-
-/** Load WordPress Bootstrap */
-require_once('admin.php');
-
-$title = __('Categories');
-
-wp_reset_vars( array('action', 'cat') );
-
-if ( isset( $_GET['action'] ) && isset($_GET['delete']) && ( 'delete' == $_GET['action'] || 'delete' == $_GET['action2'] ) )
-       $action = 'bulk-delete';
-
-switch($action) {
-
-case 'addcat':
-
-       check_admin_referer('add-category');
-
-       if ( !current_user_can('manage_categories') )
-               wp_die(__('Cheatin&#8217; uh?'));
-
-       if ( wp_insert_category($_POST ) )
-               wp_safe_redirect( add_query_arg( 'message', 1, wp_get_referer() ) . '#addcat' );
-       else
-               wp_safe_redirect( add_query_arg( 'message', 4, wp_get_referer() ) . '#addcat' );
-
-       exit;
-break;
-
-case 'delete':
-       $cat_ID = (int) $_GET['cat_ID'];
-       check_admin_referer('delete-category_' .  $cat_ID);
-
-       if ( !current_user_can('manage_categories') )
-               wp_die(__('Cheatin&#8217; uh?'));
-
-       $cat_name = get_cat_name($cat_ID);
-
-       // Don't delete the default cats.
-       if ( $cat_ID == get_option('default_category') )
-               wp_die(sprintf(__("Can&#8217;t delete the <strong>%s</strong> category: this is the default one"), $cat_name));
-
-       wp_delete_category($cat_ID);
-
-       wp_safe_redirect( add_query_arg( 'message', 2, wp_get_referer() ) );
-       exit;
-
-break;
-
-case 'bulk-delete':
-       check_admin_referer('bulk-categories');
-
-       if ( !current_user_can('manage_categories') )
-               wp_die( __('You are not allowed to delete categories.') );
-
-       foreach ( (array) $_GET['delete'] as $cat_ID ) {
-               $cat_name = get_cat_name($cat_ID);
-
-               // Don't delete the default cats.
-               if ( $cat_ID == get_option('default_category') )
-                       wp_die(sprintf(__("Can&#8217;t delete the <strong>%s</strong> category: this is the default one"), $cat_name));
-
-               wp_delete_category($cat_ID);
-       }
-
-       wp_safe_redirect( wp_get_referer() );
-       exit();
-
-break;
-case 'edit':
-
-       $title = __('Edit Category');
-
-       require_once ('admin-header.php');
-       $cat_ID = (int) $_GET['cat_ID'];
-       $category = get_category_to_edit($cat_ID);
-       include('edit-category-form.php');
-
-break;
-
-case 'editedcat':
-       $cat_ID = (int) $_POST['cat_ID'];
-       check_admin_referer('update-category_' . $cat_ID);
-
-       if ( !current_user_can('manage_categories') )
-               wp_die(__('Cheatin&#8217; uh?'));
-
-       $location = 'categories.php';
-       if ( $referer = wp_get_original_referer() ) {
-               if ( false !== strpos($referer, 'categories.php') )
-                       $location = $referer;
-       }
-
-       if ( wp_update_category($_POST) )
-               $location = add_query_arg('message', 3, $location);
-       else
-               $location = add_query_arg('message', 5, $location);
-
-       wp_redirect($location);
-
-       exit;
-break;
-
-default:
-
-if ( isset($_GET['_wp_http_referer']) && ! empty($_GET['_wp_http_referer']) ) {
-        wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) ) );
-        exit;
-}
-
-wp_enqueue_script('admin-categories');
-if ( current_user_can('manage_categories') )
-       wp_enqueue_script('inline-edit-tax');
-
-require_once ('admin-header.php');
-
-$messages[1] = __('Category added.');
-$messages[2] = __('Category deleted.');
-$messages[3] = __('Category updated.');
-$messages[4] = __('Category not added.');
-$messages[5] = __('Category not updated.');
-?>
-
-<div class="wrap nosubsub">
-<?php screen_icon(); ?>
-<h2><?php echo esc_html( $title );
-if ( isset($_GET['s']) && $_GET['s'] )
-       printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( stripslashes($_GET['s']) ) ); ?>
-</h2>
-
-<?php
-if ( isset($_GET['message']) && ( $msg = (int) $_GET['message'] ) ) : ?>
-<div id="message" class="updated fade"><p><?php echo $messages[$msg]; ?></p></div>
-<?php $_SERVER['REQUEST_URI'] = remove_query_arg(array('message'), $_SERVER['REQUEST_URI']);
-endif; ?>
-
-<form class="search-form topmargin" action="" method="get">
-<p class="search-box">
-       <label class="screen-reader-text" for="category-search-input"><?php _e('Search Categories'); ?>:</label>
-       <input type="text" id="category-search-input" name="s" value="<?php _admin_search_query(); ?>" />
-       <input type="submit" value="<?php esc_attr_e( 'Search Categories' ); ?>" class="button" />
-</p>
-</form>
-<br class="clear" />
-
-<div id="col-container">
-
-<div id="col-right">
-<div class="col-wrap">
-<form id="posts-filter" action="" method="get">
-<div class="tablenav">
-
-<?php
-$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 0;
-if ( empty($pagenum) )
-       $pagenum = 1;
-
-$cats_per_page = get_user_option('categories_per_page');
-if ( empty($cats_per_page) )
-       $cats_per_page = 20;
-$cats_per_page = apply_filters('edit_categories_per_page', $cats_per_page);
-
-if ( !empty($_GET['s']) )
-       $num_cats = count(get_categories(array('hide_empty' => 0, 'search' => $_GET['s'])));
-else
-       $num_cats = wp_count_terms('category');
-
-$page_links = paginate_links( array(
-       'base' => add_query_arg( 'pagenum', '%#%' ),
-       'format' => '',
-       'prev_text' => __('&laquo;'),
-       'next_text' => __('&raquo;'),
-       'total' => ceil($num_cats / $cats_per_page),
-       'current' => $pagenum
-));
-
-if ( $page_links )
-       echo "<div class='tablenav-pages'>$page_links</div>";
-?>
-
-<div class="alignleft actions">
-<select name="action">
-<option value="" selected="selected"><?php _e('Bulk Actions'); ?></option>
-<option value="delete"><?php _e('Delete'); ?></option>
-</select>
-<input type="submit" value="<?php esc_attr_e('Apply'); ?>" name="doaction" id="doaction" class="button-secondary action" />
-<?php wp_nonce_field('bulk-categories'); ?>
-</div>
-
-<br class="clear" />
-</div>
-
-<div class="clear"></div>
-
-<table class="widefat fixed" cellspacing="0">
-       <thead>
-       <tr>
-<?php print_column_headers('categories'); ?>
-       </tr>
-       </thead>
-
-       <tfoot>
-       <tr>
-<?php print_column_headers('categories', false); ?>
-       </tr>
-       </tfoot>
-
-       <tbody id="the-list" class="list:cat">
-<?php
-cat_rows(0, 0, 0, $pagenum, $cats_per_page);
-?>
-       </tbody>
-</table>
-
-<div class="tablenav">
-<?php
-if ( $page_links )
-       echo "<div class='tablenav-pages'>$page_links</div>";
-?>
-
-<div class="alignleft actions">
-<select name="action2">
-<option value="" selected="selected"><?php _e('Bulk Actions'); ?></option>
-<option value="delete"><?php _e('Delete'); ?></option>
-</select>
-<input type="submit" value="<?php esc_attr_e('Apply'); ?>" name="doaction2" id="doaction2" class="button-secondary action" />
-<?php wp_nonce_field('bulk-categories'); ?>
-</div>
-
-<br class="clear" />
-</div>
-
-</form>
-
-<div class="form-wrap">
-<p><?php printf(__('<strong>Note:</strong><br />Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the category <strong>%s</strong>.'), apply_filters('the_category', get_cat_name(get_option('default_category')))) ?></p>
-<p><?php printf(__('Categories can be selectively converted to tags using the <a href="%s">category to tag converter</a>.'), 'admin.php?import=wp-cat2tag') ?></p>
-</div>
-
-</div>
-</div><!-- /col-right -->
-
-<div id="col-left">
-<div class="col-wrap">
-
-<?php if ( current_user_can('manage_categories') ) { ?>
-<?php $category = (object) array(); $category->parent = 0; do_action('add_category_form_pre', $category); ?>
-
-<div class="form-wrap">
-<h3><?php _e('Add Category'); ?></h3>
-<div id="ajax-response"></div>
-<form name="addcat" id="addcat" method="post" action="categories.php" class="add:the-list: validate">
-<input type="hidden" name="action" value="addcat" />
-<?php wp_original_referer_field(true, 'previous'); wp_nonce_field('add-category'); ?>
-
-<div class="form-field form-required">
-       <label for="cat_name"><?php _e('Category Name') ?></label>
-       <input name="cat_name" id="cat_name" type="text" value="" size="40" aria-required="true" />
-    <p><?php _e('The name is used to identify the category almost everywhere, for example under the post or in the category widget.'); ?></p>
-</div>
-
-<div class="form-field">
-       <label for="category_nicename"><?php _e('Category Slug') ?></label>
-       <input name="category_nicename" id="category_nicename" type="text" value="" size="40" />
-    <p><?php _e('The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.'); ?></p>
-</div>
-
-<div class="form-field">
-       <label for="category_parent"><?php _e('Category Parent') ?></label>
-       <?php wp_dropdown_categories(array('hide_empty' => 0, 'name' => 'category_parent', 'orderby' => 'name', 'selected' => $category->parent, 'hierarchical' => true, 'show_option_none' => __('None'))); ?>
-    <p><?php _e('Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have children categories for Bebop and Big Band. Totally optional.'); ?></p>
-</div>
-
-<div class="form-field">
-       <label for="category_description"><?php _e('Description') ?></label>
-       <textarea name="category_description" id="category_description" rows="5" cols="40"></textarea>
-    <p><?php _e('The description is not prominent by default, however some themes may show it.'); ?></p>
-</div>
-
-<p class="submit"><input type="submit" class="button" name="submit" value="<?php esc_attr_e('Add Category'); ?>" /></p>
-<?php do_action('edit_category_form', $category); ?>
-</form></div>
-
-<?php } ?>
-
-</div>
-</div><!-- /col-left -->
-
-</div><!-- /col-container -->
-</div><!-- /wrap -->
-
-<?php
-inline_edit_term_row('categories');
-
-break;
-}
-
-include('admin-footer.php');
-
-?>
index 6499c08..a26ed5c 100644 (file)
@@ -1,13 +1,13 @@
 <?php
 /**
- * Comment Management Panel
+ * Comment Management Screen
  *
  * @package WordPress
  * @subpackage Administration
  */
 
 /** Load WordPress Bootstrap */
-require_once('admin.php');
+require_once('./admin.php');
 
 $parent_file = 'edit-comments.php';
 $submenu_file = 'edit-comments.php';
@@ -17,6 +17,18 @@ wp_reset_vars( array('action') );
 if ( isset( $_POST['deletecomment'] ) )
        $action = 'deletecomment';
 
+if ( 'cdc' == $action )
+       $action = 'delete';
+elseif ( 'mac' == $action )
+       $action = 'approve';
+
+if ( isset( $_GET['dt'] ) ) {
+       if ( 'spam' == $_GET['dt'] )
+               $action = 'spam';
+       elseif ( 'trash' == $_GET['dt'] )
+               $action = 'trash';
+}
+
 /**
  * Display error message at bottom of comments.
  *
@@ -24,7 +36,7 @@ if ( isset( $_POST['deletecomment'] ) )
  */
 function comment_footer_die( $msg ) {
        echo "<div class='wrap'><p>$msg</p></div>";
-       include('admin-footer.php');
+       include('./admin-footer.php');
        die;
 }
 
@@ -33,79 +45,112 @@ switch( $action ) {
 case 'editcomment' :
        $title = __('Edit Comment');
 
+       add_contextual_help( $current_screen, '<p>' . __( 'You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error.' ) . '</p>' .
+       '<p>' . __( 'You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment.' ) . '</p>' .
+       '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
+       '<p>' . __( '<a href="http://codex.wordpress.org/Administration_Screens#Comments" target="_blank">Documentation on Comments</a>' ) . '</p>' .
+       '<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+       );
+
        wp_enqueue_script('comment');
-       require_once('admin-header.php');
+       require_once('./admin-header.php');
 
        $comment_id = absint( $_GET['c'] );
 
        if ( !$comment = get_comment( $comment_id ) )
                comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'javascript:history.go(-1)') );
 
-       if ( !current_user_can('edit_post', $comment->comment_post_ID) )
-               comment_footer_die( __('You are not allowed to edit comments on this post.') );
+       if ( !current_user_can( 'edit_comment', $comment_id ) )
+               comment_footer_die( __('You are not allowed to edit this comment.') );
+
+       if ( 'trash' == $comment->comment_approved )
+               comment_footer_die( __('This comment is in the Trash. Please move it out of the Trash if you want to edit it.') );
 
        $comment = get_comment_to_edit( $comment_id );
 
-       include('edit-form-comment.php');
+       include('./edit-form-comment.php');
 
        break;
 
-case 'cdc' :
-case 'mac' :
+case 'delete'  :
+case 'approve' :
+case 'trash'   :
+case 'spam'    :
 
-       require_once('admin-header.php');
+       $title = __('Moderate Comment');
 
        $comment_id = absint( $_GET['c'] );
-       $formaction = 'cdc' == $action ? 'deletecomment' : 'approvecomment';
-       $nonce_action = 'cdc' == $action ? 'delete-comment_' : 'approve-comment_';
-       $nonce_action .= $comment_id;
 
-       if ( !$comment = get_comment_to_edit( $comment_id ) )
-               comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php') );
+       if ( !$comment = get_comment_to_edit( $comment_id ) ) {
+               wp_redirect( admin_url('edit-comments.php?error=1') );
+               die();
+       }
+
+       if ( !current_user_can( 'edit_comment', $comment->comment_ID ) ) {
+               wp_redirect( admin_url('edit-comments.php?error=2') );
+               die();
+       }
+
+       // No need to re-approve/re-trash/re-spam a comment.
+       if ( $action == str_replace( '1', 'approve', $comment->comment_approved ) ) {
+               wp_redirect( admin_url( 'edit-comments.php?same=' . $comment_id ) );
+               die();
+       }
+
+       require_once('./admin-header.php');
+
+       $formaction    = $action . 'comment';
+       $nonce_action  = 'approve' == $action ? 'approve-comment_' : 'delete-comment_';
+       $nonce_action .= $comment_id;
 
-       if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
-               comment_footer_die( 'cdc' == $action ? __('You are not allowed to delete comments on this post.') : __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
 ?>
 <div class='wrap'>
 
 <div class="narrow">
+
+<?php screen_icon(); ?>
+<h2><?php echo esc_html( $title ); ?></h2>
+
 <?php
-if ( 'spam' == $_GET['dt'] ) {
-       $caution_msg = __('You are about to mark the following comment as spam:');
-       $button = __('Spam Comment');
-} elseif ( 'cdc' == $action ) {
-       $caution_msg = __('You are about to delete the following comment:');
-       $button = __('Delete Comment');
-} else {
-       $caution_msg = __('You are about to approve the following comment:');
-       $button = __('Approve Comment');
+switch ( $action ) {
+       case 'spam' :
+               $caution_msg = __('You are about to mark the following comment as spam:');
+               $button      = __('Spam Comment');
+               break;
+       case 'trash' :
+               $caution_msg = __('You are about to move the following comment to the Trash:');
+               $button      = __('Trash Comment');
+               break;
+       case 'delete' :
+               $caution_msg = __('You are about to delete the following comment:');
+               $button      = __('Permanently Delete Comment');
+               break;
+       default :
+               $caution_msg = __('You are about to approve the following comment:');
+               $button      = __('Approve Comment');
+               break;
 }
-?>
 
+if ( $comment->comment_approved != '0' ) { // if not unapproved
+       $message = '';
+       switch ( $comment->comment_approved ) {
+               case '1' :
+                       $message = __('This comment is currently approved.');
+                       break;
+               case 'spam' :
+                       $message  = __('This comment is currently marked as spam.');
+                       break;
+               case 'trash' :
+                       $message  = __('This comment is currently in the Trash.');
+                       break;
+       }
+       if ( $message )
+               echo '<div class="updated"><p>' . $message . '</p></div>';
+}
+?>
 <p><strong><?php _e('Caution:'); ?></strong> <?php echo $caution_msg; ?></p>
 
-<p><?php _e('Are you sure you want to do that?'); ?></p>
-
-<form action='comment.php' method='get'>
-
-<table width="100%">
-<tr>
-<td><input type='button' class="button" value='<?php esc_attr_e('No'); ?>' onclick="self.location='<?php echo admin_url('edit-comments.php'); ?>" /></td>
-<td class="textright"><input type='submit' class="button" value='<?php echo esc_attr($button); ?>' /></td>
-</tr>
-</table>
-
-<?php wp_nonce_field( $nonce_action ); ?>
-<input type='hidden' name='action' value='<?php echo esc_attr($formaction); ?>' />
-<?php if ( 'spam' == $_GET['dt'] ) { ?>
-<input type='hidden' name='dt' value='spam' />
-<?php } ?>
-<input type='hidden' name='p' value='<?php echo esc_attr($comment->comment_post_ID); ?>' />
-<input type='hidden' name='c' value='<?php echo esc_attr($comment->comment_ID); ?>' />
-<input type='hidden' name='noredir' value='1' />
-</form>
-
-<table class="form-table" cellpadding="5">
+<table class="form-table comment-ays">
 <tr class="alt">
 <th scope="row"><?php _e('Author'); ?></th>
 <td><?php echo $comment->comment_author; ?></td>
@@ -123,96 +168,100 @@ if ( 'spam' == $_GET['dt'] ) {
 </tr>
 <?php } ?>
 <tr>
-<th scope="row" valign="top"><?php /* translators: field name in comment form */ echo _x('Comment', 'noun'); ?></th>
+<th scope="row" valign="top"><?php /* translators: field name in comment form */ _ex('Comment', 'noun'); ?></th>
 <td><?php echo $comment->comment_content; ?></td>
 </tr>
 </table>
 
+<p><?php _e('Are you sure you want to do this?'); ?></p>
+
+<form action='comment.php' method='get'>
+
+<table width="100%">
+<tr>
+<td><a class="button" href="<?php echo admin_url('edit-comments.php'); ?>"><?php esc_attr_e('No'); ?></a></td>
+<td class="textright"><?php submit_button( $button, 'button' ); ?></td>
+</tr>
+</table>
+
+<?php wp_nonce_field( $nonce_action ); ?>
+<input type='hidden' name='action' value='<?php echo esc_attr($formaction); ?>' />
+<input type='hidden' name='c' value='<?php echo esc_attr($comment->comment_ID); ?>' />
+<input type='hidden' name='noredir' value='1' />
+</form>
+
 </div>
 </div>
 <?php
        break;
 
-case 'deletecomment' :
+case 'deletecomment'    :
+case 'trashcomment'     :
+case 'untrashcomment'   :
+case 'spamcomment'      :
+case 'unspamcomment'    :
+case 'approvecomment'   :
+case 'unapprovecomment' :
        $comment_id = absint( $_REQUEST['c'] );
-       check_admin_referer( 'delete-comment_' . $comment_id );
 
-       if ( isset( $_REQUEST['noredir'] ) )
-               $noredir = true;
+       if ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ) ) )
+               check_admin_referer( 'approve-comment_' . $comment_id );
        else
-               $noredir = false;
+               check_admin_referer( 'delete-comment_' . $comment_id );
 
-       if ( !$comment = get_comment( $comment_id ) )
-               comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit-comments.php') );
+       $noredir = isset($_REQUEST['noredir']);
 
-       if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
+       if ( !$comment = get_comment($comment_id) )
+               comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit-comments.php') );
+       if ( !current_user_can( 'edit_comment', $comment->comment_ID ) )
                comment_footer_die( __('You are not allowed to edit comments on this post.') );
 
-       if ( 'spam' == $_REQUEST['dt'] )
-               wp_set_comment_status( $comment->comment_ID, 'spam' );
-       else
-               wp_delete_comment( $comment->comment_ID );
-
-       if ( '' != wp_get_referer() && false == $noredir && false === strpos(wp_get_referer(), 'comment.php' ) )
-               wp_redirect( wp_get_referer() );
-       else if ( '' != wp_get_original_referer() && false == $noredir )
-               wp_redirect( wp_get_original_referer() );
+       if ( '' != wp_get_referer() && ! $noredir && false === strpos(wp_get_referer(), 'comment.php') )
+               $redir = wp_get_referer();
+       elseif ( '' != wp_get_original_referer() && ! $noredir )
+               $redir = wp_get_original_referer();
+       elseif ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ) ) )
+               $redir = admin_url('edit-comments.php?p=' . absint( $comment->comment_post_ID ) );
        else
-               wp_redirect( admin_url('edit-comments.php') );
-
+               $redir = admin_url('edit-comments.php');
+
+       $redir = remove_query_arg( array('spammed', 'unspammed', 'trashed', 'untrashed', 'deleted', 'ids', 'approved', 'unapproved'), $redir );
+
+       switch ( $action ) {
+               case 'deletecomment' :
+                       wp_delete_comment( $comment_id );
+                       $redir = add_query_arg( array('deleted' => '1'), $redir );
+                       break;
+               case 'trashcomment' :
+                       wp_trash_comment($comment_id);
+                       $redir = add_query_arg( array('trashed' => '1', 'ids' => $comment_id), $redir );
+                       break;
+               case 'untrashcomment' :
+                       wp_untrash_comment($comment_id);
+                       $redir = add_query_arg( array('untrashed' => '1'), $redir );
+                       break;
+               case 'spamcomment' :
+                       wp_spam_comment($comment_id);
+                       $redir = add_query_arg( array('spammed' => '1', 'ids' => $comment_id), $redir );
+                       break;
+               case 'unspamcomment' :
+                       wp_unspam_comment($comment_id);
+                       $redir = add_query_arg( array('unspammed' => '1'), $redir );
+                       break;
+               case 'approvecomment' :
+                       wp_set_comment_status( $comment_id, 'approve' );
+                       $redir = add_query_arg( array( 'approved' => 1 ), $redir );
+                       break;
+               case 'unapprovecomment' :
+                       wp_set_comment_status( $comment_id, 'hold' );
+                       $redir = add_query_arg( array( 'unapproved' => 1 ), $redir );
+                       break;
+       }
+
+       wp_redirect( $redir );
        die;
        break;
 
-case 'unapprovecomment' :
-       $comment_id = absint( $_GET['c'] );
-       check_admin_referer( 'unapprove-comment_' . $comment_id );
-
-       if ( isset( $_GET['noredir'] ) )
-               $noredir = true;
-       else
-               $noredir = false;
-
-       if ( !$comment = get_comment( $comment_id ) )
-               comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php') );
-
-       if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
-               comment_footer_die( __('You are not allowed to edit comments on this post, so you cannot disapprove this comment.') );
-
-       wp_set_comment_status( $comment->comment_ID, 'hold' );
-
-       if ( '' != wp_get_referer() && false == $noredir )
-               wp_redirect( wp_get_referer() );
-       else
-               wp_redirect( admin_url('edit-comments.php?p=' . absint( $comment->comment_post_ID ) . '#comments') );
-
-       exit();
-       break;
-
-case 'approvecomment' :
-       $comment_id = absint( $_GET['c'] );
-       check_admin_referer( 'approve-comment_' . $comment_id );
-
-       if ( isset( $_GET['noredir'] ) )
-               $noredir = true;
-       else
-               $noredir = false;
-
-       if ( !$comment = get_comment( $comment_id ) )
-               comment_footer_die( __('Oops, no comment with this ID.') . sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit.php') );
-
-       if ( !current_user_can('edit_post', $comment->comment_post_ID) )
-               comment_footer_die( __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
-
-       wp_set_comment_status( $comment->comment_ID, 'approve' );
-
-       if ( '' != wp_get_referer() && false == $noredir )
-               wp_redirect( wp_get_referer() );
-       else
-               wp_redirect( admin_url('edit-comments.php?p=' . absint( $comment->comment_post_ID ) . '#comments') );
-
-       exit();
-       break;
-
 case 'editedcomment' :
 
        $comment_id = absint( $_POST['comment_ID'] );
@@ -235,6 +284,6 @@ default:
 
 } // end switch
 
-include('admin-footer.php');
+include('./admin-footer.php');
 
-?>
\ No newline at end of file
+?>
diff --git a/Websites/webkit.org/blog/wp-admin/credits.php b/Websites/webkit.org/blog/wp-admin/credits.php
new file mode 100644 (file)
index 0000000..773053a
--- /dev/null
@@ -0,0 +1,176 @@
+<?php
+/**
+ * Credits administration panel.
+ *
+ * @package WordPress
+ * @subpackage Administration
+ */
+
+/** WordPress Administration Bootstrap */
+require_once( './admin.php' );
+
+$title = __( 'Credits' );
+$parent_file = 'index.php';
+
+add_contextual_help($current_screen,
+       '<p>' . __('Each name or handle is a link to that person&#8217;s profile in the WordPress.org community directory.') . '</p>' .
+       '<p>' . __('You can register your own profile at <a href="http://wordpress.org/support/register.php" target="_blank">this link</a> to start contributing.') . '</p>' .
+       '<p>' . __('WordPress always needs more people to report bugs, patch bugs, test betas, work on UI design, translate strings, write documentation, and add questions/answers/suggestions to the Support Forums. Join in!') . '</p>' .
+       '<p><strong>' . __('For more information:') . '</strong></p>' .
+       '<p>' . __('<a href="http://codex.wordpress.org/Contributing_to_WordPress" target="_blank">Documentation on Contributing to WordPress</a>') . '</p>' .
+       '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+);
+
+add_action( 'admin_head', '_wp_credits_add_css' );
+function _wp_credits_add_css() { ?>
+<style type="text/css">
+div.wrap { max-width: 750px }
+h3.wp-people-group, p.wp-credits-list { clear: both; }
+ul.compact { margin-bottom: 0 }
+
+<?php if ( is_rtl() ) { ?>
+ul.wp-people-group { margin-bottom: 30px; float: right; clear: both; }
+li.wp-person { float: right; height: 70px; width: 220px; margin-left: 10px; }
+li.wp-person img.gravatar { float: right; margin-left: 10px; margin-bottom: 10px; }
+<?php } else { ?>
+li.wp-person { float: left; margin-right: 10px; }
+li.wp-person img.gravatar { float: left; margin-right: 10px; margin-bottom: 10px; }
+<?php } ?>
+li.wp-person img.gravatar { width: 60px; height: 60px; }
+ul.compact li.wp-person img.gravatar { width: 30px; height: 30px; }
+li.wp-person { height: 70px; width: 220px; }
+ul.compact li.wp-person { height: 40px; width: auto; white-space: nowrap }
+li.wp-person a.web { font-size: 16px; text-decoration: none; }
+</style>
+<?php }
+
+function wp_credits() {
+       global $wp_version;
+       $locale = get_locale();
+
+       $results = get_site_transient( 'wordpress_credits_' . $locale );
+
+       if ( ! is_array( $results ) ) {
+             &nb