Compare commits

..

125 Commits
3.7.3 ... 2.5.1

Author SHA1 Message Date
ryan
ee9cfcb2ab Bump
git-svn-id: http://svn.automattic.com/wordpress/tags/2.5.1@7835 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 15:42:08 +00:00
ryan
5146ea6235 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/tags/2.5.1@7833 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 15:37:11 +00:00
ryan
e4d91883ca Allow editing of attachmentts with no titles. Props mdawaffe. fixes #6839 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7832 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 15:28:22 +00:00
ryan
f5cfd43ba7 Move cap check up. Props mdawaffe. fixes #6838 for trunk
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7830 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 15:23:23 +00:00
ryan
6c50df7ee0 Add cap checks. see #6838
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7828 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 15:01:28 +00:00
markjaquith
99854603b7 fix typo in [7823] for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7826 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 06:40:52 +00:00
markjaquith
abaf6b5f7c Still polishing 2.5.1, so let's unbump so our "for reals, this time" 2.5.1 bump matches the zip
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7824 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 06:29:37 +00:00
markjaquith
a84a617c5f attribute_escape() and int-casting paranoia for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7823 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 06:26:54 +00:00
ryan
ca6163154c Add some sanity checks
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7822 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 06:20:50 +00:00
markjaquith
80e08c043d attribute_escape() type in the media-uploder. props Alex Concha. for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7819 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 05:55:27 +00:00
markjaquith
9eaee46376 Don't wpautop()-wrap shortcodes that stand alone. fixes #6444 for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7816 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 00:46:17 +00:00
ryan
89ff8f4c43 Bump the autosave re-enable delay to 5 seconds, makes sure we manually re-enable the buttons on ajax success, and visually dim the disabled buttons for some UI feedback. Props mdawaffe. fixes #6707 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7812 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-25 00:32:16 +00:00
ryan
ea8a8fdb9f Revert [770] for 2.5 pending further discussion. see #6444
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7811 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-24 22:31:37 +00:00
ryan
53a8c38817 Typo fix
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7809 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-24 17:30:57 +00:00
ryan
9a44de8001 Document new secret-key API in sample config.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7807 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-24 17:26:04 +00:00
ryan
72e90ed56b Bumpity bump bump
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7806 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-24 05:45:34 +00:00
ryan
28fa29542d Discard buffers. Props azaozz. fixes #6794 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7805 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-24 01:26:55 +00:00
ryan
bbcc199661 strlen - 1. Props mdawaffe. see #6146
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7803 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-24 01:13:59 +00:00
ryan
6847a0faff Don't query for checked categories for new posts. For 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7801 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-24 00:55:22 +00:00
ryan
ace86d3f26 hash_hmac is always available. Drop function_exists check. For 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7799 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-24 00:33:47 +00:00
ryan
61a86c831f Add length arg to wp_generate_password() and lengthen secret. Props tellyworth. fixes #6146 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7798 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-24 00:33:19 +00:00
markjaquith
30023b503b Fix redirect issue with null post_ID equaling null url_to_postid(). fixes #6674 for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7795 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-23 22:59:10 +00:00
ryan
7b31ea2f06 Reverting [7733]. Breaks listing of categories with posts that have parents with no posts.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7793 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-23 22:02:09 +00:00
ryan
d391388a17 Disable buttons until autosave completes. Props mdawaffe. fixes #6707 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7791 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-23 02:23:07 +00:00
ryan
493c35109c Disable buttons until autosave completes. Props mdawaffe. fixes #6707 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7789 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-23 01:56:19 +00:00
ryan
8d276f74b9 Fix reveresed logic. see #6805
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7786 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-23 01:22:03 +00:00
ryan
5394649f2c Typo fixes from DD32. fixes #6818 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7784 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-23 01:14:15 +00:00
ryan
664fd8d96a Direct file system manip fixes, should fix .svn upgrade problem. Hat tip: DD32.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7783 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-23 00:51:45 +00:00
ryan
7f12fcc775 don't get or set post_lock if you can't edit the post/page. Props mdawaffe
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7782 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-22 23:57:04 +00:00
ryan
0ad2ea5a73 Fix text widget cropping in IE6. Props mdawaffe. fixes #6792 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7779 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-22 23:48:14 +00:00
ryan
e136d41287 wp_category_checklist() fixes from mdawaffe. fixes #6810 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7778 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-22 22:46:09 +00:00
ryan
3ccb4b4c1e Consolidate get_pending_comments_num() queries. see #6770 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7776 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-22 21:33:29 +00:00
ryan
67fcce65a5 Silence ini_get warnings. fixes #6787 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7773 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-22 21:23:57 +00:00
ryan
6f22f9fa1e Typo fix from peaceablewhale. fixes #6579 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7771 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-22 21:16:25 +00:00
ryan
5ea09d46ed Convert Walker classes to pass as reference. Props mdawaffe. fixes #6796 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7770 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-22 21:06:00 +00:00
ryan
5e7617335c Normalize whitespace when parsing shortcodes. Props azaozz. fixes #6562 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7768 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-22 20:54:32 +00:00
ryan
1bfa1265c6 Comment query fix from MtDewVirus. fixes #6805 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7767 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-22 20:51:54 +00:00
ryan
43b4658332 Remove debug cruft
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7765 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-21 19:47:53 +00:00
ryan
d20ece66d0 Consult the cached user object in get_usermeta to avoid queries. For 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7764 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-21 19:47:15 +00:00
ryan
2594a95ca1 Only use the args defined in defaults to compute the cache key in get_terms. Props mdawaffe. For 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7763 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-21 19:45:49 +00:00
ryan
0231cb3c54 Don't run url_to_postid on admin pages. For 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7762 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-21 19:45:03 +00:00
ryan
988a8b90f2 Post and page edit redirect fixes. fixes #6720 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7760 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-21 17:56:07 +00:00
ryan
d46ca509a4 Check if PATH_INFO is set to avoid undefined index errors. see #5160
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7758 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-21 17:35:57 +00:00
ryan
7db1ac2f8c Redirect back to original referer when deleting a comment from the edit comment page. fixes #6458 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7756 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-21 16:46:15 +00:00
ryan
b7187caeec Don't include perm as part of cache key if perm is not used in the query.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7753 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-20 21:28:52 +00:00
ryan
317f80dbac Check publish_pages capability, not publish_posts. Props matthijs. fixes #6777 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7751 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-20 06:48:33 +00:00
ryan
c8a7c7e0ab Fix pass by ref error. Props DD32. fixes #6776 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7748 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-20 06:44:56 +00:00
ryan
e1d35a3bdb Move cache cleaning of children to clean_post_cache(). see #6702
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7744 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-18 20:24:35 +00:00
ryan
1f0591aa48 If widget ID not found, scan the entire registered widgets array looking for legacy IDs. Props Denis-de-Bernardy. fixes #6605
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7735 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-18 02:19:09 +00:00
ryan
4104bcd7d0 Checking for 0 and 1 instead of != spam is faster. For 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7734 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-18 01:53:49 +00:00
ryan
962900ab2e We don't need get_categories() to do a hierarchical sort anymore. The walker takes care of it. For 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7733 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-18 01:53:14 +00:00
ryan
b015c52d5e Typo fix. see #6578
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7731 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-17 22:01:04 +00:00
ryan
d45f98f405 don't cache during title extraction. Props mdawaffe. fixes #6694 for trunk
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7727 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-17 20:42:33 +00:00
ryan
fba8028ae0 Tweak unused widgets interface. Make widget titles less repetitive. fixes #6349 #5823 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7725 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-17 20:36:33 +00:00
ryan
109916a11f Make link widget IDs unique. Props docwhat. fixes #4287 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7723 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-17 20:31:39 +00:00
ryan
6a16fd5e6d Verify widget option sanity. Props Viper007Bond. fixes #6578 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7722 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-17 20:14:22 +00:00
ryan
51d6103a9a Key meta box array by id. Props Denis-de-Bernardy. fixes #6192 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7718 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-17 19:19:50 +00:00
ryan
455722693d Protect the <pre> and <script> tags when switching editors. Props azaozz. fixes #6610 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7717 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-17 19:11:44 +00:00
ryan
abeb8a544e Cache comment count and use count API in menu.php
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7715 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-17 00:10:20 +00:00
ryan
b386194ffa array_shift() error fixes from DD32. fixes #6499 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-16 23:09:37 +00:00
ryan
60cec12950 Bump script loader ver. see #6753
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7711 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-16 22:58:38 +00:00
ryan
fba5ed50ab Preserve author during autosave. fixes #6753 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7709 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-16 22:57:13 +00:00
ryan
1e3a2e2aa4 Legacy uploader fix from tellyworth. fixes #6629 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7706 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-16 22:03:35 +00:00
ryan
98a8c05902 Make profile fields wider. Props tellyworth. fixes #6581 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7704 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-16 22:01:04 +00:00
ryan
24521ef451 image_make_intermediate_size filter from tellyworth. fixes #6580 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-16 21:58:54 +00:00
markjaquith
ab9e1dda9e Allow shortcodes to run before or after wpautop()/texturize() formatting. Default to before for WP 2.5 compat. Props AaronCampbell. fixes #6444 for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7700 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-16 21:09:22 +00:00
ryan
8f99a7edf6 Custom header and color picker fixes from mdawaffe. fixes #6577 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7697 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-16 20:57:50 +00:00
ryan
3e12c10654 Add post ancestors to the cache for the post object. see #6702 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7695 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-16 17:23:40 +00:00
ryan
7f74c32450 Relocate wp_authenticate action to fix back compat and make it more useful. fixes #6675 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7691 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-16 04:48:52 +00:00
ryan
39ad2fdc45 phpdoc typo fix from filosofo. fixes #6712 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7688 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-15 16:36:19 +00:00
ryan
a86a856e4f Add or remove class=aligncenter when aligning images in TinyMCE. Props azaozz. fixes #6645 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7686 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-15 16:02:26 +00:00
ryan
bb7f1cfb34 Fix menu_order ordering. Props torfason. fixes #6731 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7684 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-15 01:39:19 +00:00
ryan
cf10270400 Workaround response truncation by reducing size of response after uploading with flash uploader. Props tellyworth. fixes #6713 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7683 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 23:09:50 +00:00
ryan
6fba83e3ed tiny_mce_gzip.php no longer needed
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7680 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 22:30:06 +00:00
ryan
aa2e5fd539 TinyMCE 3.0.7 from azaozz. fixes #6726 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7678 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 22:18:42 +00:00
ryan
71298d2ec2 Fix IE6 overlap and remove unnecessary markup. Props tellyworth. fixes #6661 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7676 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 20:47:51 +00:00
ryan
9533faa4a9 Allow TinyMCE to work under SSL. Fixes #6544 for 2.5. Hat tip: blenjee, azaozz.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7675 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 20:34:31 +00:00
ryan
af10e900ae Suppress exif_read_data() errors. Props tellyworth. fixes #6571 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7674 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 20:19:34 +00:00
ryan
c305d50e22 Pass size to image_send_to_editor filter. fies #6691 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7672 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 19:47:37 +00:00
ryan
d9237d0a99 More efficient category and list JS from mdawaffe. fixes #6677 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7670 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 19:31:46 +00:00
ryan
b85ba2cded Fix category exclusion when getting adjacent posts. Props filosofo. fixes #6551 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7668 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 17:57:30 +00:00
ryan
15ab45a62e Handle pathinfo structures when determining if verbose page rules should be used. Props dlo. fixes #6650 #6570 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7666 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 17:19:40 +00:00
ryan
58ce006767 Move define of AUTOSAVE_INTERVAL to wp-settings so that it is available earlier. Props simonwheatley. fixes #6668 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7663 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 17:07:18 +00:00
ryan
9d1b502247 CSS typo fixes from spirit55555. fixes #6653 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7661 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 17:05:09 +00:00
ryan
984f638db5 Check create_users cap instead of edit_users wgen adding/inserting users. Props imwebgefunden. fixes #6662 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7659 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 16:56:55 +00:00
ryan
d74b5402a4 Use input instead of button to work around IE6 bug. Props tellyworth. fixes #6660 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7656 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 16:38:59 +00:00
ryan
9004e197b8 Validation fixes for uploader. Props sambauers. fixes #6659 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7653 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 16:33:26 +00:00
ryan
c425a9ffde Fix image fetching in get_media_items(). Props tellyworth. fixes #6657 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7650 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 16:30:09 +00:00
ryan
968fe5782f Make MT post status lower case when importing. Props jgbishop. fixes #6656 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7648 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 16:26:07 +00:00
ryan
7fa9696c0f Make get_posts args optional. Props karlkatzke and Otto42. fixes #6608 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7646 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 16:23:16 +00:00
ryan
18edbf6cee Use error handler instead of die when moving files to upload dir fails. Props simonwheatley. fixes #6450 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7643 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-14 16:01:46 +00:00
ryan
6ac1b6f6a3 Add post_date_column_time filter for easy time customization.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-10 18:58:26 +00:00
ryan
a35f472fa8 Use wp_count_posts() to determine availabel statuses for get_available_post_statuses(). fixes #6654 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7637 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-09 20:09:08 +00:00
ryan
3098d9bd6d Don't send content length for tinymce config. Props azaozz. fixes #6524 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7636 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-09 19:02:46 +00:00
ryan
4ee4d53a91 Use DB prepare on login queries. Props filosofo. fixes #6640 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7632 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-08 17:29:39 +00:00
ryan
9e92916a50 Strip percent signs when sanitizing filenames so the server doesn't try to decode entities. Props filosofo. fixes #5587 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7630 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-08 17:21:02 +00:00
ryan
fd295cab5c Disambiguate default slugs. Props RanYanivHartstein. fixes #6614 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7629 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-08 17:14:33 +00:00
ryan
0107ebf65b Move category query to get category case of get_permalink to avoid unnecessary queries. Props mdawaffe. fixes #6638 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7627 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-08 01:55:26 +00:00
ryan
661f1173eb Show all categories in category filter. Don't show misleading counts. see #6439
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-08 01:51:57 +00:00
ryan
c57249747c Revert [7606]. It breaks setting posts page. see #6539
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7623 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-08 01:06:34 +00:00
ryan
2e9d8ff9f1 Avoid data-loss when editing multi-widgets. Props mdawaffe. fixes #6636 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7621 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-07 21:40:41 +00:00
ryan
3d05cf0bb8 Fix add_users_page() when current user does not have edit_users cap. Props mattyrob. fixes #6621 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7619 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-07 21:25:42 +00:00
ryan
9c0dc30258 Escape faultString in IXR. Props josephscott. fixes #5666 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7616 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-07 18:32:17 +00:00
ryan
092da00763 Update timestamp when only the minute value is changed. fixes #6456 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7613 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-07 17:19:26 +00:00
ryan
f4ac245297 upload_file_glob filter from tellyworth. fixes #6628 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-07 17:10:20 +00:00
ryan
df5d98e6f5 Update timestamp when only the minute value is changed. fixes #6456 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7610 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-07 17:07:42 +00:00
ryan
0c8c6a81bd Fix RTL alignment for delete button. Props RanYanivHartstein. fixes #6617 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7608 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-06 23:26:43 +00:00
ryan
2fe8b23805 Explicit ID check so we don't fall through for empties. Props natecook. fixes #6539 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7606 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-06 23:23:16 +00:00
ryan
67b2b82081 Order cats by name. Props MtDewVirus. fixes #6623 for 2.5
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7604 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-06 22:30:46 +00:00
westi
face47fad7 Select the link in the link popup again. Fixes #6521 for 2.5.1 props azaozz.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7598 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-03 20:16:04 +00:00
markjaquith
9867d494e2 Don't show delete checkbox for default category. HTML validation. props johnbillion. fixes #6560 for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7596 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-03 05:03:44 +00:00
markjaquith
e102a5962f Parse shortcodes AFTER wpautop() to avoid mangling. Have wptexturize() ignore shortcodes so quotes stay straight. fixes #6444 for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7594 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-03 03:15:06 +00:00
markjaquith
9aa5cf72cd Fix gallery shortcode orderby param for all SQL setups. Sanitize orderby. fixes #6476 for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7593 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-03 03:06:01 +00:00
westi
24479c7989 Ensure we only fire off ajax requests for the dashboard widgets when the cache has expired. Fixes #6533 for 2.5.1 props mdawaffe.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7591 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-02 16:23:59 +00:00
westi
3c443ed481 Replace the last usage of ctype_digit with is_numeric. Fixes #6534 for 2.5.1 props mtekk.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7589 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-02 16:19:32 +00:00
markjaquith
c0adade2cc Sanitize "cat" query var and cast to int before looking for a category template
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7586 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-02 13:15:21 +00:00
westi
2e6d301d43 Rearrange the media uploader view so the filename is visible. Fixes #6517 for 2.5.1 props andy.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7585 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-01 21:14:17 +00:00
westi
dcd9f8b4e6 Make sure the rewrite rules for the feed files match when WordPress is installed in a subdirectory. Fixes #6460 for 2.5.1.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7583 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-03-31 19:56:29 +00:00
westi
fe65f84555 Mark the branch as what it is.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7580 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-03-30 21:13:52 +00:00
markjaquith
b46f5fa6cc Move user search </form> to correct position. props Nazgul and bl968. fixes #6462 for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7578 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-03-30 16:48:53 +00:00
markjaquith
660d4771a9 Gallery XHTML validation fixes. props shelleyp. fixes #6461 for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7576 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-03-30 16:42:20 +00:00
markjaquith
74b520ad62 Remove errant commas to prevent file uploader script errors in IE7. props tsimmons. fixes #6443 for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7573 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-03-30 06:11:49 +00:00
markjaquith
0454882f71 Update timestamp when only the minute value is changed. props johnconners. fixes #6456 for 2.5.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7571 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-03-30 06:06:55 +00:00
westi
31a2e8a94d Prepare the 2.5 branch for later
git-svn-id: http://svn.automattic.com/wordpress/branches/2.5@7568 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-03-29 16:21:46 +00:00
westi
9f64b0278f Do the tagging dance.
git-svn-id: http://svn.automattic.com/wordpress/tags/2.5@7567 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-03-29 16:19:03 +00:00
1318 changed files with 69685 additions and 276930 deletions

View File

@@ -1,17 +1,5 @@
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
/* Short and sweet */
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
require('./wp-blog-header.php');
?>

View File

@@ -1,51 +1,12 @@
WordPress - Web publishing software
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright 2013 by the contributors
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
This program incorporates work covered by the following copyright and
permission notices:
b2 is (c) 2001, 2002 Michel Valdrighi - m@tidakada.com -
http://tidakada.com
Wherever third party code has been used, credit has been given in the code's
comments.
b2 is released under the GPL
and
WordPress - Web publishing software
Copyright 2003-2010 by the contributors
WordPress is released under the GPL
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -54,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@@ -95,7 +56,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@@ -159,7 +120,6 @@ distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
@@ -294,7 +254,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@@ -316,70 +276,5 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
WRITTEN OFFER
The source code for any program binaries or compressed scripts that are
included with WordPress can be freely obtained at the following URL:
http://wordpress.org/download/source/

View File

@@ -1,95 +1,91 @@
<!DOCTYPE html>
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WordPress &#8250; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css?ver=20100228" type="text/css" />
<title>WordPress &rsaquo; ReadMe</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1 id="logo">
<a href="http://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" /></a>
<br /> Version 3.7.3
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.5
</h1>
<p style="text-align: center">Semantic Personal Publishing Platform</p>
<h1>First Things First</h1>
<p>Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I&#8217;m proud to be a part of. Thousands of hours have gone into WordPress, and we&#8217;re dedicated to making it better every day. Thank you for making it part of your world.</p>
<p style="text-align: right">&#8212; Matt Mullenweg</p>
<p>Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I'm proud to be a part of. Thousands of hours have gone into WordPress, and we're dedicated to making it better every day. Thank you for making it part of your world.</p>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<li>Unzip the package in an empty directory and upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser. It will take you through the process to set up a <code>wp-config.php</code> file with your database connection details.
<ol>
<li>If for some reason this doesn&#8217;t work, don&#8217;t worry. It doesn&#8217;t work on all web hosts. Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code> and upload it.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">wp-admin/install.php</a></span> in your browser.</li>
</ol>
</li>
<li>Once the configuration file is set up, the installer will set up the tables needed for your blog. If there is an error, double check your <code>wp-config.php</code> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/" title="WordPress support">support forums</a> with as much data as you can gather.</li>
<li><strong>If you did not enter a password, note the password given to you.</strong> If you did not provide a username, it will be <code>admin</code>.</li>
<li>The installer should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on &#8220;Profile&#8221; to change the password.</li>
<li>Unzip the package in an empty directory.</li>
<li>Open up <code>wp-config-sample.php</code> with a text editor like WordPad or similar and fill in your database connection details.</li>
<li>Save the file as <code>wp-config.php</code></li>
<li>Upload everything.</li>
<li>Open <span class="file"><a href="wp-admin/install.php">/wp-admin/install.php</a></span> in your browser. This should setup the tables needed for your blog. If there is an error, double check your <span class="file">wp-config.php</span> file, and try again. If it fails again, please go to the <a href="http://wordpress.org/support/">support forums</a> with as much data as you can gather.</li>
<li><strong>Note the password given to you.</strong></li>
<li> The install script should then send you to the <a href="wp-login.php">login page</a>. Sign in with the username <code>admin</code> and the password generated during the installation. You can then click on 'Profile' to change the password.</li>
</ol>
<h1>Updating</h1>
<h2>Using the Automatic Updater</h2>
<p>If you are updating from version 2.7 or higher, you can use the automatic updater:</p>
<h1>Upgrading</h1>
<p>Before you upgrade anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</p>
<h2>Upgrading from any previous WordPress to 2.5:</h2>
<ol>
<li>Open <span class="file"><a href="wp-admin/update-core.php">wp-admin/update-core.php</a></span> in your browser and follow the instructions.</li>
<li>You wanted more, perhaps? That&#8217;s it!</li>
</ol>
<h2>Updating Manually</h2>
<ol>
<li>Before you update anything, make sure you have backup copies of any files you may have modified such as <code>index.php</code>.</li>
<li>Delete your old WordPress files, saving ones you&#8217;ve modified.</li>
<li>Delete your old WP files, saving ones you've modified.</li>
<li>Upload the new files.</li>
<li>Point your browser to <span class="file"><a href="wp-admin/upgrade.php">/wp-admin/upgrade.php</a>.</span></li>
<li>You wanted more, perhaps? That's it!</li>
</ol>
<h1>Migrating from other systems</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above, before using <a href="wp-admin/import.php" title="Import to WordPress">our import tools</a>.</p>
<h1>System Requirements</h1>
<ul>
<li><a href="http://php.net/">PHP</a> version <strong>5.2.4</strong> or higher.</li>
<li><a href="http://www.mysql.com/">MySQL</a> version <strong>5.0</strong> or higher.</li>
</ul>
<h2>System Recommendations</h2>
<ul>
<li>The <a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> Apache module.</li>
<li>A link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<h2>Template Changes</h2>
<p>If you have customized your templates you will probably have to make some changes to them. If you're converting your 1.2 or earlier templates, <a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5">we've created a special guide for you</a>. </p>
<h1>Online Resources</h1>
<p>If you have any questions that aren&#8217;t addressed in this document, please take advantage of WordPress&#8217; numerous online resources:</p>
<p>If you have any questions that aren't addressed in this document, please take advantage of WordPress' numerous online resources:</p>
<dl>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex</a></dt>
<dt><a href="http://codex.wordpress.org/">The WordPress Codex </a></dt>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.</dd>
<dt><a href="http://wordpress.org/news/">The WordPress Blog</a></dt>
<dd>This is where you&#8217;ll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet</a></dt>
<dt><a href="http://wordpress.org/development/">The Development Blog</a></dt>
<dd>This is where you'll find the latest updates and news related to WordPress. Bookmark and check often.</dd>
<dt><a href="http://planet.wordpress.org/">WordPress Planet </a></dt>
<dd>The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.</dd>
<dt><a href="http://wordpress.org/support/">WordPress Support Forums</a></dt>
<dd>If you&#8217;ve looked everywhere and still can&#8217;t find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress <abbr title="Internet Relay Chat">IRC</abbr> Channel</a></dt>
<dd>There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
<dd>If you've looked everywhere and still can't find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.</dd>
<dt><a href="http://codex.wordpress.org/IRC">WordPress IRC Channel</a></dt>
<dd>Finally, there is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (<a href="irc://irc.freenode.net/wordpress">irc.freenode.net #wordpress</a>)</dd>
</dl>
<h1>Final Notes</h1>
<h1>System Recommendations</h1>
<ul>
<li>If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress has a robust plugin <abbr title="application programming interface">API</abbr> that makes extending the code easy. If you are a developer interested in utilizing this, see the <a href="http://codex.wordpress.org/Plugin_API" title="WordPress plugin API">plugin documentation in the Codex</a>. You shouldn&#8217;t modify any of the core code.</li>
<li>PHP version <strong>4.3</strong> or higher.</li>
<li>MySQL version <strong>4.0</strong> or higher.</li>
<li>... and a link to <a href="http://wordpress.org/">http://wordpress.org</a> on your site.</li>
</ul>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&eacute;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/">donating</a>.</p>
<h1>Upgrading from another system</h1>
<p>WordPress can <a href="http://codex.wordpress.org/Importing_Content">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<h1>XML-RPC and Atom Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>, <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.newzcrawler.com/">NewzCrawler</a>, and other tools that support the Blogging APIs! :) You can read more about <a href="http://codex.wordpress.org/XML-RPC_Support">XML-RPC support on the Codex</a>.</p>
<h1>Post via Email</h1>
<p>You can post from an email client! To set this up go to your &quot;Writing&quot; options screen and fill in the connection details for your secret POP3 account. Then you need to set up <code>wp-mail.php</code> to execute periodically to check the mailbox for new posts. You can do it with Cron-jobs, or if your host doesn't support it you can look into the various website-monitoring services, and make them check your <code>wp-mail.php</code> URL.</p>
<p>Posting is easy: Any email sent to the address you specify will be posted, with the subject as the title. It is best to keep the address discrete. The script will <em>delete</em> emails that are successfully posted.</p>
<h1>User Roles</h1>
<p>We've eliminated user levels in order to make way for the much more flexible roles system introduced in 2.0. You can <a href="http://codex.wordpress.org/Roles_and_Capabilities">read more about Roles and Capabilities on the Codex</a>.</p>
<h1> Final notes</h1>
<ul>
<li>If you have any suggestions, ideas, comments, or if you (gasp!) found a bug, join us in the <a href="http://wordpress.org/support/">Support Forums</a>.</li>
<li>WordPress now has a robust plugin API that makes extending the code easy. If you are a developer interested in utilizing this see the <a href="http://codex.wordpress.org/Plugin_API">plugin documentation in the Codex</a>. In most all cases you shouldn't modify any of the core code.</li>
</ul>
<h1>Share the Love</h1>
<p>WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better&#8212;you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgable than yourself, or writing the author of a media article that overlooks us.</p>
<p>WordPress is the official continuation of <a href="http://cafelog.com/">b2/caf&#233;log</a>, which came from Michel V. The work has been continued by the <a href="http://wordpress.org/about/">WordPress developers</a>. If you would like to support WordPress, please consider <a href="http://wordpress.org/donate/" title="Donate to WordPress">donating</a>.</p>
<h1>License</h1>
<p>WordPress is free software, and is released under the terms of the <abbr title="GNU General Public License">GPL</abbr> version 2 or (at your option) any later version. See <a href="license.txt">license.txt</a>.</p>
<h1>Copyright</h1>
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>

View File

@@ -1,132 +0,0 @@
<?php
/**
* Confirms that the activation key that is sent in an email after a user signs
* up for a new blog matches the key for that user and then displays confirmation.
*
* @package WordPress
*/
define( 'WP_INSTALLING', true );
/** Sets up the WordPress Environment. */
require( dirname(__FILE__) . '/wp-load.php' );
require( dirname( __FILE__ ) . '/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;
// Fix for page title
$wp_query->is_404 = false;
/**
* Fires before the Site Activation page is loaded.
*
* @since 3.0
*/
do_action( 'activate_header' );
/**
* Adds an action hook specific to this page that fires on wp_head
*
* @since MU
*/
function do_activate_header() {
/**
* Fires before the Site Activation page is loaded, but on the wp_head action.
*
* @since 3.0
*/
do_action( 'activate_wp_head' );
}
add_action( 'wp_head', 'do_activate_header' );
/**
* Loads styles specific to this page.
*
* @since MU
*/
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, wp_lostpassword_url() );
} 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, wp_lostpassword_url() );
}
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 = get_userdata( (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(); ?>

View File

@@ -1,189 +0,0 @@
<?php
/**
* About This Version administration panel.
*
* @package WordPress
* @subpackage Administration
*/
/** WordPress Administration Bootstrap */
require_once( dirname( __FILE__ ) . '/admin.php' );
$title = __( 'About' );
list( $display_version ) = explode( '-', $wp_version );
wp_enqueue_script( 'about' );
include( ABSPATH . 'wp-admin/admin-header.php' );
?>
<div class="wrap about-wrap">
<h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
<div class="about-text"><?php echo str_replace( '3.7', $display_version, __( 'Thank you for updating to WordPress 3.7! You might not notice a thing, and we&#8217;re okay with that.' ) ); ?></div>
<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
<h2 class="nav-tab-wrapper">
<a href="about.php" class="nav-tab nav-tab-active">
<?php _e( 'What&#8217;s New' ); ?>
</a><a href="credits.php" class="nav-tab">
<?php _e( 'Credits' ); ?>
</a><a href="freedoms.php" class="nav-tab">
<?php _e( 'Freedoms' ); ?>
</a>
</h2>
<div class="changelog point-releases">
<h3><?php echo _n( 'Maintenance and Security Release', 'Maintenance and Security Releases', 3 ); ?></h3>
<p><?php printf( _n( '<strong>Version %1$s</strong> addressed %2$s bug.',
'<strong>Version %1$s</strong> addressed %2$s bugs.', 2 ), '3.7.3', number_format_i18n( 2 ) ); ?>
<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.7.3' ); ?>
</p>
<p><?php printf( _n( '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug.',
'<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs.', 9 ), '3.7.2', number_format_i18n( 9 ) ); ?>
<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.7.2' ); ?>
</p>
<p><?php printf( _n( '<strong>Version %1$s</strong> addressed %2$s bug.',
'<strong>Version %1$s</strong> addressed %2$s bugs.', 11 ), '3.7.1', number_format_i18n( 11 ) ); ?>
<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.7.1' ); ?>
</p>
</div>
<div class="changelog">
<h3><?php _e( 'Background Updates' ); ?></h3>
<div class="feature-section col three-col about-updates">
<div class="col-1">
<h4><?php _e( 'Updates While You Sleep' ); ?></h4>
<p><?php _e( 'With WordPress 3.7, you don&#8217;t have to lift a finger to apply maintenance and security updates. Most sites are now able to automatically apply these updates in the background, though some configurations may not allow it.' ); ?></p>
</div>
<div class="col-2">
<img alt="" src="<?php echo admin_url( 'images/about-updates-2x.png' ); ?>" />
</div>
<div class="col-3 last-feature">
<h4><?php _e( 'More Reliable Than Ever' ); ?></h4>
<p><?php _e( 'The update process has been made even more reliable and secure, with dozens of new checks and safeguards.' ); ?></p>
<p><?php _e( 'You&#8217;ll still need to click &#8220;Update Now&#8221; once WordPress 3.8 is released, but we&#8217;ve never had more confidence in that beautiful blue button.' ); ?></p>
</div>
<?php
if ( current_user_can( 'update_core' ) ) {
$future_minor_update = (object) array(
'current' => $wp_version . '.1.next.minor',
'version' => $wp_version . '.1.next.minor',
'php_version' => $required_php_version,
'mysql_version' => $required_mysql_version,
);
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$updater = new WP_Automatic_Updater;
$can_auto_update = wp_http_supports( array( 'ssl' ) ) && $updater->should_update( 'core', $future_minor_update, ABSPATH );
if ( $can_auto_update ) {
echo '<p class="about-auto-update cool">' . __( 'This site <strong>is</strong> able to apply these updates automatically. Cool!' ). '</p>';
// If the updater is disabled entirely, don't show them anything.
} elseif ( ! $updater->is_disabled() ) {
echo '<p class="about-auto-update">';
// If this is is filtered to false, they won't get emails, so don't claim we will.
// Assumption: If the user can update core, they can see what the admin email is.
/** This filter is documented in wp-admin/includes/class-wp-upgrader.php */
if ( apply_filters( 'send_core_update_notification_email', true, $future_minor_update ) ) {
printf( __( 'This site <strong>is not</strong> able to apply these updates automatically. But we&#8217;ll email %s when there is a new security release.' ), esc_html( get_site_option( 'admin_email' ) ) );
} else {
_e( 'This site <strong>is not</strong> able to apply these updates automatically.' );
}
echo '</p>';
}
}
?>
</div>
</div>
<div class="changelog about-passwords">
<h3><?php _e( 'Create Stronger Passwords' ); ?></h3>
<div class="feature-section col two-col">
<div>
<p><?php _e( 'Your password is your site&#8217;s first line of defense. It&#8217;s best to create passwords that are complex, long, and unique. To that end, our password meter has been updated in WordPress 3.7 to recognize common mistakes that can weaken your password: dates, names, keyboard patterns (123456789), and even pop culture references.' ); ?></p>
<p><strong><?php _e( 'Try it out on the right.' ); ?></strong></p>
</div>
<div class="last-feature about-password-meter">
<input type="password" id="pass" size="25" value="" />
<p id="pass-strength-result" ><?php _e( 'Strength indicator' ); ?></p>
<?php printf( __( 'Getting the urge to <a href="%s">change your password</a>?' ), esc_url( self_admin_url( 'profile.php' ) ) ); ?>
</div>
</div>
</div>
<div class="changelog">
<div class="feature-section col two-col">
<div>
<h3><?php _e( 'Improved Search Results' ); ?></h3>
<p><img alt="" src="<?php echo admin_url( 'images/about-search-2x.png' ); ?>" /><?php _e( 'Search results are now ordered by how well the search query matches a post, instead of ordered only by date. For example, when your search terms match a post title, that result will be pushed to the top.' ); ?></p>
</div>
<div class="last-feature">
<h3><?php _e( 'Better Global Support' ); ?></h3>
<p><img alt="" src="<?php echo admin_url( 'images/about-globe-2x.png' ); ?>" /><?php _e( 'Localized versions of WordPress will receive faster and more complete translations. WordPress 3.7 adds support for automatically installing the right language files and keeping them up to date.' ); ?></p>
</div>
</div>
</div>
<div class="changelog">
<h3><?php _e( 'Under the Hood' ); ?></h3>
<div class="feature-section col three-col">
<div>
<h4><?php _e( 'More Background Updates (Experimental)' ); ?></h4>
<p><?php _e( 'Want WordPress to always update automatically, even for major feature releases? Want to always keep a certain plugin up to date in the background? WordPress 3.7 comes with fine-grained update controls for developers and systems administrators.' ); ?></p>
</div>
<div>
<h4><?php _e( 'Advanced Date Queries' ); ?></h4>
<p><?php _e( 'Developers can now query for posts within a date range, or that are older than or newer than a specific point in time. Or get really fancy: all posts written on Friday afternoons? Not&nbsp;a&nbsp;problem.' ); ?></p>
</div>
<div class="last-feature">
<h4><?php _e( 'Multisite Improvements' ); ?></h4>
<p><?php _e( '<code>wp_get_sites()</code> allows developers to easily get an array of all the sites on your network without resorting to a direct database query &mdash; just one of many improvements to multisite in WordPress 3.7.' ); ?></p>
</div>
</div>
<div class="return-to-dashboard">
<?php if ( current_user_can( 'update_core' ) && isset( $_GET['updated'] ) ) : ?>
<a href="<?php echo esc_url( self_admin_url( 'update-core.php' ) ); ?>"><?php
is_multisite() ? _e( 'Return to Updates' ) : _e( 'Return to Dashboard &rarr; Updates' );
?></a> |
<?php endif; ?>
<a href="<?php echo esc_url( self_admin_url() ); ?>"><?php
is_blog_admin() ? _e( 'Go to Dashboard &rarr; Home' ) : _e( 'Go to Dashboard' ); ?></a>
</div>
</div>
<?php
include( ABSPATH . 'wp-admin/admin-footer.php' );
// These are strings we may use to describe maintenance/security releases, where we aim for no new strings.
return;
_n_noop( 'Maintenance Release', 'Maintenance Releases' );
_n_noop( 'Security Release', 'Security Releases' );
_n_noop( 'Maintenance and Security Release', 'Maintenance and Security Releases' );
/* translators: 1: WordPress version number. */
_n_noop( '<strong>Version %1$s</strong> addressed a security issue.',
'<strong>Version %1$s</strong> addressed some security issues.' );
/* translators: 1: WordPress version number, 2: plural number of bugs. */
_n_noop( '<strong>Version %1$s</strong> addressed %2$s bug.',
'<strong>Version %1$s</strong> addressed %2$s bugs.' );
/* translators: 1: WordPress version number, 2: plural number of bugs. Singular security issue. */
_n_noop( '<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug.',
'<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs.' );
/* translators: 1: WordPress version number, 2: plural number of bugs. More than one security issue. */
_n_noop( '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug.',
'<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs.' );
__( 'For more information, see <a href="%s">the release notes</a>.' );

View File

@@ -1,94 +1,586 @@
<?php
/**
* WordPress AJAX Process Execution.
*
* @package WordPress
* @subpackage Administration
*
* @link http://codex.wordpress.org/AJAX_in_Plugins
*/
define('DOING_AJAX', true);
/**
* Executing AJAX process.
*
* @since 2.1.0
*/
define( 'DOING_AJAX', true );
define( 'WP_ADMIN', true );
require_once('../wp-config.php');
require_once('includes/admin.php');
/** Load WordPress Bootstrap */
require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
if ( !is_user_logged_in() )
die('-1');
/** Allow for cross-domain requests (from the frontend). */
send_origin_headers();
if ( isset($_GET['action']) && 'ajax-tag-search' == $_GET['action'] ) {
if ( !current_user_can( 'manage_categories' ) )
die('-1');
// Require an action parameter
if ( empty( $_REQUEST['action'] ) )
die( '0' );
$s = $_GET['q']; // is this slashed already?
/** Load WordPress Administration APIs */
require_once( ABSPATH . 'wp-admin/includes/admin.php' );
/** Load Ajax Handlers for WordPress Core */
require_once( ABSPATH . 'wp-admin/includes/ajax-actions.php' );
@header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
@header( 'X-Robots-Tag: noindex' );
send_nosniff_header();
nocache_headers();
/** This action is documented in wp-admin/admin.php */
do_action( 'admin_init' );
$core_actions_get = array(
'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed-cache',
'autocomplete-user', 'dashboard-widgets', 'logged-in',
);
$core_actions_post = array(
'oembed-cache', 'image-editor', 'delete-comment', 'delete-tag', 'delete-link',
'delete-meta', 'delete-post', 'trash-post', 'untrash-post', 'delete-page', 'dim-comment',
'add-link-category', 'add-tag', 'get-tagcloud', 'get-comments', 'replyto-comment',
'edit-comment', 'add-menu-item', 'add-meta', 'add-user', 'autosave', 'closed-postboxes',
'hidden-columns', 'update-welcome-panel', 'menu-get-metabox', 'wp-link-ajax',
'menu-locations-save', 'menu-quick-search', 'meta-box-order', 'get-permalink',
'sample-permalink', 'inline-save', 'inline-save-tax', 'find_posts', 'widgets-order',
'save-widget', 'set-post-thumbnail', 'date_format', 'time_format', 'wp-fullscreen-save-post',
'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment',
'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor',
'send-attachment-to-editor', 'save-attachment-order', 'heartbeat', 'get-revision-diffs',
);
// Register core Ajax calls.
if ( ! empty( $_GET['action'] ) && in_array( $_GET['action'], $core_actions_get ) )
add_action( 'wp_ajax_' . $_GET['action'], 'wp_ajax_' . str_replace( '-', '_', $_GET['action'] ), 1 );
if ( ! empty( $_POST['action'] ) && in_array( $_POST['action'], $core_actions_post ) )
add_action( 'wp_ajax_' . $_POST['action'], 'wp_ajax_' . str_replace( '-', '_', $_POST['action'] ), 1 );
add_action( 'wp_ajax_nopriv_heartbeat', 'wp_ajax_nopriv_heartbeat', 1 );
if ( is_user_logged_in() ) {
/**
* Fires authenticated AJAX actions for logged-in users.
*
* The dynamic portion of the hook name, $_REQUEST['action'],
* refers to the name of the AJAX action callback being fired.
*
* @since 2.1.0
*/
do_action( 'wp_ajax_' . $_REQUEST['action'] );
} else {
/**
* Fires non-authenticated AJAX actions for logged-out users.
*
* The dynamic portion of the hook name, $_REQUEST['action'],
* refers to the name of the AJAX action callback being fired.
*
* @since 2.8.0
*/
do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );
if ( strstr( $s, ',' ) )
die; // it's a multiple tag insert, we won't find anything
$results = $wpdb->get_col( "SELECT name FROM $wpdb->terms WHERE name LIKE ('%$s%')" );
echo join( $results, "\n" );
die;
}
// Default status
die( '0' );
$id = isset($_POST['id'])? (int) $_POST['id'] : 0;
switch ( $action = $_POST['action'] ) :
case 'delete-comment' :
check_ajax_referer( "delete-comment_$id" );
if ( !$comment = get_comment( $id ) )
die('0');
if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
die('-1');
if ( isset($_POST['spam']) && 1 == $_POST['spam'] )
$r = wp_set_comment_status( $comment->comment_ID, 'spam' );
else
$r = wp_delete_comment( $comment->comment_ID );
die( $r ? '1' : '0' );
break;
case 'delete-cat' :
check_ajax_referer( "delete-category_$id" );
if ( !current_user_can( 'manage_categories' ) )
die('-1');
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' ) )
die('-1');
if ( wp_delete_term($id, 'post_tag'))
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_name = get_term_field('name', $id, 'link_category');
// Don't delete the default cats.
if ( $id == get_option('default_link_category') ) {
$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');
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' ) )
die('-1');
if ( wp_delete_link( $id ) )
die('1');
else die('0');
break;
case 'delete-meta' :
check_ajax_referer( "delete-meta_$id" );
if ( !$meta = get_post_meta_by_id( $id ) )
die('0');
if ( !current_user_can( 'edit_post', $meta->post_id ) )
die('-1');
if ( delete_meta( $meta->meta_id ) )
die('1');
die('0');
break;
case 'delete-post' :
check_ajax_referer( "{$action}_$id" );
if ( !current_user_can( 'delete_post', $id ) )
die('-1');
if ( wp_delete_post( $id ) )
die('1');
else
die('0');
break;
case 'delete-page' :
check_ajax_referer( "{$action}_$id" );
if ( !current_user_can( 'delete_page', $id ) )
die('-1');
if ( wp_delete_post( $id ) )
die('1');
else die('0');
break;
case 'dim-comment' :
if ( !$comment = get_comment( $id ) )
die('0');
if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
die('-1');
if ( !current_user_can( 'moderate_comments' ) )
die('-1');
if ( 'unapproved' == wp_get_comment_status($comment->comment_ID) ) {
check_ajax_referer( "approve-comment_$id" );
if ( wp_set_comment_status( $comment->comment_ID, 'approve' ) )
die('1');
} else {
check_ajax_referer( "unapprove-comment_$id" );
if ( wp_set_comment_status( $comment->comment_ID, 'hold' ) )
die('1');
}
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 );
$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 );
$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' ) )
die('-1');
$names = explode(',', $_POST['newcat']);
$x = new WP_Ajax_Response();
foreach ( $names as $cat_name ) {
$cat_name = trim($cat_name);
$slug = sanitize_title($cat_name);
if ( '' === $slug )
continue;
if ( !$cat_id = is_term( $cat_name, 'link_category' ) ) {
$cat_id = wp_insert_term( $cat_name, 'link_category' );
}
$cat_id = $cat_id['term_id'];
$cat_name = wp_specialchars(stripslashes($cat_name));
$x->add( array(
'what' => 'link-category',
'id' => $cat_id,
'data' => "<li id='link-category-$cat_id'><label for='in-link-category-$cat_id' class='selectit'><input value='$cat_id' type='checkbox' checked='checked' name='link_category[]' id='in-link-category-$cat_id'/> $cat_name</label></li>",
'position' => -1
) );
}
$x->send();
break;
case 'add-cat' : // From Manage->Categories
check_ajax_referer( 'add-category' );
if ( !current_user_can( 'manage_categories' ) )
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();
}
if ( category_exists( trim( $_POST['cat_name'] ) ) ) {
$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();
}
$cat = wp_insert_category( $_POST, true );
if ( is_wp_error($cat) ) {
$x = new WP_Ajax_Response( array(
'what' => 'cat',
'id' => $cat
) );
$x->send();
}
if ( !$cat || (!$cat = get_category( $cat )) )
die('0');
$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 = attribute_escape($cat_full_name);
$x = new WP_Ajax_Response( array(
'what' => 'cat',
'id' => $cat->term_id,
'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();
}
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,
'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');
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->send();
}
$tag = wp_insert_term($_POST['name'], 'post_tag', $_POST );
if ( is_wp_error($tag) ) {
$x = new WP_Ajax_Response( array(
'what' => 'tag',
'id' => $tag
) );
$x->send();
}
if ( !$tag || (!$tag = get_term( $tag['term_id'], 'post_tag' )) )
die('0');
$tag_full_name = $tag->name;
$tag_full_name = attribute_escape($tag_full_name);
$x = new WP_Ajax_Response( array(
'what' => 'tag',
'id' => $tag->term_id,
'data' => _tag_row( $tag ),
'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 'add-comment' :
check_ajax_referer( $action );
if ( !current_user_can( 'edit_post', $id ) )
die('-1');
$search = isset($_POST['s']) ? $_POST['s'] : false;
$start = isset($_POST['page']) ? intval($_POST['page']) * 25 - 1: 24;
$status = isset($_POST['comment_status']) ? $_POST['comment_status'] : false;
$mode = isset($_POST['mode']) ? $_POST['mode'] : 'detail';
list($comments, $total) = _wp_get_comment_list( $status, $search, $start, 1 );
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, false );
$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 'add-meta' :
check_ajax_referer( 'add-meta' );
$c = 0;
$pid = (int) $_POST['post_id'];
if ( isset($_POST['metakeyselect']) || isset($_POST['metakeyinput']) ) {
if ( !current_user_can( 'edit_post', $pid ) )
die('-1');
if ( '#NONE#' == $_POST['metakeyselect'] && empty($_POST['metakeyinput']) )
die('1');
if ( $pid < 0 ) {
$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))
) ) ) {
if ( is_wp_error( $pid ) ) {
$x = new WP_Ajax_Response( array(
'what' => 'meta',
'data' => $pid
) );
$x->send();
}
$mid = add_meta( $pid );
} else {
die('0');
}
} else if ( !$mid = add_meta( $pid ) ) {
die('0');
}
$meta = get_post_meta_by_id( $mid );
$pid = (int) $meta->post_id;
$meta = get_object_vars( $meta );
$x = new WP_Ajax_Response( array(
'what' => 'meta',
'id' => $mid,
'data' => _list_meta_row( $meta, $c ),
'position' => 1,
'supplemental' => array('postid' => $pid)
) );
} else {
$mid = (int) array_pop(array_keys($_POST['meta']));
$key = $_POST['meta'][$mid]['key'];
$value = $_POST['meta'][$mid]['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 ( !$u = update_meta( $mid, $key, $value ) )
die('1'); // We know meta exists; we also know it's unchanged (or DB error, in which case there are bigger problems).
$key = stripslashes($key);
$value = stripslashes($value);
$x = new WP_Ajax_Response( array(
'what' => 'meta',
'id' => $mid, 'old_id' => $mid,
'data' => _list_meta_row( array(
'meta_key' => $key,
'meta_value' => $value,
'meta_id' => $mid
), $c ),
'position' => 0,
'supplemental' => array('postid' => $meta->post_id)
) );
}
$x->send();
break;
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 ) ) {
$x = new WP_Ajax_Response( array(
'what' => 'user',
'id' => $user_id
) );
$x->send();
}
$user_object = new WP_User( $user_id );
$x = new WP_Ajax_Response( array(
'what' => 'user',
'id' => $user_id,
'data' => user_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]
)
) );
$x->send();
break;
case 'autosave' : // The name of this action is hardcoded in edit_post()
$nonce_age = check_ajax_referer( 'autosave', 'autosavenonce');
global $current_user;
$_POST['post_status'] = 'draft';
$_POST['post_category'] = explode(",", $_POST['catslist']);
$_POST['tags_input'] = explode(",", $_POST['tags_input']);
if($_POST['post_type'] == 'page' || empty($_POST['post_category']))
unset($_POST['post_category']);
$do_autosave = (bool) $_POST['autosave'];
$do_lock = true;
$data = '';
$message = sprintf( __('Draft Saved at %s.'), date( __('g:i:s a'), current_time( 'timestamp', true ) ) );
$supplemental = array();
$id = 0;
if($_POST['post_ID'] < 0) {
$_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;
$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.' ),
wp_specialchars( $last_user_name )
) );
$supplemental['disable_autosave'] = 'disable';
}
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 ) {
$id = edit_post();
$data = $message;
} else {
$id = $post->ID;
}
}
if ( $do_lock && $id && is_numeric($id) )
wp_set_post_lock( $id );
if ( $nonce_age == 2 ) {
$supplemental['replace-autosavenonce'] = wp_create_nonce('autosave');
$supplemental['replace-getpermalinknonce'] = wp_create_nonce('getpermalink');
$supplemental['replace-samplepermalinknonce'] = wp_create_nonce('samplepermalink');
$supplemental['replace-closedpostboxesnonce'] = wp_create_nonce('closedpostboxes');
if ( $id ) {
if ( $_POST['post_type'] == 'post' )
$supplemental['replace-_wpnonce'] = wp_create_nonce('update-post_' . $id);
elseif ( $_POST['post_type'] == 'page' )
$supplemental['replace-_wpnonce'] = wp_create_nonce('update-page_' . $id);
}
}
$x = new WP_Ajax_Response( array(
'what' => 'autosave',
'id' => $id,
'data' => $id ? $data : '',
'supplemental' => $supplemental
) );
$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'] );
$page = isset( $_POST['page'] )? $_POST['page'] : '';
if ( !preg_match( '/^[a-z-]+$/', $page ) ) {
die(-1);
}
if (!is_array($closed)) break;
$current_user = wp_get_current_user();
update_usermeta($current_user->ID, 'closedpostboxes_'.$page, $closed);
break;
case 'get-permalink':
check_ajax_referer( 'getpermalink', 'getpermalinknonce' );
$post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
die(add_query_arg(array('preview' => 'true'), get_permalink($post_id)));
break;
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'] : '';
die(get_sample_permalink_html($post_id, $title, $slug));
break;
default :
do_action( 'wp_ajax_' . $_POST['action'] );
die('0');
break;
endswitch;
?>

View File

@@ -1,90 +1,14 @@
<?php
/**
* WordPress Administration Template Footer
*
* @package WordPress
* @subpackage Administration
*/
// don't load directly
if ( !defined('ABSPATH') )
die('-1');
?>
<div class="clear"></div></div><!-- wpbody-content -->
<div class="clear"></div></div><!-- wpbody -->
<div class="clear"></div></div><!-- wpcontent -->
<div id="wpfooter">
<?php
/**
* Fires after the opening tag for the admin footer.
*
* @since 2.5.0
*/
do_action( 'in_admin_footer' );
?>
<p id="footer-left" class="alignleft">
<?php
/**
* Filter the "Thank you" text displayed in the admin footer.
*
* @since 2.8.0
* @param string The content that will be printed.
*/
echo apply_filters( 'admin_footer_text', '<span id="footer-thankyou">' . __( 'Thank you for creating with <a href="http://wordpress.org/">WordPress</a>.' ) . '</span>' );
?>
</p>
<p id="footer-upgrade" class="alignright">
<?php
/**
* Filter the version/update text displayed in the admin footer.
*
* @see core_update_footer() WordPress prints the current version and update information,
* using core_update_footer() at priority 10.
*
* @since 2.3.0
* @param string The content that will be printed.
*/
echo apply_filters( 'update_footer', '' );
?>
</p>
<div class="clear"></div>
</div><!-- wpbody -->
</div><!-- wpcontent -->
</div><!-- wpwrap -->
<div id="footer">
<p><?php
do_action('in_admin_footer', '');
$upgrade = apply_filters( 'update_footer', '' );
echo __('Thank you for creating with <a href="http://wordpress.org/">WordPress</a>').' | '.__('<a href="http://codex.wordpress.org/">Documentation</a>').' | '.__('<a href="http://wordpress.org/support/forum/4">Feedback</a>').' '.$upgrade;
?></p>
</div>
<?php
/**
* Print scripts or data before the default footer scripts.
*
* @since 1.2.0
* @param string The data to print.
*/
do_action('admin_footer', '');
/**
* Prints any scripts and data queued for the footer.
*
* @since 2.8.0
*/
do_action('admin_print_footer_scripts');
/**
* Print scripts or data after the default footer scripts.
*
* @since 2.8.0
*
* @param string $GLOBALS['hook_suffix'] The current admin page.
*/
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') ) {
if ( false === get_site_option('can_compress_scripts') )
compression_test();
}
?>
<div class="clear"></div></div><!-- wpwrap -->
<?php do_action('admin_footer', ''); ?>
<script type="text/javascript">if(typeof wpOnload=='function')wpOnload();</script>
</body>
</html>

View File

@@ -1,15 +1,5 @@
<?php
/**
* Administration Functions
*
* This file is deprecated, use 'wp-admin/includes/admin.php' instead.
*
* @deprecated 2.5
* @package WordPress
* @subpackage Administration
*/
// Deprecated. Use includes/admin.php.
_deprecated_file( basename(__FILE__), '2.5', 'wp-admin/includes/admin.php' );
/** WordPress Administration API: Includes all Administration functions. */
require_once(ABSPATH . 'wp-admin/includes/admin.php');
?>

View File

@@ -1,234 +1,75 @@
<?php
/**
* WordPress Administration Template Header
*
* @package WordPress
* @subpackage Administration
*/
@header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
if ( ! defined( 'WP_ADMIN' ) )
require_once( dirname( __FILE__ ) . '/admin.php' );
// In case admin-header.php is included in a function.
global $title, $hook_suffix, $current_screen, $wp_locale, $pagenow, $wp_version,
$current_site, $update_title, $total_update_count, $parent_file;
// Catch plugins that include admin-header.php before admin.php completes.
if ( empty( $current_screen ) )
set_current_screen();
get_admin_page_title();
$title = esc_html( strip_tags( $title ) );
if ( is_network_admin() )
$admin_title = sprintf( __('Network Admin: %s'), esc_html( $current_site->site_name ) );
elseif ( is_user_admin() )
$admin_title = sprintf( __('Global Dashboard: %s'), esc_html( $current_site->site_name ) );
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 );
/**
* Filter the <title> content for an admin page.
*
* @since 3.1.0
*
* @param string $admin_title The page title, with extra context added.
* @param string $title The original page title.
*/
$admin_title = apply_filters( 'admin_title', $admin_title, $title );
wp_user_settings();
_wp_admin_html_begin();
?>
<title><?php echo $admin_title; ?></title>
<?php
wp_enqueue_style( 'colors' );
wp_enqueue_style( 'ie' );
wp_enqueue_script('utils');
$admin_body_class = preg_replace('/[^a-z0-9_-]+/i', '-', $hook_suffix);
?>
<script type="text/javascript">
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 ajaxurl = '<?php echo admin_url( 'admin-ajax.php', 'relative' ); ?>',
pagenow = '<?php echo $current_screen->id; ?>',
typenow = '<?php 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
/**
* Enqueue scripts for all admin pages.
*
* @since 2.8.0
*
* @param string $hook_suffix The current admin page.
*/
do_action( 'admin_enqueue_scripts', $hook_suffix );
/**
* Print styles for a specific admin page based on $hook_suffix.
*
* @since 2.6.0
*/
do_action( "admin_print_styles-$hook_suffix" );
/**
* Print styles for all admin pages.
*
* @since 2.6.0
*/
do_action( 'admin_print_styles' );
/**
* Print scripts for a specific admin page based on $hook_suffix.
*
* @since 2.1.0
*/
do_action( "admin_print_scripts-$hook_suffix" );
/**
* Print scripts for all admin pages.
*
* @since 2.1.0
*/
do_action( 'admin_print_scripts' );
/**
* Fires in <head> for a specific admin page based on $hook_suffix.
*
* @since 2.1.0
*/
do_action( "admin_head-$hook_suffix" );
/**
* Fires in <head> for all admin pages.
*
* @since 2.1.0
*/
do_action( 'admin_head' );
if ( get_user_setting('mfold') == 'f' )
$admin_body_class .= ' folded';
if ( !get_user_setting('unfold') )
$admin_body_class .= ' auto-fold';
if ( is_admin_bar_showing() )
$admin_body_class .= ' admin-bar';
if ( is_rtl() )
$admin_body_class .= ' rtl';
if ( $current_screen->post_type )
$admin_body_class .= ' post-type-' . $current_screen->post_type;
if ( $current_screen->taxonomy )
$admin_body_class .= ' taxonomy-' . $current_screen->taxonomy;
$admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', 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' );
$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
if ( wp_is_mobile() )
$admin_body_class .= ' mobile';
$admin_body_class .= ' no-customize-support';
?>
</head>
<?php
/**
* Filter the admin <body> CSS classes.
*
* This filter differs from the post_class or body_class filters in two important ways:
* 1. $classes is a space-separated string of class names instead of an array.
* 2. Not all core admin classes are filterable, notably: wp-admin, wp-core-ui, and no-js cannot be removed.
*
* @since 2.3.0
*
* @param string $classes Space-separated string of CSS classes.
*/
?>
<body class="wp-admin wp-core-ui no-js <?php echo apply_filters( 'admin_body_class', '' ) . " $admin_body_class"; ?>">
<script type="text/javascript">
document.body.className = document.body.className.replace('no-js','js');
</script>
<?php
// Make sure the customize body classes are correct as early as possible.
if ( current_user_can( 'edit_theme_options' ) )
wp_customize_support_script();
?>
<div id="wpwrap">
<a tabindex="1" href="#wpbody-content" class="screen-reader-shortcut"><?php _e('Skip to main content'); ?></a>
<?php require(ABSPATH . 'wp-admin/menu-header.php'); ?>
<div id="wpcontent">
<?php
/**
* Fires at the beginning of the content section in an admin page.
*
* @since 3.0.0
*/
do_action( 'in_admin_header' );
?>
<div id="wpbody">
<?php
unset($title_class, $blog_name, $total_update_count, $update_title);
$current_screen->set_parentage( $parent_file );
?>
<div id="wpbody-content" aria-label="<?php esc_attr_e('Main content'); ?>" tabindex="0">
<?php
$current_screen->render_screen_meta();
if ( is_network_admin() ) {
/**
* Print network admin screen notices.
*
* @since 3.1.0
*/
do_action( 'network_admin_notices' );
} elseif ( is_user_admin() ) {
/**
* Print user admin screen notices.
*
* @since 3.1.0
*/
do_action( 'user_admin_notices' );
} else {
/**
* Print admin screen notices.
*
* @since 3.1.0
*/
do_action( 'admin_notices' );
if (!isset($_GET["page"])) require_once('admin.php');
if ( $editing ) {
if ( user_can_richedit() )
wp_enqueue_script( 'wp_tiny_mce' );
}
/**
* Print generic admin screen notices.
*
* @since 3.1.0
*/
do_action( 'all_admin_notices' );
$min_width_pages = array( 'post.php', 'post-new.php', 'page.php', 'page-new.php', 'widgets.php', 'comment.php', 'link.php' );
$the_current_page = preg_replace('|^.*/wp-admin/|i', '', $_SERVER['PHP_SELF']);
$ie6_no_scrollbar = true;
if ( $parent_file == 'options-general.php' )
function add_minwidth($c) {
return $c . 'minwidth ';
}
if ( in_array( $the_current_page, $min_width_pages ) ) {
$ie6_no_scrollbar = false;
add_filter( 'admin_body_class', 'add_minwidth' );
}
get_admin_page_title();
?>
<!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 bloginfo('name') ?> &rsaquo; <?php echo wp_specialchars( strip_tags( $title ) ); ?> &#8212; WordPress</title>
<?php
wp_admin_css( 'css/global' );
wp_admin_css();
wp_admin_css( 'css/colors' );
?>
<!--[if gte IE 6]>
<?php wp_admin_css( 'css/ie' );
?>
<![endif]-->
<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();}}};
//]]>
</script>
<?php if ( ($parent_file != 'link-manager.php') && ($parent_file != 'options-general.php') && $ie6_no_scrollbar ) : ?>
<style type="text/css">* html { overflow-x: hidden; }</style>
<?php endif;
if ( isset($page_hook) )
do_action('admin_print_scripts-' . $page_hook);
else if ( isset($plugin_page) )
do_action('admin_print_scripts-' . $plugin_page);
do_action('admin_print_scripts');
if ( isset($page_hook) )
do_action('admin_head-' . $page_hook);
else if ( isset($plugin_page) )
do_action('admin_head-' . $plugin_page);
do_action('admin_head');
?>
</head>
<body class="wp-admin <?php echo apply_filters( 'admin_body_class', '' ); ?>">
<div id="wpwrap">
<div id="wpcontent">
<div id="wphead">
<h1><?php bloginfo('name'); ?><span id="viewsite"><a href="<?php echo trailingslashit( get_option('home') ); ?>"><?php _e('Visit Site') ?></a></span></h1>
</div>
<div id="user_info"><p><?php printf(__('Howdy, <a href="%1$s">%2$s</a>!'), 'profile.php', $user_identity) ?> | <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log Out') ?>"><?php _e('Log Out'); ?></a> | <?php _e('<a href="http://codex.wordpress.org/">Help</a>') ?> | <?php _e('<a href="http://wordpress.org/support/">Forums</a>') ?></p></div>
<?php
require(ABSPATH . 'wp-admin/menu-header.php');
if ( $parent_file == 'options-general.php' ) {
require(ABSPATH . 'wp-admin/options-head.php');
}
?>
<div id="wpbody">

View File

@@ -1,45 +0,0 @@
<?php
/**
* WordPress Generic Request (POST/GET) Handler
*
* Intended for form submission handling in themes and plugins.
*
* @package WordPress
* @subpackage Administration
*/
/** We are located in WordPress Administration Screens */
define('WP_ADMIN', true);
if ( defined('ABSPATH') )
require_once(ABSPATH . 'wp-load.php');
else
require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
/** Allow for cross-domain requests (from the frontend). */
send_origin_headers();
require_once(ABSPATH . 'wp-admin/includes/admin.php');
nocache_headers();
/** This action is documented in wp-admin/admin.php */
do_action( 'admin_init' );
$action = 'admin_post';
if ( !wp_validate_auth_cookie() )
$action .= '_nopriv';
if ( !empty($_REQUEST['action']) )
$action .= '_' . $_REQUEST['action'];
/**
* Fires the requested handler action.
*
* admin_post_nopriv_{$_REQUEST['action']} is called for not-logged-in users.
* admin_post_{$_REQUEST['action']} is called for logged-in users.
*
* @since 2.6.0
*/
do_action( $action );

View File

@@ -1,248 +1,72 @@
<?php
/**
* WordPress Administration Bootstrap
*
* @package WordPress
* @subpackage Administration
*/
define('WP_ADMIN', TRUE);
/**
* In WordPress Administration Screens
*
* @since 2.3.2
*/
if ( ! defined('WP_ADMIN') )
define('WP_ADMIN', true);
if ( defined('ABSPATH') )
require_once( ABSPATH . 'wp-config.php');
else
require_once('../wp-config.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');
nocache_headers();
if ( get_option('db_upgraded') ) {
flush_rewrite_rules();
update_option( 'db_upgraded', false );
/**
* Fires on the next page load after a successful DB upgrade.
*
* @since 2.8.0
*/
do_action( 'after_db_upgrade' );
} elseif ( get_option('db_version') != $wp_db_version && empty($_POST) ) {
if ( !is_multisite() ) {
wp_redirect( admin_url( 'upgrade.php?_wp_http_referer=' . urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) );
exit;
/**
* Filter whether to attempt to perform the multisite DB upgrade routine.
*
* In single site, the user would be redirected to wp-admin/upgrade.php.
* In multisite, it is automatically fired, but only when this filter
* returns true.
*
* If the network is 50 sites or less, it will run every time. Otherwise,
* it will throttle itself to reduce load.
*
* @since 3.0.0
*
* @param bool true Whether to perform the Multisite upgrade routine. Default true.
*/
} elseif ( apply_filters( 'do_mu_upgrade', true ) ) {
$c = get_blog_count();
// If 50 or fewer sites, run every time. Else, run "about ten percent" of the time. Shh, don't check that math.
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' ) );
/**
* Fires after the multisite DB upgrade is complete.
*
* @since 3.0.0
*
* @param array|WP_Error $response The upgrade response array or WP_Error on failure.
*/
do_action( 'after_mu_upgrade', $response );
unset($response);
}
unset($c);
}
if ( get_option('db_version') != $wp_db_version ) {
wp_redirect(get_option('siteurl') . '/wp-admin/upgrade.php?_wp_http_referer=' . urlencode(stripslashes($_SERVER['REQUEST_URI'])));
exit;
}
require_once(ABSPATH . 'wp-admin/includes/admin.php');
auth_redirect();
// Schedule trash collection
if ( !wp_next_scheduled('wp_scheduled_delete') && !defined('WP_INSTALLING') )
wp_schedule_event(time(), 'daily', 'wp_scheduled_delete');
nocache_headers();
set_screen_options();
update_category_cache();
$posts_per_page = get_option('posts_per_page');
$what_to_show = get_option('what_to_show');
$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', __('Classic'), get_option( 'siteurl' ) . "/wp-admin/css/colors-classic.css", array('#07273E', '#14568A', '#D54E21', '#2683AE'));
wp_admin_css_color('fresh', __('Fresh'), get_option( 'siteurl' ) . "/wp-admin/css/colors-fresh.css", array('#464646', '#CEE1EF', '#D54E21', '#2683AE'));
wp_enqueue_script( 'common' );
wp_enqueue_script( 'jquery-color' );
$editing = false;
if ( isset($_GET['page']) ) {
$plugin_page = wp_unslash( $_GET['page'] );
if (isset($_GET['page'])) {
$plugin_page = stripslashes($_GET['page']);
$plugin_page = plugin_basename($plugin_page);
}
if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) )
$typenow = $_REQUEST['post_type'];
else
$typenow = '';
require(ABSPATH . 'wp-admin/menu.php');
if ( isset( $_REQUEST['taxonomy'] ) && taxonomy_exists( $_REQUEST['taxonomy'] ) )
$taxnow = $_REQUEST['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' ) ) {
/**
* Filter the maximum memory limit available for administration screens.
*
* This only applies to administrators, who may require more memory for tasks like updates.
* Memory limits when processing images (uploaded or edited by users of any role) are
* handled separately.
*
* The WP_MAX_MEMORY_LIMIT constant specifically defines the maximum memory limit available
* when in the administration back-end. The default is 256M, or 256 megabytes of memory.
*
* @since 3.0.0
*
* @param string 'WP_MAX_MEMORY_LIMIT' The maximum WordPress memory limit. Default 256M.
*/
@ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
}
/**
* Fires as an admin screen or script is being initialized.
*
* Note, this does not just run on user-facing admin screens.
* It runs on admin-ajax.php and admin-post.php as well.
*
* This is roughly analgous to the more general 'init' hook, which fires earlier.
*
* @since 2.5.0
*/
do_action( 'admin_init' );
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') ) {
// There could be plugin specific params on the URL, so we need the whole query string
if ( !empty($_SERVER[ 'QUERY_STRING' ]) )
$query_string = $_SERVER[ 'QUERY_STRING' ];
else
$query_string = 'page=' . $plugin_page;
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();
do_action('admin_init');
// Handle plugin admin pages.
if ( isset($plugin_page) ) {
if (isset($plugin_page)) {
$page_hook = get_plugin_page_hook($plugin_page, $pagenow);
if ( $page_hook ) {
/**
* Fires before a particular screen is loaded.
*
* The load-* hook fires in a number of contexts. This hook is for plugin screens
* where a callback is provided when the screen is registered.
*
* The dynamic portion of the hook name, $page_hook, refers to a mixture of plugin
* page information including:
* 1. The page type. If the plugin page is registered as a submenu page, such as for
* Settings, the page type would be 'settings'. Otherwise the type is 'toplevel'.
* 2. A separator of '_page_'.
* 3. The plugin basename minus the file extension.
*
* Together, the three parts form the $page_hook. Citing the example above,
* the hook name used would be 'load-settings_page_pluginbasename'.
*
* @see get_plugin_page_hook()
*
* @since 2.1.0
*/
do_action( 'load-' . $page_hook );
do_action('load-' . $page_hook);
if (! isset($_GET['noheader']))
require_once(ABSPATH . 'wp-admin/admin-header.php');
/**
* Used to call the registered callback for a plugin screen.
*
* @access private
*
* @since 1.5.0
*/
do_action( $page_hook );
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") ) && !( file_exists(WPMU_PLUGIN_DIR . "/$plugin_page") && is_file(WPMU_PLUGIN_DIR . "/$plugin_page") ) )
if (! ( file_exists(ABSPATH . PLUGINDIR . "/$plugin_page") && is_file( ABSPATH . PLUGINDIR . "/$plugin_page") ) )
wp_die(sprintf(__('Cannot load %s.'), htmlentities($plugin_page)));
/**
* Fires before a particular screen is loaded.
*
* The load-* hook fires in a number of contexts. This hook is for plugin screens
* where the file to load is directly included, rather than the use of a function.
*
* The dynamic portion of the hook name, $plugin_page, refers to the plugin basename.
*
* @see plugin_basename()
*
* @since 1.5.0
*/
do_action( 'load-' . $plugin_page );
do_action('load-' . $plugin_page);
if ( !isset($_GET['noheader']))
if (! isset($_GET['noheader']))
require_once(ABSPATH . 'wp-admin/admin-header.php');
if ( file_exists(WPMU_PLUGIN_DIR . "/$plugin_page") )
include(WPMU_PLUGIN_DIR . "/$plugin_page");
else
include(WP_PLUGIN_DIR . "/$plugin_page");
include(ABSPATH . PLUGINDIR . "/$plugin_page");
}
include(ABSPATH . 'wp-admin/admin-footer.php');
@@ -256,25 +80,20 @@ if ( isset($plugin_page) ) {
wp_die(__('You are not allowed to import.'));
if ( validate_file($importer) ) {
wp_redirect( admin_url( 'import.php?invalid=' . $importer ) );
exit;
wp_die(__('Invalid importer.'));
}
if ( ! isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2]) ) {
wp_redirect( admin_url( 'import.php?invalid=' . $importer ) );
exit;
// Allow plugins to define importers as well
if (! is_callable($wp_importers[$importer][2]))
{
if (! file_exists(ABSPATH . "wp-admin/import/$importer.php"))
{
wp_die(__('Cannot load importer.'));
}
include(ABSPATH . "wp-admin/import/$importer.php");
}
/**
* Fires before an importer screen is loaded.
*
* The dynamic portion of the hook name, $importer, refers to the importer slug.
*
* @since 3.5.0
*/
do_action( 'load-importer-' . $importer );
$parent_file = 'tools.php';
$parent_file = 'edit.php';
$submenu_file = 'import.php';
$title = __('Import');
@@ -285,63 +104,13 @@ if ( isset($plugin_page) ) {
define('WP_IMPORTING', true);
/**
* Whether to filter imported data through kses on import.
*
* Multisite uses this hook to filter all data through kses by default,
* as a super administrator may be assisting an untrusted user.
*
* @since 3.1.0
*
* @param bool false Whether to force data to be filtered through kses. Default false.
*/
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');
// Make sure rules are flushed
flush_rewrite_rules(false);
exit();
} else {
/**
* Fires before a particular screen is loaded.
*
* The load-* hook fires in a number of contexts. This hook is for core screens.
*
* The dynamic portion of the hook name, $pagenow, is a global variable
* referring to the filename of the current page, such as 'admin.php',
* 'post-new.php' etc. A complete hook for the latter would be 'load-post-new.php'.
*
* @since 2.1.0
*/
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' );
}
do_action("load-$pagenow");
}
if ( ! empty( $_REQUEST['action'] ) ) {
/**
* Fires when an 'action' request variable is sent.
*
* The dynamic portion of the hook name, $_REQUEST['action'],
* refers to the action derived from the GET or POST request.
*
* @since 2.6.0
*/
do_action( 'admin_action_' . $_REQUEST['action'] );
}
?>

View File

@@ -1,98 +1,45 @@
<?php
/**
* Accepts file uploads from swfupload or other asynchronous upload methods.
*
* @package WordPress
* @subpackage Administration
*/
define('WP_ADMIN', true);
/* This accepts file uploads from swfupload or other asynchronous upload methods.
*/
if ( defined('ABSPATH') )
require_once(ABSPATH . 'wp-load.php');
require_once( ABSPATH . 'wp-config.php');
else
require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
require_once('../wp-config.php');
if ( ! ( isset( $_REQUEST['action'] ) && 'upload-attachment' == $_REQUEST['action'] ) ) {
// Flash often fails to send cookies with the POST or upload, so we need to pass it in GET or POST instead
if ( is_ssl() && empty($_COOKIE[SECURE_AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) )
$_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);
}
// Flash often fails to send cookies with the POST or upload, so we need to pass it in GET or POST instead
if ( empty($_COOKIE[AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) )
$_COOKIE[AUTH_COOKIE] = $_REQUEST['auth_cookie'];
unset($current_user);
require_once('admin.php');
require_once( ABSPATH . 'wp-admin/admin.php' );
header('Content-Type: text/plain');
if ( !current_user_can('upload_files') )
wp_die(__('You do not have permission to upload files.'));
header('Content-Type: text/html; charset=' . get_option('blog_charset'));
if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) {
define( 'DOING_AJAX', true );
include ABSPATH . 'wp-admin/includes/ajax-actions.php';
send_nosniff_header();
nocache_headers();
wp_ajax_upload_attachment();
die( '0' );
}
// 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.' ) );
if ( ! current_user_can( 'edit_post', $id ) )
wp_die( __( 'You are not allowed to edit this item.' ) );
switch ( $_REQUEST['fetch'] ) {
case 3 :
if ( $thumb_url = wp_get_attachment_image_src( $id, 'thumbnail', true ) )
echo '<img class="pinkynail" src="' . esc_url( $thumb_url[0] ) . '" alt="" />';
echo '<a class="edit-attachment" href="' . esc_url( get_edit_post_link( $id ) ) . '" target="_blank">' . _x( 'Edit', 'media item' ) . '</a>';
$title = $post->post_title ? $post->post_title : wp_basename( $post->guid ); // title shouldn't ever be empty, but use filename just in cas.e
echo '<div class="filename new"><span class="title">' . esc_html( wp_html_excerpt( $title, 60, '&hellip;' ) ) . '</span></div>';
break;
case 2 :
add_filter('attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2);
echo get_media_item($id, array( 'send' => false, 'delete' => true ));
break;
default:
add_filter('attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2);
echo get_media_item($id);
break;
}
// just fetch the detail form for that attachment
if ( ($id = intval($_REQUEST['attachment_id'])) && $_REQUEST['fetch'] ) {
echo get_media_item($id);
exit;
}
check_admin_referer('media-form');
$post_id = 0;
if ( isset( $_REQUEST['post_id'] ) ) {
$post_id = absint( $_REQUEST['post_id'] );
if ( ! get_post( $post_id ) || ! current_user_can( 'edit_post', $post_id ) )
$post_id = 0;
}
$id = media_handle_upload( 'async-upload', $post_id );
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>';
$id = media_handle_upload('async-upload', $_REQUEST['post_id']);
if (is_wp_error($id)) {
echo '<div id="media-upload-error">'.wp_specialchars($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);
}
?>

107
wp-admin/bookmarklet.php Normal file
View File

@@ -0,0 +1,107 @@
<?php
$mode = 'bookmarklet';
require_once('admin.php');
if ( ! current_user_can('edit_posts') )
wp_die(__('Cheatin&#8217; uh?'));
if ('b' == $a):
?><!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">
<head>
<script type="text/javascript">
<!--
window.close()
-->
</script>
</head>
<body></body>
</html>
<?php
exit;
endif;
$post = get_default_post_to_edit();
$popuptitle = wp_specialchars(stripslashes($popuptitle));
$text = wp_specialchars(stripslashes(urldecode($text)));
$popuptitle = funky_javascript_fix($popuptitle);
$text = funky_javascript_fix($text);
$post_title = wp_specialchars($_REQUEST['post_title']);
if (!empty($post_title))
$post->post_title = stripslashes($post_title);
else
$post->post_title = $popuptitle;
$content = wp_specialchars($_REQUEST['content']);
$popupurl = clean_url($_REQUEST['popupurl']);
if ( !empty($content) ) {
$post->post_content = wp_specialchars( stripslashes($_REQUEST['content']) );
} else {
$post->post_content = '<a href="'.$popupurl.'">'.$popuptitle.'</a>'."\n$text";
}
/* /big funky fixes */
?><!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">
<head>
<title><?php bloginfo('name') ?> &rsaquo; Bookmarklet &#8212; WordPress</title>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
<?php
wp_admin_css( 'css/global' );
wp_admin_css();
?>
<style type="text/css">
<!--
#wpbookmarklet textarea,input,select {
border-width: 1px;
border-color: #cccccc;
border-style: solid;
padding: 2px;
margin: 1px;
}
#wpbookmarklet .checkbox {
background-color: #ffffff;
border-width: 0px;
padding: 0px;
margin: 0px;
}
#wpbookmarklet textarea {
font-family: Verdana, Geneva, Arial, Helvetica;
font-size: 0.9em;
}
#wpbookmarklet .wrap {
border: 0px;
}
#wpbookmarklet #postdiv {
margin-bottom: 0.5em;
}
#wpbookmarklet #titlediv {
margin-bottom: 1em;
}
-->
</style>
</head>
<body id="wpbookmarklet">
<div id="wphead">
<h1><?php bloginfo('name') ?></h1>
</div>
<?php require('edit-form.php'); ?>
<?php do_action('admin_footer', ''); ?>
</body>
</html>

187
wp-admin/categories.php Normal file
View File

@@ -0,0 +1,187 @@
<?php
require_once('admin.php');
$title = __('Categories');
$parent_file = 'edit.php';
wp_reset_vars(array('action', 'cat'));
if ( isset($_GET['deleteit']) && isset($_GET['delete']) )
$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_redirect('categories.php?message=1#addcat');
} else {
wp_redirect('categories.php?message=4#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_catname($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_redirect('categories.php?message=2');
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_catname($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);
}
$sendback = wp_get_referer();
$sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback);
wp_redirect($sendback);
exit();
break;
case 'edit':
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?'));
if ( wp_update_category($_POST) )
wp_redirect('categories.php?message=3');
else
wp_redirect('categories.php?message=5');
exit;
break;
default:
if ( !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' );
wp_enqueue_script('admin-forms');
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.');
?>
<?php if (isset($_GET['message'])) : ?>
<div id="message" class="updated fade"><p><?php echo $messages[$_GET['message']]; ?></p></div>
<?php $_SERVER['REQUEST_URI'] = remove_query_arg(array('message'), $_SERVER['REQUEST_URI']);
endif; ?>
<div class="wrap">
<form id="posts-filter" action="" method="get">
<?php if ( current_user_can('manage_categories') ) : ?>
<h2><?php printf(__('Manage Categories (<a href="%s">add new</a>)'), '#addcat') ?> </h2>
<?php else : ?>
<h2><?php _e('Manage Categories') ?> </h2>
<?php endif; ?>
<p id="post-search">
<input type="text" id="post-search-input" name="s" value="<?php echo attribute_escape(stripslashes($_GET['s'])); ?>" />
<input type="submit" value="<?php _e( 'Search Categories' ); ?>" class="button" />
</p>
<br class="clear" />
<div class="tablenav">
<div class="alignleft">
<input type="submit" value="<?php _e('Delete'); ?>" name="deleteit" class="button-secondary delete" />
<?php wp_nonce_field('bulk-categories'); ?>
</div>
<br class="clear" />
</div>
<br class="clear" />
<table class="widefat">
<thead>
<tr>
<th scope="col" class="check-column"><input type="checkbox" onclick="checkAll(document.getElementById('posts-filter'));" /></th>
<th scope="col"><?php _e('Name') ?></th>
<th scope="col"><?php _e('Description') ?></th>
<th scope="col" class="num"><?php _e('Posts') ?></th>
</tr>
</thead>
<tbody id="the-list" class="list:cat">
<?php
cat_rows();
?>
</tbody>
</table>
</form>
<div class="tablenav">
<br class="clear" />
</div>
<br class="clear" />
</div>
<?php if ( current_user_can('manage_categories') ) : ?>
<div class="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_catname(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>
<?php include('edit-category-form.php'); ?>
<?php endif; ?>
<?php
break;
}
include('admin-footer.php');
?>

View File

@@ -1,13 +1,5 @@
<?php
/**
* Comment Management Screen
*
* @package WordPress
* @subpackage Administration
*/
/** Load WordPress Bootstrap */
require_once( dirname( __FILE__ ) . '/admin.php' );
require_once('admin.php');
$parent_file = 'edit-comments.php';
$submenu_file = 'edit-comments.php';
@@ -17,26 +9,9 @@ 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.
*
* @param string $msg Error Message. Assumed to contain HTML and be sanitized.
*/
function comment_footer_die( $msg ) {
function comment_footer_die( $msg ) { // $msg is assumed to contain HTML and be sanitized
echo "<div class='wrap'><p>$msg</p></div>";
include( ABSPATH . 'wp-admin/admin-footer.php' );
include('admin-footer.php');
die;
}
@@ -45,119 +20,80 @@ switch( $action ) {
case 'editcomment' :
$title = __('Edit Comment');
get_current_screen()->add_help_tab( array(
'id' => 'overview',
'title' => __('Overview'),
'content' =>
'<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>'
) );
get_current_screen()->set_help_sidebar(
'<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( ABSPATH . 'wp-admin/admin-header.php' );
//wp_enqueue_script('thickbox');
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)') );
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_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.') );
if ( !current_user_can('edit_post', $comment->comment_post_ID) )
comment_footer_die( __('You are not allowed to edit comments on this post.') );
$comment = get_comment_to_edit( $comment_id );
include( ABSPATH . 'wp-admin/edit-form-comment.php' );
include('edit-form-comment.php');
break;
case 'delete' :
case 'approve' :
case 'trash' :
case 'spam' :
case 'cdc' :
case 'mac' :
$title = __('Moderate Comment');
require_once('admin-header.php');
$comment_id = absint( $_GET['c'] );
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( ABSPATH . 'wp-admin/admin-header.php' );
$formaction = $action . 'comment';
$nonce_action = 'approve' == $action ? 'approve-comment_' : 'delete-comment_';
$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 ( !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
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>';
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');
}
?>
<p><strong><?php _e('Caution:'); ?></strong> <?php echo $caution_msg; ?></p>
<table class="form-table comment-ays">
<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 _e('No'); ?>' onclick="self.location='<?php echo get_option('siteurl'); ?>/wp-admin/edit-comments.php';" /></td>
<td class="textright"><input type='submit' class="button" value='<?php echo $button; ?>' /></td>
</tr>
</table>
<?php wp_nonce_field( $nonce_action ); ?>
<input type='hidden' name='action' value='<?php echo $formaction; ?>' />
<?php if ( 'spam' == $_GET['dt'] ) { ?>
<input type='hidden' name='dt' value='spam' />
<?php } ?>
<input type='hidden' name='p' value='<?php echo $comment->comment_post_ID; ?>' />
<input type='hidden' name='c' value='<?php echo $comment->comment_ID; ?>' />
<input type='hidden' name='noredir' value='1' />
</form>
<table class="form-table" cellpadding="5">
<tr class="alt">
<th scope="row"><?php _e('Author'); ?></th>
<td><?php echo $comment->comment_author; ?></td>
@@ -171,123 +107,114 @@ if ( $comment->comment_approved != '0' ) { // if not unapproved
<?php if ( $comment->comment_author_url ) { ?>
<tr>
<th scope="row"><?php _e('URL'); ?></th>
<td><a href="<?php echo $comment->comment_author_url; ?>"><?php echo $comment->comment_author_url; ?></a></td>
<td><a href='<?php echo $comment->comment_author_url; ?>'><?php echo $comment->comment_author_url; ?></a></td>
</tr>
<?php } ?>
<tr>
<th scope="row" valign="top"><?php /* translators: field name in comment form */ _ex('Comment', 'noun'); ?></th>
<th scope="row" valign="top"><?php _e('Comment'); ?></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 'trashcomment' :
case 'untrashcomment' :
case 'spamcomment' :
case 'unspamcomment' :
case 'approvecomment' :
case 'unapprovecomment' :
case 'deletecomment' :
$comment_id = absint( $_REQUEST['c'] );
check_admin_referer( 'delete-comment_' . $comment_id );
if ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ) ) )
check_admin_referer( 'approve-comment_' . $comment_id );
if ( isset( $_REQUEST['noredir'] ) )
$noredir = true;
else
check_admin_referer( 'delete-comment_' . $comment_id );
$noredir = false;
$noredir = isset($_REQUEST['noredir']);
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 ( !$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 ) )
if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
comment_footer_die( __('You are not allowed to edit comments on this post.') );
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 ) );
if ( 'spam' == $_REQUEST['dt'] )
wp_set_comment_status( $comment->comment_ID, 'spam' );
else
$redir = admin_url('edit-comments.php');
wp_delete_comment( $comment->comment_ID );
$redir = remove_query_arg( array('spammed', 'unspammed', 'trashed', 'untrashed', 'deleted', 'ids', 'approved', 'unapproved'), $redir );
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() );
else
wp_redirect( get_option('siteurl') . '/wp-admin/edit-comments.php' );
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( get_option('siteurl') . '/wp-admin/edit.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 ( true == get_option('comments_notify') )
wp_notify_postauthor( $comment->comment_ID );
if ( '' != wp_get_referer() && false == $noredir )
wp_redirect( wp_get_referer() );
else
wp_redirect( get_option('siteurl') . '/wp-admin/edit.php?p=' . absint( $comment->comment_post_ID ) . '#comments' );
exit();
break;
case 'editedcomment' :
$comment_id = absint( $_POST['comment_ID'] );
$comment_post_id = absint( $_POST['comment_post_ID'] );
$comment_post_id = absint( $_POST['comment_post_id'] );
check_admin_referer( 'update-comment_' . $comment_id );
edit_comment();
$location = ( empty( $_POST['referredby'] ) ? "edit-comments.php?p=$comment_post_id" : $_POST['referredby'] ) . '#comment-' . $comment_id;
/**
* Filter the URI the user is redirected to after editing a comment in the admin.
*
* @since 2.1.0
*
* @param string $location The URI the user will be redirected to.
* @param int $comment_id The ID of the comment being edited.
*/
$location = ( empty( $_POST['referredby'] ) ? "edit.php?p=$comment_post_id" : $_POST['referredby'] ) . '#comment-' . $comment_id;
$location = apply_filters( 'comment_edit_redirect', $location, $comment_id );
wp_redirect( $location );
@@ -300,4 +227,6 @@ default:
} // end switch
include( ABSPATH . 'wp-admin/admin-footer.php' );
include('admin-footer.php');
?>

View File

@@ -1,190 +0,0 @@
<?php
/**
* Credits administration panel.
*
* @package WordPress
* @subpackage Administration
*/
/** WordPress Administration Bootstrap */
require_once( dirname( __FILE__ ) . '/admin.php' );
$title = __( 'Credits' );
/**
* Retrieve the contributor credits.
*
* @global string $wp_version The current WordPress version.
*
* @since 3.2.0
*
* @return array A list of all of the contributors.
*/
function wp_credits() {
global $wp_version;
$locale = get_locale();
$results = get_site_transient( 'wordpress_credits_' . $locale );
if ( ! is_array( $results )
|| ( isset( $results['data']['version'] ) && strpos( $wp_version, $results['data']['version'] ) !== 0 )
) {
$response = wp_remote_get( "http://api.wordpress.org/core/credits/1.1/?version=$wp_version&locale=$locale" );
if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) )
return false;
$results = json_decode( wp_remote_retrieve_body( $response ), true );
if ( ! is_array( $results ) )
return false;
set_site_transient( 'wordpress_credits_' . $locale, $results, DAY_IN_SECONDS );
}
return $results;
}
/**
* Retrieve the link to a contributor's WordPress.org profile page.
*
* @access private
* @since 3.2.0
*
* @param string &$display_name The contributor's display name, passed by reference.
* @param string $user_name The contributor's username.
* @param string $profiles URL to the contributor's WordPress.org profile page.
* @return string A contributor's display name, hyperlinked to a WordPress.org profile page.
*/
function _wp_credits_add_profile_link( &$display_name, $username, $profiles ) {
$display_name = '<a href="' . esc_url( sprintf( $profiles, $username ) ) . '">' . esc_html( $display_name ) . '</a>';
}
/**
* Retrieve the link to an external library used in WordPress.
*
* @access private
* @since 3.2.0
*
* @param string &$data External library data, passed by reference.
* @return string Link to the external library.
*/
function _wp_credits_build_object_link( &$data ) {
$data = '<a href="' . esc_url( $data[1] ) . '">' . $data[0] . '</a>';
}
list( $display_version ) = explode( '-', $wp_version );
include( ABSPATH . 'wp-admin/admin-header.php' );
?>
<div class="wrap about-wrap">
<h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
<div class="about-text"><?php echo str_replace( '3.7', $display_version, __( 'Thank you for updating to WordPress 3.7! You might not notice a thing, and we&#8217;re okay with that.' ) ); ?></div>
<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
<h2 class="nav-tab-wrapper">
<a href="about.php" class="nav-tab">
<?php _e( 'What&#8217;s New' ); ?>
</a><a href="credits.php" class="nav-tab nav-tab-active">
<?php _e( 'Credits' ); ?>
</a><a href="freedoms.php" class="nav-tab">
<?php _e( 'Freedoms' ); ?>
</a>
</h2>
<?php
$credits = wp_credits();
if ( ! $credits ) {
echo '<p class="about-description">' . sprintf( __( 'WordPress is created by a <a href="%1$s">worldwide team</a> of passionate individuals. <a href="%2$s">Get involved in WordPress</a>.' ),
'http://wordpress.org/about/',
/* translators: Url to the codex documentation on contributing to WordPress used on the credits page */
__( 'http://codex.wordpress.org/Contributing_to_WordPress' ) ) . '</p>';
include( ABSPATH . 'wp-admin/admin-footer.php' );
exit;
}
echo '<p class="about-description">' . __( 'WordPress is created by a worldwide team of passionate individuals.' ) . "</p>\n";
$gravatar = is_ssl() ? 'https://secure.gravatar.com/avatar/' : 'http://0.gravatar.com/avatar/';
foreach ( $credits['groups'] as $group_slug => $group_data ) {
if ( $group_data['name'] ) {
if ( 'Translators' == $group_data['name'] ) {
// Considered a special slug in the API response. (Also, will never be returned for en_US.)
$title = _x( 'Translators', 'Translate this to be the equivalent of English Translators in your language for the credits page Translators section' );
} elseif ( isset( $group_data['placeholders'] ) ) {
$title = vsprintf( translate( $group_data['name'] ), $group_data['placeholders'] );
} else {
$title = translate( $group_data['name'] );
}
echo '<h4 class="wp-people-group">' . $title . "</h4>\n";
}
if ( ! empty( $group_data['shuffle'] ) )
shuffle( $group_data['data'] ); // We were going to sort by ability to pronounce "hierarchical," but that wouldn't be fair to Matt.
switch ( $group_data['type'] ) {
case 'list' :
array_walk( $group_data['data'], '_wp_credits_add_profile_link', $credits['data']['profiles'] );
echo '<p class="wp-credits-list">' . wp_sprintf( '%l.', $group_data['data'] ) . "</p>\n\n";
break;
case 'libraries' :
array_walk( $group_data['data'], '_wp_credits_build_object_link' );
echo '<p class="wp-credits-list">' . wp_sprintf( '%l.', $group_data['data'] ) . "</p>\n\n";
break;
default:
$compact = 'compact' == $group_data['type'];
$classes = 'wp-people-group ' . ( $compact ? 'compact' : '' );
echo '<ul class="' . $classes . '" id="wp-people-group-' . $group_slug . '">' . "\n";
foreach ( $group_data['data'] as $person_data ) {
echo '<li class="wp-person" id="wp-person-' . $person_data[2] . '">' . "\n\t";
echo '<a href="' . sprintf( $credits['data']['profiles'], $person_data[2] ) . '">';
$size = 'compact' == $group_data['type'] ? '30' : '60';
echo '<img src="' . $gravatar . $person_data[1] . '?s=' . $size . '" class="gravatar" alt="' . esc_attr( $person_data[0] ) . '" /></a>' . "\n\t";
echo '<a class="web" href="' . sprintf( $credits['data']['profiles'], $person_data[2] ) . '">' . $person_data[0] . "</a>\n\t";
if ( ! $compact )
echo '<span class="title">' . translate( $person_data[3] ) . "</span>\n";
echo "</li>\n";
}
echo "</ul>\n";
break;
}
}
?>
<p class="clear"><?php printf( __( 'Want to see your name in lights on this page? <a href="%s">Get involved in WordPress</a>.' ),
/* translators: Url to the codex documentation on contributing to WordPress used on the credits page */
__( 'http://codex.wordpress.org/Contributing_to_WordPress' ) ); ?></p>
</div>
<?php
include( ABSPATH . 'wp-admin/admin-footer.php' );
return;
// These are strings returned by the API that we want to be translatable
__( 'Project Leaders' );
__( 'Extended Core Team' );
__( 'Core Developers' );
__( 'Recent Rockstars' );
__( 'Core Contributors to WordPress %s' );
__( 'Contributing Developers' );
__( 'Cofounder, Project Lead' );
__( 'Lead Developer' );
__( 'User Experience Lead' );
__( 'Core Developer' );
__( 'Core Committer' );
__( 'Guest Committer' );
__( 'Developer' );
__( 'Designer' );
__( 'XML-RPC' );
__( 'Internationalization' );
__( 'External Libraries' );
__( 'Icon Design' );

View File

@@ -1,27 +0,0 @@
.wp-color-result {
margin: 0 0 6px 6px;
padding-left: 0;
padding-right: 30px;
}
.wp-color-result:after {
border-radius: 0 0 1px 1px;
border-left: 0;
border-right: 1px solid #bbb;
left: auto;
right: 0;
}
.wp-color-result:hover {
border-color: #aaa;
}
.wp-color-result:hover:after {
border-left: 0;
border-right: 1px solid #999;
}
.wp-picker-container .button {
margin-left: 0;
margin-right: 6px;
}

View File

@@ -1 +0,0 @@
.wp-color-result{margin:0 0 6px 6px;padding-left:0;padding-right:30px}.wp-color-result:after{border-radius:0 0 1px 1px;border-left:0;border-right:1px solid #bbb;left:auto;right:0}.wp-color-result:hover{border-color:#aaa}.wp-color-result:hover:after{border-left:0;border-right:1px solid #999}.wp-picker-container .button{margin-left:0;margin-right:6px}

View File

@@ -1,107 +0,0 @@
.wp-color-picker {
width: 80px;
}
.wp-picker-container .hidden {
display: none;
}
.wp-color-result {
background-color: #f9f9f9;
border: 1px solid #bbb;
border-radius: 2px;
cursor: pointer;
display: inline-block;
height: 22px;
margin: 0 6px 6px 0px;
position: relative;
top: 1px;
user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
vertical-align: bottom;
display: inline-block;
padding-left: 30px;
}
.wp-color-result:after {
background: #f3f3f3;
background-image: -webkit-gradient(linear, left top, left bottom, from(#fefefe), to(#f4f4f4));
background-image: -webkit-linear-gradient(top, #fefefe, #f4f4f4);
background-image: -moz-linear-gradient(top, #fefefe, #f4f4f4);
background-image: -o-linear-gradient(top, #fefefe, #f4f4f4);
background-image: linear-gradient(to bottom, #fefefe, #f4f4f4);
color: #333;
text-shadow: 0 1px 0 #fff;
border-radius: 0 1px 1px 0;
border-left: 1px solid #bbb;
content: attr( title );
display: block;
font-size: 11px;
line-height: 22px;
padding: 0 6px;
position: relative;
right: 0;
text-align: center;
top: 0;
}
.wp-color-result:hover {
border-color: #aaa;
-webkit-box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.2 );
box-shadow: 0 1px 1px rgba( 0, 0, 0, 0.1 );
}
.wp-color-result:hover:after {
color: #222;
border-color: #aaa;
border-left: 1px solid #999;
}
.wp-color-result.wp-picker-open {
top: 0;
}
.wp-color-result.wp-picker-open:after {
content: attr( data-current );
}
.wp-picker-container, .wp-picker-container:active {
display: inline-block;
outline: 0;
}
.wp-color-result:focus {
border-color: #888;
-webkit-box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.2 );
box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.2 );
}
.wp-color-result:focus:after {
border-color: #888;
}
.wp-picker-open + .wp-picker-input-wrap {
display: inline-block;
vertical-align: top;
}
.wp-picker-container .button {
margin-left: 6px;
}
.wp-picker-container .iris-square-slider .ui-slider-handle:focus {
background-color: #555
}
.wp-picker-container .iris-picker {
border-color: #dfdfdf;
margin-top: 6px;
}
input[type="text"].iris-error {
background-color: #ffebe8;
border-color: #c00;
color: #000;
}

View File

@@ -1 +0,0 @@
.wp-color-picker{width:80px}.wp-picker-container .hidden{display:none}.wp-color-result{background-color:#f9f9f9;border:1px solid #bbb;border-radius:2px;cursor:pointer;display:inline-block;height:22px;margin:0 6px 6px 0;position:relative;top:1px;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;vertical-align:bottom;display:inline-block;padding-left:30px}.wp-color-result:after{background:#f3f3f3;background-image:-webkit-gradient(linear,left top,left bottom,from(#fefefe),to(#f4f4f4));background-image:-webkit-linear-gradient(top,#fefefe,#f4f4f4);background-image:-moz-linear-gradient(top,#fefefe,#f4f4f4);background-image:-o-linear-gradient(top,#fefefe,#f4f4f4);background-image:linear-gradient(to bottom,#fefefe,#f4f4f4);color:#333;text-shadow:0 1px 0 #fff;border-radius:0 1px 1px 0;border-left:1px solid #bbb;content:attr(title);display:block;font-size:11px;line-height:22px;padding:0 6px;position:relative;right:0;text-align:center;top:0}.wp-color-result:hover{border-color:#aaa;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 1px rgba(0,0,0,.1)}.wp-color-result:hover:after{color:#222;border-color:#aaa;border-left:1px solid #999}.wp-color-result.wp-picker-open{top:0}.wp-color-result.wp-picker-open:after{content:attr(data-current)}.wp-picker-container,.wp-picker-container:active{display:inline-block;outline:0}.wp-color-result:focus{border-color:#888;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.wp-color-result:focus:after{border-color:#888}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-container .button{margin-left:6px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#555}.wp-picker-container .iris-picker{border-color:#dfdfdf;margin-top:6px}input[type=text].iris-error{background-color:#ffebe8;border-color:#c00;color:#000}

View File

@@ -0,0 +1,3 @@
#poststuff .closed .togbox, #poststuff .togbox {
background-image: url(../images/toggle-arrow-rtl.gif) !important;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,3 @@
#poststuff .closed .togbox, #poststuff .togbox {
background-image: url(../images/toggle-arrow-rtl.gif) !important;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,77 +0,0 @@
#customize-header-actions .button-primary {
float: left;
}
#customize-header-actions .spinner {
float: left;
margin-right: 0;
margin-left: 4px;
}
.customize-control {
float: right;
}
.customize-control-radio input,
.customize-control-checkbox input {
margin-right: 0;
margin-left: 5px;
}
/*
* Dropdowns
*/
.accordion-section .dropdown {
float: right;
}
.accordion-section .dropdown-content {
float: right;
margin-right: 0px;
margin-left: 16px;
-webkit-border-radius: 0 3px 3px 0;
border-radius: 0 3px 3px 0;
}
.customize-control .dropdown-arrow {
right: auto;
left: 0;
border-color: #ccc;
border-style: solid;
border-width: 1px 0 1px 1px;
-webkit-border-radius: 3px 0 0 3px;
border-radius: 3px 0 0 3px;
}
.customize-control .dropdown-arrow:after {
right: auto;
left: 4px;
}
/*
* Color Picker
*/
.customize-control-color .dropdown {
margin-right: 0;
margin-left: 5px;
}
.accordion-section input[type="text"].color-picker-hex {
direction: ltr;
}
/*
* Image Picker
*/
.accordion-section .customize-control-image .actions {
text-align: left;
}
.customize-control-image .library,
.customize-control-image .actions,
.accordion-section .customize-control-image .library ul,
.accordion-section .customize-control-image .library li,
.accordion-section .customize-control-image .library-content {
float: right;
}

View File

@@ -1 +0,0 @@
#customize-header-actions .button-primary{float:left}#customize-header-actions .spinner{float:left;margin-right:0;margin-left:4px}.customize-control{float:right}.customize-control-radio input,.customize-control-checkbox input{margin-right:0;margin-left:5px}.accordion-section .dropdown{float:right}.accordion-section .dropdown-content{float:right;margin-right:0;margin-left:16px;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.customize-control .dropdown-arrow{right:auto;left:0;border-color:#ccc;border-style:solid;border-width:1px 0 1px 1px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.customize-control .dropdown-arrow:after{right:auto;left:4px}.customize-control-color .dropdown{margin-right:0;margin-left:5px}.accordion-section input[type=text].color-picker-hex{direction:ltr}.accordion-section .customize-control-image .actions{text-align:left}.customize-control-image .library,.customize-control-image .actions,.accordion-section .customize-control-image .library ul,.accordion-section .customize-control-image .library li,.accordion-section .customize-control-image .library-content{float:right}

View File

@@ -1,440 +0,0 @@
body {
overflow: hidden;
}
#customize-controls a {
text-decoration: none;
}
#customize-info .accordion-section-content {
background: transparent;
}
#customize-info .preview-notice {
font-size: 13px;
line-height: 24px;
color: #999;
}
#customize-info .theme-name {
font-size: 20px;
font-weight: 200;
line-height: 24px;
color: #333;
display: block;
text-shadow: 0 1px 0 #fff;
}
#customize-info .theme-screenshot {
width: 258px;
border: 1px solid #ccc;
}
#customize-info .theme-description {
margin-top: 1em;
color: #777;
line-height: 20px;
}
#customize-controls .submit {
text-align: center;
}
#customize-theme-controls > ul,
#customize-theme-controls .accordion-section-content {
margin: 0;
}
#customize-header-actions .button-primary {
float: right;
margin-top: 10px;
}
#customize-header-actions .spinner {
margin-top: 16px;
margin-right: 4px;
}
.saving #customize-header-actions .spinner {
display: block;
}
.customize-control {
width: 100%;
float: left;
clear: both;
margin-bottom: 8px;
}
.customize-control-title {
display: block;
line-height: 24px;
font-weight: bold;
}
.customize-control select,
.customize-control input[type="text"],
.customize-control input[type="radio"],
.customize-control input[type="checkbox"],
.customize-control-color .color-picker,
.customize-control-checkbox label,
.customize-control-upload div {
line-height: 28px;
}
.customize-control input[type="text"] {
width: 98%;
line-height: 18px;
margin: 0;
}
.customize-control select {
min-width: 50%;
max-width: 100%;
height: 28px;
line-height: 28px;
}
.customize-control-checkbox input {
margin-right: 5px;
}
.customize-control-radio {
padding: 5px 0 10px;
}
.customize-control-radio .customize-control-title {
margin-bottom: 0;
line-height: 22px;
}
.customize-control-radio label {
line-height: 20px;
}
.customize-control-radio input {
margin-right: 5px;
}
#customize-preview iframe {
width: 100%;
height: 100%;
}
#customize-theme-controls .accordion-section-title:hover:after,
#customize-theme-controls .accordion-section-title:focus:after {
border-color: #eee transparent;
}
#customize-theme-controls .control-section:hover .accordion-section-title,
#customize-theme-controls .control-section .accordion-section-title:hover,
#customize-theme-controls .control-section.open .accordion-section-title,
#customize-theme-controls .control-section .accordion-section-title:focus {
color: #fff;
text-shadow: 0 -1px 0 #333;
background: #808080;
background-image: -webkit-gradient(linear, left bottom, left top, from(#6d6d6d), to(#808080));
background-image: -webkit-linear-gradient(bottom, #6d6d6d, #808080);
background-image: -moz-linear-gradient(bottom, #6d6d6d, #808080);
background-image: -o-linear-gradient(bottom, #6d6d6d, #808080);
background-image: linear-gradient(to top, #6d6d6d, #808080);
border-left: 1px solid #808080;
border-right: 1px solid #808080;
}
#customize-theme-controls .control-section.accordion-section:hover,
#customize-theme-controls .control-section.accordion-section.open {
border-top-color: #808080;
}
#customize-theme-controls .control-section.open .accordion-section-title {
border-bottom: 1px solid #6d6d6d;
}
/*
* Style for custom settings
*/
/*
* Dropdowns
*/
.accordion-section .dropdown {
float: left;
display: block;
position: relative;
cursor: pointer;
-webkit-border-radius: 3px;
border-radius: 3px;
}
.accordion-section .dropdown-content {
overflow: hidden;
float: left;
min-width: 30px;
height: 16px;
line-height: 16px;
margin-right: 16px;
padding: 4px 5px;
background-color: #eee;
border: 1px solid #ccc;
-webkit-border-radius: 3px 0 0 3px;
border-radius: 3px 0 0 3px;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.customize-control .dropdown-arrow {
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 15px;
border-color: #ccc;
border-style: solid;
border-width: 1px 1px 1px 0;
-webkit-border-radius: 0 3px 3px 0;
border-radius: 0 3px 3px 0;
}
.customize-control .dropdown-arrow:after {
content: '';
width: 0;
height: 0;
border-color: #ccc transparent;
border-style: solid;
border-width: 4px 4px 0 4px;
position: absolute;
top: 50%;
margin-top: -1px;
right: 4px;
z-index: 1;
}
.accordion-section .dropdown:hover .dropdown-content,
.customize-control .dropdown:hover .dropdown-arrow {
border-color: #aaa;
}
.accordion-section .dropdown:hover .dropdown-arrow:after {
border-color: #aaa transparent;
}
.customize-control .dropdown-status {
display: none;
max-width: 112px;
color: #777;
}
/*
* Color Picker
*/
.customize-control-color .color-picker-hex {
display: none;
}
.customize-control-color.open .color-picker-hex {
display: block;
}
.customize-control-color .dropdown {
margin-right: 5px;
margin-bottom: 5px;
}
.customize-control-color .dropdown .dropdown-content {
background-color: #fff;
border: 1px solid rgba( 0, 0, 0, 0.15 );
}
.customize-control-color .dropdown:hover .dropdown-content {
border-color: rgba( 0, 0, 0, 0.25 );
}
.accordion-section input[type="text"].color-picker-hex {
width: 65px;
font-family: monospace;
text-align: center;
line-height: 16px;
}
/* The centered cursor overlaps the placeholder in webkit. Hide it when selected. */
.accordion-section input[type="text"].color-picker-hex:focus::-webkit-input-placeholder {
color: transparent;
}
.accordion-section input[type="text"].color-picker-hex:-moz-placeholder {
color: #999;
}
/*
* Image Picker
*/
.customize-control-image .library,
.customize-control-image .actions {
display: none;
float: left;
width: 100%;
}
.customize-control-image.open .library,
.customize-control-image.open .actions {
display: block;
}
.accordion-section .customize-control-image .dropdown-content {
height: auto;
min-height: 24px;
min-width: 40px;
padding: 0;
}
.accordion-section .customize-control-image .dropdown-status {
padding: 4px 5px;
}
.accordion-section .customize-control-image .preview-thumbnail img {
display: block;
width: 100%;
max-width: 122px;
max-height: 98px;
margin: 0 auto;
}
.accordion-section .customize-control-image .actions {
text-align: right;
}
.accordion-section .customize-control-image .library ul {
border-bottom: 1px solid #dfdfdf;
float: left;
width: 100%;
margin: 10px 0 0;
}
.accordion-section .customize-control-image .library li {
color: #999;
float: left;
padding: 3px 5px;
margin: 0;
border-style: solid;
border-color: transparent;
border-width: 1px 1px 0 1px;
}
.accordion-section .customize-control-image .library li.library-selected {
margin-bottom: -1px;
padding-bottom: 4px;
color: #777;
background: #fdfdfd;
border-color: #dfdfdf;
-webkit-border-radius: 3px 3px 0 0;
border-radius: 3px 3px 0 0 ;
}
.accordion-section .customize-control-image .library-content {
display: none;
width: 100%;
float: left;
padding: 10px 0;
}
.accordion-section .customize-control-image .library-content.library-selected {
display: block;
}
.accordion-section .customize-control-image .library .thumbnail {
display: block;
width: 100%;
}
.accordion-section .customize-control-image .library .thumbnail:hover img {
border-color: #21759b;
}
.accordion-section .customize-control-image .library .thumbnail img {
display: block;
max-width: 90%;
max-height: 80px;
margin: 5px auto;
padding: 4px;
background: #fff;
border: 1px solid #dfdfdf;
}
.accordion-section .customize-control-upload .upload-fallback,
.accordion-section .customize-control-image .upload-fallback {
display: none;
}
.accordion-section .customize-control-upload .upload-dropzone,
.accordion-section .customize-control-image .upload-dropzone {
display: none;
padding: 15px 10px;
border: 3px dashed #dfdfdf;
margin: 5px auto;
text-align: center;
color: #777;
position: relative;
cursor: default;
}
.accordion-section .customize-control-upload .upload-dropzone.supports-drag-drop,
.accordion-section .customize-control-image .upload-dropzone.supports-drag-drop {
display: block;
-webkit-transition: border-color 0.1s;
-moz-transition: border-color 0.1s;
-ms-transition: border-color 0.1s;
-o-transition: border-color 0.1s;
transition: border-color 0.1s;
}
.accordion-section .customize-control-upload .library ul li,
.accordion-section .customize-control-image .library ul li {
cursor: pointer;
}
.accordion-section .customize-control-upload .upload-dropzone.supports-drag-drop.drag-over,
.accordion-section .customize-control-image .upload-dropzone.supports-drag-drop.drag-over {
border-color: #83b4d8;
}
/**
* iOS can't scroll iframes,
* instead it expands the iframe size to match the size of the content
*/
.ios .wp-full-overlay {
position: relative;
}
.ios #customize-preview {
position: relative;
}
.ios #customize-controls .wp-full-overlay-sidebar-content {
-webkit-overflow-scrolling: touch;
}
/**
* Handle cheaters.
*/
body.cheatin {
min-width: 0;
background: #f9f9f9;
padding: 50px;
}
body.cheatin p {
max-width: 700px;
margin: 0 auto;
padding: 2em;
font-size: 14px;
background: #fff;
border: 1px solid #dfdfdf;
-webkit-border-radius: 3px;
border-radius: 3px;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,62 @@
#rightnow {
margin-left: 15px;
}
#rightnow .reallynow span {
text-align: right;
float: right;
}
#rightnow .reallynow a {
text-align: left;
float: left;
margin: 1px 0 0 6px;
}
h3.dashboard-widget-title span {
text-align: right;
float: right;
}
#dashboard-widgets .widget_rss ul li a {
float:right;
font-weight:bold;
margin:0pt 0pt 0.2em 0.5em;
}
#dashboard-widgets .widget_rss ul li span.rss-date {
float: right;
}
h3.dashboard-widget-title small {
text-align: left;
float: left;
}
div.dashboard-widget-content ul,
div.dashboard-widget-content ol,
div.dashboard-widget-content dl {
padding-left:0;
padding-right:15px;
}
div#dashboard-widgets-wrap
{
margin-right:0;
margin-left:-10px;
}
div.dashboard-widget {
margin-right:0;
margin-left:20px;
}
#dashboard-widgets .widget_rss ul li span.rss-date {
float:right;
}
#dashboard-widgets .widget_rss ul li a {
float:right;
margin:0 0 0.2em 0.5em;
}
#dashboard_secondary div.dashboard-widget-content ul li a {
border-right:0 none;
border-left:1px solid #DADADA;
}

282
wp-admin/css/dashboard.css Normal file
View File

@@ -0,0 +1,282 @@
/* Right Now */
#rightnow {
border-width: 1px;
border-style: solid;
padding: 2px;
margin-top: 10px;
margin-right: 7px;
}
#rightnow .reallynow {
padding: 6px;
font-size: 15px;
line-height: 2;
margin: 0;
}
#rightnow .rbutton {
font-weight: normal;
padding: 6px;
border-bottom: none;
-moz-border-radius: 2px;
-khtml-border-radius: 2px;
-webkit-border-radius: 2px;
border-radius: 2px;
text-decoration: none;
}
#rightnow .reallynow span {
display: block;
text-align: left;
float: left;
padding: 0 6px;
}
#rightnow .reallynow a {
display: block;
text-align: right;
float: right;
padding: 0 6px;
font-size: 14px;
margin: 1px 6px 0 0;
}
#rightnow .youhave {
font-size: 14px;
padding: 10px;
}
#rightnow h3, #rightnow p {
padding: 0 10px;
}
#rightnow a {
font-weight: bold;
}
/* Widgets */
div#dashboard-widgets-wrap {
margin-top: -20px;
margin-right: -13px; /* 20 (div.dashboard-widget margin-right) - 7 (#rightnow margin-right) */
}
div#dashboard-widgets {
width: 100%;
}
div.dashboard-widget-holder {
margin-top: 20px;
width: 50%;
float: left;
}
div.dashboard-widget-holder.third {
width: 33.3%;
}
div.dashboard-widget-holder.fourth {
width: 25%;
}
div.dashboard-widget-holder.full {
width: 100%;
}
div.dashboard-widget-holder.double div.dashboard-widget {
height: 54em;
padding-bottom: 28px /* lame */
}
div.dashboard-widget {
position: relative;
margin-right: 20px;
border-width: 1px;
border-style: solid;
padding: 2px;
height: 27em;
overflow: auto;
font-size: 11px;
}
h3.dashboard-widget-title {
margin: 0;
padding: 0 7px;
font-size: 14px;
line-height: 2;
}
h3.dashboard-widget-title span {
display: block;
text-align: left;
float: left;
}
h3.dashboard-widget-title small {
display: block;
text-align: right;
float: right;
font-size: 75%;
line-height: 2.67; /* math: it works, bitches */
}
h3.dashboard-widget-title img.rss-icon {
vertical-align: middle;
margin: .5em 0;
}
div.dashboard-widget-notice {
padding: 0 14px;
font-size: 1.2em;
line-height: 2;
}
div.dashboard-widget-error {
padding: 0 20px;
font-size: 1.2em;
line-height: 2;
}
div.dashboard-widget-content {
padding: 10px 15px;
}
div.dashboard-widget-submit {
border-top: 1px solid #ccc;
padding: 1em 0 0 0;
margin: 10px 0 0 0;
}
div.dashboard-widget-submit input {
font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
padding: 4px 6px;
border: none;
font-size: 13px;
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
cursor: pointer;
text-decoration: none;
}
div.dashboard-widget-content ul, div.dashboard-widget-content ol, div.dashboard-widget-content dl {
margin: 0;
text-indent: 0;
padding-left: 15px;
}
div.dashboard-widget-content li {
margin: .5em 0 1em;
}
div.dashboard-widget-content blockquote {
margin: -1em 0;
}
div#dashboard_recent_comments p {
font-size: 14px;
}
div.dashboard-widget-content p.comment-meta {
font-size: 11px !important;
}
#dashboard_secondary div.dashboard-widget {
height: auto;
}
#dashboard_secondary div.dashboard-widget-content ul {
list-style: none;
padding: 0;
}
#dashboard_secondary div.dashboard-widget-content ul li {
display: block;
width: 19.95%;
padding-bottom: 10px;
margin: 0;
float: left;
font-size: 95%;
}
#dashboard_secondary div.dashboard-widget-content {
margin: 10px 5px;
padding: 0;
}
#dashboard_secondary div.dashboard-widget-content ul li .post {
display:block;
font-family:Georgia,"Times New Roman",Times,serif;
font-size:18px;
line-height: 1.2em;
height:90px;
overflow:hidden;
}
#dashboard_secondary div.dashboard-widget-content ul li a {
display: block;
height:100%;
overflow:hidden;
margin: 5px 10px;
text-decoration: none;
padding: .5em;
border-right: 1px solid #dadada;
border-bottom: 1px solid #dadada;
}
#dashboard_secondary div.dashboard-widget-content ul li a cite {
display: block;
font-family: "Lucida Sans", "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
}
#dashboard-widgets .widget_rss ul {
list-style: none;
padding: 0;
}
#dashboard-widgets .widget_rss ul li {
clear: both;
}
#dashboard-widgets .widget_rss ul li span.rss-date {
float: left;
margin: 0;
}
#dashboard-widgets .widget_rss ul li a {
float: left;
margin: 0 .5em .2em 0;
font-weight: bold;
}
#dashboard-widgets .widget_rss ul li div {
clear: both;
line-height: 1.5em;
}
#dashboard_primary a.rsswidget, #dashboard_plugins h5 {
font-size: 14px;
}
#dashboard_primary span.rss-date {
font-size: 14px;
}
#dashboard_plugins h4 {
font-size: 1em;
margin: 0 0 .1em;
}
#dashboard_plugins h5 {
margin: 0;
display: inline;
line-height: 1.4em;
}
#dashboard_plugins p {
margin: 0 0 1em;
line-height: 1.5em;
}
.widget-loading {
}

View File

@@ -1,52 +0,0 @@
.farbtastic {
position: relative;
}
.farbtastic * {
position: absolute;
cursor: crosshair;
}
.farbtastic,
.farbtastic .wheel {
width: 195px;
height: 195px;
}
.farbtastic .color,
.farbtastic .overlay {
top: 47px;
left: 47px;
width: 101px;
height: 101px;
}
.farbtastic .wheel {
background: url(../images/wheel.png) no-repeat;
width: 195px;
height: 195px;
}
.farbtastic .overlay {
background: url(../images/mask.png) no-repeat;
}
.farbtastic .marker {
width: 17px;
height: 17px;
margin: -8px 0 0 -8px;
overflow: hidden;
background: url(../images/marker.png) no-repeat;
}
/* farbtastic-rtl */
.rtl .farbtastic .color,
.rtl .farbtastic .overlay {
left: 0;
right: 47px;
}
.rtl .farbtastic .marker {
margin: -8px -8px 0 0;
}

196
wp-admin/css/global.css Normal file
View File

@@ -0,0 +1,196 @@
/* styles for use by people extending the WordPress interface */
body {
margin: 0;
padding: 0;
}
body, td {
font: 13px "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
}
form, label input { margin: 0; padding: 0; }
img { border: 0; }
label { cursor: pointer; }
li, dd { margin-bottom: 6px; }
p, li, dl, dd, dt { line-height: 140%; }
textarea, input, select {
font: 13px Verdana, Arial, Helvetica, sans-serif;
margin: 1px;
padding: 3px;
}
.alignleft { float: left; }
.alignright { float: right; }
.textleft { text-align: left; }
.textright { text-align: right; }
.clear { clear: both; height: 2px; }
.hidden { display: none; }
h1 {
display: block;
font-size: 2em;
font-weight: bold;
margin: .67em 0;
}
h2 {
display: block;
font-size: 1.5em;
font-weight: bold;
margin: .83em 0;
}
h3 {
display: block;
font-size: 1.17em;
font-weight: bold;
margin: 1em 0;
}
h4 {
display: block;
font-weight: bold;
margin: 1.33em 0;
}
h5 {
display: block;
font-size: 0.83em;
font-weight: bold;
margin: 1.67em 0;
}
h6 {
display: block;
font-size: 0.67em;
font-weight: bold;
margin: 2.33em 0;
}
.subsubsub {
list-style: none;
margin: 14px 0 8px 0;
padding: 0;
white-space: nowrap;
font-size: 12px;
}
.subsubsub a { line-height: 200%; padding: 3px; text-decoration: none; }
.subsubsub a.current { font-weight: bold; background: none; border: none;}
.subsubsub li { display: inline; margin: 0; padding: 0; }
.widefat {
border-width: 1px;
border-style: solid;
border-collapse: collapse;
width: 100%;
clear: both;
margin: 0;
}
.widefat a {
text-decoration: none;
}
.widefat abbr {
white-space: nowrap;
}
.widefat td, .widefat th {
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #ccc;
font-size: 11px;
vertical-align: text-top;
}
.widefat td {
padding: 7px 15px 9px 10px;
vertical-align: top;
}
.widefat th {
padding: 9px 15px 6px 10px;
text-align: left;
line-height: 1.3em;
}
.widefat th input {
margin: 0 0 0 8px;
padding: 0;
}
.widefat .check-column {
text-align: right;
width: 1.5em;
padding: 0;
}
.widefat tbody th.check-column {
padding: 8px 0 22px;
}
/*
th.check-column + th, th.check-column + td {
padding-left: 5px;
}
*/
.widefat .num {
text-align: center;
}
.wrap, .updated, .error {
margin: 0;
margin-left: 15px;
margin-right: 15px;
padding: 0;
max-width: 980px;
}
.updated, .error {
border-width: 1px;
border-style: solid;
padding: 0 0.6em;
max-width: 950px;
margin-bottom: 1em;
}
.updated p, .error p {
margin: 0.6em 0;
}
.wrap .updated, .wrap .error {
margin: auto 0 0;
}
.updated a, .error a {
text-decoration: underline;
}
.updated a {
text-decoration: none;
padding-bottom: 2px;
}
.wrap h2 {
border-bottom-width: 1px;
border-bottom-style: solid;
clear: both;
font: 24px Georgia, "Times New Roman", Times, serif;
margin: 5px 0 0 -4px;
padding: 0;
padding-bottom: 7px;
padding-right: 280px;
}

View File

@@ -1,236 +1,53 @@
body {
direction: rtl;
width: 99.5%;
/* footer */
body, td {
font-family: Tahoma,Verdana,sans-serif;
}
.rtl #adminmenuback {
left: auto;
right: 0;
background-image: none;
.wrap {
text-align: right;
}
.rtl #adminmenuback,
.rtl #adminmenuwrap {
border-width: 0 0 0 1px;
.wrap h2 {
margin: 5px 0 0 4px;
}
#plupload-upload-ui {
zoom: 1;
#footer {
padding-left:50px;
}
.post-com-count-wrapper a.post-com-count {
float: none;
}
#adminmenu .wp-submenu ul {
width: 99%;
}
#adminmenu .wp-submenu .wp-submenu .wp-submenu,
#adminmenu .wp-menu-open .wp-submenu .wp-submenu {
border: 1px solid #dfdfdf;
}
.folded #adminmenu .wp-submenu {
right: 30px;
}
#wpcontent #adminmenu .wp-submenu li.wp-submenu-head {
padding: 3px 10px 4px 4px;
}
div.quicktags-toolbar input {
min-width: 0;
}
.inline-edit-row fieldset label span.title {
float: right;
}
.inline-edit-row fieldset label span.input-text-wrap {
margin-right: 0;
}
p.search-box {
float: left;
#footer p {
background:none;
height:auto;
padding: 5px 5px 0;
}
#bh {
margin: 7px 10px 0 0;
float: left;
padding-left: 15px;
padding-right: 0px;
}
/* write post */
#poststuff .togbox {
margin-right:-16px;
}
#poststuff h3 {
padding-right:20px;
}
.postbox div.inside,
.wp-editor-wrap .wp-editor-container .wp-editor-area,
#nav-menu-theme-locations .howto select {
width: 97.5%;
p#widget-search, p#post-search {
padding-left: 15px;
}
/* without this dashboard widgets appear in one column for some screen widths */
div#dashboard-widgets {
padding-right: 0;
padding-left: 1px;
.widefat th {
padding-bottom: 8px;
}
.widefat th input {
margin: 0 5px 0 0;
/* template editor */
#template textarea {
float:left;
}
/* ---------- add by navid */
#TB_window {
width: 670px;
position: absolute;
top: 50%;
left: 50%;
margin-right: 335px !important;
}
/* Editor */
#dashboard_plugins {
.mceToolbar {
direction: ltr;
}
#dashboard_plugins h3.hndle {
direction: rtl;
}
#dashboard_incoming_links ul li,
#dashboard_secondary ul li,
#dashboard_primary ul li,
p.row-actions {
width: 100%;
}
#post-status-info {
height: 25px;
}
p.submit { /* quick edit and reply in edit-comments.php */
height:22px;
}
.available-theme .action-links li {
padding-left: 7px;
margin-left: 7px;
}
form#widgets-filter { /* fix widget page */
position: static;
}
/* nav menus
.menu-max-depth-0 #menu-management { width: 460px; }
.menu-max-depth-1 #menu-management { width: 490px; }
.menu-max-depth-2 #menu-management { width: 520px; }
.menu-max-depth-3 #menu-management { width: 550px; }
.menu-max-depth-4 #menu-management { width: 580px; }
.menu-max-depth-5 #menu-management { width: 610px; }
.menu-max-depth-6 #menu-management { width: 640px; }
.menu-max-depth-7 #menu-management { width: 670px; }
.menu-max-depth-8 #menu-management { width: 700px; }
.menu-max-depth-9 #menu-management { width: 730px; }
.menu-max-depth-10 #menu-management { width: 760px; }
.menu-max-depth-11 #menu-management { width: 790px; }
*/
.menu-item-depth-0 { margin-left: 0px; }
.menu-item-depth-1 { margin-left: -30px; }
.menu-item-depth-2 { margin-left: -60px; }
.menu-item-depth-3 { margin-left: -90px; }
.menu-item-depth-4 { margin-left: -120px; }
.menu-item-depth-5 { margin-left: -150px; }
.menu-item-depth-6 { margin-left: -180px; }
.menu-item-depth-7 { margin-left: -210px; }
.menu-item-depth-8 { margin-left: -240px; }
.menu-item-depth-9 { margin-left: -270px; }
.menu-item-depth-10 { margin-left: -300px; }
.menu-item-depth-11 { margin-left: -330px; }
/*
#menu-to-edit li dl {
padding: 0 !important;
margin: 0 !important;
}
.ui-sortable-helper .menu-item-transport {
margin-top: 13px;
}
.ui-sortable-helper .menu-item-transport .menu-item-transport {
margin-top: 0;
}
*/
#menu-management,
.nav-menus-php .menu-edit,
#nav-menu-header .submitbox {
zoom: 1;
}
.nav-menus-php label {
max-width: 90% !important;
}
p.button-controls,
.nav-menus-php .tabs-panel {
max-width: 90%;
}
.nav-menus-php .major-publishing-actions .publishing-action {
float: none;
}
#wpbody #nav-menu-header label {
float: none;
}
#nav-menu-header {
margin-top: -10px;
}
#nav-menu-footer {
margin-bottom: -20px;
}
#update-nav-menu .publishing-action {
max-width: 200px;
}
#nav-menus-frame #update-nav-menu .delete-action {
margin-top: -25px;
float: left;
}
#menu-to-edit li {
margin-top: -10px;
margin-bottom: -10px;
}
.sortable-placeholder {
margin-top: 0 !important;
margin-left: 0 !important;
margin-bottom: 13px !important;
padding: 0 !important;
}
.auto-add-pages {
clear: both;
float: none;
}
#nav-menus-frame .open-label span {
float: none;
display: inline-block;
}
#nav-menus-frame .delete-action {
float: none;
}
#title-wrap #title-prompt-text {
right: 0;
}
.screen-reader-text {
right: auto;
text-indent: -1000em;
text-align: left;
}

View File

@@ -1 +0,0 @@
body{direction:rtl;width:99.5%}.rtl #adminmenuback{left:auto;right:0;background-image:none}.rtl #adminmenuback,.rtl #adminmenuwrap{border-width:0 0 0 1px}#plupload-upload-ui{zoom:1}.post-com-count-wrapper a.post-com-count{float:none}#adminmenu .wp-submenu ul{width:99%}#adminmenu .wp-submenu .wp-submenu .wp-submenu,#adminmenu .wp-menu-open .wp-submenu .wp-submenu{border:1px solid #dfdfdf}.folded #adminmenu .wp-submenu{right:30px}#wpcontent #adminmenu .wp-submenu li.wp-submenu-head{padding:3px 10px 4px 4px}div.quicktags-toolbar input{min-width:0}.inline-edit-row fieldset label span.title{float:right}.inline-edit-row fieldset label span.input-text-wrap{margin-right:0}p.search-box{float:left}#bh{margin:7px 10px 0 0;float:left}.postbox div.inside,.wp-editor-wrap .wp-editor-container .wp-editor-area,#nav-menu-theme-locations .howto select{width:97.5%}div#dashboard-widgets{padding-right:0;padding-left:1px}.widefat th input{margin:0 5px 0 0}#TB_window{width:670px;position:absolute;top:50%;left:50%;margin-right:335px!important}#dashboard_plugins{direction:ltr}#dashboard_plugins h3.hndle{direction:rtl}#dashboard_incoming_links ul li,#dashboard_secondary ul li,#dashboard_primary ul li,p.row-actions{width:100%}#post-status-info{height:25px}p.submit{height:22px}.available-theme .action-links li{padding-left:7px;margin-left:7px}form#widgets-filter{position:static}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:-30px}.menu-item-depth-2{margin-left:-60px}.menu-item-depth-3{margin-left:-90px}.menu-item-depth-4{margin-left:-120px}.menu-item-depth-5{margin-left:-150px}.menu-item-depth-6{margin-left:-180px}.menu-item-depth-7{margin-left:-210px}.menu-item-depth-8{margin-left:-240px}.menu-item-depth-9{margin-left:-270px}.menu-item-depth-10{margin-left:-300px}.menu-item-depth-11{margin-left:-330px}#menu-management,.nav-menus-php .menu-edit,#nav-menu-header .submitbox{zoom:1}.nav-menus-php label{max-width:90%!important}p.button-controls,.nav-menus-php .tabs-panel{max-width:90%}.nav-menus-php .major-publishing-actions .publishing-action{float:none}#wpbody #nav-menu-header label{float:none}#nav-menu-header{margin-top:-10px}#nav-menu-footer{margin-bottom:-20px}#update-nav-menu .publishing-action{max-width:200px}#nav-menus-frame #update-nav-menu .delete-action{margin-top:-25px;float:left}#menu-to-edit li{margin-top:-10px;margin-bottom:-10px}.sortable-placeholder{margin-top:0!important;margin-left:0!important;margin-bottom:13px!important;padding:0!important}.auto-add-pages{clear:both;float:none}#nav-menus-frame .open-label span{float:none;display:inline-block}#nav-menus-frame .delete-action{float:none}#title-wrap #title-prompt-text{right:0}.screen-reader-text{right:auto;text-indent:-1000em}

View File

@@ -1,331 +1,49 @@
/* Fixes for IE 7 bugs */
/* Fixes for IE bugs */
#dashboard-widgets form .input-text-wrap input,
#dashboard-widgets form .textarea-wrap textarea {
width: 99%;
#poststuff .postbox h3 {
padding-left: 23px;
}
#dashboard-widgets form #title {
width: 98%;
#submenu li a.current {
background:none;
border:none;
}
.wp-editor-wrap .wp-editor-container textarea.wp-editor-area {
width: 97%;
* html body.minwidth {
_width: expression(document.documentElement.clientWidth < 810 ? "808px" : "99.9%");
}
#post-body.columns-2 #postbox-container-1 {
padding-left: 19px;
* html #wpbody {
_width: expression(document.documentElement.clientWidth > 982 ? "980px" : "99.9%");
}
.welcome-panel .wp-badge {
position: absolute;
}
.welcome-panel .welcome-panel-column:first-child {
width: 35%;
}
#wp-fullscreen-title {
width: 97%;
}
#wp_mce_fullscreen_ifr {
background-color: #f9f9f9;
}
#wp-fullscreen-tagline {
color: #888;
font-size: 14px;
}
#adminmenushadow {
display: none;
}
#adminmenuback {
left: 0;
background-image: none;
}
#adminmenuwrap {
position: static;
}
#adminmenu {
position: relative;
}
#adminmenu,
#adminmenu a {
cursor: pointer;
}
#adminmenu li.wp-menu-separator,
#adminmenu li.wp-menu-separator-last {
font-size: 1px;
line-height: 1;
}
#adminmenu a.menu-top {
border-bottom: 0 none;
border-top: 1px solid #ddd;
}
#adminmenu .separator {
font-size: 1px;
line-height: 1px;
}
#adminmenu .wp-submenu ul {
margin: 0;
}
.folded #adminmenu .wp-submenu {
border-top-color: transparent;
}
#adminmenu .wp-submenu .wp-submenu-head {
border-top-color: #ddd;
}
.folded #adminmenu .wp-submenu ul {
margin-left: 5px;
}
#adminmenu li.menu-top {
margin-bottom: -2px;
}
#adminmenu .wp-menu-arrow {
display: none !important;
}
.js.folded #adminmenu li.menu-top {
display: block;
zoom: 100%;
}
ul#adminmenu {
z-index: 99;
}
#adminmenu li.menu-top a.menu-top {
min-width: auto;
width: auto;
}
#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu {
font-style: normal;
}
#wpcontent #adminmenu .wp-submenu li {
padding: 0;
}
#collapse-menu {
line-height: 23px;
}
#wpadminbar .ab-comments-icon {
padding-top: 7px;
}
table.fixed th,
table.fixed td {
border-top: 1px solid #ddd;
}
#wpbody-content input.button,
#wpbody-content input.button-primary,
#wpbody-content input.button-secondary {
overflow: visible;
}
#dashboard-widgets #dashboard_quick_press form p.submit #publish {
float: none;
}
#dashboard-widgets h3 a {
height: 14px;
line-height: 14px;
}
#dashboard_browser_nag {
color: #fff;
}
#dashboard_browser_nag .browser-icon {
position: relative;
}
.tablenav-pages .current-page {
vertical-align: middle;
}
#wpbody-content .postbox {
border: 1px solid #dfdfdf;
}
#wpbody-content .postbox h3 {
margin-bottom: -1px;
}
.major-publishing-actions,
.wp-submenu,
.wp-submenu li,
#template,
#template div,
#editcat,
#addcat {
zoom: 100%;
}
.wp-menu-arrow {
height: 28px;
* html #poststuff .postarea, * html #poststuff #titlediv {
width: 95%;
margin-left: 3%;
}
.submitbox {
margin-top: 10px;
}
/* Inline Editor */
#wpbody-content .quick-edit-row-post .inline-edit-col-left {
width: 39%;
}
#wpbody-content .inline-edit-row-post .inline-edit-col-center {
width: 19%;
}
#wpbody-content .quick-edit-row-page .inline-edit-col-left {
width: 49%;
}
#wpbody-content .bulk-edit-row .inline-edit-col-left {
width: 29%;
}
.inline-edit-row p.submit {
zoom: 100%;
}
.inline-edit-row fieldset label span.title {
* html div.widget-liquid-left-holder, * html div.widget-liquid-right {
display: block;
float: left;
width: 5em;
position: relative;
}
.inline-edit-row fieldset label span.input-text-wrap {
margin-left: 0;
zoom: 100%;
}
#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input {
line-height: 130%;
}
#wpbody-content .inline-edit-row .input-text-wrap input {
width: 95%;
}
#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input {
width: 8em;
}
/* end Inline Editor */
#titlediv #title {
width: 98%;
}
.button,
input[type="reset"],
input[type="button"],
input[type="submit"] {
padding: 0 8px;
line-height: 20px;
height: auto;
}
.button.button-large,
input[type="reset"].button-large,
input[type="button"].button-large,
input[type="submit"].button-large {
padding: 0 10px;
line-height: 24px;
height: auto;
}
.button.button-small,
input[type="reset"].button-small,
input[type="button"].button-small,
input[type="submit"].button-small {
padding: 0 6px;
line-height: 16px;
height: auto;
}
a.button {
margin: 1px;
padding: 1px 9px 2px;
}
a.button.button-large {
padding: 1px 11px 2px;
}
a.button.button-small {
padding: 1px 7px 2px;
}
#screen-options-wrap {
overflow: hidden;
}
#the-comment-list .comment-item,
#post-status-info,
#wpwrap,
#wrap,
#postdivrich,
#postdiv,
#poststuff,
.metabox-holder,
#titlediv,
#post-body,
#editorcontainer,
.tablenav,
.widget-liquid-left,
.widget-liquid-right,
#widgets-left,
.widgets-sortables,
#dragHelper,
.widget .widget-top,
.widget-control-actions,
.tagchecklist,
#col-container,
#col-left,
#col-right,
.fileedit-sub {
#wpwrap, #wpcontent, #post, #wrap, #postdivrich, #postdiv, #poststuff, #titlediv, #post-body, #editorcontainer, .tablenav, .widget-control-list, li.widget-list-control-item, #dragHelper, li.widget-list-control-item h4, .widget-sortable, .widget-control-actions {
display: block;
zoom: 100%;
}
p.search-box {
position: static;
float: right;
margin: -3px 0 4px;
* html #editorcontainer {
padding: 0;
}
#widget-list .widget,
.feature-filter .feature-group li {
display: inline;
}
.feature-filter .feature-group li input {
vertical-align: middle;
}
#editorcontainer #content {
* html #editorcontainer #content {
position: relative;
overflow: auto;
padding: 6px;
margin: auto;
width: 98%;
}
@@ -334,7 +52,7 @@ form#template div {
width: 100%;
}
.wp-editor-container .quicktags-toolbar input {
#ed_toolbar input {
overflow: visible;
padding: 0 4px;
}
@@ -343,22 +61,12 @@ form#template div {
font-size: 1.6em;
}
#poststuff .inside #parent_id,
#poststuff .inside #page_template,
.inline-edit-row #post_parent,
.inline-edit-row select[name="page_template"] {
width: 250px;
}
#submitdiv input,
#submitdiv select,
#submitdiv a.button {
position: relative;
* html #poststuff h2 {
margin-left: 0;
}
#bh {
margin: 7px 10px 0 0;
float: right;
padding-right: 15px;
}
/* without this dashboard widgets appear in one column for some screen widths */
@@ -366,15 +74,27 @@ div#dashboard-widgets {
padding-right: 1px;
}
.tagchecklist span, .tagchecklist span a {
#tagchecklist {
display: block;
zoom: 100%;
}
#tagchecklist span, #tagchecklist span a {
display: inline-block;
display: block;
}
.tablenav .button-secondary,
.nav .button-secondary {
padding-top: 2px;
padding-bottom: 2px;
#tagchecklist span a {
margin: 4px 0 0 -9px;
}
#poststuff .togbox {
margin-left: -19px;
}
.tablenav .button-secondary, .nav .button-secondary {
padding: 0 1px;
vertical-align: middle;
}
.tablenav select {
@@ -384,26 +104,21 @@ div#dashboard-widgets {
margin-top: 2px;
}
.tablenav .actions select {
width: 155px;
.tablenav-pages .page-numbers {
display: inline-block;
}
.subsubsub li {
display: inline;
.tablenav-pages {
display: block;
margin-top: -3px;
}
a.post-state-format {
text-indent: 0;
line-height: 0;
font-size: 0;
#post-search .button, #widget-search .button {
padding: 1px;
}
table.ie-fixed {
table-layout: fixed;
}
.widefat tr,
.widefat th {
.widefat tr, .widefat th {
margin-bottom: 0;
border-spacing: 0;
}
@@ -412,211 +127,15 @@ table.ie-fixed {
margin: 0 0 0 5px;
}
.widefat thead .check-column,
.widefat tfoot .check-column {
padding-top: 6px;
.widefat .check-column {
padding: 6px 0 2px;
}
.widefat tbody th.check-column,
.media.widefat tbody th.check-column {
padding: 4px 0 0;
}
.widefat {
empty-cells: show;
border-collapse: collapse;
.widefat tbody th.check-column {
padding: 4px 0 22px;
}
.tablenav a.button-secondary {
display: inline-block;
padding: 2px 5px;
}
.inactive-sidebar .widgets-sortables {
padding-bottom: 8px;
}
#available-widgets .widget-holder {
padding-bottom: 65px;
}
#widgets-left .inactive {
padding-bottom: 10px;
}
.widget-liquid-right .widget,
.inactive-sidebar .widget {
position: relative;
}
.inactive-sidebar .widget {
display: block;
float: left;
}
#wpcontent .button-primary-disabled {
color: #9FD0D5;
background: #298CBA;
}
#the-comment-list .unapproved tr,
#the-comment-list .unapproved td {
background-color: #ffffe0;
}
.imgedit-submit {
width: 300px;
}
#nav-menus-frame,
#wpbody,
.menu li {
zoom: 100%;
}
#update-nav-menu #post-body {
overflow:hidden;
}
.menu li {
min-width: 100%;
}
.menu li.sortable-placeholder {
min-width: 400px;
}
.available-theme {
display: inline;
}
.available-theme ul {
margin: 0;
}
.available-theme .action-links li {
padding-right: 7px;
margin-right: 7px;
}
.about-wrap .three-col.about-updates .col-2 {
width: 15%;
}
.about-wrap .about-password-meter input {
width: 98%;
}
.revisions-tickmarks,
.revisions-tooltip {
display: none !important;
}
.revisions.pinned .revisions-controls {
position: relative;
}
/* IE6 leftovers */
* html .row-actions {
visibility: visible;
}
* html div.widget-liquid-left,
* html div.widget-liquid-right {
display: block;
position: relative;
}
* html #editorcontainer {
padding: 0;
}
* html #poststuff h2 {
margin-left: 0;
}
* html .stuffbox,
* html .stuffbox input,
* html .stuffbox textarea {
border: 1px solid #DFDFDF;
}
* html .feature-filter .feature-group li {
width: 145px;
}
* html div.widget-liquid-left {
width: 99%;
}
* html .widgets-sortables {
height: 50px;
}
* html a#content_resize {
right: -2px;
}
* html .widget-title h4 {
width: 205px;
}
* html #removing-widget .in-widget-title {
display: none;
}
* html .media-item .pinkynail {
height: 32px;
width: 40px;
}
* html .describe .field input.text,
* html .describe .field textarea {
width: 440px;
}
* html input {
border: 1px solid #dfdfdf;
}
* html .edit-box {
display: inline;
}
* html .postbox-container .meta-box-sortables {
height: 300px;
}
* html #wpbody-content #screen-options-link-wrap {
display: inline-block;
width: 150px;
text-align: center;
}
* html #wpbody-content #contextual-help-link-wrap {
display: inline-block;
width: 100px;
text-align: center;
}
* html #adminmenu {
margin-left: -80px;
}
* html .folded #adminmenu {
margin-left: -22px;
}
* html #wpcontent #adminmenu li.menu-top {
display: inline;
padding: 0;
margin: 0;
}
* html #wpfooter {
margin: 0;
}
* html #adminmenu div.wp-menu-image {
height: 29px;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,19 @@
body {
font-size: 11px;;
}
ul, ol {
padding: 5px 22px 5px 5px;
}
.form-table th {
text-align: right;
}
input {
padding: 1px
}
#logo {
text-align: left;
}
#admin_email {
direction: ltr;
text-align: left;
}

View File

@@ -1,104 +1,68 @@
html {
background: #f9f9f9;
}
html { background: #f1f1f1; }
body {
background: #fff;
color: #333;
font-family: sans-serif;
margin: 2em auto;
font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
margin: 2em auto 0 auto;
width: 700px;
padding: 1em 2em;
-webkit-border-radius: 3px;
border-radius: 3px;
border: 1px solid #dfdfdf;
max-width: 700px;
-webkit-border-radius: 12px;
font-size: 62.5%;
}
a {
color: #21759b;
text-decoration: none;
}
a { color: #2583ad; text-decoration: none; }
a:hover { color: #d54e21; }
a:hover {
color: #d54e21;
}
h1 {
border-bottom: 1px solid #dadada;
clear: both;
color: #666;
font: 24px Georgia, "Times New Roman", Times, serif;
margin: 30px 0 0 0;
padding: 0;
padding-bottom: 7px;
font-size: 18px;
margin-bottom: 0;
}
h2 {
font-size: 16px;
}
h2 { font-size: 16px; }
p, li, dd, dt {
p, li {
padding-bottom: 2px;
font-size: 14px;
line-height: 1.5;
font-size: 1.3em;
line-height: 1.8em;
}
code, .code {
font-size: 14px;
code {
font-size: 1.3em;
}
ul, ol, dl {
padding: 5px 5px 5px 22px;
ul, ol { padding: 5px 5px 5px 22px; }
#logo { margin: 6px 0 14px 0px; border-bottom: none;}
.step a, .step input { font-size: 2em; }
td input { font-size: 1.5em; }
.step, th { text-align: left; padding: 0; }
.submit input, .button, .button-secondary {
font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
padding: 6px;
border: none;
margin-left: 0;
font-size: 13px !important;
-moz-border-radius: 2px;
-khtml-border-radius: 2px;
-webkit-border-radius: 2px;
border-radius: 2px;
color: #246;
background: #e5e5e5;
}
a img {
border:0
.button-secondary {
background: #cee1ef;
}
abbr {
border: 0;
font-variant: normal;
}
#logo {
margin: 6px 0 14px 0;
border-bottom: none;
text-align:center
}
#logo a {
background-image: url('../images/wordpress-logo.png?ver=20120216');
background-size: 274px 63px;
background-position: top center;
background-repeat: no-repeat;
height: 67px;
text-indent: -9999px;
outline: none;
overflow: hidden;
display: block;
}
@media print,
(-o-min-device-pixel-ratio: 5/4),
(-webkit-min-device-pixel-ratio: 1.25),
(min-resolution: 120dpi) {
#logo a {
background-image: url('../images/wordpress-logo-2x.png?ver=20120412');
background-size: 274px 63px;
}
}
.step {
margin: 20px 0 15px;
}
.step, th {
text-align: left;
padding: 0;
}
.step .button-large {
font-size: 14px;
}
textarea {
border: 1px solid #dfdfdf;
-webkit-border-radius: 3px;
border-radius: 3px;
font-family: sans-serif;
width: 695px;
.submit input:hover, .button:hover, .button-secondary:hover {
color: #d54e21;
}
.form-table {
@@ -109,24 +73,26 @@ textarea {
.form-table td {
margin-bottom: 9px;
padding: 10px 20px 10px 0;
padding: 10px;
border-bottom: 8px solid #fff;
font-size: 14px;
vertical-align: top
}
.form-table th {
font-size: 14px;
font-size: 12px;
text-align: left;
padding: 16px 20px 10px 0;
padding: 12px 10px 10px 10px;
border-bottom: 8px solid #fff;
width: 140px;
width: 110px;
vertical-align: top;
}
.form-table tr {
background: #eaf3fa;
}
.form-table code {
line-height: 18px;
font-size: 14px;
font-size: 18px;
}
.form-table p {
@@ -134,38 +100,14 @@ textarea {
font-size: 11px;
}
.form-table input {
line-height: 20px;
font-size: 15px;
padding: 2px;
border: 1px #dfdfdf solid;
-webkit-border-radius: 3px;
border-radius: 3px;
font-family: sans-serif;
}
.form-table input[type=text],
.form-table input[type=password] {
width: 206px;
}
.form-table th p {
font-weight: normal;
}
.form-table.install-success td {
vertical-align: middle;
padding: 16px 20px 10px 0;
}
.form-table.install-success td p {
margin: 0;
font-size: 14px;
}
.form-table.install-success td code {
margin: 0;
font-size: 18px;
h1 {
border-bottom: 1px solid #dadada;
clear: both;
color: #666666;
font: 24px Georgia, "Times New Roman", Times, serif;
margin: 5px 0 0 -4px;
padding: 0;
padding-bottom: 7px;
}
#error-page {
@@ -174,90 +116,9 @@ textarea {
#error-page p {
font-size: 14px;
line-height: 18px;
margin: 25px 0 20px;
line-height: 1.6em;
}
#error-page code, .code {
font-family: Consolas, Monaco, monospace;
}
#pass-strength-result {
background-color: #eee;
border-color: #ddd !important;
border-style: solid;
border-width: 1px;
margin: 5px 5px 5px 0;
padding: 5px;
text-align: center;
width: 200px;
display: none;
}
#pass-strength-result.bad {
background-color: #ffb78c;
border-color: #ff853c !important;
}
#pass-strength-result.good {
background-color: #ffec8b;
border-color: #ffcc00 !important;
}
#pass-strength-result.short {
background-color: #ffa0a0;
border-color: #f04040 !important;
}
#pass-strength-result.strong {
background-color: #c3ff88;
border-color: #8dff1c !important;
}
.message {
border: 1px solid #c00;
-webkit-border-radius: 3px;
border-radius: 3px;
padding: 0.5em 0.7em;
margin: 5px 0 15px;
background-color: #ffebe8;
}
/* install-rtl */
body.rtl {
font-family: Tahoma, arial;
}
.rtl h1 {
font-family: arial;
margin: 5px -4px 0 0;
}
.rtl ul,
.rtl ol {
padding: 5px 22px 5px 5px;
}
.rtl .step,
.rtl th,
.rtl .form-table th {
text-align: right;
}
.rtl .submit input,
.rtl .button,
.rtl .button-secondary {
margin-right: 0;
}
.rtl #dbname,
.rtl #uname,
.rtl #pwd,
.rtl #dbhost,
.rtl #prefix,
.rtl #user_login,
.rtl #admin_email,
.rtl #pass1,
.rtl #pass2 {
direction: ltr;
}
#error-page code {
font-size: 1em;
}

View File

@@ -1 +0,0 @@
html{background:#f9f9f9}body{background:#fff;color:#333;font-family:sans-serif;margin:2em auto;padding:1em 2em;-webkit-border-radius:3px;border-radius:3px;border:1px solid #dfdfdf;max-width:700px}a{color:#21759b;text-decoration:none}a:hover{color:#d54e21}h1{border-bottom:1px solid #dadada;clear:both;color:#666;font:24px Georgia,"Times New Roman",Times,serif;margin:30px 0 0;padding:0;padding-bottom:7px}h2{font-size:16px}p,li,dd,dt{padding-bottom:2px;font-size:14px;line-height:1.5}code,.code{font-size:14px}ul,ol,dl{padding:5px 5px 5px 22px}a img{border:0}abbr{border:0;font-variant:normal}#logo{margin:6px 0 14px;border-bottom:0;text-align:center}#logo a{background-image:url(../images/wordpress-logo.png?ver=20120216);background-size:274px 63px;background-position:top center;background-repeat:no-repeat;height:67px;text-indent:-9999px;outline:0;overflow:hidden;display:block}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#logo a{background-image:url(../images/wordpress-logo-2x.png?ver=20120412);background-size:274px 63px}}.step{margin:20px 0 15px}.step,th{text-align:left;padding:0}.step .button-large{font-size:14px}textarea{border:1px solid #dfdfdf;-webkit-border-radius:3px;border-radius:3px;font-family:sans-serif;width:695px}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 20px 10px 0;border-bottom:8px solid #fff;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:left;padding:16px 20px 10px 0;border-bottom:8px solid #fff;width:140px;vertical-align:top}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:2px;border:1px #dfdfdf solid;-webkit-border-radius:3px;border-radius:3px;font-family:sans-serif}.form-table input[type=text],.form-table input[type=password]{width:206px}.form-table th p{font-weight:400}.form-table.install-success td{vertical-align:middle;padding:16px 20px 10px 0}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}#pass-strength-result{background-color:#eee;border-color:#ddd!important;border-style:solid;border-width:1px;margin:5px 5px 5px 0;padding:5px;text-align:center;width:200px;display:none}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}.message{border:1px solid #c00;-webkit-border-radius:3px;border-radius:3px;padding:.5em .7em;margin:5px 0 15px;background-color:#ffebe8}body.rtl{font-family:Tahoma,arial}.rtl h1{font-family:arial;margin:5px -4px 0 0}.rtl ul,.rtl ol{padding:5px 22px 5px 5px}.rtl .step,.rtl th,.rtl .form-table th{text-align:right}.rtl .submit input,.rtl .button,.rtl .button-secondary{margin-right:0}.rtl #dbname,.rtl #uname,.rtl #pwd,.rtl #dbhost,.rtl #prefix,.rtl #user_login,.rtl #admin_email,.rtl #pass1,.rtl #pass2{direction:ltr}

View File

@@ -0,0 +1,32 @@
body {
font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
direction: rtl;
}
form {
margin-left:0;
margin-right:8px;
}
form .forgetmenot {
float:right;
}
form .submit {
float:left;
}
#login_error, .message {
margin:0 8px 16px 0;
}
#nav {
margin: 0 8px 0 0;
}
#user_pass, #user_login, #user_email {
margin-right:0;
margin-left: 6px;
direction:ltr;
}
h1 a {
text-decoration:none;
}
#backtoblog a {
left: auto;
right: 15px;
}

74
wp-admin/css/login.css Normal file
View File

@@ -0,0 +1,74 @@
* { margin: 0; padding: 0; }
body {
border-top-width: 30px;
border-top-style: solid;
font: 12px "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
}
form {
margin-left: 8px;
padding: 16px 16px 40px 16px;
font-weight: bold;
-moz-border-radius: 5px;
-khtml-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
form .forgetmenot { font-weight: normal; float: left; margin-bottom: 0;}
#login form .submit input {
font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
padding: 3px 5px;
border: none;
font-size: 13px;
border-width: 1px;
border-style: solid;
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
cursor: default;
text-decoration: none;
margin-top: -6px;
}
form .submit { float: right; }
form p { margin-bottom: 24px; }
h1 a {
background: url(../images/logo-login.gif) no-repeat;
width: 292px;
height: 66px;
text-indent: -9999px;
overflow: hidden;
padding-bottom: 15px;
display: block;
}
#backtoblog a {
position: absolute;
top: 7px;
left: 15px;
text-decoration: none;
}
#login { width: 292px; margin: 7em auto; }
#login_error, .message {
margin: 0 0 16px 8px;
border-width: 1px;
border-style: solid;
padding: 12px;
}
#nav { margin: 0 0 0 8px; padding: 16px; }
#user_pass, #user_login, #user_email {
font-size: 20px;
width: 97%;
padding: 3px;
margin-right: 6px;
}

View File

@@ -1,71 +1,21 @@
body#media-upload ul#sidemenu {
ul#sidemenu {
left: auto;
right: 0;
}
#search-filter {
text-align: left;
}
/* specific to the image upload form */
.align .field label {
padding: 0 23px 0 0;
margin: 0 3px 0 1em;
display: block;
float: right;
padding: 0 25px 0 0;
margin: 5px 3px 5px 5px;
}
.image-align-none-label, .image-align-left-label, .image-align-center-label, .image-align-right-label {
.align .field input {
display: block;
float: right;
margin: 5px 15px 5px 0;
}
.image-align-none-label,
.image-align-left-label,
.image-align-center-label,
.image-align-right-label {
background-position: center right;
}
tr.image-size label {
margin: 0 5px 0 0;
}
.file-error {
margin: 0 50px 5px 0;
}
.progress {
left: auto;
right: 0;
}
.describe td {
padding: 0 0 0 5px;
}
/* Specific to Uploader */
#media-upload .describe th.label {
text-align: right;
}
.menu_order {
float: left;
}
.media-upload-form label.form-help, td.help, #media-upload p.help, #media-upload label.help {
font-family: Tahoma, Arial;
}
#gallery-settings #basic th.label {
padding: 5px 0 5px 5px;
}
#gallery-settings .title, h3.media-title {
font-family: Tahoma, Arial;
}
#gallery-settings .describe th.label {
text-align: right;
}
#gallery-settings label,
#gallery-settings legend {
margin-right: 0;
margin-left: 15px;
}
#gallery-settings .align .field label {
margin: 0 3px 0 1em;
}
#sort-buttons {
margin: 3px 0 -8px 25px;
text-align: left;
}
#sort-buttons #asc,
#sort-buttons #showall {
padding-left: 0;
padding-right: 5px;
}
#sort-buttons span {
margin-right: 0;
margin-left: 25px;
}
}

View File

@@ -1 +0,0 @@
body#media-upload ul#sidemenu{left:auto;right:0}#search-filter{text-align:left}.align .field label{padding:0 23px 0 0;margin:0 3px 0 1em}.image-align-none-label,.image-align-left-label,.image-align-center-label,.image-align-right-label{background-position:center right}tr.image-size label{margin:0 5px 0 0}.file-error{margin:0 50px 5px 0}.progress{left:auto;right:0}.describe td{padding:0 0 0 5px}#media-upload .describe th.label{text-align:right}.menu_order{float:left}.media-upload-form label.form-help,td.help,#media-upload p.help,#media-upload label.help{font-family:Tahoma,Arial}#gallery-settings #basic th.label{padding:5px 0 5px 5px}#gallery-settings .title,h3.media-title{font-family:Tahoma,Arial}#gallery-settings .describe th.label{text-align:right}#gallery-settings label,#gallery-settings legend{margin-right:0;margin-left:15px}#gallery-settings .align .field label{margin:0 3px 0 1em}#sort-buttons{margin:3px 0 -8px 25px;text-align:left}#sort-buttons #asc,#sort-buttons #showall{padding-left:0;padding-right:5px}#sort-buttons span{margin-right:0;margin-left:25px}

View File

@@ -1,21 +1,24 @@
/* Styles for the media library iframe (not used on the Library screen) */
div#media-upload-header {
margin: 0;
padding: 5px 5px 0;
padding: 0 5px;
font-weight: bold;
position: relative;
border-bottom-width: 1px;
border-bottom-style: solid;
height: 2.5em;
}
body#media-upload ul#sidemenu {
font-weight: normal;
margin: 0 5px;
left: 0;
position: absolute;
left: 0px;
bottom: -1px;
float: none;
overflow: hidden;
}
div#media-upload-error {
margin: 1em;
font-weight: bold;
}
form {
@@ -26,12 +29,16 @@ form {
text-align: right;
}
th {
position: relative;
.media-upload-form label, .media-upload-form legend {
display:block;
font-weight: bold;
margin-bottom: 0.5em;
margin: 0 0 0.5em 0;
}
th { position: relative; }
.media-upload-form label.form-help, td.help {
font-family: sans-serif;
font-style: italic;
font-weight: normal;
}
@@ -50,7 +57,11 @@ th {
}
/* specific to the image upload form */
.align .field label {
display: inline;
padding: 0 0 0 28px;
margin: 0 1em 0 0;
}
.image-align-none-label {
background: url(../images/align-none.png) no-repeat center left;
}
@@ -67,19 +78,54 @@ th {
background: url(../images/align-right.png) no-repeat center left;
}
tr.image-size td {
width: 460px;
#flash-upload-ui, .insert-gallery {
display: none;
}
tr.image-size div.image-size-item {
margin: 0 0 5px;
tr.image-size label {
display: inline;
margin: 0 1em 0 0;
}
.pinkynail {
max-width: 40px;
max-height: 40px;
}
#library-form .progress,
#gallery-form .progress,
.insert-gallery,
.describe.startopen,
.describe.startclosed {
.filename.original {
float: left;
}
.crunching {
display: block;
line-height: 32px;
text-align: right;
margin-right: 5px;
}
button.dismiss {
position: absolute;
top: 5px;
right: 5px;
z-index: 4;
}
.file-error {
margin: 0 0 5px 50px;
font-weight: bold;
}
.progress {
position: absolute;
top: 0px;
left: 0px;
width: 623px;
height: 36px;
}
.bar {
width: 0px;
height: 100%;
border-right-width: 3px;
border-right-style: solid;
}
#library-form .progress, #gallery-form .progress {
display: none;
}
@@ -87,267 +133,110 @@ tr.image-size div.image-size-item {
max-width: 128px;
max-height: 128px;
}
.media-item .pinkynail {
float: left;
margin: 2px;
height: 32px;
max-width: 40px;
}
thead.media-item-info tr {
background-color: transparent;
}
thead.media-item-info th, thead.media-item-info td {
border: none;
margin: 0;
}
.form-table thead.media-item-info {
border: 8px solid #fff;
}
.describe.startopen, .describe.startclosed {
display: none;
}
abbr.required {
text-decoration: none;
border: none;
}
.describe label {
display: inline;
}
.describe td.error {
padding: 2px 8px;
.describe td {
vertical-align: middle;
}
.describe td.A1 {
width: 132px;
}
.describe input[type="text"],
.describe textarea {
.describe input[type="text"], .describe textarea {
width: 460px;
border-width: 1px;
border-style: solid;
}
.describe-toggle-on, .describe-toggle-off {
display: block;
line-height: 36px;
float: right;
margin-right: 20px;
}
.describe-toggle-off {
display: none;
}
.clickmask {
}
.hidden {
height: 0px;
width: 0px;
overflow: hidden;
border: none;
}
/* Specific to Uploader */
#media-upload p.ml-submit {
padding: 1em 0;
#media-upload .media-upload-form p {
margin: 0 1em 1em 0;
}
#media-upload p.help,
#media-upload label.help {
font-family: sans-serif;
#media-upload p.help {
font-style: italic;
font-weight: normal;
}
#media-upload .ui-sortable .media-item {
cursor: move;
#media-upload tr.image-size td.field {
text-align: center;
}
#media-upload #media-items {
border-width: 1px;
border-style: solid;
border-bottom: none;
width: 623px;
}
#media-upload .media-item {
position: relative;
border-bottom-width: 1px;
border-bottom-style: solid;
min-height: 36px;
width: 100%;
}
.filename {
line-height: 36px;
margin-left: 10px;
float: left;
}
#media-upload .describe {
border-top-width: 1px;
border-top-style: solid;
padding: 5px;
width: 100%;
clear: both;
}
#media-upload .describe th.label {
padding-top: .5em;
text-align: left;
}
#media-upload tr.align td.field {
text-align: center;
}
#media-upload tr.image-size {
margin-bottom: 1em;
height: 3em;
}
#media-upload #filter {
width: 623px;
}
#media-upload #filter .subsubsub {
margin: 8px 0;
}
#filter .tablenav select {
border-style: solid;
border-width: 1px;
padding: 2px;
vertical-align: top;
width: auto;
}
#media-upload .del-attachment {
display: none;
margin: 5px 0;
}
.menu_order {
float: right;
font-size: 11px;
margin: 10px 10px 0;
}
.menu_order_input {
border: 1px solid #ddd;
font-size: 10px;
padding: 1px;
width: 23px;
}
.ui-sortable-helper {
background-color: #fff;
border: 1px solid #aaa;
opacity: 0.6;
filter: alpha(opacity=60);
}
#media-upload th.order-head {
width: 20%;
text-align: center;
}
#media-upload th.actions-head {
width: 25%;
text-align: center;
}
#media-upload a.wp-post-thumbnail {
margin: 0 20px;
}
#media-upload .widefat {
width: 626px;
border-style: solid solid none;
}
.sorthelper {
height: 37px;
width: 623px;
display: block;
}
#gallery-settings th.label {
width: 160px;
}
#gallery-settings #basic th.label {
padding: 5px 5px 5px 0;
}
#gallery-settings .title {
clear: both;
padding: 0 0 3px;
font-size: 1.6em;
border-bottom: 1px solid #DADADA;
}
h3.media-title {
font-size: 1.6em;
}
h4.media-sub-title {
border-bottom: 1px solid #DADADA;
font-size: 1.3em;
margin: 12px;
padding: 0 0 3px;
}
#gallery-settings .title,
h3.media-title,
h4.media-sub-title {
font-family: Georgia,"Times New Roman",Times,serif;
font-weight: normal;
color: #5A5A5A;
}
#gallery-settings .describe td {
vertical-align: middle;
height: 3em;
}
#gallery-settings .describe th.label {
padding-top: .5em;
text-align: left;
}
#gallery-settings .describe {
padding: 5px;
width: 615px;
clear: both;
cursor: default;
}
#gallery-settings .describe select {
width: 15em;
}
#gallery-settings .describe select option,
#gallery-settings .describe td {
padding: 0;
}
#gallery-settings label,
#gallery-settings legend {
font-size: 13px;
color: #464646;
margin-right: 15px;
}
#gallery-settings .align .field label {
margin: 0 1em 0 3px;
}
#gallery-settings p.ml-submit {
border-top: 1px solid #dfdfdf;
}
#gallery-settings select#columns {
width: 6em;
}
#sort-buttons {
font-size: 0.8em;
margin: 3px 25px -8px 0;
text-align: right;
max-width: 625px;
}
#sort-buttons a {
text-decoration: none;
}
#sort-buttons #asc,
#sort-buttons #showall {
padding-left: 5px;
}
#sort-buttons span {
margin-right: 25px;
}
p.media-types {
margin: 1em;
}
tr.not-image {
display: none;
}
table.not-image tr.not-image {
display: table-row;
}
table.not-image tr.image-only {
display: none;
}
/**
* HiDPI Displays
*/
@media print,
(-o-min-device-pixel-ratio: 5/4),
(-webkit-min-device-pixel-ratio: 1.25),
(min-resolution: 120dpi) {
.image-align-none-label {
background-image: url("../images/align-none-2x.png?ver=20120916");
background-size: 21px 15px;
}
.image-align-left-label {
background-image: url("../images/align-left-2x.png?ver=20120916");
background-size: 22px 15px;
}
.image-align-center-label {
background-image: url("../images/align-center-2x.png?ver=20120916");
background-size: 21px 15px;
}
.image-align-right-label {
background-image: url("../images/align-right-2x.png?ver=20120916");
background-size: 22px 15px;
}
}

View File

@@ -1 +0,0 @@
div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:700;position:relative;border-bottom-width:1px;border-bottom-style:solid}body#media-upload ul#sidemenu{font-weight:400;margin:0 5px;left:0;bottom:-1px;float:none;overflow:hidden}form{margin:1em}#search-filter{text-align:right}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:400}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:0;text-align:justify;margin:0 0 1em;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center left}.image-align-left-label{background:url(../images/align-left.png) no-repeat center left}.image-align-center-label{background:url(../images/align-center.png) no-repeat center left}.image-align-right-label{background:url(../images/align-right.png) no-repeat center left}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#library-form .progress,#gallery-form .progress,.insert-gallery,.describe.startopen,.describe.startclosed{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required{text-decoration:none;border:0}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type=text],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload p.help,#media-upload label.help{font-family:sans-serif;font-style:italic;font-weight:400}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:right;font-size:11px;margin:10px 10px 0}.menu_order_input{border:1px solid #ddd;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #aaa;opacity:.6;filter:alpha(opacity=60)}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-upload .widefat{width:626px;border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 5px 5px 0}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #DADADA}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #DADADA;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:400;color:#5A5A5A}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:left}#gallery-settings .describe{padding:5px;width:615px;clear:both;cursor:default}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#464646;margin-right:15px}#gallery-settings .align .field label{margin:0 1em 0 3px}#gallery-settings p.ml-submit{border-top:1px solid #dfdfdf}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 25px -8px 0;text-align:right;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-left:5px}#sort-buttons span{margin-right:25px}p.media-types{margin:1em}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.image-align-none-label{background-image:url(../images/align-none-2x.png?ver=20120916);background-size:21px 15px}.image-align-left-label{background-image:url(../images/align-left-2x.png?ver=20120916);background-size:22px 15px}.image-align-center-label{background-image:url(../images/align-center-2x.png?ver=20120916);background-size:21px 15px}.image-align-right-label{background-image:url(../images/align-right-2x.png?ver=20120916);background-size:22px 15px}}

View File

@@ -0,0 +1,11 @@
#templateside {
float:left;
}
#themeselector {
padding-right:0;
padding-left:5px;
}
div.tablenav {
margin-left:210px;
margin-right:0;
}

View File

@@ -0,0 +1,66 @@
#template textarea {
font-family: 'Courier New', Courier, monospace;
font-size: 12px;
width: 97%;
}
#template p {
width: 97%;
}
#templateside {
float: right;
width: 190px;
margin-top:-3.4em;
}
#templateside h3, #postcustomstuff p.submit {
margin: 0;
}
h3#bordertitle {
margin-bottom: 10px;
}
#templateside h4 {
margin-bottom: 0px;
}
#templateside ol, #templateside ul {
list-style: none;
margin: .5em;
padding: 0;
}
#templateside ol li, #templateside ul li {
margin: 1px 0px;
}
#themeselector {
padding-right: 5px;
float: right;
position: relative;
bottom: 25px;
}
#themeselector select {
margin: 0;
padding: 0;
}
.nonessential {
font-size: small;
}
.highlight {
padding: 1px;
}
div.bordertitle h2 {
border: none;
padding-bottom: 0px;
}
div.tablenav {
margin-right: 210px;
}

View File

@@ -0,0 +1,12 @@
html {
direction: ltr;
}
#uploadoptions, table {
direction: rtl;
}
td {
padding: 1px 6px 0;
}
.submit {
text-align: left;
}

View File

@@ -0,0 +1,50 @@
div.widget-liquid-left-holder {
clear:right;
float:right;
margin-right:0;
margin-left:-310px;
}
div.widget-liquid-left {
margin-right:0;
margin-left:310px;
}
div.widget-liquid-right {
clear:left;
float:left;
}
p#widget-search {
left:0;
right:auto
}
ul#widget-list li.widget-list-item h4.widget-title {
float:right;
text-align:right;
}
ul#widget-list li.widget-list-item div.widget-description {
margin:0 200px 0 0;
padding:0 4em 0 0;
}
.widget-control-save, .widget-control-remove {
float:right;
margin-right:0;
margin-left:8px;
}
h4.widget-title a {
right:auto;
left:1em;
}
li.widget-list-control-item h4.widget-title a, #dragHelper li.widget-list-control-item h4.widget-title a, #draghelper li.widget-list-control-item h4.widget-title a:visited {
right:auto;
left:1em;
}
li.widget-list-control-item div.widget-control {
padding:0 0 0 10px;
}
ul.widget-control-list div.widget-control-actions {
margin-right:0;
margin-left:-10px;
}
ul.widget-control-list .widget-title {
text-align:right;
}

194
wp-admin/css/widgets.css Normal file
View File

@@ -0,0 +1,194 @@
/* 2 column liquid layout */
div.widget-liquid-left-holder {
float: left;
clear: left;
width: 100%;
margin-right: -310px;
}
div.widget-liquid-left {
margin-right: 320px;
}
div.widget-liquid-right {
float: right;
clear: right;
width: 300px;
position: relative;
}
/* pasitioning etc. */
form#widgets-filter {
position: relative;
}
div#available-widgets-filter {
border-bottom-width: 1px;
border-bottom-style: solid;
}
p#widget-search {
position: absolute;
right: 0;
top: 0;
margin: 0;
}
ul#widget-list {
list-style: none;
margin: 0;
padding: 0;
}
ul#widget-list li.widget-list-item {
padding: .7em 0.9em;
margin: 0;
border-bottom-width: 1px;
border-bottom-style: solid;
background-color: transparent;
line-height: 1;
}
ul#widget-list li.widget-list-item h4.widget-title {
position: relative;
margin: 0;
padding: .5em 1em;
width: 200px;
float: left;
font-size: 13px;
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;;
}
#dragHelper h4.widget-title {
padding: .5em 1em;
margin: 0;
}
ul#widget-list li.widget-list-item div.widget-description {
display: block;
margin: 0 0 0 200px;
padding: 0 0 0 4em;
font-size: 11px;
}
ul#widget-list li.widget-list-item ul.widget-control-info {
display: none;
}
div#sidebar-info {
padding: 0 1em;
margin-bottom: 1em;
font-size: 11px;
}
ul.widget-control-list {
list-style: none;
margin: 0;
padding: 0 1em;
}
ul.widget-control-list li {
position: relative;
}
div#current-widgets p.submit {
padding: 1em;
}
li.widget-list-control-item {
margin: 0 0 1em;
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
}
li.widget-list-control-item h4, #dragHelper li.widget-list-control-item h4, li.widget-sortable h4 {
margin: 0;
padding: 0.4em 2.5em 0.4em 0.8em;
cursor: move;
font-size: 13px;
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
}
.widget-control-save, .widget-control-remove {
padding: 3px 5px;
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
margin-right: 8px;
float: left;
text-decoration: none;
}
h4.widget-title a {
position: absolute;
right: 1em;
text-decoration: underline;
border-bottom: none;
}
li.widget-list-control-item h4.widget-title a,
#dragHelper li.widget-list-control-item h4.widget-title a,
#draghelper li.widget-list-control-item h4.widget-title a:visited {
right: 1em;
}
li.widget-list-control-item h4.widget-title a:hover {
text-decoration: none;
border-bottom: none;
}
li.widget-list-control-item div.widget-control {
display: none;
margin: 1em;
padding: 0 10px 0 7px; /* Correction for padding, margin, border of inputs */
font-size: 11px;
}
li.widget-list-control-item div.widget-control p {
margin: 0 0 1em;
padding: 0;
}
ul.widget-control-list div.widget-control-actions {
margin-right: -10px; /* Correction for padding, margin, border of inputs */
margin-left: -6px;
border-top-width: 1px;
border-top-style: solid;
padding: 0.5em 0 0.8em;
}
ul.widget-control-list .widget-title {
}
.widget-control-edit {
font-size: 10px;
font-weight: normal;
}
div#current-widgets {
padding-top: 1em;
border-width: 1px;
border-style: solid none none;
}
#widget-controls .widefat {
width: 92%;
padding: 3px;
}
#widget-controls select.widefat {
width: auto;
display: block;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,428 +0,0 @@
<?php
/**
* The custom background script.
*
* @package WordPress
* @subpackage Administration
*/
/**
* The custom background class.
*
* @since 3.0.0
* @package WordPress
* @subpackage Administration
*/
class Custom_Background {
/**
* Callback for administration header.
*
* @var callback
* @since 3.0.0
* @access private
*/
var $admin_header_callback;
/**
* Callback for header div.
*
* @var callback
* @since 3.0.0
* @access private
*/
var $admin_image_div_callback;
/**
* Holds the page menu hook.
*
* @var string
* @since 3.0.0
* @access private
*/
var $page = '';
/**
* Constructor - Register administration header callback.
*
* @since 3.0.0
* @param callback $admin_header_callback
* @param callback $admin_image_div_callback Optional custom image div output callback.
* @return Custom_Background
*/
function __construct($admin_header_callback = '', $admin_image_div_callback = '') {
$this->admin_header_callback = $admin_header_callback;
$this->admin_image_div_callback = $admin_image_div_callback;
add_action( 'admin_menu', array( $this, 'init' ) );
add_action( 'wp_ajax_set-background-image', array( $this, 'wp_set_background_image' ) );
}
/**
* Set up the hooks for the Custom Background admin page.
*
* @since 3.0.0
*/
function init() {
if ( ! current_user_can('edit_theme_options') )
return;
$this->page = $page = add_theme_page(__('Background'), __('Background'), 'edit_theme_options', 'custom-background', array($this, 'admin_page'));
add_action("load-$page", array($this, 'admin_load'));
add_action("load-$page", array($this, 'take_action'), 49);
add_action("load-$page", array($this, 'handle_upload'), 49);
if ( $this->admin_header_callback )
add_action("admin_head-$page", $this->admin_header_callback, 51);
}
/**
* Set up the enqueue for the CSS & JavaScript files.
*
* @since 3.0.0
*/
function admin_load() {
get_current_screen()->add_help_tab( array(
'id' => 'overview',
'title' => __('Overview'),
'content' =>
'<p>' . __( 'You can customize the look of your site without touching any of your theme&#8217;s code by using a custom background. Your background can be an image or a color.' ) . '</p>' .
'<p>' . __( 'To use a background image, simply upload it or choose an image that has already been uploaded to your Media Library by clicking the &#8220;Choose Image&#8221; button. You can display a single instance of your image, or tile it to fill the screen. You can have your background fixed in place, so your site content moves on top of it, or you can have it scroll with your site.' ) . '</p>' .
'<p>' . __( 'You can also choose a background color by clicking the Select Color button and either typing in a legitimate HTML hex value, e.g. &#8220;#ff0000&#8221; for red, or by choosing a color using the color picker.' ) . '</p>' .
'<p>' . __( 'Don&#8217;t forget to click on the Save Changes button when you are finished.' ) . '</p>'
) );
get_current_screen()->set_help_sidebar(
'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
'<p>' . __( '<a href="http://codex.wordpress.org/Appearance_Background_Screen" target="_blank">Documentation on Custom Background</a>' ) . '</p>' .
'<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
);
wp_enqueue_media();
wp_enqueue_script('custom-background');
wp_enqueue_style('wp-color-picker');
}
/**
* Execute custom background modification.
*
* @since 3.0.0
*/
function take_action() {
if ( empty($_POST) )
return;
if ( isset($_POST['reset-background']) ) {
check_admin_referer('custom-background-reset', '_wpnonce-custom-background-reset');
remove_theme_mod('background_image');
remove_theme_mod('background_image_thumb');
$this->updated = true;
return;
}
if ( isset($_POST['remove-background']) ) {
// @TODO: Uploaded files are not removed here.
check_admin_referer('custom-background-remove', '_wpnonce-custom-background-remove');
set_theme_mod('background_image', '');
set_theme_mod('background_image_thumb', '');
$this->updated = true;
wp_safe_redirect( $_POST['_wp_http_referer'] );
return;
}
if ( isset($_POST['background-repeat']) ) {
check_admin_referer('custom-background');
if ( in_array($_POST['background-repeat'], array('repeat', 'no-repeat', 'repeat-x', 'repeat-y')) )
$repeat = $_POST['background-repeat'];
else
$repeat = 'repeat';
set_theme_mod('background_repeat', $repeat);
}
if ( isset($_POST['background-position-x']) ) {
check_admin_referer('custom-background');
if ( in_array($_POST['background-position-x'], array('center', 'right', 'left')) )
$position = $_POST['background-position-x'];
else
$position = 'left';
set_theme_mod('background_position_x', $position);
}
if ( isset($_POST['background-attachment']) ) {
check_admin_referer('custom-background');
if ( in_array($_POST['background-attachment'], array('fixed', 'scroll')) )
$attachment = $_POST['background-attachment'];
else
$attachment = 'fixed';
set_theme_mod('background_attachment', $attachment);
}
if ( isset($_POST['background-color']) ) {
check_admin_referer('custom-background');
$color = preg_replace('/[^0-9a-fA-F]/', '', $_POST['background-color']);
if ( strlen($color) == 6 || strlen($color) == 3 )
set_theme_mod('background_color', $color);
else
set_theme_mod('background_color', '');
}
$this->updated = true;
}
/**
* Display the custom background page.
*
* @since 3.0.0
*/
function admin_page() {
?>
<div class="wrap" id="custom-background">
<?php screen_icon(); ?>
<h2><?php _e('Custom Background'); ?></h2>
<?php if ( !empty($this->updated) ) { ?>
<div id="message" class="updated">
<p><?php printf( __( 'Background updated. <a href="%s">Visit your site</a> to see how it looks.' ), home_url( '/' ) ); ?></p>
</div>
<?php }
if ( $this->admin_image_div_callback ) {
call_user_func($this->admin_image_div_callback);
} else {
?>
<h3><?php _e('Background Image'); ?></h3>
<table class="form-table">
<tbody>
<tr valign="top">
<th scope="row"><?php _e('Preview'); ?></th>
<td>
<?php
$background_styles = '';
if ( $bgcolor = get_background_color() )
$background_styles .= 'background-color: #' . $bgcolor . ';';
if ( get_background_image() ) {
$background_image_thumb = esc_url( set_url_scheme( get_theme_mod( 'background_image_thumb', str_replace( '%', '%%', get_background_image() ) ) ) );
// background-image URL must be single quote, see below
$background_styles .= ' background-image: url(\'' . $background_image_thumb . '\');'
. ' background-repeat: ' . get_theme_mod('background_repeat', 'repeat') . ';'
. ' background-position: top ' . get_theme_mod('background_position_x', 'left');
}
?>
<div id="custom-background-image" style="<?php echo $background_styles; ?>"><?php // must be double quote, see above ?>
<?php if ( get_background_image() ) { ?>
<img class="custom-background-image" src="<?php echo $background_image_thumb; ?>" style="visibility:hidden;" alt="" /><br />
<img class="custom-background-image" src="<?php echo $background_image_thumb; ?>" style="visibility:hidden;" alt="" />
<?php } ?>
</div>
<?php } ?>
</td>
</tr>
<?php if ( get_background_image() ) : ?>
<tr valign="top">
<th scope="row"><?php _e('Remove Image'); ?></th>
<td>
<form method="post" action="">
<?php wp_nonce_field('custom-background-remove', '_wpnonce-custom-background-remove'); ?>
<?php submit_button( __( 'Remove Background Image' ), 'button', 'remove-background', false ); ?><br/>
<?php _e('This will remove the background image. You will not be able to restore any customizations.') ?>
</form>
</td>
</tr>
<?php endif; ?>
<?php $default_image = get_theme_support( 'custom-background', 'default-image' ); ?>
<?php if ( $default_image && get_background_image() != $default_image ) : ?>
<tr valign="top">
<th scope="row"><?php _e('Restore Original Image'); ?></th>
<td>
<form method="post" action="">
<?php wp_nonce_field('custom-background-reset', '_wpnonce-custom-background-reset'); ?>
<?php submit_button( __( 'Restore Original Image' ), 'button', 'reset-background', false ); ?><br/>
<?php _e('This will restore the original background image. You will not be able to restore any customizations.') ?>
</form>
</td>
</tr>
<?php endif; ?>
<tr valign="top">
<th scope="row"><?php _e('Select Image'); ?></th>
<td><form enctype="multipart/form-data" id="upload-form" class="wp-upload-form" method="post" action="">
<p>
<label for="upload"><?php _e( 'Choose an image from your computer:' ); ?></label><br />
<input type="file" id="upload" name="import" />
<input type="hidden" name="action" value="save" />
<?php wp_nonce_field( 'custom-background-upload', '_wpnonce-custom-background-upload' ); ?>
<?php submit_button( __( 'Upload' ), 'button', 'submit', false ); ?>
</p>
<p>
<label for="choose-from-library-link"><?php _e( 'Or choose an image from your media library:' ); ?></label><br />
<a id="choose-from-library-link" class="button"
data-choose="<?php esc_attr_e( 'Choose a Background Image' ); ?>"
data-update="<?php esc_attr_e( 'Set as background' ); ?>"><?php _e( 'Choose Image' ); ?></a>
</p>
</form>
</td>
</tr>
</tbody>
</table>
<h3><?php _e('Display Options') ?></h3>
<form method="post" action="">
<table class="form-table">
<tbody>
<?php if ( get_background_image() ) : ?>
<tr valign="top">
<th scope="row"><?php _e( 'Position' ); ?></th>
<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Position' ); ?></span></legend>
<label>
<input name="background-position-x" type="radio" value="left"<?php checked('left', get_theme_mod('background_position_x', 'left')); ?> />
<?php _e('Left') ?>
</label>
<label>
<input name="background-position-x" type="radio" value="center"<?php checked('center', get_theme_mod('background_position_x', 'left')); ?> />
<?php _e('Center') ?>
</label>
<label>
<input name="background-position-x" type="radio" value="right"<?php checked('right', get_theme_mod('background_position_x', 'left')); ?> />
<?php _e('Right') ?>
</label>
</fieldset></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e( 'Repeat' ); ?></th>
<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Repeat' ); ?></span></legend>
<label><input type="radio" name="background-repeat" value="no-repeat"<?php checked('no-repeat', get_theme_mod('background_repeat', 'repeat')); ?> /> <?php _e('No Repeat'); ?></label>
<label><input type="radio" name="background-repeat" value="repeat"<?php checked('repeat', get_theme_mod('background_repeat', 'repeat')); ?> /> <?php _e('Tile'); ?></label>
<label><input type="radio" name="background-repeat" value="repeat-x"<?php checked('repeat-x', get_theme_mod('background_repeat', 'repeat')); ?> /> <?php _e('Tile Horizontally'); ?></label>
<label><input type="radio" name="background-repeat" value="repeat-y"<?php checked('repeat-y', get_theme_mod('background_repeat', 'repeat')); ?> /> <?php _e('Tile Vertically'); ?></label>
</fieldset></td>
</tr>
<tr valign="top">
<th scope="row"><?php _ex( 'Attachment', 'Background Attachment' ); ?></th>
<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Attachment' ); ?></span></legend>
<label>
<input name="background-attachment" type="radio" value="scroll" <?php checked('scroll', get_theme_mod('background_attachment', 'scroll')); ?> />
<?php _e('Scroll') ?>
</label>
<label>
<input name="background-attachment" type="radio" value="fixed" <?php checked('fixed', get_theme_mod('background_attachment', 'scroll')); ?> />
<?php _e('Fixed') ?>
</label>
</fieldset></td>
</tr>
<?php endif; // get_background_image() ?>
<tr valign="top">
<th scope="row"><?php _e( 'Background Color' ); ?></th>
<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Color' ); ?></span></legend>
<?php
$default_color = '';
if ( current_theme_supports( 'custom-background', 'default-color' ) )
$default_color = ' data-default-color="#' . esc_attr( get_theme_support( 'custom-background', 'default-color' ) ) . '"';
?>
<input type="text" name="background-color" id="background-color" value="#<?php echo esc_attr( get_background_color() ); ?>"<?php echo $default_color ?> />
</fieldset></td>
</tr>
</tbody>
</table>
<?php wp_nonce_field('custom-background'); ?>
<?php submit_button( null, 'primary', 'save-background-options' ); ?>
</form>
</div>
<?php
}
/**
* Handle an Image upload for the background image.
*
* @since 3.0.0
*/
function handle_upload() {
if ( empty($_FILES) )
return;
check_admin_referer('custom-background-upload', '_wpnonce-custom-background-upload');
$overrides = array('test_form' => false);
$uploaded_file = $_FILES['import'];
$wp_filetype = wp_check_filetype_and_ext( $uploaded_file['tmp_name'], $uploaded_file['name'], false );
if ( ! wp_match_mime_types( 'image', $wp_filetype['type'] ) )
wp_die( __( 'The uploaded file is not a valid image. Please try again.' ) );
$file = wp_handle_upload($uploaded_file, $overrides);
if ( isset($file['error']) )
wp_die( $file['error'] );
$url = $file['url'];
$type = $file['type'];
$file = $file['file'];
$filename = basename($file);
// Construct the object array
$object = array(
'post_title' => $filename,
'post_content' => $url,
'post_mime_type' => $type,
'guid' => $url,
'context' => 'custom-background'
);
// Save the data
$id = wp_insert_attachment($object, $file);
// Add the meta-data
wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
update_post_meta( $id, '_wp_attachment_is_custom_background', get_option('stylesheet' ) );
set_theme_mod('background_image', esc_url_raw($url));
$thumbnail = wp_get_attachment_image_src( $id, 'thumbnail' );
set_theme_mod('background_image_thumb', esc_url_raw( $thumbnail[0] ) );
/** This action is documented in wp-admin/custom-header.php */
do_action( 'wp_create_file_in_uploads', $file, $id ); // For replication
$this->updated = true;
}
/**
* Unused since 3.5.0.
*
* @since 3.4.0
*/
function attachment_fields_to_edit( $form_fields ) {
return $form_fields;
}
/**
* Unused since 3.5.0.
*
* @since 3.4.0
*/
function filter_upload_tabs( $tabs ) {
return $tabs;
}
public function wp_set_background_image() {
if ( ! current_user_can('edit_theme_options') || ! isset( $_POST['attachment_id'] ) ) exit;
$attachment_id = absint($_POST['attachment_id']);
/** This filter is documented in wp-admin/includes/media.php */
$sizes = array_keys(apply_filters( 'image_size_names_choose', array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size')) ));
$size = 'thumbnail';
if ( in_array( $_POST['size'], $sizes ) )
$size = esc_attr( $_POST['size'] );
update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', get_option('stylesheet' ) );
$url = wp_get_attachment_image_src( $attachment_id, $size );
$thumbnail = wp_get_attachment_image_src( $attachment_id, 'thumbnail' );
set_theme_mod( 'background_image', esc_url_raw( $url[0] ) );
set_theme_mod( 'background_image_thumb', esc_url_raw( $thumbnail[0] ) );
exit;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,243 +0,0 @@
<?php
/**
* Customize Controls
*
* @package WordPress
* @subpackage Customize
* @since 3.4.0
*/
define( 'IFRAME_REQUEST', true );
require_once( dirname( __FILE__ ) . '/admin.php' );
if ( ! current_user_can( 'edit_theme_options' ) )
wp_die( __( 'Cheatin&#8217; uh?' ) );
wp_reset_vars( array( 'url', 'return' ) );
$url = urldecode( $url );
$url = wp_validate_redirect( $url, home_url( '/' ) );
if ( $return )
$return = wp_validate_redirect( urldecode( $return ) );
if ( ! $return )
$return = $url;
global $wp_scripts, $wp_customize;
$registered = $wp_scripts->registered;
$wp_scripts = new WP_Scripts;
$wp_scripts->registered = $registered;
add_action( 'customize_controls_print_scripts', 'print_head_scripts', 20 );
add_action( 'customize_controls_print_footer_scripts', '_wp_footer_scripts' );
add_action( 'customize_controls_print_styles', 'print_admin_styles', 20 );
/**
* Fires when Customizer controls are initialized, before scripts are enqueued.
*
* @since 3.4.0
*/
do_action( 'customize_controls_init' );
wp_enqueue_script( 'customize-controls' );
wp_enqueue_style( 'customize-controls' );
wp_enqueue_script( 'accordion' );
/**
* Enqueue Customizer control scripts.
*
* @since 3.4.0
*/
do_action( 'customize_controls_enqueue_scripts' );
// Let's roll.
@header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
wp_user_settings();
_wp_admin_html_begin();
$body_class = 'wp-core-ui js';
if ( wp_is_mobile() ) :
$body_class .= ' mobile';
?><meta name="viewport" id="viewport-meta" content="width=device-width, initial-scale=0.8, minimum-scale=0.5, maximum-scale=1.2"><?php
endif;
$is_ios = wp_is_mobile() && preg_match( '/iPad|iPod|iPhone/', $_SERVER['HTTP_USER_AGENT'] );
if ( $is_ios )
$body_class .= ' ios';
if ( is_rtl() )
$body_class .= ' rtl';
$body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
$admin_title = sprintf( __( '%1$s &#8212; WordPress' ), strip_tags( sprintf( __( 'Customize %s' ), $wp_customize->theme()->display('Name') ) ) );
?><title><?php echo $admin_title; ?></title><?php
/**
* Print Customizer control styles.
*
* @since 3.4.0
*/
do_action( 'customize_controls_print_styles' );
/**
* Print Customizer control scripts.
*
* @since 3.4.0
*/
do_action( 'customize_controls_print_scripts' );
?>
</head>
<body class="<?php echo esc_attr( $body_class ); ?>">
<div class="wp-full-overlay expanded">
<form id="customize-controls" class="wrap wp-full-overlay-sidebar">
<div id="customize-header-actions" class="wp-full-overlay-header">
<?php
$save_text = $wp_customize->is_theme_active() ? __( 'Save &amp; Publish' ) : __( 'Save &amp; Activate' );
submit_button( $save_text, 'primary save', 'save', false );
?>
<span class="spinner"></span>
<a class="back button" href="<?php echo esc_url( $return ? $return : admin_url( 'themes.php' ) ); ?>">
<?php _e( 'Cancel' ); ?>
</a>
</div>
<?php
$screenshot = $wp_customize->theme()->get_screenshot();
$cannot_expand = ! ( $screenshot || $wp_customize->theme()->get('Description') );
?>
<div class="wp-full-overlay-sidebar-content accordion-container" tabindex="-1">
<div id="customize-info" class="accordion-section <?php if ( $cannot_expand ) echo ' cannot-expand'; ?>">
<div class="accordion-section-title" aria-label="<?php esc_attr_e( 'Theme Customizer Options' ); ?>" tabindex="0">
<span class="preview-notice"><?php
/* translators: %s is the theme name in the Customize/Live Preview pane */
echo sprintf( __( 'You are previewing %s' ), '<strong class="theme-name">' . $wp_customize->theme()->display('Name') . '</strong>' );
?></span>
</div>
<?php if ( ! $cannot_expand ) : ?>
<div class="accordion-section-content">
<?php if ( $screenshot ) : ?>
<img class="theme-screenshot" src="<?php echo esc_url( $screenshot ); ?>" />
<?php endif; ?>
<?php if ( $wp_customize->theme()->get('Description') ): ?>
<div class="theme-description"><?php echo $wp_customize->theme()->display('Description'); ?></div>
<?php endif; ?>
</div>
<?php endif; ?>
</div>
<div id="customize-theme-controls"><ul>
<?php
foreach ( $wp_customize->sections() as $section )
$section->maybe_render();
?>
</ul></div>
</div>
<div id="customize-footer-actions" class="wp-full-overlay-footer">
<a href="#" class="collapse-sidebar button-secondary" title="<?php esc_attr_e('Collapse Sidebar'); ?>">
<span class="collapse-sidebar-arrow"></span>
<span class="collapse-sidebar-label"><?php _e('Collapse'); ?></span>
</a>
</div>
</form>
<div id="customize-preview" class="wp-full-overlay-main"></div>
<?php
/**
* Print Customizer control scripts in the footer.
*
* @since 3.4.0
*/
do_action( 'customize_controls_print_footer_scripts' );
// If the frontend and the admin are served from the same domain, load the
// preview over ssl if the customizer is being loaded over ssl. This avoids
// insecure content warnings. This is not attempted if the admin and frontend
// are on different domains to avoid the case where the frontend doesn't have
// ssl certs. Domain mapping plugins can allow other urls in these conditions
// using the customize_allowed_urls filter.
$allowed_urls = array( home_url('/') );
$admin_origin = parse_url( admin_url() );
$home_origin = parse_url( home_url() );
$cross_domain = ( strtolower( $admin_origin[ 'host' ] ) != strtolower( $home_origin[ 'host' ] ) );
if ( is_ssl() && ! $cross_domain )
$allowed_urls[] = home_url( '/', 'https' );
/**
* Filter the list of URLs allowed to be clicked and followed in the Customizer preview.
*
* @since 3.4.0
*
* @param array $allowed_urls An array of allowed URLs.
*/
$allowed_urls = array_unique( apply_filters( 'customize_allowed_urls', $allowed_urls ) );
$fallback_url = add_query_arg( array(
'preview' => 1,
'template' => $wp_customize->get_template(),
'stylesheet' => $wp_customize->get_stylesheet(),
'preview_iframe' => true,
'TB_iframe' => 'true'
), home_url( '/' ) );
$login_url = add_query_arg( array(
'interim-login' => 1,
'customize-login' => 1
), wp_login_url() );
$settings = array(
'theme' => array(
'stylesheet' => $wp_customize->get_stylesheet(),
'active' => $wp_customize->is_theme_active(),
),
'url' => array(
'preview' => esc_url( $url ? $url : home_url( '/' ) ),
'parent' => esc_url( admin_url() ),
'activated' => admin_url( 'themes.php?activated=true&previewed' ),
'ajax' => esc_url( admin_url( 'admin-ajax.php', 'relative' ) ),
'allowed' => array_map( 'esc_url', $allowed_urls ),
'isCrossDomain' => $cross_domain,
'fallback' => $fallback_url,
'home' => esc_url( home_url( '/' ) ),
'login' => $login_url,
),
'browser' => array(
'mobile' => wp_is_mobile(),
'ios' => $is_ios,
),
'settings' => array(),
'controls' => array(),
'nonce' => array(
'save' => wp_create_nonce( 'save-customize_' . $wp_customize->get_stylesheet() ),
'preview' => wp_create_nonce( 'preview-customize_' . $wp_customize->get_stylesheet() )
),
);
foreach ( $wp_customize->settings() as $id => $setting ) {
$settings['settings'][ $id ] = array(
'value' => $setting->js_value(),
'transport' => $setting->transport,
);
}
foreach ( $wp_customize->controls() as $id => $control ) {
$control->to_json();
$settings['controls'][ $id ] = $control->json;
}
?>
<script type="text/javascript">
var _wpCustomizeSettings = <?php echo json_encode( $settings ); ?>;
</script>
</div>
</body>
</html>

View File

@@ -0,0 +1,152 @@
<?php if ( ! defined('ABSPATH') ) die(); ?>
<table class="widefat">
<thead>
<tr>
<?php $posts_columns = wp_manage_media_columns(); ?>
<?php foreach($posts_columns as $post_column_key => $column_display_name) {
if ( 'cb' === $post_column_key )
$class = ' class="check-column"';
elseif ( 'comments' === $post_column_key )
$class = ' class="num"';
else
$class = '';
?>
<th scope="col"<?php echo $class; ?>><?php echo $column_display_name; ?></th>
<?php } ?>
</tr>
</thead>
<tbody id="the-list" class="list:post">
<?php
if ( have_posts() ) {
$bgcolor = '';
add_filter('the_title','wp_specialchars');
while (have_posts()) : the_post();
$class = 'alternate' == $class ? '' : 'alternate';
global $current_user;
$post_owner = ( $current_user->ID == $post->post_author ? 'self' : 'other' );
$att_title = get_the_title();
if ( empty($att_title) )
$att_title = __('(no title)');
?>
<tr id='post-<?php echo $id; ?>' class='<?php echo trim( $class . ' author-' . $post_owner . ' status-' . $post->post_status ); ?>' valign="top">
<?php
foreach($posts_columns as $column_name=>$column_display_name) {
switch($column_name) {
case 'cb':
?>
<th scope="row" class="check-column"><input type="checkbox" name="delete[]" value="<?php the_ID(); ?>" /></th>
<?php
break;
case 'icon':
?>
<td class="media-icon"><?php echo wp_get_attachment_link($post->ID, array(80, 60), false, true); ?></td>
<?php
// TODO
break;
case 'media':
?>
<td><strong><a href="media.php?action=edit&amp;attachment_id=<?php the_ID(); ?>" title="<?php echo attribute_escape(sprintf(__('Edit "%s"'), $att_title)); ?>"><?php echo $att_title; ?></a></strong><br />
<?php echo strtoupper(preg_replace('/^.*?\.(\w+)$/', '$1', get_attached_file($post->ID))); ?>
<?php do_action('manage_media_media_column', $post->ID); ?>
</td>
<?php
break;
case 'desc':
?>
<td><?php echo has_excerpt() ? $post->post_excerpt : ''; ?></td>
<?php
break;
case 'date':
if ( '0000-00-00 00:00:00' == $post->post_date && 'date' == $column_name ) {
$t_time = $h_time = __('Unpublished');
} else {
$t_time = get_the_time(__('Y/m/d g:i:s A'));
$m_time = $post->post_date;
$time = get_post_time( 'G', true );
if ( ( abs($t_diff = time() - $time) ) < 86400 ) {
if ( $t_diff < 0 )
$h_time = sprintf( __('%s from now'), human_time_diff( $time ) );
else
$h_time = sprintf( __('%s ago'), human_time_diff( $time ) );
} else {
$h_time = mysql2date(__('Y/m/d'), $m_time);
}
}
?>
<td><?php echo $h_time ?></td>
<?php
break;
case 'parent':
$title = __('(no title)'); // override below
if ( $post->post_parent > 0 ) {
if ( get_post($post->post_parent) ) {
$parent_title = get_the_title($post->post_parent);
if ( !empty($parent_title) )
$title = $parent_title;
}
?>
<td><strong><a href="post.php?action=edit&amp;post=<?php echo $post->post_parent; ?>"><?php echo $title ?></a></strong></td>
<?php
} else {
?>
<td>&nbsp;</td>
<?php
}
break;
case 'comments':
?>
<td class="num"><div class="post-com-count-wrapper">
<?php
$left = get_pending_comments_num( $post->ID );
$pending_phrase = sprintf( __('%s pending'), number_format( $left ) );
if ( $left )
echo '<strong>';
comments_number("<a href='upload.php?attachment_id=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('0') . '</span></a>', "<a href='upload.php?attachment_id=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('1') . '</span></a>', "<a href='upload.php?attachment_id=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('%') . '</span></a>');
if ( $left )
echo '</strong>';
?>
</div></td>
<?php
break;
case 'location':
?>
<td><a href="<?php the_permalink(); ?>"><?php _e('Permalink'); ?></a></td>
<?php
break;
default:
?>
<td><?php do_action('manage_media_custom_column', $column_name, $id); ?></td>
<?php
break;
}
}
?>
</tr>
<?php
endwhile;
} else {
?>
<tr style='background-color: <?php echo $bgcolor; ?>'>
<td colspan="8"><?php _e('No posts found.') ?></td>
</tr>
<?php
} // end if ( have_posts() )
?>
</tbody>
</table>

View File

@@ -0,0 +1,53 @@
<?php
if ( ! empty($cat_ID) ) {
$heading = __('Edit Category');
$submit_text = __('Edit Category');
$form = '<form name="editcat" id="editcat" method="post" action="categories.php" class="validate">';
$action = 'editedcat';
$nonce_action = 'update-category_' . $cat_ID;
do_action('edit_category_form_pre', $category);
} else {
$heading = __('Add Category');
$submit_text = __('Add Category');
$form = '<form name="addcat" id="addcat" method="post" action="categories.php" class="add:the-list: validate">';
$action = 'addcat';
$nonce_action = 'add-category';
do_action('add_category_form_pre', $category);
}
?>
<div class="wrap">
<h2><?php echo $heading ?></h2>
<div id="ajax-response"></div>
<?php echo $form ?>
<input type="hidden" name="action" value="<?php echo $action ?>" />
<input type="hidden" name="cat_ID" value="<?php echo $category->term_id ?>" />
<?php wp_nonce_field($nonce_action); ?>
<table class="form-table">
<tr class="form-field form-required">
<th scope="row" valign="top"><label for="cat_name"><?php _e('Category Name') ?></label></th>
<td><input name="cat_name" id="cat_name" type="text" value="<?php echo attribute_escape($category->name); ?>" size="40" /><br />
<?php _e('The name is used to identify the category almost everywhere, for example under the post or in the category widget.'); ?></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="category_nicename"><?php _e('Category Slug') ?></label></th>
<td><input name="category_nicename" id="category_nicename" type="text" value="<?php echo attribute_escape($category->slug); ?>" size="40" /><br />
<?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.'); ?></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="category_parent"><?php _e('Category Parent') ?></label></th>
<td>
<?php wp_dropdown_categories('hide_empty=0&name=category_parent&orderby=name&selected=' . $category->parent . '&hierarchical=1&show_option_none=' . __('None')); ?><br />
<?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.'); ?>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="category_description"><?php _e('Description') ?></label></th>
<td><textarea name="category_description" id="category_description" rows="5" cols="50" style="width: 97%;"><?php echo wp_specialchars($category->description); ?></textarea><br />
<?php _e('The description is not prominent by default, however some themes may show it.'); ?></td>
</tr>
</table>
<p class="submit"><input type="submit" class="button" name="submit" value="<?php echo $submit_text ?>" /></p>
<?php do_action('edit_category_form', $category); ?>
</form>
</div>

View File

@@ -1,255 +1,245 @@
<?php
/**
* Edit Comments Administration Screen.
*
* @package WordPress
* @subpackage Administration
*/
require_once('admin.php');
/** WordPress Administration Bootstrap */
require_once( dirname( __FILE__ ) . '/admin.php' );
if ( !current_user_can('edit_posts') )
wp_die(__('Cheatin&#8217; uh?'));
$title = __('Edit Comments');
$parent_file = 'edit-comments.php';
wp_enqueue_script( 'admin-comments' );
wp_enqueue_script('admin-forms');
$wp_list_table = _get_list_table('WP_Comments_List_Table');
$pagenum = $wp_list_table->get_pagenum();
if ( !empty( $_REQUEST['delete_comments'] ) ) {
check_admin_referer('bulk-comments');
$doaction = $wp_list_table->current_action();
if ( $doaction ) {
check_admin_referer( 'bulk-comments' );
if ( 'delete_all' == $doaction && !empty( $_REQUEST['pagegen_timestamp'] ) ) {
$comment_status = wp_unslash( $_REQUEST['comment_status'] );
$delete_time = wp_unslash( $_REQUEST['pagegen_timestamp'] );
$comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_approved = %s AND %s > comment_date_gmt", $comment_status, $delete_time ) );
$doaction = 'delete';
} elseif ( isset( $_REQUEST['delete_comments'] ) ) {
$comment_ids = $_REQUEST['delete_comments'];
$doaction = ( $_REQUEST['action'] != -1 ) ? $_REQUEST['action'] : $_REQUEST['action2'];
} elseif ( isset( $_REQUEST['ids'] ) ) {
$comment_ids = array_map( 'absint', explode( ',', $_REQUEST['ids'] ) );
} elseif ( wp_get_referer() ) {
wp_safe_redirect( wp_get_referer() );
exit;
}
$approved = $unapproved = $spammed = $unspammed = $trashed = $untrashed = $deleted = 0;
$redirect_to = remove_query_arg( array( 'trashed', 'untrashed', 'deleted', 'spammed', 'unspammed', 'approved', 'unapproved', 'ids' ), wp_get_referer() );
$redirect_to = add_query_arg( 'paged', $pagenum, $redirect_to );
foreach ( $comment_ids as $comment_id ) { // Check the permissions on each
if ( !current_user_can( 'edit_comment', $comment_id ) )
$comments_deleted = $comments_approved = $comments_unapproved = $comments_spammed = 0;
foreach ($_REQUEST['delete_comments'] as $comment) : // Check the permissions on each
$comment = (int) $comment;
$post_id = (int) $wpdb->get_var("SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID = $comment");
// $authordata = get_userdata( $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_id") );
if ( !current_user_can('edit_post', $post_id) )
continue;
switch ( $doaction ) {
case 'approve' :
wp_set_comment_status( $comment_id, 'approve' );
$approved++;
break;
case 'unapprove' :
wp_set_comment_status( $comment_id, 'hold' );
$unapproved++;
break;
case 'spam' :
wp_spam_comment( $comment_id );
$spammed++;
break;
case 'unspam' :
wp_unspam_comment( $comment_id );
$unspammed++;
break;
case 'trash' :
wp_trash_comment( $comment_id );
$trashed++;
break;
case 'untrash' :
wp_untrash_comment( $comment_id );
$untrashed++;
break;
case 'delete' :
wp_delete_comment( $comment_id );
$deleted++;
break;
if ( !empty( $_REQUEST['spamit'] ) ) {
wp_set_comment_status($comment, 'spam');
$comments_spammed++;
} elseif ( !empty( $_REQUEST['deleteit'] ) ) {
wp_set_comment_status($comment, 'delete');
$comments_deleted++;
} elseif ( !empty( $_REQUEST['approveit'] ) ) {
wp_set_comment_status($comment, 'approve');
$comments_approved++;
} elseif ( !empty( $_REQUEST['unapproveit'] ) ) {
wp_set_comment_status($comment, 'hold');
$comments_unapproved++;
}
}
if ( $approved )
$redirect_to = add_query_arg( 'approved', $approved, $redirect_to );
if ( $unapproved )
$redirect_to = add_query_arg( 'unapproved', $unapproved, $redirect_to );
if ( $spammed )
$redirect_to = add_query_arg( 'spammed', $spammed, $redirect_to );
if ( $unspammed )
$redirect_to = add_query_arg( 'unspammed', $unspammed, $redirect_to );
if ( $trashed )
$redirect_to = add_query_arg( 'trashed', $trashed, $redirect_to );
if ( $untrashed )
$redirect_to = add_query_arg( 'untrashed', $untrashed, $redirect_to );
if ( $deleted )
$redirect_to = add_query_arg( 'deleted', $deleted, $redirect_to );
if ( $trashed || $spammed )
$redirect_to = add_query_arg( 'ids', join( ',', $comment_ids ), $redirect_to );
wp_safe_redirect( $redirect_to );
exit;
} elseif ( ! empty( $_GET['_wp_http_referer'] ) ) {
wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), wp_unslash( $_SERVER['REQUEST_URI'] ) ) );
endforeach;
$redirect_to = basename( __FILE__ ) . '?deleted=' . $comments_deleted . '&approved=' . $comments_approved . '&spam=' . $comments_spammed . '&unapproved=' . $comments_unapproved;
if ( !empty($_REQUEST['mode']) )
$redirect_to = add_query_arg('mode', $_REQUEST['mode'], $redirect_to);
if ( !empty($_REQUEST['comment_status']) )
$redirect_to = add_query_arg('comment_status', $_REQUEST['comment_status'], $redirect_to);
if ( !empty($_REQUEST['s']) )
$redirect_to = add_query_arg('s', $_REQUEST['s'], $redirect_to);
wp_redirect( $redirect_to );
} elseif ( !empty($_GET['_wp_http_referer']) ) {
wp_redirect(remove_query_arg(array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI'])));
exit;
}
$wp_list_table->prepare_items();
require_once('admin-header.php');
wp_enqueue_script('admin-comments');
enqueue_comment_hotkeys_js();
if ( $post_id )
$title = sprintf( __( 'Comments on &#8220;%s&#8221;' ), wp_html_excerpt( _draft_or_post_title( $post_id ), 50, '&hellip;' ) );
if ( empty($_GET['mode']) )
$mode = 'detail';
else
$title = __('Comments');
$mode = attribute_escape($_GET['mode']);
add_screen_option( 'per_page', array('label' => _x( 'Comments', 'comments per page (screen options)' )) );
if ( isset($_GET['comment_status']) )
$comment_status = attribute_escape($_GET['comment_status']);
else
$comment_status = '';
get_current_screen()->add_help_tab( array(
'id' => 'overview',
'title' => __('Overview'),
'content' =>
'<p>' . __( 'You can manage comments made on your site similar to the way you manage posts and other content. This screen is customizable in the same ways as other management screens, and you can act on comments using the on-hover action links or the Bulk Actions.' ) . '</p>'
) );
get_current_screen()->add_help_tab( array(
'id' => 'moderating-comments',
'title' => __('Moderating Comments'),
'content' =>
'<p>' . __( 'A yellow row means the comment is waiting for you to moderate it.' ) . '</p>' .
'<p>' . __( 'In the <strong>Author</strong> column, in addition to the author&#8217;s name, email address, and blog URL, the commenter&#8217;s IP address is shown. Clicking on this link will show you all the comments made from this IP address.' ) . '</p>' .
'<p>' . __( 'In the <strong>Comment</strong> column, above each comment it says &#8220;Submitted on,&#8221; followed by the date and time the comment was left on your site. Clicking on the date/time link will take you to that comment on your live site. Hovering over any comment gives you options to approve, reply (and approve), quick edit, edit, spam mark, or trash that comment.' ) . '</p>' .
'<p>' . __( 'In the <strong>In Response To</strong> column, there are three elements. The text is the name of the post that inspired the comment, and links to the post editor for that entry. The View Post link leads to that post on your live site. The small bubble with the number in it shows the number of approved comments that post has received. If the bubble is gray, you have moderated all comments for that post. If it is blue, there are pending comments. Clicking the bubble will filter the comments screen to show only comments on that post.' ) . '</p>' .
'<p>' . __( 'Many people take advantage of keyboard shortcuts to moderate their comments more quickly. Use the link to the side to learn more.' ) . '</p>'
) );
get_current_screen()->set_help_sidebar(
'<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://codex.wordpress.org/Comment_Spam" target="_blank">Documentation on Comment Spam</a>' ) . '</p>' .
'<p>' . __( '<a href="http://codex.wordpress.org/Keyboard_Shortcuts" target="_blank">Documentation on Keyboard Shortcuts</a>' ) . '</p>' .
'<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
);
require_once( ABSPATH . 'wp-admin/admin-header.php' );
if ( isset($_GET['s']) )
$search_dirty = $_GET['s'];
else
$search_dirty = '';
$search = attribute_escape( $search_dirty );
?>
<?php
if ( isset( $_GET['approved'] ) || isset( $_GET['deleted'] ) || isset( $_GET['spam'] ) ) {
$approved = isset( $_GET['approved'] ) ? (int) $_GET['approved'] : 0;
$deleted = isset( $_GET['deleted'] ) ? (int) $_GET['deleted'] : 0;
$spam = isset( $_GET['spam'] ) ? (int) $_GET['spam'] : 0;
if ( $approved > 0 || $deleted > 0 || $spam > 0 ) {
echo '<div id="moderated" class="updated fade"><p>';
if ( $approved > 0 ) {
printf( __ngettext( '%s comment approved', '%s comments approved', $approved ), $approved );
echo '<br />';
}
if ( $deleted > 0 ) {
printf( __ngettext( '%s comment deleted', '%s comments deleted', $deleted ), $deleted );
echo '<br />';
}
if ( $spam > 0 ) {
printf( __ngettext( '%s comment marked as spam', '%s comments marked as spam', $spam ), $spam );
echo '<br />';
}
echo '</p></div>';
}
}
?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php
if ( $post_id )
echo sprintf( __( 'Comments on &#8220;%s&#8221;' ),
sprintf( '<a href="%s">%s</a>',
get_edit_post_link( $post_id ),
wp_html_excerpt( _draft_or_post_title( $post_id ), 50, '&hellip;' )
)
);
else
echo __('Comments');
<form id="posts-filter" action="" method="get">
<h2><?php _e('Manage Comments'); ?></h2>
if ( isset($_REQUEST['s']) && $_REQUEST['s'] )
echo '<span class="subtitle">' . sprintf( __( 'Search results for &#8220;%s&#8221;' ), wp_html_excerpt( esc_html( wp_unslash( $_REQUEST['s'] ) ), 50, '&hellip;' ) ) . '</span>'; ?>
</h2>
<ul class="subsubsub">
<?php
$status_links = array();
$num_comments = wp_count_comments();
$stati = array('moderated' => sprintf(__ngettext('Awaiting Moderation (%s)', 'Awaiting Moderation (%s)', $num_comments->moderated), "<span class='comment-count'>$num_comments->moderated</span>"), 'approved' => _c('Approved|plural'));
$class = ( '' === $comment_status ) ? ' class="current"' : '';
$status_links[] = "<li><a href=\"edit-comments.php\"$class>".__('Show All Comments')."</a>";
foreach ( $stati as $status => $label ) {
$class = '';
if ( $status == $comment_status )
$class = ' class="current"';
$status_links[] = "<li><a href=\"edit-comments.php?comment_status=$status\"$class>" . $label . '</a>';
}
$status_links = apply_filters( 'comment_status_links', $status_links );
echo implode(' | </li>', $status_links) . '</li>';
unset($status_links);
?>
</ul>
<p id="post-search">
<input type="text" id="post-search-input" name="s" value="<?php echo $search; ?>" />
<input type="submit" value="<?php _e( 'Search Comments' ); ?>" class="button" />
</p>
<input type="hidden" name="mode" value="<?php echo $mode; ?>" />
<input type="hidden" name="comment_status" value="<?php echo $comment_status; ?>" />
</form>
<ul class="view-switch">
<li <?php if ( 'detail' == $mode ) echo "class='current'" ?>><a href="<?php echo clean_url(add_query_arg('mode', 'detail', $_SERVER['REQUEST_URI'])) ?>"><?php _e('Detail View') ?></a></li>
<li <?php if ( 'list' == $mode ) echo "class='current'" ?>><a href="<?php echo clean_url(add_query_arg('mode', 'list', $_SERVER['REQUEST_URI'])) ?>"><?php _e('List View') ?></a></li>
</ul>
<?php
if ( isset( $_REQUEST['error'] ) ) {
$error = (int) $_REQUEST['error'];
$error_msg = '';
switch ( $error ) {
case 1 :
$error_msg = __( 'Oops, no comment with this ID.' );
break;
case 2 :
$error_msg = __( 'You are not allowed to edit comments on this post.' );
break;
}
if ( $error_msg )
echo '<div id="moderated" class="error"><p>' . $error_msg . '</p></div>';
}
if ( isset($_REQUEST['approved']) || isset($_REQUEST['deleted']) || isset($_REQUEST['trashed']) || isset($_REQUEST['untrashed']) || isset($_REQUEST['spammed']) || isset($_REQUEST['unspammed']) || isset($_REQUEST['same']) ) {
$approved = isset( $_REQUEST['approved'] ) ? (int) $_REQUEST['approved'] : 0;
$deleted = isset( $_REQUEST['deleted'] ) ? (int) $_REQUEST['deleted'] : 0;
$trashed = isset( $_REQUEST['trashed'] ) ? (int) $_REQUEST['trashed'] : 0;
$untrashed = isset( $_REQUEST['untrashed'] ) ? (int) $_REQUEST['untrashed'] : 0;
$spammed = isset( $_REQUEST['spammed'] ) ? (int) $_REQUEST['spammed'] : 0;
$unspammed = isset( $_REQUEST['unspammed'] ) ? (int) $_REQUEST['unspammed'] : 0;
$same = isset( $_REQUEST['same'] ) ? (int) $_REQUEST['same'] : 0;
if ( isset( $_GET['apage'] ) )
$page = abs( (int) $_GET['apage'] );
else
$page = 1;
if ( $approved > 0 || $deleted > 0 || $trashed > 0 || $untrashed > 0 || $spammed > 0 || $unspammed > 0 || $same > 0 ) {
if ( $approved > 0 )
$messages[] = sprintf( _n( '%s comment approved', '%s comments approved', $approved ), $approved );
$start = $offset = ( $page - 1 ) * 20;
if ( $spammed > 0 ) {
$ids = isset($_REQUEST['ids']) ? $_REQUEST['ids'] : 0;
$messages[] = sprintf( _n( '%s comment marked as spam.', '%s comments marked as spam.', $spammed ), $spammed ) . ' <a href="' . esc_url( wp_nonce_url( "edit-comments.php?doaction=undo&action=unspam&ids=$ids", "bulk-comments" ) ) . '">' . __('Undo') . '</a><br />';
}
list($_comments, $total) = _wp_get_comment_list( $comment_status, $search_dirty, $start, 25 ); // Grab a few extra
if ( $unspammed > 0 )
$messages[] = sprintf( _n( '%s comment restored from the spam', '%s comments restored from the spam', $unspammed ), $unspammed );
$comments = array_slice($_comments, 0, 20);
$extra_comments = array_slice($_comments, 20);
if ( $trashed > 0 ) {
$ids = isset($_REQUEST['ids']) ? $_REQUEST['ids'] : 0;
$messages[] = sprintf( _n( '%s comment moved to the Trash.', '%s comments moved to the Trash.', $trashed ), $trashed ) . ' <a href="' . esc_url( wp_nonce_url( "edit-comments.php?doaction=undo&action=untrash&ids=$ids", "bulk-comments" ) ) . '">' . __('Undo') . '</a><br />';
}
$page_links = paginate_links( array(
'base' => add_query_arg( 'apage', '%#%' ),
'format' => '',
'total' => ceil($total / 20),
'current' => $page
));
if ( $untrashed > 0 )
$messages[] = sprintf( _n( '%s comment restored from the Trash', '%s comments restored from the Trash', $untrashed ), $untrashed );
if ( $deleted > 0 )
$messages[] = sprintf( _n( '%s comment permanently deleted', '%s comments permanently deleted', $deleted ), $deleted );
if ( $same > 0 && $comment = get_comment( $same ) ) {
switch ( $comment->comment_approved ) {
case '1' :
$messages[] = __('This comment is already approved.') . ' <a href="' . esc_url( admin_url( "comment.php?action=editcomment&c=$same" ) ) . '">' . __( 'Edit comment' ) . '</a>';
break;
case 'trash' :
$messages[] = __( 'This comment is already in the Trash.' ) . ' <a href="' . esc_url( admin_url( 'edit-comments.php?comment_status=trash' ) ) . '"> ' . __( 'View Trash' ) . '</a>';
break;
case 'spam' :
$messages[] = __( 'This comment is already marked as spam.' ) . ' <a href="' . esc_url( admin_url( "comment.php?action=editcomment&c=$same" ) ) . '">' . __( 'Edit comment' ) . '</a>';
break;
}
}
echo '<div id="moderated" class="updated"><p>' . implode( "<br/>\n", $messages ) . '</p></div>';
}
}
?>
<?php $wp_list_table->views(); ?>
<form id="comments-form" action="" method="post">
<form id="comments-form" action="" method="get">
<div class="tablenav">
<?php $wp_list_table->search_box( __( 'Search Comments' ), 'comment' ); ?>
<?php
if ( $page_links )
echo "<div class='tablenav-pages'>$page_links</div>";
?>
<?php if ( $post_id ) : ?>
<input type="hidden" name="p" value="<?php echo esc_attr( intval( $post_id ) ); ?>" />
<div class="alignleft">
<?php if ( 'approved' != $comment_status ): ?>
<input type="submit" value="<?php _e('Approve'); ?>" name="approveit" class="button-secondary" />
<?php endif; ?>
<input type="hidden" name="comment_status" value="<?php echo esc_attr($comment_status); ?>" />
<input type="hidden" name="pagegen_timestamp" value="<?php echo esc_attr(current_time('mysql', 1)); ?>" />
<input type="hidden" name="_total" value="<?php echo esc_attr( $wp_list_table->get_pagination_arg('total_items') ); ?>" />
<input type="hidden" name="_per_page" value="<?php echo esc_attr( $wp_list_table->get_pagination_arg('per_page') ); ?>" />
<input type="hidden" name="_page" value="<?php echo esc_attr( $wp_list_table->get_pagination_arg('page') ); ?>" />
<?php if ( isset($_REQUEST['paged']) ) { ?>
<input type="hidden" name="paged" value="<?php echo esc_attr( absint( $_REQUEST['paged'] ) ); ?>" />
<?php } ?>
<?php $wp_list_table->display(); ?>
</form>
<input type="submit" value="<?php _e('Mark as Spam'); ?>" name="spamit" class="button-secondary" />
<?php if ( 'moderated' != $comment_status ): ?>
<input type="submit" value="<?php _e('Unapprove'); ?>" name="unapproveit" class="button-secondary" />
<?php endif; ?>
<input type="submit" value="<?php _e('Delete'); ?>" name="deleteit" class="button-secondary delete" />
<?php do_action('manage_comments_nav', $comment_status); ?>
<?php wp_nonce_field('bulk-comments'); ?>
</div>
<div id="ajax-response"></div>
<br class="clear" />
</div>
<br class="clear" />
<?php
wp_comment_reply('-1', true, 'detail');
wp_comment_trashnotice();
include( ABSPATH . 'wp-admin/admin-footer.php' ); ?>
if ($comments) {
?>
<table class="widefat">
<thead>
<tr>
<th scope="col" class="check-column"><input type="checkbox" onclick="checkAll(document.getElementById('comments-form'));" /></th>
<th scope="col"><?php _e('Comment') ?></th>
<th scope="col"><?php _e('Date') ?></th>
<th scope="col" class="action-links"><?php _e('Actions') ?></th>
</tr>
</thead>
<tbody id="the-comment-list" class="list:comment">
<?php
foreach ($comments as $comment)
_wp_comment_row( $comment->comment_ID, $mode, $comment_status );
?>
</tbody>
<tbody id="the-extra-comment-list" class="list:comment" style="display: none;">
<?php
foreach ($extra_comments as $comment)
_wp_comment_row( $comment->comment_ID, $mode, $comment_status );
?>
</tbody>
</table>
</form>
<form id="get-extra-comments" method="post" action="" class="add:the-extra-comment-list:" style="display: none;">
<input type="hidden" name="s" value="<?php echo $search; ?>" />
<input type="hidden" name="mode" value="<?php echo $mode; ?>" />
<input type="hidden" name="comment_status" value="<?php echo $comment_status; ?>" />
<input type="hidden" name="page" value="<?php echo isset($_REQUEST['page']) ? absint( $_REQUEST['page'] ) : 1; ?>" />
<?php wp_nonce_field( 'add-comment', '_ajax_nonce', false ); ?>
</form>
<div id="ajax-response"></div>
<?php
} elseif ( 'moderated' == $_GET['comment_status'] ) {
?>
<p>
<?php _e('No comments awaiting moderation&hellip; yet.') ?>
</p>
<?php
} else {
?>
<p>
<?php _e('No results found.') ?>
</p>
<?php
}
?>
<div class="tablenav">
<?php
if ( $page_links )
echo "<div class='tablenav-pages'>$page_links</div>";
?>
<br class="clear" />
</div>
</div>
<?php include('admin-footer.php'); ?>

View File

@@ -1,607 +1,352 @@
<?php
/**
* Post advanced form for inclusion in the administration panels.
*
* @package WordPress
* @subpackage Administration
*/
// don't load directly
if ( !defined('ABSPATH') )
die('-1');
wp_enqueue_script('post');
if ( wp_is_mobile() )
wp_enqueue_script( 'jquery-touch-punch' );
/**
* Post ID global
* @name $post_ID
* @var int
*/
$post_ID = isset($post_ID) ? (int) $post_ID : 0;
$user_ID = isset($user_ID) ? (int) $user_ID : 0;
$action = isset($action) ? $action : '';
if ( post_type_supports($post_type, 'editor') || post_type_supports($post_type, 'thumbnail') ) {
add_thickbox();
wp_enqueue_media( array( 'post' => $post_ID ) );
}
// Add the local autosave notice HTML
add_action( 'admin_footer', '_local_storage_notice' );
/*
* @todo Document the $messages array(s).
*/
$messages = array();
$messages['post'] = array(
0 => '', // Unused. Messages start at index 1.
1 => sprintf( __('Post updated. <a href="%s">View post</a>'), esc_url( get_permalink($post_ID) ) ),
2 => __('Custom field updated.'),
3 => __('Custom field deleted.'),
4 => __('Post updated.'),
/* translators: %s: date and time of the revision */
5 => isset($_GET['revision']) ? sprintf( __('Post restored to revision from %s'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
6 => sprintf( __('Post published. <a href="%s">View post</a>'), esc_url( get_permalink($post_ID) ) ),
7 => __('Post saved.'),
8 => sprintf( __('Post submitted. <a target="_blank" href="%s">Preview post</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
9 => sprintf( __('Post scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview post</a>'),
// translators: Publish box date format, see http://php.net/date
date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
10 => sprintf( __('Post draft updated. <a target="_blank" href="%s">Preview post</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
);
$messages['page'] = array(
0 => '', // Unused. Messages start at index 1.
1 => sprintf( __('Page updated. <a href="%s">View page</a>'), esc_url( get_permalink($post_ID) ) ),
2 => __('Custom field updated.'),
3 => __('Custom field deleted.'),
4 => __('Page updated.'),
5 => isset($_GET['revision']) ? sprintf( __('Page restored to revision from %s'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
6 => sprintf( __('Page published. <a href="%s">View page</a>'), esc_url( get_permalink($post_ID) ) ),
7 => __('Page saved.'),
8 => sprintf( __('Page submitted. <a target="_blank" href="%s">Preview page</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
9 => sprintf( __('Page scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview page</a>'), date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
10 => sprintf( __('Page draft updated. <a target="_blank" href="%s">Preview page</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
);
$messages['attachment'] = array_fill( 1, 10, __( 'Media attachment updated.' ) ); // Hack, for now.
/**
* Filter the post updated messages.
*
* @since 3.0.0
*
* @param array $messages Post updated messages. For defaults @see $messages declarations above.
*/
$messages = apply_filters( 'post_updated_messages', $messages );
$message = false;
if ( isset($_GET['message']) ) {
<?php
$action = isset($action)? $action : '';
if ( isset($_GET['message']) )
$_GET['message'] = absint( $_GET['message'] );
if ( isset($messages[$post_type][$_GET['message']]) )
$message = $messages[$post_type][$_GET['message']];
elseif ( !isset($messages[$post_type]) && isset($messages['post'][$_GET['message']]) )
$message = $messages['post'][$_GET['message']];
}
$notice = false;
$form_extra = '';
if ( 'auto-draft' == $post->post_status ) {
if ( 'edit' == $action )
$post->post_title = '';
$autosave = false;
$form_extra .= "<input type='hidden' id='auto_draft' name='auto_draft' value='1' />";
} else {
$autosave = wp_get_post_autosave( $post_ID );
}
$form_action = 'editpost';
$nonce_action = 'update-post_' . $post_ID;
$form_extra .= "<input type='hidden' id='post_ID' name='post_ID' value='" . esc_attr($post_ID) . "' />";
// Detect if there exists an autosave newer than the post and if that autosave is different than the post
if ( $autosave && mysql2date( 'U', $autosave->post_modified_gmt, false ) > mysql2date( 'U', $post->post_modified_gmt, false ) ) {
foreach ( _wp_post_revision_fields() as $autosave_field => $_autosave_field ) {
if ( normalize_whitespace( $autosave->$autosave_field ) != normalize_whitespace( $post->$autosave_field ) ) {
$notice = sprintf( __( 'There is an autosave of this post that is more recent than the version below. <a href="%s">View the autosave</a>' ), get_edit_post_link( $autosave->ID ) );
break;
}
}
// If this autosave isn't different from the current post, begone.
if ( ! $notice )
wp_delete_post_revision( $autosave->ID );
unset($autosave_field, $_autosave_field);
}
$post_type_object = get_post_type_object($post_type);
// All meta boxes should be defined and added before the first do_meta_boxes() call (or potentially during the do_meta_boxes action).
require_once( ABSPATH . 'wp-admin/includes/meta-boxes.php' );
$publish_callback_args = null;
if ( post_type_supports($post_type, 'revisions') && 'auto-draft' != $post->post_status ) {
$revisions = wp_get_post_revisions( $post_ID );
// We should aim to show the revisions metabox only when there are revisions.
if ( count( $revisions ) > 1 ) {
reset( $revisions ); // Reset pointer for key()
$publish_callback_args = array( 'revisions_count' => count( $revisions ), 'revision_id' => key( $revisions ) );
add_meta_box('revisionsdiv', __('Revisions'), 'post_revisions_meta_box', null, 'normal', 'core');
}
}
if ( 'attachment' == $post_type ) {
wp_enqueue_script( 'image-edit' );
wp_enqueue_style( 'imgareaselect' );
add_meta_box( 'submitdiv', __('Save'), 'attachment_submit_meta_box', null, 'side', 'core' );
add_action( 'edit_form_after_title', 'edit_form_image_editor' );
} else {
add_meta_box( 'submitdiv', __( 'Publish' ), 'post_submit_meta_box', null, 'side', 'core', $publish_callback_args );
}
if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post_type, 'post-formats' ) )
add_meta_box( 'formatdiv', _x( 'Format', 'post format' ), 'post_format_meta_box', null, 'side', 'core' );
// all taxonomies
foreach ( get_object_taxonomies( $post ) as $tax_name ) {
$taxonomy = get_taxonomy( $tax_name );
if ( ! $taxonomy->show_ui )
continue;
$label = $taxonomy->labels->name;
if ( ! is_taxonomy_hierarchical( $tax_name ) )
$tax_meta_box_id = 'tagsdiv-' . $tax_name;
else
$tax_meta_box_id = $tax_name . 'div';
add_meta_box( $tax_meta_box_id, $label, $taxonomy->meta_box_cb, null, 'side', 'core', array( 'taxonomy' => $tax_name ) );
}
if ( post_type_supports($post_type, 'page-attributes') )
add_meta_box('pageparentdiv', 'page' == $post_type ? __('Page Attributes') : __('Attributes'), 'page_attributes_meta_box', null, 'side', 'core');
$audio_post_support = $video_post_support = false;
$theme_support = current_theme_supports( 'post-thumbnails', $post_type ) && post_type_supports( $post_type, 'thumbnail' );
if ( 'attachment' === $post_type && ! empty( $post->post_mime_type ) ) {
$audio_post_support = 0 === strpos( $post->post_mime_type, 'audio/' ) && current_theme_supports( 'post-thumbnails', 'attachment:audio' ) && post_type_supports( 'attachment:audio', 'thumbnail' );
$video_post_support = 0 === strpos( $post->post_mime_type, 'video/' ) && current_theme_supports( 'post-thumbnails', 'attachment:video' ) && post_type_supports( 'attachment:video', 'thumbnail' );
}
if ( $theme_support || $audio_post_support || $video_post_support )
add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', null, 'side', 'low');
if ( post_type_supports($post_type, 'excerpt') )
add_meta_box('postexcerpt', __('Excerpt'), 'post_excerpt_meta_box', null, 'normal', 'core');
if ( post_type_supports($post_type, 'trackbacks') )
add_meta_box('trackbacksdiv', __('Send Trackbacks'), 'post_trackback_meta_box', null, 'normal', 'core');
if ( post_type_supports($post_type, 'custom-fields') )
add_meta_box('postcustom', __('Custom Fields'), 'post_custom_meta_box', null, 'normal', 'core');
/**
* Fires in the middle of built-in meta box registration.
*
* @since 2.1.0
* @deprecated 3.7.0 Use 'add_meta_boxes' instead.
*
* @param WP_Post $post Post object.
*/
do_action( 'dbx_post_advanced', $post );
if ( post_type_supports($post_type, 'comments') )
add_meta_box('commentstatusdiv', __('Discussion'), 'post_comment_status_meta_box', null, 'normal', 'core');
if ( ( 'publish' == get_post_status( $post ) || 'private' == get_post_status( $post ) ) && post_type_supports($post_type, 'comments') )
add_meta_box('commentsdiv', __('Comments'), 'post_comment_meta_box', null, 'normal', 'core');
if ( ! ( 'pending' == get_post_status( $post ) && ! current_user_can( $post_type_object->cap->publish_posts ) ) )
add_meta_box('slugdiv', __('Slug'), 'post_slug_meta_box', null, 'normal', 'core');
if ( post_type_supports($post_type, 'author') ) {
if ( is_super_admin() || current_user_can( $post_type_object->cap->edit_others_posts ) )
add_meta_box('authordiv', __('Author'), 'post_author_meta_box', null, 'normal', 'core');
}
/**
* Fires after all built-in meta boxes have been added.
*
* @since 3.0.0
*
* @param string $post_type Post type.
* @param WP_Post $post Post object.
*/
do_action( 'add_meta_boxes', $post_type, $post );
/**
* Fires after all built-in meta boxes have been added, contextually for the given post type.
*
* The dynamic portion of the hook, $post_type, refers to the post type of the post.
*
* @since 3.0.0
*
* @param WP_Post $post Post object.
*/
do_action( 'add_meta_boxes_' . $post_type, $post );
/**
* Fires after meta boxes have been added.
*
* Fires once for each of the default meta box contexts: normal, advanced, and side.
*
* @since 3.0.0
*
* @param string $post_type Post type of the post.
* @param string $context string Meta box context.
* @param WP_Post $post Post object.
*/
do_action( 'do_meta_boxes', $post_type, 'normal', $post );
/** This action is documented in wp-admin/edit-form-advanced.php */
do_action( 'do_meta_boxes', $post_type, 'advanced', $post );
/** This action is documented in wp-admin/edit-form-advanced.php */
do_action( 'do_meta_boxes', $post_type, 'side', $post );
add_screen_option('layout_columns', array('max' => 2, 'default' => 2) );
if ( 'post' == $post_type ) {
$customize_display = '<p>' . __('The title field and the big Post Editing Area are fixed in place, but you can reposition all the other boxes using drag and drop. You can also minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.') . '</p>';
get_current_screen()->add_help_tab( array(
'id' => 'customize-display',
'title' => __('Customizing This Display'),
'content' => $customize_display,
) );
$title_and_editor = '<p>' . __('<strong>Title</strong> - Enter a title for your post. After you enter a title, you&#8217;ll see the permalink below, which you can edit.') . '</p>';
$title_and_editor .= '<p>' . __('<strong>Post editor</strong> - Enter the text for your post. There are two modes of editing: Visual and Text. Choose the mode by clicking on the appropriate tab. Visual mode gives you a WYSIWYG editor. Click the last icon in the row to get a second row of controls. The Text mode allows you to enter HTML along with your post text. Line breaks will be converted to paragraphs automatically. You can insert media files by clicking the icons above the post editor and following the directions. You can go to the distraction-free writing screen via the Fullscreen icon in Visual mode (second to last in the top row) or the Fullscreen button in Text mode (last in the row). Once there, you can make buttons visible by hovering over the top area. Exit Fullscreen back to the regular post editor.') . '</p>';
get_current_screen()->add_help_tab( array(
'id' => 'title-post-editor',
'title' => __('Title and Post Editor'),
'content' => $title_and_editor,
) );
get_current_screen()->set_help_sidebar(
'<p>' . sprintf(__('You can also create posts with the <a href="%s">Press This bookmarklet</a>.'), 'options-writing.php') . '</p>' .
'<p><strong>' . __('For more information:') . '</strong></p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Posts_Add_New_Screen" target="_blank">Documentation on Writing and Editing Posts</a>') . '</p>' .
'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
);
} elseif ( 'page' == $post_type ) {
$about_pages = '<p>' . __('Pages are similar to Posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest Pages under other Pages by making one the &#8220;Parent&#8221; of the other, creating a group of Pages.') . '</p>' .
'<p>' . __('Creating a Page is very similar to creating a Post, and the screens can be customized in the same way using drag and drop, the Screen Options tab, and expanding/collapsing boxes as you choose. This screen also has the distraction-free writing space, available in both the Visual and Text modes via the Fullscreen buttons. The Page editor mostly works the same as the Post editor, but there are some Page-specific features in the Page Attributes box:') . '</p>';
get_current_screen()->add_help_tab( array(
'id' => 'about-pages',
'title' => __('About Pages'),
'content' => $about_pages,
) );
get_current_screen()->set_help_sidebar(
'<p><strong>' . __('For more information:') . '</strong></p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Pages_Add_New_Screen" target="_blank">Documentation on Adding New Pages</a>') . '</p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Pages_Screen#Editing_Individual_Pages" target="_blank">Documentation on Editing Pages</a>') . '</p>' .
'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
);
} elseif ( 'attachment' == $post_type ) {
get_current_screen()->add_help_tab( array(
'id' => 'overview',
'title' => __('Overview'),
'content' =>
'<p>' . __('This screen allows you to edit four fields for metadata in a file within the media library.') . '</p>' .
'<p>' . __('For images only, you can click on Edit Image under the thumbnail to expand out an inline image editor with icons for cropping, rotating, or flipping the image as well as for undoing and redoing. The boxes on the right give you more options for scaling the image, for cropping it, and for cropping the thumbnail in a different way than you crop the original image. You can click on Help in those boxes to get more information.') . '</p>' .
'<p>' . __('Note that you crop the image by clicking on it (the Crop icon is already selected) and dragging the cropping frame to select the desired part. Then click Save to retain the cropping.') . '</p>' .
'<p>' . __('Remember to click Update Media to save metadata entered or changed.') . '</p>'
) );
get_current_screen()->set_help_sidebar(
'<p><strong>' . __('For more information:') . '</strong></p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Media_Add_New_Screen#Edit_Media" target="_blank">Documentation on Edit Media</a>') . '</p>' .
'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
);
}
if ( 'post' == $post_type || 'page' == $post_type ) {
$inserting_media = '<p>' . __( 'You can upload and insert media (images, audio, documents, etc.) by clicking the Add Media button. You can select from the images and files already uploaded to the Media Library, or upload new media to add to your page or post. To create an image gallery, select the images to add and click the &#8220;Create a new gallery&#8221; button.' ) . '</p>';
$inserting_media .= '<p>' . __( 'You can also embed media from many popular websites including Twitter, YouTube, Flickr and others by pasting the media URL on its own line into the content of your post/page. Please refer to the Codex to <a href="http://codex.wordpress.org/Embeds">learn more about embeds</a>.' ) . '</p>';
get_current_screen()->add_help_tab( array(
'id' => 'inserting-media',
'title' => __( 'Inserting Media' ),
'content' => $inserting_media,
) );
}
if ( 'post' == $post_type ) {
$publish_box = '<p>' . __('Several boxes on this screen contain settings for how your content will be published, including:') . '</p>';
$publish_box .= '<ul><li>' . __('<strong>Publish</strong> - You can set the terms of publishing your post in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a post or making it stay at the top of your blog indefinitely (sticky). Publish (immediately) allows you to set a future or past date and time, so you can schedule a post to be published in the future or backdate a post.') . '</li>';
if ( current_theme_supports( 'post-formats' ) && post_type_supports( 'post', 'post-formats' ) ) {
$publish_box .= '<li>' . __( '<strong>Format</strong> - Post Formats designate how your theme will display a specific post. For example, you could have a <em>standard</em> blog post with a title and paragraphs, or a short <em>aside</em> that omits the title and contains a short text blurb. Please refer to the Codex for <a href="http://codex.wordpress.org/Post_Formats#Supported_Formats">descriptions of each post format</a>. Your theme could enable all or some of 10 possible formats.' ) . '</li>';
}
if ( current_theme_supports( 'post-thumbnails' ) && post_type_supports( 'post', 'thumbnail' ) ) {
$publish_box .= '<li>' . __('<strong>Featured Image</strong> - This allows you to associate an image with your post without inserting it. This is usually useful only if your theme makes use of the featured image as a post thumbnail on the home page, a custom header, etc.') . '</li>';
}
$publish_box .= '</ul>';
get_current_screen()->add_help_tab( array(
'id' => 'publish-box',
'title' => __('Publish Settings'),
'content' => $publish_box,
) );
$discussion_settings = '<p>' . __('<strong>Send Trackbacks</strong> - Trackbacks are a way to notify legacy blog systems that you&#8217;ve linked to them. Enter the URL(s) you want to send trackbacks. If you link to other WordPress sites they&#8217;ll be notified automatically using pingbacks, and this field is unnecessary.') . '</p>';
$discussion_settings .= '<p>' . __('<strong>Discussion</strong> - You can turn comments and pings on or off, and if there are comments on the post, you can see them here and moderate them.') . '</p>';
get_current_screen()->add_help_tab( array(
'id' => 'discussion-settings',
'title' => __('Discussion Settings'),
'content' => $discussion_settings,
) );
} elseif ( 'page' == $post_type ) {
$page_attributes = '<p>' . __('<strong>Parent</strong> - You can arrange your pages in hierarchies. For example, you could have an &#8220;About&#8221; page that has &#8220;Life Story&#8221; and &#8220;My Dog&#8221; pages under it. There are no limits to how many levels you can nest pages.') . '</p>' .
'<p>' . __('<strong>Template</strong> - Some themes have custom templates you can use for certain pages that might have additional features or custom layouts. If so, you&#8217;ll see them in this dropdown menu.') . '</p>' .
'<p>' . __('<strong>Order</strong> - Pages are usually ordered alphabetically, but you can choose your own order by entering a number (1 for first, etc.) in this field.') . '</p>';
get_current_screen()->add_help_tab( array(
'id' => 'page-attributes',
'title' => __('Page Attributes'),
'content' => $page_attributes,
) );
}
require_once( ABSPATH . 'wp-admin/admin-header.php' );
$messages[1] = sprintf( __( 'Post updated. Continue editing below or <a href="%s">go back</a>.' ), attribute_escape( stripslashes( $_GET['_wp_original_http_referer'] ) ) );
$messages[2] = __('Custom field updated.');
$messages[3] = __('Custom field deleted.');
$messages[4] = __('Post updated.');
?>
<?php if (isset($_GET['message'])) : ?>
<div id="message" class="updated fade"><p><?php echo $messages[$_GET['message']]; ?></p></div>
<?php endif; ?>
<form name="post" action="post.php" method="post" id="post">
<?php if ( (isset($mode) && 'bookmarklet' == $mode) || isset($_GET['popupurl']) ): ?>
<input type="hidden" name="mode" value="bookmarklet" />
<?php endif; ?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php
echo esc_html( $title );
if ( isset( $post_new_file ) && current_user_can( $post_type_object->cap->create_posts ) )
echo ' <a href="' . esc_url( admin_url( $post_new_file ) ) . '" class="add-new-h2">' . esc_html( $post_type_object->labels->add_new ) . '</a>';
?></h2>
<?php if ( $notice ) : ?>
<div id="notice" class="error"><p id="has-newer-autosave"><?php echo $notice ?></p></div>
<?php endif; ?>
<?php if ( $message ) : ?>
<div id="message" class="updated"><p><?php echo $message; ?></p></div>
<?php endif; ?>
<div id="lost-connection-notice" class="error hidden">
<p><span class="spinner"></span> <?php _e( '<strong>Connection lost.</strong> Saving has been disabled until you&#8217;re reconnected.' ); ?>
<span class="hide-if-no-sessionstorage"><?php _e( 'We&#8217;re backing up this post in your browser, just in case.' ); ?></span>
</p>
</div>
<?php
/**
* Fires inside the post editor <form> tag.
*
* @since 3.0.0
*
* @param WP_Post $post Post object.
*/
?>
<form name="post" action="post.php" method="post" id="post"<?php do_action( 'post_edit_form_tag', $post ); ?>>
<?php wp_nonce_field($nonce_action); ?>
<input type="hidden" id="user-id" name="user_ID" value="<?php echo (int) $user_ID ?>" />
<input type="hidden" id="hiddenaction" name="action" value="<?php echo esc_attr( $form_action ) ?>" />
<input type="hidden" id="originalaction" name="originalaction" value="<?php echo esc_attr( $form_action ) ?>" />
<input type="hidden" id="post_author" name="post_author" value="<?php echo esc_attr( $post->post_author ); ?>" />
<input type="hidden" id="post_type" name="post_type" value="<?php echo esc_attr( $post_type ) ?>" />
<input type="hidden" id="original_post_status" name="original_post_status" value="<?php echo esc_attr( $post->post_status) ?>" />
<input type="hidden" id="referredby" name="referredby" value="<?php echo esc_url(wp_get_referer()); ?>" />
<?php if ( ! empty( $active_post_lock ) ) { ?>
<input type="hidden" id="active_post_lock" value="<?php echo esc_attr( implode( ':', $active_post_lock ) ); ?>" />
<h2><?php _e('Write Post') ?></h2>
<?php
if (!isset($post_ID) || 0 == $post_ID) {
$form_action = 'post';
$temp_ID = -1 * time(); // don't change this formula without looking at wp_write_post()
$form_extra = "<input type='hidden' id='post_ID' name='temp_ID' value='$temp_ID' />";
wp_nonce_field('add-post');
} else {
$post_ID = (int) $post_ID;
$form_action = 'editpost';
$form_extra = "<input type='hidden' id='post_ID' name='post_ID' value='$post_ID' />";
wp_nonce_field('update-post_' . $post_ID);
}
if ( 'draft' != get_post_status( $post ) )
wp_original_referer_field(true, 'previous');
echo $form_extra;
$form_pingback = '<input type="hidden" name="post_pingback" value="' . (int) get_option('default_pingback_flag') . '" id="post_pingback" />';
$form_prevstatus = '<input type="hidden" name="prev_status" value="' . attribute_escape( $post->post_status ) . '" />';
$form_trackback = '<input type="text" name="trackback_url" style="width: 415px" id="trackback" tabindex="7" value="'. attribute_escape( str_replace("\n", ' ', $post->to_ping) ) .'" />';
if ('' != $post->pinged) {
$pings = '<p>'. __('Already pinged:') . '</p><ul>';
$already_pinged = explode("\n", trim($post->pinged));
foreach ($already_pinged as $pinged_url) {
$pings .= "\n\t<li>" . wp_specialchars($pinged_url) . "</li>";
}
$pings .= '</ul>';
}
$saveasdraft = '<input name="save" type="submit" id="save" class="button" tabindex="3" value="' . attribute_escape( __('Save and Continue Editing') ) . '" />';
wp_nonce_field( 'autosave', 'autosavenonce', false );
wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false );
wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
?>
<?php
/**
* Fires at the beginning of the edit form.
*
* At this point, the required hidden fields and nonces have already been output.
*
* @since 3.7.0
*
* @param WP_Post $post Post object.
*/
do_action( 'edit_form_top', $post ); ?>
<input type="hidden" id="user-id" name="user_ID" value="<?php echo (int) $user_ID ?>" />
<input type="hidden" id="hiddenaction" name="action" value="<?php echo $form_action ?>" />
<input type="hidden" id="originalaction" name="originalaction" value="<?php echo $form_action ?>" />
<input type="hidden" id="post_author" name="post_author" value="<?php echo attribute_escape( $post->post_author ); ?>" />
<input type="hidden" id="post_type" name="post_type" value="<?php echo $post->post_type ?>" />
<input type="hidden" id="original_post_status" name="original_post_status" value="<?php echo $post->post_status ?>" />
<input name="referredby" type="hidden" id="referredby" value="<?php
if ( !empty($_REQUEST['popupurl']) )
echo clean_url(stripslashes($_REQUEST['popupurl']));
else if ( strpos( wp_get_referer(), '/wp-admin/' ) === false && $post_ID && url_to_postid(wp_get_referer()) === $post_ID )
echo 'redo';
else
echo clean_url(stripslashes(wp_get_referer()));
?>" />
<?php if ( 'draft' != $post->post_status ) wp_original_referer_field(true, 'previous'); ?>
<?php echo $form_extra ?>
<div id="poststuff">
<div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_columns() ? '1' : '2'; ?>">
<div id="post-body-content">
<?php if ( post_type_supports($post_type, 'title') ) { ?>
<div class="submitbox" id="submitpost">
<div id="previewview">
<?php if ( 'publish' == $post->post_status ) { ?>
<a href="<?php echo clean_url(get_permalink($post->ID)); ?>" target="_blank" tabindex="4"><?php _e('View this Post'); ?></a>
<?php } elseif ( 'edit' == $action ) { ?>
<a href="<?php echo clean_url(apply_filters('preview_post_link', add_query_arg('preview', 'true', get_permalink($post->ID)))); ?>" target="_blank" tabindex="4"><?php _e('Preview this Post'); ?></a>
<?php } ?>
</div>
<div class="inside">
<p><strong><?php _e('Publish Status') ?></strong></p>
<p>
<select name='post_status' tabindex='4'>
<?php if ( current_user_can('publish_posts') ) : // Contributors only get "Unpublished" and "Pending Review" ?>
<option<?php selected( $post->post_status, 'publish' ); selected( $post->post_status, 'private' );?> value='publish'><?php _e('Published') ?></option>
<?php if ( 'future' == $post->post_status ) : ?>
<option<?php selected( $post->post_status, 'future' ); ?> value='future'><?php _e('Scheduled') ?></option>
<?php endif; ?>
<?php endif; ?>
<option<?php selected( $post->post_status, 'pending' ); ?> value='pending'><?php _e('Pending Review') ?></option>
<option<?php selected( $post->post_status, 'draft' ); ?> value='draft'><?php _e('Unpublished') ?></option>
</select>
</p>
<?php if ( current_user_can( 'publish_posts' ) ) : ?>
<p><label for="post_status_private" class="selectit"><input id="post_status_private" name="post_status" type="checkbox" value="private" <?php checked($post->post_status, 'private'); ?> tabindex="4" /> <?php _e('Keep this post private') ?></label></p>
<?php endif; ?>
<?php
if ($post_ID) {
if ( 'future' == $post->post_status ) { // scheduled for publishing at a future date
$stamp = __('Scheduled for:<br />%1$s at %2$s');
} else if ( 'publish' == $post->post_status ) { // already published
$stamp = __('Published on:<br />%1$s at %2$s');
} else if ( '0000-00-00 00:00:00' == $post->post_date ) { // draft, 1 or more saves, no date specified
$stamp = __('Publish immediately');
} else { // draft, 1 or more saves, date specified
$stamp = __('Publish on:<br />%1$s at %2$s');
}
$date = mysql2date(get_option('date_format'), $post->post_date);
$time = mysql2date(get_option('time_format'), $post->post_date);
} else { // draft (no saves, and thus no date specified)
$stamp = __('Publish immediately');
$date = mysql2date(get_option('date_format'), current_time('mysql'));
$time = mysql2date(get_option('time_format'), current_time('mysql'));
}
?>
<?php if ( current_user_can( 'publish_posts' ) ) : // Contributors don't get to choose the date of publish ?>
<p class="curtime"><?php printf($stamp, $date, $time); ?>
&nbsp;<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js" tabindex='4'><?php _e('Edit') ?></a></p>
<div id='timestampdiv' class='hide-if-js'><?php touch_time(($action == 'edit'),1,4); ?></div>
<?php endif; ?>
</div>
<p class="submit">
<input type="submit" name="save" id="save-post" value="<?php _e('Save'); ?>" tabindex="4" class="button button-highlighted" />
<?php
if ( !in_array( $post->post_status, array('publish', 'future') ) || 0 == $post_ID ) {
?>
<?php if ( current_user_can('publish_posts') ) : ?>
<input name="publish" type="submit" class="button" id="publish" tabindex="5" accesskey="p" value="<?php _e('Publish') ?>" />
<?php else : ?>
<input name="publish" type="submit" class="button" id="publish" tabindex="5" accesskey="p" value="<?php _e('Submit for Review') ?>" />
<?php endif; ?>
<?php
}
if ( ( 'edit' == $action) && current_user_can('delete_post', $post_ID) )
echo "<a class='submitdelete' href='" . wp_nonce_url("post.php?action=delete&amp;post=$post_ID", 'delete-post_' . $post_ID) . "' onclick=\"if ( confirm('" . js_escape(sprintf( ('draft' == $post->post_status) ? __("You are about to delete this draft '%s'\n 'Cancel' to stop, 'OK' to delete.") : __("You are about to delete this post '%s'\n 'Cancel' to stop, 'OK' to delete."), $post->post_title )) . "') ) { return true;}return false;\">" . __('Delete&nbsp;post') . "</a>";
?>
<br class="clear" />
<?php if ($post_ID): ?>
<?php if ( $last_id = get_post_meta($post_ID, '_edit_last', true) ) {
$last_user = get_userdata($last_id);
printf(__('Last edited by %1$s on %2$s at %3$s'), wp_specialchars( $last_user->display_name ), mysql2date(get_option('date_format'), $post->post_modified), mysql2date(get_option('time_format'), $post->post_modified));
} else {
printf(__('Last edited on %1$s at %2$s'), mysql2date(get_option('date_format'), $post->post_modified), mysql2date(get_option('time_format'), $post->post_modified));
}
?>
<br class="clear" />
<?php endif; ?>
<span id="autosave"></span>
</p>
<div class="side-info">
<h5><?php _e('Related') ?></h5>
<ul>
<?php if ($post_ID): ?>
<li><a href="edit.php?p=<?php echo $post_ID ?>"><?php _e('See Comments on this Post') ?></a></li>
<?php endif; ?>
<li><a href="edit-comments.php"><?php _e('Manage All Comments') ?></a></li>
<li><a href="edit.php"><?php _e('Manage All Posts') ?></a></li>
<li><a href="categories.php"><?php _e('Manage All Categories') ?></a></li>
<li><a href="edit-tags.php"><?php _e('Manage All Tags') ?></a></li>
<li><a href="edit.php?post_status=draft"><?php _e('View Drafts'); ?></a></li>
<?php do_action('post_relatedlinks_list'); ?>
</ul>
</div>
<?php do_action('submitpost_box'); ?>
</div>
<div id="post-body">
<div id="titlediv">
<h3><?php _e('Title') ?></h3>
<div id="titlewrap">
<?php
/**
* Filter the title field placeholder text.
*
* @since 3.1.0
*
* @param string $text Placeholder text. Default 'Enter title here'.
* @param WP_Post $post Post object.
*/
?>
<label class="screen-reader-text" id="title-prompt-text" for="title"><?php echo apply_filters( 'enter_title_here', __( 'Enter title here' ), $post ); ?></label>
<input type="text" name="post_title" size="30" value="<?php echo esc_attr( htmlspecialchars( $post->post_title ) ); ?>" id="title" autocomplete="off" />
<input type="text" name="post_title" size="30" tabindex="1" value="<?php echo attribute_escape($post->post_title); ?>" id="title" autocomplete="off" />
</div>
<div class="inside">
<?php
$sample_permalink_html = $post_type_object->public ? get_sample_permalink_html($post->ID) : '';
$shortlink = wp_get_shortlink($post->ID, 'post');
$permalink = get_permalink( $post->ID );
if ( !empty( $shortlink ) && $shortlink !== $permalink && $permalink !== home_url('?page_id=' . $post->ID) )
$sample_permalink_html .= '<input id="shortlink" type="hidden" value="' . esc_attr($shortlink) . '" /><a href="#" class="button button-small" onclick="prompt(&#39;URL:&#39;, jQuery(\'#shortlink\').val()); return false;">' . __('Get Shortlink') . '</a>';
if ( $post_type_object->public && ! ( 'pending' == get_post_status( $post ) && !current_user_can( $post_type_object->cap->publish_posts ) ) ) {
$has_sample_permalink = $sample_permalink_html && 'auto-draft' != $post->post_status;
?>
<div id="edit-slug-box" class="hide-if-no-js">
<?php
if ( $has_sample_permalink )
echo $sample_permalink_html;
?>
<?php $sample_permalink_html = get_sample_permalink_html($post->ID); ?>
<div id="edit-slug-box">
<?php if ( ! empty($post->ID) && ! empty($sample_permalink_html) ) :
echo $sample_permalink_html;
endif; ?>
</div>
<?php
}
?>
</div>
<?php
wp_nonce_field( 'samplepermalink', 'samplepermalinknonce', false );
?>
</div><!-- /titlediv -->
<?php
}
/**
* Fires after the title field.
*
* @since 3.5.0
*
* @param WP_Post $post Post object.
*/
do_action( 'edit_form_after_title', $post );
</div>
if ( post_type_supports($post_type, 'editor') ) {
?>
<div id="postdivrich" class="postarea edit-form-section">
<div id="<?php echo user_can_richedit() ? 'postdivrich' : 'postdiv'; ?>" class="postarea">
<h3><?php _e('Post') ?></h3>
<?php the_editor($post->post_content); ?>
<?php wp_nonce_field( 'autosave', 'autosavenonce', false ); ?>
<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
<?php wp_nonce_field( 'getpermalink', 'getpermalinknonce', false ); ?>
<?php wp_nonce_field( 'samplepermalink', 'samplepermalinknonce', false ); ?>
</div>
<?php wp_editor( $post->post_content, 'content', array(
'dfw' => true,
'tabfocus_elements' => 'insert-media-button,save-post',
'editor_height' => 360,
) ); ?>
<table id="post-status-info" cellspacing="0"><tbody><tr>
<td id="wp-word-count"><?php printf( __( 'Word count: %s' ), '<span class="word-count">0</span>' ); ?></td>
<td class="autosave-info">
<span class="autosave-message">&nbsp;</span>
<?php
if ( 'auto-draft' != $post->post_status ) {
echo '<span id="last-edit">';
if ( $last_user = get_userdata( get_post_meta( $post_ID, '_edit_last', true ) ) ) {
printf(__('Last edited by %1$s on %2$s at %3$s'), esc_html( $last_user->display_name ), mysql2date(get_option('date_format'), $post->post_modified), mysql2date(get_option('time_format'), $post->post_modified));
} else {
printf(__('Last edited on %1$s at %2$s'), mysql2date(get_option('date_format'), $post->post_modified), mysql2date(get_option('time_format'), $post->post_modified));
}
echo '</span>';
} ?>
</td>
</tr></tbody></table>
<?php echo $form_pingback ?>
<?php echo $form_prevstatus ?>
<div id="tagsdiv" class="postbox <?php echo postbox_classes('tagsdiv', 'post'); ?>">
<h3><?php _e('Tags'); ?></h3>
<div class="inside">
<p id="jaxtag"><input type="text" name="tags_input" class="tags-input" id="tags-input" size="40" tabindex="3" value="<?php echo get_tags_to_edit( $post_ID ); ?>" /></p>
<div id="tagchecklist"></div>
</div>
</div>
<div id="categorydiv" class="postbox <?php echo postbox_classes('categorydiv', 'post'); ?>">
<h3><?php _e('Categories') ?></h3>
<div class="inside">
<div id="category-adder" class="wp-hidden-children">
<h4><a id="category-add-toggle" href="#category-add" class="hide-if-no-js" tabindex="3"><?php _e( '+ Add New Category' ); ?></a></h4>
<p id="category-add" class="wp-hidden-child">
<input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" tabindex="3" />
<?php wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?>
<input type="button" id="category-add-sumbit" class="add:categorychecklist:category-add button" value="<?php _e( 'Add' ); ?>" tabindex="3" />
<?php wp_nonce_field( 'add-category', '_ajax_nonce', false ); ?>
<span id="category-ajax-response"></span>
</p>
</div>
<ul id="category-tabs">
<li class="ui-tabs-selected"><a href="#categories-all" tabindex="3"><?php _e( 'All Categories' ); ?></a></li>
<li class="wp-no-js-hidden"><a href="#categories-pop" tabindex="3"><?php _e( 'Most Used' ); ?></a></li>
</ul>
<div id="categories-pop" class="ui-tabs-panel" style="display: none;">
<ul id="categorychecklist-pop" class="categorychecklist form-no-clear" >
<?php $popular_ids = wp_popular_terms_checklist('category'); ?>
</ul>
</div>
<div id="categories-all" class="ui-tabs-panel">
<ul id="categorychecklist" class="list:category categorychecklist form-no-clear">
<?php wp_category_checklist($post_ID) ?>
</ul>
</div>
</div>
<?php }
/**
* Fires after the content editor.
*
* @since 3.5.0
*
* @param WP_Post $post Post object.
*/
do_action( 'edit_form_after_editor', $post );
?>
</div><!-- /post-body-content -->
</div>
<div id="postbox-container-1" class="postbox-container">
<?php do_meta_boxes('post', 'normal', $post); ?>
<?php do_action('edit_form_advanced'); ?>
<h2><?php _e('Advanced Options'); ?></h2>
<div id="postexcerpt" class="postbox <?php echo postbox_classes('postexcerpt', 'post'); ?>">
<h3><?php _e('Excerpt') ?></h3>
<div class="inside"><textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt"><?php echo $post->post_excerpt ?></textarea>
<p><?php _e('Excerpts are optional hand-crafted summaries of your content. You can <a href="http://codex.wordpress.org/Template_Tags/the_excerpt" target="_blank">use them in your template</a>'); ?></p>
</div>
</div>
<div id="trackbacksdiv" class="postbox <?php echo postbox_classes('trackbacksdiv', 'post'); ?>">
<h3><?php _e('Trackbacks') ?></h3>
<div class="inside">
<p><?php _e('Send trackbacks to:'); ?> <?php echo $form_trackback; ?><br /> (<?php _e('Separate multiple URLs with spaces'); ?>)</p>
<p><?php _e('Trackbacks are a way to notify legacy blog systems that you&#8217;ve linked to them. If you link other WordPress blogs they&#8217;ll be notified automatically using <a href="http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments" target="_blank">pingbacks</a>, no other action necessary.'); ?></p>
<?php
if ( 'page' == $post_type ) {
/**
* Fires before meta boxes with 'side' context are output for the 'page' post type.
*
* The submitpage box is a meta box with 'side' context, so this hook fires just before it is output.
*
* @since 2.5.0
*
* @param WP_Post $post Post object.
*/
do_action( 'submitpage_box', $post );
}
else {
/**
* Fires before meta boxes with 'side' context are output for all post types other than 'page'.
*
* The submitpost box is a meta box with 'side' context, so this hook fires just before it is output.
*
* @since 2.5.0
*
* @param WP_Post $post Post object.
*/
do_action( 'submitpost_box', $post );
}
do_meta_boxes($post_type, 'side', $post);
if ( ! empty($pings) )
echo $pings;
?>
</div>
<div id="postbox-container-2" class="postbox-container">
<?php
do_meta_boxes(null, 'normal', $post);
if ( 'page' == $post_type ) {
/**
* Fires after 'normal' context meta boxes have been output for the 'page' post type.
*
* @since 1.5.2
*
* @param WP_Post $post Post object.
*/
do_action( 'edit_page_form', $post );
}
else {
/**
* Fires after 'normal' context meta boxes have been output for all post types other than 'page'.
*
* @since 1.5.2
*
* @param WP_Post $post Post object.
*/
do_action( 'edit_form_advanced', $post );
}
do_meta_boxes(null, 'advanced', $post);
?>
</div>
<?php
/**
* Fires after all meta box sections have been output, before the closing #post-body div.
*
* @since 2.1.0
*
* @param WP_Post $post Post object.
*/
do_action( 'dbx_post_sidebar', $post );
<div id="postcustom" class="postbox <?php echo postbox_classes('postcustom', 'post'); ?>">
<h3><?php _e('Custom Fields') ?></h3>
<div class="inside">
<div id="postcustomstuff">
<table cellpadding="3">
<?php
$metadata = has_meta($post_ID);
list_meta($metadata);
?>
</div><!-- /post-body -->
<br class="clear" />
</div><!-- /poststuff -->
</table>
<?php
meta_form();
?>
<div id="ajax-response"></div>
</div>
<p><?php _e('Custom fields can be used to add extra metadata to a post that you can <a href="http://codex.wordpress.org/Using_Custom_Fields" target="_blank">use in your theme</a>.'); ?></p>
</div>
</div>
<?php do_action('dbx_post_advanced'); ?>
<div id="commentstatusdiv" class="postbox <?php echo postbox_classes('commentstatusdiv', 'post'); ?>">
<h3><?php _e('Comments &amp; Pings') ?></h3>
<div class="inside">
<input name="advanced_view" type="hidden" value="1" />
<p><label for="comment_status" class="selectit">
<input name="comment_status" type="checkbox" id="comment_status" value="open" <?php checked($post->comment_status, 'open'); ?> />
<?php _e('Allow Comments') ?></label></p>
<p><label for="ping_status" class="selectit"><input name="ping_status" type="checkbox" id="ping_status" value="open" <?php checked($post->ping_status, 'open'); ?> /> <?php _e('Allow Pings') ?></label></p>
<p><?php _e('These settings apply to this post only. &#8220;Pings&#8221; are <a href="http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments" target="_blank">trackbacks and pingbacks</a>.'); ?></p>
</div>
</div>
<div id="passworddiv" class="postbox <?php echo postbox_classes('passworddiv', 'post'); ?>">
<h3><?php _e('Password Protect This Post') ?></h3>
<div class="inside">
<p><input name="post_password" type="text" size="25" id="post_password" value="<?php echo attribute_escape( $post->post_password ); ?>" /></p>
<p><?php _e('Setting a password will require people who visit your blog to enter the above password to view this post and its comments.'); ?></p>
</div>
</div>
<div id="slugdiv" class="postbox <?php echo postbox_classes('slugdiv', 'post'); ?>">
<h3><?php _e('Post Slug') ?></h3>
<div class="inside">
<input name="post_name" type="text" size="13" id="post_name" value="<?php echo attribute_escape( $post->post_name ); ?>" />
</div>
</div>
<?php
$authors = get_editable_user_ids( $current_user->id ); // TODO: ROLE SYSTEM
if ( $post->post_author && !in_array($post->post_author, $authors) )
$authors[] = $post->post_author;
if ( $authors && count( $authors ) > 1 ) :
?>
<div id="authordiv" class="postbox <?php echo postbox_classes('authordiv', 'post'); ?>">
<h3><?php _e('Post Author'); ?></h3>
<div class="inside">
<?php wp_dropdown_users( array('include' => $authors, 'name' => 'post_author_override', 'selected' => empty($post_ID) ? $user_ID : $post->post_author) ); ?>
</div>
</div>
<?php endif; ?>
<?php do_meta_boxes('post', 'advanced', $post); ?>
<?php do_action('dbx_post_sidebar'); ?>
</div>
</div>
</div>
</form>
</div>
<?php
if ( post_type_supports( $post_type, 'comments' ) )
wp_comment_reply();
?>
<?php if ( post_type_supports( $post_type, 'title' ) && '' === $post->post_title ) : ?>
<?php if ((isset($post->post_title) && '' == $post->post_title) || (isset($_GET['message']) && 2 > $_GET['message'])) : ?>
<script type="text/javascript">
try{document.post.title.focus();}catch(e){}
</script>

View File

@@ -1,150 +1,106 @@
<?php
/**
* Edit comment form for inclusion in another file.
*
* @package WordPress
* @subpackage Administration
*/
// don't load directly
if ( !defined('ABSPATH') )
die('-1');
$submitbutton_text = __('Edit Comment');
$toprow_title = sprintf(__('Editing Comment # %s'), $comment->comment_ID);
$form_action = 'editedcomment';
$form_extra = "' />\n<input type='hidden' name='comment_ID' value='" . $comment->comment_ID . "' />\n<input type='hidden' name='comment_post_ID' value='" . $comment->comment_post_ID;
?>
<form name="post" action="comment.php" method="post" id="post">
<?php wp_nonce_field('update-comment_' . $comment->comment_ID) ?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php _e('Edit Comment'); ?></h2>
<h2><?php echo $toprow_title; ?></h2>
<input type="hidden" name="user_ID" value="<?php echo (int) $user_ID ?>" />
<input type="hidden" name="action" value='<?php echo $form_action . $form_extra ?>' />
<div id="poststuff">
<input type="hidden" name="user_ID" value="<?php echo (int) $user_ID; ?>" />
<input type="hidden" name="action" value="editedcomment" />
<input type="hidden" name="comment_ID" value="<?php echo esc_attr( $comment->comment_ID ); ?>" />
<input type="hidden" name="comment_post_ID" value="<?php echo esc_attr( $comment->comment_post_ID ); ?>" />
<div id="post-body" class="metabox-holder columns-2">
<div id="post-body-content" class="edit-form-section">
<div id="namediv" class="stuffbox">
<h3><label for="name"><?php _e( 'Author' ) ?></label></h3>
<div class="submitbox" id="submitcomment">
<div id="previewview">
<a href="<?php echo get_comment_link(); ?>" target="_blank"><?php _e('View this Comment'); ?></a>
</div>
<div class="inside">
<table class="form-table editcomment">
<tbody>
<tr valign="top">
<td class="first"><?php _e( 'Name:' ); ?></td>
<td><input type="text" name="newcomment_author" size="30" value="<?php echo esc_attr( $comment->comment_author ); ?>" id="name" /></td>
</tr>
<tr valign="top">
<td class="first">
<?php
if ( $comment->comment_author_email ) {
printf( __( 'E-mail (%s):' ), get_comment_author_email_link( __( 'send e-mail' ), '', '' ) );
} else {
_e( 'E-mail:' );
}
?></td>
<td><input type="text" name="newcomment_author_email" size="30" value="<?php echo $comment->comment_author_email; ?>" id="email" /></td>
</tr>
<tr valign="top">
<td class="first">
<?php
if ( ! empty( $comment->comment_author_url ) && 'http://' != $comment->comment_author_url ) {
$link = '<a href="' . $comment->comment_author_url . '" rel="external nofollow" target="_blank">' . __('visit site') . '</a>';
printf( __( 'URL (%s):' ), apply_filters('get_comment_author_link', $link ) );
} else {
_e( 'URL:' );
} ?></td>
<td><input type="text" id="newcomment_author_url" name="newcomment_author_url" size="30" class="code" value="<?php echo esc_attr($comment->comment_author_url); ?>" /></td>
</tr>
</tbody>
</table>
<br />
<p><strong><?php _e('Approval Status') ?></strong></p>
<p>
<select name='comment_status'>
<option<?php selected( $comment->comment_approved, '1' ); ?> value='1'><?php _e('Approved') ?></option>
<option<?php selected( $comment->comment_approved, '0' ); ?> value='0'><?php _e('Moderated') ?></option>
<option<?php selected( $comment->comment_approved, 'spam' ); ?> value='spam'><?php _e('Spam') ?></option>
</select>
</p>
<?php
$stamp = __('%1$s at %2$s');
$date = mysql2date(get_option('date_format'), $comment->comment_date);
$time = mysql2date(get_option('time_format'), $comment->comment_date);
?>
<p class="curtime"><?php printf($stamp, $date, $time); ?>
&nbsp;<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js"><?php _e('Edit') ?></a></p>
<div id='timestampdiv' class='hide-if-js'><?php touch_time(('editcomment' == $action), 0, 5); ?></div>
</div>
<p class="submit">
<input type="submit" name="save" value="<?php _e('Save'); ?>" tabindex="4" class="button button-highlighted" />
<?php
echo "<a class='submitdelete' href='" . wp_nonce_url("comment.php?action=deletecomment&amp;c=$comment->comment_ID&amp;_wp_original_http_referer=" . wp_get_referer(), 'delete-comment_' . $comment->comment_ID) . "' onclick=\"if ( confirm('" . js_escape(__("You are about to delete this comment. \n 'Cancel' to stop, 'OK' to delete.")) . "') ) { return true;}return false;\">" . __('Delete comment') . "</a>";
?>
</p>
<div class="side-info">
<h5><?php _e('Related') ?></h5>
<ul>
<li><a href="edit-comments.php"><?php _e('Manage All Comments') ?></a></li>
<li><a href="edit-comments.php?comment_status=moderated"><?php _e('Moderate Comments') ?></a></li>
<?php do_action('comment_relatedlinks_list'); ?>
</ul>
</div>
<?php do_action('submitcomment_box'); ?>
</div>
<div id="post-body">
<div id="namediv" class="stuffbox">
<h3><?php _e('Name') ?></h3>
<div class="inside">
<input type="text" name="newcomment_author" size="30" value="<?php echo attribute_escape( $comment->comment_author ); ?>" tabindex="1" id="name" />
</div>
</div>
<div id="emaildiv" class="stuffbox">
<h3><?php _e('E-mail') ?></h3>
<div class="inside">
<input type="text" name="newcomment_author_email" size="30" value="<?php echo attribute_escape( $comment->comment_author_email ); ?>" tabindex="2" id="email" />
</div>
</div>
<div id="uridiv" class="stuffbox">
<h3><?php _e('URL') ?></h3>
<div class="inside">
<input type="text" id="newcomment_author_url" name="newcomment_author_url" size="30" value="<?php echo attribute_escape( $comment->comment_author_url ); ?>" tabindex="3" />
</div>
</div>
<div id="postdiv" class="postarea">
<?php
$quicktags_settings = array( 'buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,close' );
wp_editor( $comment->comment_content, 'content', array( 'media_buttons' => false, 'tinymce' => false, 'quicktags' => $quicktags_settings ) );
wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
</div>
</div><!-- /post-body-content -->
<div id="postbox-container-1" class="postbox-container">
<div id="submitdiv" class="stuffbox" >
<h3><span class='hndle'><?php _e('Status') ?></span></h3>
<div class="inside">
<div class="submitbox" id="submitcomment">
<div id="minor-publishing">
<div id="minor-publishing-actions">
<div id="preview-action">
<a class="preview button" href="<?php echo get_comment_link(); ?>" target="_blank"><?php _e('View Comment'); ?></a>
</div>
<div class="clear"></div>
<h3><?php _e('Comment') ?></h3>
<?php the_editor($comment->comment_content, 'content', 'newcomment_author_url', false, 4); ?>
<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
</div>
<div id="misc-publishing-actions">
<?php do_meta_boxes('comment', 'normal', $comment); ?>
<div class="misc-pub-section misc-pub-comment-status" id="comment-status-radio">
<label class="approved"><input type="radio"<?php checked( $comment->comment_approved, '1' ); ?> name="comment_status" value="1" /><?php /* translators: comment type radio button */ _ex('Approved', 'adjective') ?></label><br />
<label class="waiting"><input type="radio"<?php checked( $comment->comment_approved, '0' ); ?> name="comment_status" value="0" /><?php /* translators: comment type radio button */ _ex('Pending', 'adjective') ?></label><br />
<label class="spam"><input type="radio"<?php checked( $comment->comment_approved, 'spam' ); ?> name="comment_status" value="spam" /><?php /* translators: comment type radio button */ _ex('Spam', 'adjective'); ?></label>
</div>
<?php if ( $ip = get_comment_author_IP() ) : ?>
<div class="misc-pub-section misc-pub-comment-author-ip">
<?php _e( 'IP address:' ); ?> <strong><a href="<?php echo esc_url( sprintf( 'http://whois.arin.net/rest/ip/%s', $ip ) ); ?>"><?php echo esc_html( $ip ); ?></a></strong>
</div>
<?php endif; ?>
<div class="misc-pub-section curtime misc-pub-curtime">
<?php
// translators: Publish box date format, see http://php.net/date
$datef = __( 'M j, Y @ G:i' );
$stamp = __('Submitted on: <b>%1$s</b>');
$date = date_i18n( $datef, strtotime( $comment->comment_date ) );
?>
<span id="timestamp"><?php printf($stamp, $date); ?></span>&nbsp;<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js"><?php _e('Edit') ?></a>
<div id='timestampdiv' class='hide-if-js'><?php touch_time(('editcomment' == $action), 0); ?></div>
</div>
</div> <!-- misc actions -->
<div class="clear"></div>
</div>
<div id="major-publishing-actions">
<div id="delete-action">
<?php echo "<a class='submitdelete deletion' href='" . wp_nonce_url("comment.php?action=" . ( !EMPTY_TRASH_DAYS ? 'deletecomment' : 'trashcomment' ) . "&amp;c=$comment->comment_ID&amp;_wp_original_http_referer=" . urlencode(wp_get_referer()), 'delete-comment_' . $comment->comment_ID) . "'>" . ( !EMPTY_TRASH_DAYS ? __('Delete Permanently') : __('Move to Trash') ) . "</a>\n"; ?>
</div>
<div id="publishing-action">
<?php submit_button( __( 'Update' ), 'primary', 'save', false ); ?>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div><!-- /submitdiv -->
</div>
<div id="postbox-container-2" class="postbox-container">
<?php
do_action('add_meta_boxes', 'comment', $comment);
do_action('add_meta_boxes_comment', $comment);
do_meta_boxes(null, 'normal', $comment);
?>
</div>
<input type="hidden" name="c" value="<?php echo esc_attr($comment->comment_ID) ?>" />
<input type="hidden" name="p" value="<?php echo esc_attr($comment->comment_post_ID) ?>" />
<input name="referredby" type="hidden" id="referredby" value="<?php echo esc_url( wp_get_referer() ); ?>" />
<input type="hidden" name="c" value="<?php echo $comment->comment_ID ?>" />
<input type="hidden" name="p" value="<?php echo $comment->comment_post_ID ?>" />
<input name="referredby" type="hidden" id="referredby" value="<?php echo wp_get_referer(); ?>" />
<?php wp_original_referer_field(true, 'previous'); ?>
<input type="hidden" name="noredir" value="1" />
</div>
</div>
</div>
</div><!-- /post-body -->
</div>
</div>
</form>
<script type="text/javascript">

69
wp-admin/edit-form.php Normal file
View File

@@ -0,0 +1,69 @@
<div class="wrap">
<h2><?php _e('Write Post'); ?></h2>
<form name="post" action="post.php" method="post" id="simple">
<?php if (isset($mode) && 'bookmarklet' == $mode) : ?>
<input type="hidden" name="mode" value="bookmarklet" />
<?php endif; ?>
<input type="hidden" id="user-id" name="user_ID" value="<?php echo (int) $user_ID ?>" />
<input type="hidden" name="action" value='post' />
<div id="poststuff">
<fieldset id="titlediv">
<legend><a href="http://wordpress.org/docs/reference/post/#title" title="<?php _e('Help on titles') ?>"><?php _e('Title') ?></a></legend>
<div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo attribute_escape( $post->post_title ); ?>" id="title" /></div>
</fieldset>
<fieldset id="categorydiv">
<legend><a href="http://wordpress.org/docs/reference/post/#category" title="<?php _e('Help on categories') ?>"><?php _e('Categories') ?></a></legend>
<div><?php dropdown_categories($post->post_category); ?></div>
</fieldset>
<br />
<fieldset id="postdiv">
<legend><a href="http://wordpress.org/docs/reference/post/#post" title="<?php _e('Help with post field') ?>"><?php _e('Post') ?></a></legend>
<?php
$rows = get_option('default_post_edit_rows');
if (($rows < 3) || ($rows > 100)) {
$rows = 10;
}
?>
<div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content"><?php echo $post->post_content ?></textarea></div>
<?php wp_nonce_field( 'autosave', 'autosavenonce', false ); ?>
</fieldset>
<script type="text/javascript">
<!--
edCanvas = document.getElementById('content');
//-->
</script>
<input type="hidden" name="post_pingback" value="<?php echo (int) get_option('default_pingback_flag') ?>" id="post_pingback" />
<p><label for="trackback"> <?php printf(__('<a href="%s" title="Help on trackbacks"><strong>TrackBack</strong> a <abbr title="Universal Resource Locator">URL</abbr></a>:</label> (Separate multiple <abbr title="Universal Resource Locator">URL</abbr>s with spaces.)'), 'http://wordpress.org/docs/reference/post/#trackback'); echo '<br />'; ?>
<input type="text" name="trackback_url" style="width: 360px" id="trackback" tabindex="7" /></p>
<p class="submit"><input name="saveasdraft" type="submit" id="saveasdraft" tabindex="9" value="<?php _e('Save as Draft') ?>" />
<input name="saveasprivate" type="submit" id="saveasprivate" tabindex="10" value="<?php _e('Save as Private') ?>" />
<?php if ( current_user_can('edit_posts') ) : ?>
<input name="publish" type="submit" id="publish" tabindex="6" value="<?php _e('Publish') ?>" class="button button-highlighted" />
<?php endif; ?>
<?php if ('bookmarklet' != $mode) {
echo '<input name="advanced" type="submit" id="advancededit" tabindex="7" value="' . __('Advanced Editing') . '" />';
} ?>
<input name="referredby" type="hidden" id="referredby" value="<?php if ( $refby = wp_get_referer() ) echo urlencode($refby); ?>" />
</p>
<?php do_action('simple_edit_form', ''); ?>
</div>
</form>
<script type="text/javascript">
try{document.getElementById('title').focus();}catch(e){}
</script>
</div>

View File

@@ -0,0 +1,155 @@
<?php
require_once('admin.php');
// Handle bulk deletes
if ( isset($_GET['deleteit']) && isset($_GET['delete']) ) {
check_admin_referer('bulk-link-categories');
if ( !current_user_can('manage_categories') )
wp_die(__('Cheatin&#8217; uh?'));
foreach( (array) $_GET['delete'] as $cat_ID ) {
$cat_name = get_term_field('name', $cat_ID, 'link_category');
// Don't delete the default cats.
if ( $cat_ID == get_option('default_link_category') )
wp_die(sprintf(__("Can&#8217;t delete the <strong>%s</strong> category: this is the default one"), $cat_name));
wp_delete_term($cat_ID, 'link_category');
}
$location = 'edit-link-categories.php';
if ( $referer = wp_get_referer() ) {
if ( false !== strpos($referer, 'edit-link-categories.php') )
$location = $referer;
}
$location = add_query_arg('message', 6, $location);
wp_redirect($location);
exit();
} elseif ( !empty($_GET['_wp_http_referer']) ) {
wp_redirect(remove_query_arg(array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI'])));
exit;
}
$title = __('Link Categories');
$parent_file = 'edit.php';
wp_enqueue_script( 'admin-categories' );
wp_enqueue_script('admin-forms');
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.');
$messages[6] = __('Categories deleted.');
if (isset($_GET['message'])) : ?>
<div id="message" class="updated fade"><p><?php echo $messages[$_GET['message']]; ?></p></div>
<?php $_SERVER['REQUEST_URI'] = remove_query_arg(array('message'), $_SERVER['REQUEST_URI']);
endif; ?>
<div class="wrap">
<form id="posts-filter" action="" method="get">
<?php if ( current_user_can('manage_categories') ) : ?>
<h2><?php printf(__('Manage Link Categories (<a href="%s">add new</a>)'), '#addcat') ?> </h2>
<?php else : ?>
<h2><?php _e('Manage Link Categories') ?> </h2>
<?php endif; ?>
<p id="post-search">
<input type="text" id="post-search-input" name="s" value="<?php echo attribute_escape(stripslashes($_GET['s'])); ?>" />
<input type="submit" value="<?php _e( 'Search Categories' ); ?>" class="button" />
</p>
<br class="clear" />
<div class="tablenav">
<?php
$pagenum = absint( $_GET['pagenum'] );
if ( empty($pagenum) )
$pagenum = 1;
if( !$catsperpage || $catsperpage < 0 )
$catsperpage = 20;
$page_links = paginate_links( array(
'base' => add_query_arg( 'pagenum', '%#%' ),
'format' => '',
'total' => ceil(wp_count_terms('link_category') / $catsperpage),
'current' => $pagenum
));
if ( $page_links )
echo "<div class='tablenav-pages'>$page_links</div>";
?>
<div class="alignleft">
<input type="submit" value="<?php _e('Delete'); ?>" name="deleteit" class="button-secondary delete" />
<?php wp_nonce_field('bulk-link-categories'); ?>
</div>
<br class="clear" />
</div>
<br class="clear" />
<table class="widefat">
<thead>
<tr>
<th scope="col" class="check-column"><input type="checkbox" onclick="checkAll(document.getElementById('posts-filter'));" /></th>
<th scope="col"><?php _e('Name') ?></th>
<th scope="col"><?php _e('Description') ?></th>
<th scope="col" class="num" style="width: 90px;"><?php _e('Links') ?></th>
</tr>
</thead>
<tbody id="the-list" class="list:link-cat">
<?php
$start = ($pagenum - 1) * $catsperpage;
$args = array('offset' => $start, 'number' => $catsperpage, 'hide_empty' => 0);
if ( !empty( $_GET['s'] ) )
$args['search'] = $_GET['s'];
$categories = get_terms( 'link_category', $args );
if ( $categories ) {
$output = '';
foreach ( $categories as $category ) {
$category = sanitize_term($category, 'link_category', 'display');
$output .= link_cat_row($category);
}
$output = apply_filters('cat_rows', $output);
echo $output;
unset($category);
}
?>
</tbody>
</table>
</form>
<div class="tablenav">
<?php
if ( $page_links )
echo "<div class='tablenav-pages'>$page_links</div>";
?>
<br class="clear" />
</div>
<br class="clear" />
</div>
<?php if ( current_user_can('manage_categories') ) : ?>
<div class="wrap">
<p><?php printf(__('<strong>Note:</strong><br />Deleting a category does not delete the links in that category. Instead, links that were only assigned to the deleted category are set to the category <strong>%s</strong>.'), get_term_field('name', get_option('default_link_category'), 'link_category')) ?></p>
</div>
<?php include('edit-link-category-form.php'); ?>
<?php endif; ?>
<?php include('admin-footer.php'); ?>

View File

@@ -0,0 +1,44 @@
<?php
if ( ! empty($cat_ID) ) {
$heading = __('Edit Category');
$submit_text = __('Edit Category');
$form = '<form name="editcat" id="editcat" method="post" action="link-category.php" class="validate">';
$action = 'editedcat';
$nonce_action = 'update-link-category_' . $cat_ID;
do_action('edit_link_category_form_pre', $category);
} else {
$heading = __('Add Category');
$submit_text = __('Add Category');
$form = '<form name="addcat" id="addcat" class="add:the-list: validate" method="post" action="link-category.php">';
$action = 'addcat';
$nonce_action = 'add-link-category';
do_action('add_link_category_form_pre', $category);
}
?>
<div class="wrap">
<h2><?php echo $heading ?></h2>
<div id="ajax-response"></div>
<?php echo $form ?>
<input type="hidden" name="action" value="<?php echo $action ?>" />
<input type="hidden" name="cat_ID" value="<?php echo $category->term_id ?>" />
<?php wp_original_referer_field(true, 'previous'); wp_nonce_field($nonce_action); ?>
<table class="form-table">
<tr class="form-field form-required">
<th scope="row" valign="top"><label for="name"><?php _e('Category name') ?></label></th>
<td><input name="name" id="name" type="text" value="<?php echo $category->name; ?>" size="40" /></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="slug"><?php _e('Category slug') ?></label></th>
<td><input name="slug" id="slug" type="text" value="<?php echo $category->slug; ?>" size="40" />
<?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.'); ?></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="description"><?php _e('Description (optional)') ?></label></th>
<td><textarea name="description" id="description" rows="5" cols="50" style="width: 97%;"><?php echo $category->description; ?></textarea></td>
</tr>
</table>
<p class="submit"><input type="submit" class="button" name="submit" value="<?php echo $submit_text ?>" /></p>
<?php do_action('edit_link_category_form', $category); ?>
</form>
</div>

View File

@@ -1,134 +1,308 @@
<?php
/**
* Edit links form for inclusion in administration panels.
*
* @package WordPress
* @subpackage Administration
*/
// don't load directly
if ( !defined('ABSPATH') )
die('-1');
if ( ! empty($link_id) ) {
$heading = sprintf( __( '<a href="%s">Links</a> / Edit Link' ), 'link-manager.php' );
$submit_text = __('Update Link');
$heading = __('Edit Link');
$submit_text = __('Save Changes');
$form = '<form name="editlink" id="editlink" method="post" action="link.php">';
$nonce_action = 'update-bookmark_' . $link_id;
} else {
$heading = sprintf( __( '<a href="%s">Links</a> / Add New Link' ), 'link-manager.php' );
$heading = __('Add Link');
$submit_text = __('Add Link');
$form = '<form name="addlink" id="addlink" method="post" action="link.php">';
$nonce_action = 'add-bookmark';
}
require_once( ABSPATH . 'wp-admin/includes/meta-boxes.php' );
function xfn_check($class, $value = '', $deprecated = '') {
global $link;
add_meta_box('linksubmitdiv', __('Save'), 'link_submit_meta_box', null, 'side', 'core');
add_meta_box('linkcategorydiv', __('Categories'), 'link_categories_meta_box', null, 'normal', 'core');
add_meta_box('linktargetdiv', __('Target'), 'link_target_meta_box', null, 'normal', 'core');
add_meta_box('linkxfndiv', __('Link Relationship (XFN)'), 'link_xfn_meta_box', null, 'normal', 'core');
add_meta_box('linkadvanceddiv', __('Advanced'), 'link_advanced_meta_box', null, 'normal', 'core');
$link_rel = $link->link_rel;
$rels = preg_split('/\s+/', $link_rel);
do_action('add_meta_boxes', 'link', $link);
do_action('add_meta_boxes_link', $link);
if ('' != $value && in_array($value, $rels) ) {
echo ' checked="checked"';
}
/** This action is documented in wp-admin/edit-form-advanced.php */
do_action('do_meta_boxes', 'link', 'normal', $link);
/** This action is documented in wp-admin/edit-form-advanced.php */
do_action('do_meta_boxes', 'link', 'advanced', $link);
/** This action is documented in wp-admin/edit-form-advanced.php */
do_action('do_meta_boxes', 'link', 'side', $link);
add_screen_option('layout_columns', array('max' => 2, 'default' => 2) );
get_current_screen()->add_help_tab( array(
'id' => 'overview',
'title' => __('Overview'),
'content' =>
'<p>' . __( 'You can add or edit links on this screen by entering information in each of the boxes. Only the link&#8217;s web address and name (the text you want to display on your site as the link) are required fields.' ) . '</p>' .
'<p>' . __( 'The boxes for link name, web address, and description have fixed positions, while the others may be repositioned using drag and drop. You can also hide boxes you don&#8217;t use in the Screen Options tab, or minimize boxes by clicking on the title bar of the box.' ) . '</p>' .
'<p>' . __( 'XFN stands for <a href="http://gmpg.org/xfn/" target="_blank">XHTML Friends Network</a>, which is optional. WordPress allows the generation of XFN attributes to show how you are related to the authors/owners of the site to which you are linking.' ) . '</p>'
) );
get_current_screen()->set_help_sidebar(
'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
'<p>' . __( '<a href="http://codex.wordpress.org/Links_Add_New_Screen" target="_blank">Documentation on Creating Links</a>' ) . '</p>' .
'<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
);
require_once( ABSPATH . 'wp-admin/admin-header.php' );
if ('' == $value) {
if ('family' == $class && strpos($link_rel, 'child') === false && strpos($link_rel, 'parent') === false && strpos($link_rel, 'sibling') === false && strpos($link_rel, 'spouse') === false && strpos($link_rel, 'kin') === false) echo ' checked="checked"';
if ('friendship' == $class && strpos($link_rel, 'friend') === false && strpos($link_rel, 'acquaintance') === false && strpos($link_rel, 'contact') === false) echo ' checked="checked"';
if ('geographical' == $class && strpos($link_rel, 'co-resident') === false && strpos($link_rel, 'neighbor') === false) echo ' checked="checked"';
if ('identity' == $class && in_array('me', $rels) ) echo ' checked="checked"';
}
}
?>
<?php echo $form ?>
<?php wp_nonce_field($nonce_action); ?>
<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php echo esc_html( $title ); ?> <a href="link-add.php" class="add-new-h2"><?php echo esc_html_x('Add New', 'link'); ?></a></h2>
<?php if ( isset( $_GET['added'] ) ) : ?>
<div id="message" class="updated"><p><?php _e('Link added.'); ?></p></div>
<?php endif; ?>
<?php
if ( !empty($form) )
echo $form;
if ( !empty($link_added) )
echo $link_added;
wp_nonce_field( $nonce_action );
wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?>
<h2><?php echo $heading; ?></h2>
<div id="poststuff">
<div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_columns() ? '1' : '2'; ?>">
<div id="post-body-content">
<div id="namediv" class="stuffbox">
<h3><label for="link_name"><?php _ex('Name', 'link name') ?></label></h3>
<div class="submitbox" id="submitlink">
<div id="previewview">
<?php if ( !empty($link_id) ) { ?>
<a href="<?php echo $link->link_url; ?>" target="_blank"><?php _e('Visit Link'); ?></a>
<?php } ?>
</div>
<div class="inside">
<input type="text" name="link_name" size="30" maxlength="255" value="<?php echo esc_attr($link->link_name); ?>" id="link_name" />
<p><?php _e('Example: Nifty blogging software'); ?></p>
<p><label for="link_private" class="selectit"><input id="link_private" name="link_visible" type="checkbox" value="N" <?php checked($link->link_visible, 'N'); ?> /> <?php _e('Keep this link private') ?></label></p>
</div>
<p class="submit">
<input type="submit" class="button button-highlighted" name="save" value="<?php _e('Save'); ?>" tabindex="4" />
<?php
if ( ( 'edit' == $action) && current_user_can('manage_links') )
echo "<a class='submitdelete' href='" . wp_nonce_url("link.php?action=delete&amp;link_id=$link_id", 'delete-bookmark_' . $link_id) . "' onclick=\"if ( confirm('" . js_escape( sprintf( __("You are about to delete this link '%s'\n'Cancel' to stop, 'OK' to delete."), $link->link_name )) . "') ) { return true;}return false;\">" . __('Delete&nbsp;link') . "</a>";
?>
</p>
<div class="side-info">
<h5><?php _e('Related') ?></h5>
<ul>
<li><a href="link-manager.php"><?php _e('Manage All Links') ?></a></li>
<li><a href="edit-link-categories.php"><?php _e('Manage All Link Categories') ?></a></li>
<li><a href="link-import.php"><?php _e('Import Links') ?></a></li>
<?php do_action('link_relatedlinks_list'); ?>
</ul>
</div>
<?php do_action('submitlink_box'); ?>
</div>
<div id="post-body">
<div id="namediv" class="stuffbox">
<h3><?php _e('Name') ?></h3>
<div class="inside">
<input type="text" name="link_name" size="30" tabindex="1" value="<?php echo $link->link_name; ?>" id="link_name" /><br />
<?php _e('Example: Nifty blogging software'); ?>
</div>
</div>
<div id="addressdiv" class="stuffbox">
<h3><label for="link_url"><?php _e('Web Address') ?></label></h3>
<h3><?php _e('Web Address') ?></h3>
<div class="inside">
<input type="text" name="link_url" size="30" maxlength="255" class="code" value="<?php echo esc_attr($link->link_url); ?>" id="link_url" />
<p><?php _e('Example: <code>http://wordpress.org/</code> &#8212; don&#8217;t forget the <code>http://</code>'); ?></p>
<input type="text" name="link_url" size="30" tabindex="1" value="<?php echo $link->link_url; ?>" id="link_url" /><br />
<?php _e('Example: <code>http://wordpress.org/</code> &#8212; don&#8217;t forget the <code>http://</code>'); ?>
</div>
</div>
<div id="descriptiondiv" class="stuffbox">
<h3><label for="link_description"><?php _e('Description') ?></label></h3>
<h3><?php _e('Description') ?></h3>
<div class="inside">
<input type="text" name="link_description" size="30" maxlength="255" value="<?php echo isset($link->link_description) ? esc_attr($link->link_description) : ''; ?>" id="link_description" />
<p><?php _e('This will be shown when someone hovers over the link in the blogroll, or optionally below the link.'); ?></p>
<input type="text" name="link_description" size="30" tabindex="1" value="<?php echo $link->link_description; ?>" id="link_description" /><br />
<?php _e('This will be shown when someone hovers over the link in the blogroll, or optionally below the link.'); ?>
</div>
</div>
</div><!-- /post-body-content -->
<div id="postbox-container-1" class="postbox-container">
<?php
<div id="linkcategorydiv" class="postbox <?php echo postbox_classes('linkcategorydiv', 'link'); ?>">
<h3><?php _e('Categories') ?></h3>
<div class="inside">
do_action('submitlink_box');
$side_meta_boxes = do_meta_boxes( 'link', 'side', $link );
?>
<div id="category-adder" class="wp-hidden-children">
<h4><a id="category-add-toggle" href="#category-add"><?php _e( '+ Add New Category' ); ?></a></h4>
<p id="link-category-add" class="wp-hidden-child">
<input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" />
<input type="button" id="category-add-sumbit" class="add:categorychecklist:linkcategorydiv button" value="<?php _e( 'Add' ); ?>" />
<?php wp_nonce_field( 'add-link-category', '_ajax_nonce', false ); ?>
<span id="category-ajax-response"></span>
</p>
</div>
<div id="postbox-container-2" class="postbox-container">
<?php
do_meta_boxes(null, 'normal', $link);
<ul id="category-tabs">
<li class="ui-tabs-selected"><a href="#categories-all"><?php _e( 'All Categories' ); ?></a></li>
<li class="wp-no-js-hidden"><a href="#categories-pop"><?php _e( 'Most Used' ); ?></a></li>
</ul>
do_meta_boxes(null, 'advanced', $link);
?>
<div id="categories-all" class="ui-tabs-panel">
<ul id="categorychecklist" class="list:category categorychecklist form-no-clear">
<?php wp_link_category_checklist($link_id); ?>
</ul>
</div>
<?php
if ( $link_id ) : ?>
<div id="categories-pop" class="ui-tabs-panel" style="display: none;">
<ul id="categorychecklist-pop" class="categorychecklist form-no-clear">
<?php wp_popular_terms_checklist('link_category'); ?>
</ul>
</div>
</div>
</div>
<?php do_meta_boxes('link', 'normal', $link); ?>
<h2><?php _e('Advanced Options'); ?></h2>
<div id="linktargetdiv" class="postbox <?php echo postbox_classes('linktargetdiv', 'link'); ?>">
<h3><?php _e('Target') ?></h3>
<div class="inside">
<label for="link_target_blank" class="selectit">
<input id="link_target_blank" type="radio" name="link_target" value="_blank" <?php echo(($link->link_target == '_blank') ? 'checked="checked"' : ''); ?> />
<code>_blank</code></label><br />
<label for="link_target_top" class="selectit">
<input id="link_target_top" type="radio" name="link_target" value="_top" <?php echo(($link->link_target == '_top') ? 'checked="checked"' : ''); ?> />
<code>_top</code></label><br />
<label for="link_target_none" class="selectit">
<input id="link_target_none" type="radio" name="link_target" value="" <?php echo(($link->link_target == '') ? 'checked="checked"' : ''); ?> />
<?php _e('none') ?></label>
<p><?php _e('Choose the frame your link targets. Essentially this means if you choose <code>_blank</code> your link will open in a new window.'); ?></p>
</div>
</div>
<div id="linkxfndiv" class="postbox <?php echo postbox_classes('linkxfndiv', 'link'); ?>">
<h3><?php _e('Link Relationship (XFN)') ?></h3>
<div class="inside">
<table class="editform" style="width: 100%;" cellspacing="2" cellpadding="5">
<tr>
<th style="width: 20%;" scope="row"><?php _e('rel:') ?></th>
<td style="width: 80%;"><input type="text" name="link_rel" id="link_rel" size="50" value="<?php echo $link->link_rel; ?>" /></td>
</tr>
<tr>
<td colspan="2">
<table cellpadding="3" cellspacing="5" class="form-table">
<tr>
<th scope="row"> <?php _e('identity') ?> </th>
<td>
<label for="me">
<input type="checkbox" name="identity" value="me" id="me" <?php xfn_check('identity', 'me'); ?> />
<?php _e('another web address of mine') ?></label>
</td>
</tr>
<tr>
<th scope="row"> <?php _e('friendship') ?> </th>
<td>
<label for="contact">
<input class="valinp" type="radio" name="friendship" value="contact" id="contact" <?php xfn_check('friendship', 'contact', 'radio'); ?> /> <?php _e('contact') ?></label>
<label for="acquaintance">
<input class="valinp" type="radio" name="friendship" value="acquaintance" id="acquaintance" <?php xfn_check('friendship', 'acquaintance', 'radio'); ?> /> <?php _e('acquaintance') ?></label>
<label for="friend">
<input class="valinp" type="radio" name="friendship" value="friend" id="friend" <?php xfn_check('friendship', 'friend', 'radio'); ?> /> <?php _e('friend') ?></label>
<label for="friendship">
<input name="friendship" type="radio" class="valinp" value="" id="friendship" <?php xfn_check('friendship', '', 'radio'); ?> /> <?php _e('none') ?></label>
</td>
</tr>
<tr>
<th scope="row"> <?php _e('physical') ?> </th>
<td>
<label for="met">
<input class="valinp" type="checkbox" name="physical" value="met" id="met" <?php xfn_check('physical', 'met'); ?> />
<?php _e('met') ?></label>
</td>
</tr>
<tr>
<th scope="row"> <?php _e('professional') ?> </th>
<td>
<label for="co-worker">
<input class="valinp" type="checkbox" name="professional" value="co-worker" id="co-worker" <?php xfn_check('professional', 'co-worker'); ?> />
<?php _e('co-worker') ?></label>
<label for="colleague">
<input class="valinp" type="checkbox" name="professional" value="colleague" id="colleague" <?php xfn_check('professional', 'colleague'); ?> />
<?php _e('colleague') ?></label>
</td>
</tr>
<tr>
<th scope="row"> <?php _e('geographical') ?> </th>
<td>
<label for="co-resident">
<input class="valinp" type="radio" name="geographical" value="co-resident" id="co-resident" <?php xfn_check('geographical', 'co-resident', 'radio'); ?> />
<?php _e('co-resident') ?></label>
<label for="neighbor">
<input class="valinp" type="radio" name="geographical" value="neighbor" id="neighbor" <?php xfn_check('geographical', 'neighbor', 'radio'); ?> />
<?php _e('neighbor') ?></label>
<label for="geographical">
<input class="valinp" type="radio" name="geographical" value="" id="geographical" <?php xfn_check('geographical', '', 'radio'); ?> />
<?php _e('none') ?></label>
</td>
</tr>
<tr>
<th scope="row"> <?php _e('family') ?> </th>
<td>
<label for="child">
<input class="valinp" type="radio" name="family" value="child" id="child" <?php xfn_check('family', 'child', 'radio'); ?> />
<?php _e('child') ?></label>
<label for="kin">
<input class="valinp" type="radio" name="family" value="kin" id="kin" <?php xfn_check('family', 'kin', 'radio'); ?> />
<?php _e('kin') ?></label>
<label for="parent">
<input class="valinp" type="radio" name="family" value="parent" id="parent" <?php xfn_check('family', 'parent', 'radio'); ?> />
<?php _e('parent') ?></label>
<label for="sibling">
<input class="valinp" type="radio" name="family" value="sibling" id="sibling" <?php xfn_check('family', 'sibling', 'radio'); ?> />
<?php _e('sibling') ?></label>
<label for="spouse">
<input class="valinp" type="radio" name="family" value="spouse" id="spouse" <?php xfn_check('family', 'spouse', 'radio'); ?> />
<?php _e('spouse') ?></label>
<label for="family">
<input class="valinp" type="radio" name="family" value="" id="family" <?php xfn_check('family', '', 'radio'); ?> />
<?php _e('none') ?></label>
</td>
</tr>
<tr>
<th scope="row"> <?php _e('romantic') ?> </th>
<td>
<label for="muse">
<input class="valinp" type="checkbox" name="romantic" value="muse" id="muse" <?php xfn_check('romantic', 'muse'); ?> />
<?php _e('muse') ?></label>
<label for="crush">
<input class="valinp" type="checkbox" name="romantic" value="crush" id="crush" <?php xfn_check('romantic', 'crush'); ?> />
<?php _e('crush') ?></label>
<label for="date">
<input class="valinp" type="checkbox" name="romantic" value="date" id="date" <?php xfn_check('romantic', 'date'); ?> />
<?php _e('date') ?></label>
<label for="romantic">
<input class="valinp" type="checkbox" name="romantic" value="sweetheart" id="romantic" <?php xfn_check('romantic', 'sweetheart'); ?> />
<?php _e('sweetheart') ?></label>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p><?php _e('If the link is to a person, you can specify your relationship with them using the above form. If you would like to learn more about the idea check out <a href="http://gmpg.org/xfn/">XFN</a>.'); ?></p>
</div>
</div>
<div id="linkadvanceddiv" class="postbox <?php echo postbox_classes('linkadvanceddiv', 'link'); ?>">
<h3><?php _e('Advanced') ?></h3>
<div class="inside">
<table class="form-table" style="width: 100%;" cellspacing="2" cellpadding="5">
<tr class="form-field">
<th valign="top" scope="row"><label for="link_image"><?php _e('Image Address') ?></label></th>
<td><input type="text" name="link_image" id="link_image" size="50" value="<?php echo $link->link_image; ?>" style="width: 95%" /></td>
</tr>
<tr class="form-field">
<th valign="top" scope="row"><label for="rss_uri"><?php _e('RSS Address') ?></label></th>
<td><input name="link_rss" type="text" id="rss_uri" value="<?php echo $link->link_rss; ?>" size="50" style="width: 95%" /></td>
</tr>
<tr class="form-field">
<th valign="top" scope="row"><label for="link_notes"><?php _e('Notes') ?></label></th>
<td><textarea name="link_notes" id="link_notes" cols="50" rows="10" style="width: 95%"><?php echo $link->link_notes; ?></textarea></td>
</tr>
<tr class="form-field">
<th valign="top" scope="row"><label for="link_rating"><?php _e('Rating') ?></label></th>
<td><select name="link_rating" id="link_rating" size="1">
<?php
for ($r = 0; $r < 10; $r++) {
echo(' <option value="'.$r.'" ');
if ($link->link_rating == $r)
echo 'selected="selected"';
echo('>'.$r.'</option>');
}
?></select>&nbsp;<?php _e('(Leave at 0 for no rating.)') ?>
</td>
</tr>
</table>
</div>
</div>
<?php do_meta_boxes('link', 'advanced', $link); ?>
<?php if ( $link_id ) : ?>
<input type="hidden" name="action" value="save" />
<input type="hidden" name="link_id" value="<?php echo (int) $link_id; ?>" />
<input type="hidden" name="order_by" value="<?php echo attribute_escape($order_by); ?>" />
<input type="hidden" name="cat_id" value="<?php echo (int) $cat_id ?>" />
<?php else: ?>
<input type="hidden" name="action" value="add" />
@@ -137,5 +311,6 @@ if ( $link_id ) : ?>
</div>
</div>
</form>
</div>
</form>

295
wp-admin/edit-page-form.php Normal file
View File

@@ -0,0 +1,295 @@
<?php
if ( isset($_GET['message']) )
$_GET['message'] = absint( $_GET['message'] );
$messages[1] = sprintf( __( 'Page updated. Continue editing below or <a href="%s">go back</a>.' ), attribute_escape( stripslashes( $_GET['_wp_original_http_referer'] ) ) );
$messages[2] = __('Custom field updated.');
$messages[3] = __('Custom field deleted.');
$messages[4] = __('Page updated.');
?>
<?php if (isset($_GET['message'])) : ?>
<div id="message" class="updated fade"><p><?php echo $messages[$_GET['message']]; ?></p></div>
<?php endif;
if (!isset($post_ID) || 0 == $post_ID) {
$form_action = 'post';
$nonce_action = 'add-page';
$temp_ID = -1 * time(); // don't change this formula without looking at wp_write_post()
$form_extra = "<input type='hidden' id='post_ID' name='temp_ID' value='$temp_ID' />";
} else {
$post_ID = (int) $post_ID;
$form_action = 'editpost';
$nonce_action = 'update-page_' . $post_ID;
$form_extra = "<input type='hidden' id='post_ID' name='post_ID' value='$post_ID' />";
}
$temp_ID = (int) $temp_ID;
$user_ID = (int) $user_ID;
$sendto = clean_url(stripslashes(wp_get_referer()));
if ( 0 != $post_ID && $sendto == get_permalink($post_ID) )
$sendto = 'redo';
?>
<form name="post" action="page.php" method="post" id="post">
<div class="wrap">
<h2><?php _e('Write Page') ?></h2>
<?php
wp_nonce_field($nonce_action);
if (isset($mode) && 'bookmarklet' == $mode)
echo '<input type="hidden" name="mode" value="bookmarklet" />';
?>
<input type="hidden" id="user-id" name="user_ID" value="<?php echo $user_ID ?>" />
<input type="hidden" id="hiddenaction" name="action" value='<?php echo $form_action ?>' />
<input type="hidden" id="originalaction" name="originalaction" value="<?php echo $form_action ?>" />
<?php echo $form_extra ?>
<input type="hidden" id="post_type" name="post_type" value="<?php echo $post->post_type ?>" />
<input type="hidden" id="original_post_status" name="original_post_status" value="<?php echo $post->post_status ?>" />
<input name="referredby" type="hidden" id="referredby" value="<?php
if ( strpos( wp_get_referer(), '/wp-admin/' ) === false && $post_ID && url_to_postid(wp_get_referer()) === $post_ID )
echo 'redo';
else
echo clean_url(stripslashes(wp_get_referer()));
?>" />
<?php if ( 'draft' != $post->post_status ) wp_original_referer_field(true, 'previous'); ?>
<div id="poststuff">
<div class="submitbox" id="submitpage">
<div id="previewview">
<?php if ( 'publish' == $post->post_status ) { ?>
<a href="<?php echo clean_url(get_permalink($post->ID)); ?>" target="_blank" tabindex="4"><?php _e('View this Page'); ?></a>
<?php } elseif ( 'edit' == $action ) { ?>
<a href="<?php echo clean_url(apply_filters('preview_post_link', add_query_arg('preview', 'true', get_permalink($post->ID)))); ?>" target="_blank" tabindex="4"><?php _e('Preview this Page'); ?></a>
<?php } ?>
</div>
<div class="inside">
<p><strong><?php _e('Publish Status') ?></strong></p>
<p>
<select name='post_status' tabindex='4'>
<?php if ( current_user_can('publish_pages') ) : ?>
<option<?php selected( $post->post_status, 'publish' ); selected( $post->post_status, 'private' );?> value='publish'><?php _e('Published') ?></option>
<?php else: ?>
<option<?php selected( $post->post_status, 'private' ); ?> value='private'><?php _e('Published') ?></option>
<?php endif; ?>
<?php if ( 'future' == $post->post_status ) : ?>
<option<?php selected( $post->post_status, 'future' ); ?> value='future'><?php _e('Pending') ?></option>
<?php endif; ?>
<option<?php selected( $post->post_status, 'pending' ); ?> value='pending'><?php _e('Pending Review') ?></option>
<option<?php selected( $post->post_status, 'draft' ); ?> value='draft'><?php _e('Unpublished') ?></option>
</select>
</p>
<p><label for="post_status_private" class="selectit"><input id="post_status_private" name="post_status" type="checkbox" value="private" <?php checked($post->post_status, 'private'); ?> tabindex='4' /> <?php _e('Keep this page private') ?></label></p>
<?php
if ($post_ID) {
if ( 'future' == $post->post_status ) { // scheduled for publishing at a future date
$stamp = __('Scheduled for:<br />%1$s at %2$s');
} else if ( 'publish' == $post->post_status ) { // already published
$stamp = __('Published on:<br />%1$s at %2$s');
} else if ( '0000-00-00 00:00:00' == $post->post_date ) { // draft, 1 or more saves, no date specified
$stamp = __('Publish immediately');
} else { // draft, 1 or more saves, date specified
$stamp = __('Publish on:<br />%1$s at %2$s');
}
$date = mysql2date(get_option('date_format'), $post->post_date);
$time = mysql2date(get_option('time_format'), $post->post_date);
} else { // draft (no saves, and thus no date specified)
$stamp = __('Publish immediately');
$date = mysql2date(get_option('date_format'), current_time('mysql'));
$time = mysql2date(get_option('time_format'), current_time('mysql'));
}
?>
<p class="curtime"><?php printf($stamp, $date, $time); ?>
&nbsp;<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js" tabindex='4'><?php _e('Edit') ?></a></p>
<div id='timestampdiv' class='hide-if-js'><?php touch_time(($action == 'edit'),1,4); ?></div>
</div>
<p class="submit">
<input type="submit" name="save" class="button button-highlighted" value="<?php _e('Save'); ?>" tabindex="4" />
<?php
if ( !in_array( $post->post_status, array('publish', 'future') ) || 0 == $post_ID ) {
?>
<?php if ( current_user_can('publish_pages') ) : ?>
<input name="publish" type="submit" class="button" id="publish" tabindex="5" accesskey="p" value="<?php _e('Publish') ?>" />
<?php else : ?>
<input name="publish" type="submit" class="button" id="publish" tabindex="5" accesskey="p" value="<?php _e('Submit for Review') ?>" />
<?php endif; ?>
<?php
}
if ( ('edit' == $action) && current_user_can('delete_page', $post_ID) )
echo "<a class='submitdelete' href='" . wp_nonce_url("page.php?action=delete&amp;post=$post_ID", 'delete-page_' . $post_ID) . "' onclick=\"if ( confirm('" . js_escape(sprintf( ('draft' == $post->post_status) ? __("You are about to delete this draft '%s'\n 'Cancel' to stop, 'OK' to delete.") : __("You are about to delete this page '%s'\n 'Cancel' to stop, 'OK' to delete."), $post->post_title )) . "') ) { return true;}return false;\">" . __('Delete&nbsp;page') . "</a>";
?>
<br class="clear" />
<?php if ($post_ID): ?>
<?php if ( $last_id = get_post_meta($post_ID, '_edit_last', true) ) {
$last_user = get_userdata($last_id);
printf(__('Last edited by %1$s on %2$s at %3$s'), wp_specialchars( $last_user->display_name ), mysql2date(get_option('date_format'), $post->post_modified), mysql2date(get_option('time_format'), $post->post_modified));
} else {
printf(__('Last edited on %1$s at %2$s'), mysql2date(get_option('date_format'), $post->post_modified), mysql2date(get_option('time_format'), $post->post_modified));
}
?>
<br class="clear" />
<?php endif; ?>
<span id="autosave"></span>
</p>
<div class="side-info">
<h5><?php _e('Related') ?></h5>
<ul>
<?php if ($post_ID): ?>
<li><a href="edit-pages.php?page_id=<?php echo $post_ID ?>"><?php _e('See Comments on this Page') ?></a></li>
<?php endif; ?>
<li><a href="edit-comments.php"><?php _e('Manage All Comments') ?></a></li>
<li><a href="edit-pages.php"><?php _e('Manage All Pages') ?></a></li>
<?php do_action('page_relatedlinks_list'); ?>
</ul>
</div>
<?php do_action('submitpage_box'); ?>
</div>
<div id="post-body">
<div id="titlediv">
<h3><?php _e('Title') ?></h3>
<div id="titlewrap">
<input type="text" name="post_title" size="30" tabindex="1" value="<?php echo attribute_escape( $post->post_title ); ?>" id="title" autocomplete="off" />
</div>
<div class="inside">
<?php $sample_permalink_html = get_sample_permalink_html($post->ID); ?>
<div id="edit-slug-box">
<?php if ( ! empty($post->ID) && ! empty($sample_permalink_html) ) :
echo $sample_permalink_html;
endif; ?>
</div>
</div>
</div>
<div id="<?php echo user_can_richedit() ? 'postdivrich' : 'postdiv'; ?>" class="postarea">
<h3><?php _e('Page') ?></h3>
<?php the_editor($post->post_content); ?>
<?php wp_nonce_field( 'autosave', 'autosavenonce', false ); ?>
<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
<?php wp_nonce_field( 'getpermalink', 'getpermalinknonce', false ); ?>
<?php wp_nonce_field( 'samplepermalink', 'samplepermalinknonce', false ); ?>
</div>
<?php do_meta_boxes('page', 'normal', $post); ?>
<?php do_action('edit_page_form'); ?>
<h2><?php _e('Advanced Options'); ?></h2>
<div id="pagepostcustom" class="postbox <?php echo postbox_classes('pagepostcustom', 'page'); ?>">
<h3><?php _e('Custom Fields') ?></h3>
<div class="inside">
<div id="postcustomstuff">
<table cellpadding="3">
<?php
$metadata = has_meta($post_ID);
list_meta($metadata);
?>
</table>
<?php
meta_form();
?>
<div id="ajax-response"></div>
</div>
<p><?php _e('Custom fields can be used to add extra metadata to a post that you can <a href="http://codex.wordpress.org/Using_Custom_Fields" target="_blank">use in your theme</a>.'); ?></p>
</div>
</div>
<div id="pagecommentstatusdiv" class="postbox <?php echo postbox_classes('pagecommentstatusdiv', 'page'); ?>">
<h3><?php _e('Comments &amp; Pings') ?></h3>
<div class="inside">
<input name="advanced_view" type="hidden" value="1" />
<p><label for="comment_status" class="selectit">
<input name="comment_status" type="checkbox" id="comment_status" value="open" <?php checked($post->comment_status, 'open'); ?> />
<?php _e('Allow Comments') ?></label></p>
<p><label for="ping_status" class="selectit"><input name="ping_status" type="checkbox" id="ping_status" value="open" <?php checked($post->ping_status, 'open'); ?> /> <?php _e('Allow Pings') ?></label></p>
<p><?php _e('These settings apply to this page only. &#8220;Pings&#8221; are <a href="http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments" target="_blank">trackbacks and pingbacks</a>.'); ?></p>
</div>
</div>
<div id="pagepassworddiv" class="postbox <?php echo postbox_classes('pagepassworddiv', 'page'); ?>">
<h3><?php _e('Password Protect This Page') ?></h3>
<div class="inside">
<p><input name="post_password" type="text" size="25" id="post_password" value="<?php echo attribute_escape( $post->post_password ); ?>" /></p>
<p><?php _e('Setting a password will require people who visit your blog to enter the above password to view this page and its comments.'); ?></p>
</div>
</div>
<div id="pageslugdiv" class="postbox <?php echo postbox_classes('pageslugdiv', 'page'); ?>">
<h3><?php _e('Page Slug') ?></h3>
<div class="inside">
<input name="post_name" type="text" size="13" id="post_name" value="<?php echo attribute_escape( $post->post_name ); ?>" />
</div>
</div>
<div id="pageparentdiv" class="postbox <?php echo postbox_classes('pageparentdiv', 'page'); ?>">
<h3><?php _e('Page Parent') ?></h3>
<div class="inside">
<select name="parent_id">
<option value='0'><?php _e('Main Page (no parent)'); ?></option>
<?php parent_dropdown($post->post_parent); ?>
</select>
<p><?php _e('You can arrange your pages in hierarchies, for example you could have an &#8220;About&#8221; page that has &#8220;Life Story&#8221; and &#8220;My Dog&#8221; pages under it. There are no limits to how deeply nested you can make pages.'); ?></p>
</div>
</div>
<?php if ( 0 != count( get_page_templates() ) ) { ?>
<div id="pagetemplatediv" class="postbox <?php echo postbox_classes('pagetemplatediv', 'page'); ?>">
<h3><?php _e('Page Template') ?></h3>
<div class="inside">
<select name="page_template">
<option value='default'><?php _e('Default Template'); ?></option>
<?php page_template_dropdown($post->page_template); ?>
</select>
<p><?php _e('Some themes have custom templates you can use for certain pages that might have additional features or custom layouts. If so, you&#8217;ll see them above.'); ?></p>
</div>
</div>
<?php } ?>
<div id="pageorderdiv" class="postbox <?php echo postbox_classes('pageorderdiv', 'page'); ?>">
<h3><?php _e('Page Order') ?></h3>
<div class="inside">
<p><input name="menu_order" type="text" size="4" id="menu_order" value="<?php echo $post->menu_order ?>" /></p>
<p><?php _e('Pages are usually ordered alphabetically, but you can put a number above to change the order pages appear in. (We know this is a little janky, it&#8217;ll be better in future releases.)'); ?></p>
</div>
</div>
<?php
$authors = get_editable_user_ids( $current_user->id ); // TODO: ROLE SYSTEM
if ( $post->post_author && !in_array($post->post_author, $authors) )
$authors[] = $post->post_author;
if ( $authors && count( $authors ) > 1 ) :
?>
<div id="pageauthordiv" class="postbox <?php echo postbox_classes('pageauthordiv', 'page'); ?>">
<h3><?php _e('Page Author'); ?></h3>
<div class="inside">
<?php wp_dropdown_users( array('include' => $authors, 'name' => 'post_author_override', 'selected' => empty($post_ID) ? $user_ID : $post->post_author) ); ?>
</div>
</div>
<?php endif; ?>
<?php do_meta_boxes('page', 'advanced', $post); ?>
</div>
</div>
</div>
</form>
<script type="text/javascript">
try{document.post.title.focus();}catch(e){}
</script>

213
wp-admin/edit-pages.php Normal file
View File

@@ -0,0 +1,213 @@
<?php
require_once('admin.php');
// Handle bulk deletes
if ( isset($_GET['deleteit']) && isset($_GET['delete']) ) {
check_admin_referer('bulk-pages');
foreach( (array) $_GET['delete'] as $post_id_del ) {
$post_del = & get_post($post_id_del);
if ( !current_user_can('delete_page', $post_id_del) )
wp_die( __('You are not allowed to delete this page.') );
if ( $post_del->post_type == 'attachment' ) {
if ( ! wp_delete_attachment($post_id_del) )
wp_die( __('Error in deleting...') );
} else {
if ( !wp_delete_post($post_id_del) )
wp_die( __('Error in deleting...') );
}
}
$sendback = wp_get_referer();
if (strpos($sendback, 'page.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/page-new.php';
elseif (strpos($sendback, 'attachments.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/attachments.php';
$sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback);
wp_redirect($sendback);
exit();
} elseif ( !empty($_GET['_wp_http_referer']) ) {
wp_redirect(remove_query_arg(array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI'])));
exit;
}
$title = __('Pages');
$parent_file = 'edit.php';
wp_enqueue_script('admin-forms');
$post_stati = array( // array( adj, noun )
'publish' => array(__('Published'), __('Published pages'), __ngettext_noop('Published (%s)', 'Published (%s)')),
'future' => array(__('Scheduled'), __('Scheduled pages'), __ngettext_noop('Scheduled (%s)', 'Scheduled (%s)')),
'pending' => array(__('Pending Review'), __('Pending pages'), __ngettext_noop('Pending Review (%s)', 'Pending Review (%s)')),
'draft' => array(__('Draft'), _c('Drafts|manage posts header'), __ngettext_noop('Draft (%s)', 'Drafts (%s)')),
'private' => array(__('Private'), __('Private pages'), __ngettext_noop('Private (%s)', 'Private (%s)'))
);
$post_status_label = __('Manage Pages');
$post_status_q = '';
if ( isset($_GET['post_status']) && in_array( $_GET['post_status'], array_keys($post_stati) ) ) {
$post_status_label = $post_stati[$_GET['post_status']][1];
$post_status_q = '&post_status=' . $_GET['post_status'];
$post_status_q .= '&perm=readable';
}
$query_str = "post_type=page&orderby=menu_order title&what_to_show=posts$post_status_q&posts_per_page=-1&posts_per_archive_page=-1&order=asc";
$query_str = apply_filters('manage_pages_query', $query_str);
wp($query_str);
if ( is_singular() )
wp_enqueue_script( 'admin-comments' );
require_once('admin-header.php');
?>
<div class="wrap">
<form id="posts-filter" action="" method="get">
<h2><?php
// Use $_GET instead of is_ since they can override each other
$h2_search = isset($_GET['s']) && $_GET['s'] ? ' ' . sprintf(__('matching &#8220;%s&#8221;'), wp_specialchars( stripslashes( $_GET['s'] ) ) ) : '';
$h2_author = '';
if ( isset($_GET['author']) && $_GET['author'] ) {
$author_user = get_userdata( (int) $_GET['author'] );
$h2_author = ' ' . sprintf(__('by %s'), wp_specialchars( $author_user->display_name ));
}
printf( _c( '%1$s%2$s%3$s|You can reorder these: 1: Pages, 2: by {s}, 3: matching {s}' ), $post_status_label, $h2_author, $h2_search );
?></h2>
<ul class="subsubsub">
<?php
$avail_post_stati = get_available_post_statuses('page');
$status_links = array();
$num_posts = wp_count_posts('page', 'readable');
$class = empty($_GET['post_status']) ? ' class="current"' : '';
$status_links[] = "<li><a href=\"edit-pages.php\"$class>".__('All Pages')."</a>";
foreach ( $post_stati as $status => $label ) {
$class = '';
if ( !in_array($status, $avail_post_stati) )
continue;
if ( $status == $_GET['post_status'] )
$class = ' class="current"';
$status_links[] = "<li><a href=\"edit-pages.php?post_status=$status\"$class>" .
sprintf(__ngettext($label[2][0], $label[2][1], $num_posts->$status), number_format_i18n( $num_posts->$status ) ) . '</a>';
}
echo implode(' |</li>', $status_links) . '</li>';
unset($status_links);
?>
</ul>
<?php if ( isset($_GET['post_status'] ) ) : ?>
<input type="hidden" name="post_status" value="<?php echo attribute_escape($_GET['post_status']) ?>" />
<?php
endif;
if ( isset($_GET['posted']) && $_GET['posted'] ) : $_GET['posted'] = (int) $_GET['posted']; ?>
<div id="message" class="updated fade"><p><strong><?php _e('Your page has been saved.'); ?></strong> <a href="<?php echo get_permalink( $_GET['posted'] ); ?>"><?php _e('View page'); ?></a> | <a href="page.php?action=edit&amp;post=<?php echo $_GET['posted']; ?>"><?php _e('Edit page'); ?></a></p></div>
<?php $_SERVER['REQUEST_URI'] = remove_query_arg(array('posted'), $_SERVER['REQUEST_URI']);
endif;
?>
<p id="post-search">
<input type="text" id="post-search-input" name="s" value="<?php echo attribute_escape(stripslashes($_GET['s'])); ?>" />
<input type="submit" value="<?php _e( 'Search Pages' ); ?>" class="button" />
</p>
<div class="tablenav">
<div class="alignleft">
<input type="submit" value="<?php _e('Delete'); ?>" name="deleteit" class="button-secondary delete" />
<?php wp_nonce_field('bulk-pages'); ?>
</div>
<br class="clear" />
</div>
<br class="clear" />
<?php
$all = !( $h2_search || $post_status_q );
if ($posts) {
?>
<table class="widefat">
<thead>
<tr>
<?php $posts_columns = wp_manage_pages_columns(); ?>
<?php foreach($posts_columns as $post_column_key => $column_display_name) {
if ( 'cb' === $post_column_key )
$class = ' class="check-column"';
elseif ( 'comments' === $post_column_key )
$class = ' class="num"';
else
$class = '';
?>
<th scope="col"<?php echo $class; ?>><?php echo $column_display_name; ?></th>
<?php } ?>
</tr>
</thead>
<tbody>
<?php page_rows($posts); ?>
</tbody>
</table>
</form>
<div id="ajax-response"></div>
<?php
} else {
?>
</form>
<p><?php _e('No pages found.') ?></p>
<?php
} // end if ($posts)
?>
<div class="tablenav">
<br class="clear" />
</div>
<?php
if ( 1 == count($posts) && is_singular() ) :
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $id AND comment_approved != 'spam' ORDER BY comment_date");
if ( $comments ) :
// Make sure comments, post, and post_author are cached
update_comment_cache($comments);
$post = get_post($id);
$authordata = get_userdata($post->post_author);
?>
<br class="clear" />
<table class="widefat" style="margin-top: .5em">
<thead>
<tr>
<th scope="col"><?php _e('Comment') ?></th>
<th scope="col"><?php _e('Date') ?></th>
<th scope="col"><?php _e('Actions') ?></th>
</tr>
</thead>
<tbody id="the-comment-list" class="list:comment">
<?php
foreach ($comments as $comment)
_wp_comment_row( $comment->comment_ID, 'detail', false, false );
?>
</tbody>
</table>
<?php
endif; // comments
endif; // posts;
?>
</div>
<?php include('admin-footer.php'); ?>

206
wp-admin/edit-post-rows.php Normal file
View File

@@ -0,0 +1,206 @@
<?php if ( ! defined('ABSPATH') ) die(); ?>
<table class="widefat">
<thead>
<tr>
<?php $posts_columns = wp_manage_posts_columns(); ?>
<?php foreach($posts_columns as $post_column_key => $column_display_name) {
if ( 'cb' === $post_column_key )
$class = ' class="check-column"';
elseif ( 'comments' === $post_column_key )
$class = ' class="num"';
else
$class = '';
?>
<th scope="col"<?php echo $class; ?>><?php echo $column_display_name; ?></th>
<?php } ?>
</tr>
</thead>
<tbody>
<?php
if ( have_posts() ) {
$bgcolor = '';
add_filter('the_title','wp_specialchars');
// Create array of post IDs.
$post_ids = array();
foreach ( $wp_query->posts as $a_post )
$post_ids[] = $a_post->ID;
$comment_pending_count = get_pending_comments_num($post_ids);
while (have_posts()) : the_post();
$class = 'alternate' == $class ? '' : 'alternate';
global $current_user;
$post_owner = ( $current_user->ID == $post->post_author ? 'self' : 'other' );
$title = get_the_title();
if ( empty($title) )
$title = __('(no title)');
?>
<tr id='post-<?php echo $id; ?>' class='<?php echo trim( $class . ' author-' . $post_owner . ' status-' . $post->post_status ); ?>' valign="top">
<?php
foreach($posts_columns as $column_name=>$column_display_name) {
switch($column_name) {
case 'cb':
?>
<th scope="row" class="check-column"><?php if ( current_user_can( 'edit_post', $post->ID ) ) { ?><input type="checkbox" name="delete[]" value="<?php the_ID(); ?>" /><?php } ?></th>
<?php
break;
case 'modified':
case 'date':
if ( '0000-00-00 00:00:00' == $post->post_date && 'date' == $column_name ) {
$t_time = $h_time = __('Unpublished');
} else {
if ( 'modified' == $column_name ) {
$t_time = get_the_modified_time(__('Y/m/d g:i:s A'));
$m_time = $post->post_modified;
$time = get_post_modified_time('G', true);
} else {
$t_time = get_the_time(__('Y/m/d g:i:s A'));
$m_time = $post->post_date;
$time = get_post_time('G', true);
}
if ( ( abs(time() - $time) ) < 86400 ) {
if ( ( 'future' == $post->post_status) )
$h_time = sprintf( __('%s from now'), human_time_diff( $time ) );
else
$h_time = sprintf( __('%s ago'), human_time_diff( $time ) );
} else {
$h_time = mysql2date(__('Y/m/d'), $m_time);
}
}
?>
<td><abbr title="<?php echo $t_time ?>"><?php echo apply_filters('post_date_column_time', $h_time, $post, $column_name) ?></abbr></td>
<?php
break;
case 'title':
?>
<td><strong><?php if ( current_user_can( 'edit_post', $post->ID ) ) { ?><a class="row-title" href="post.php?action=edit&amp;post=<?php the_ID(); ?>" title="<?php echo attribute_escape(sprintf(__('Edit "%s"'), $title)); ?>"><?php echo $title ?></a><?php } else { echo $title; } ?></strong>
<?php if ( !empty($post->post_password) ) { _e(' &#8212; <strong>Protected</strong>'); } elseif ('private' == $post->post_status) { _e(' &#8212; <strong>Private</strong>'); } ?></td>
<?php
break;
case 'categories':
?>
<td><?php
$categories = get_the_category();
if ( !empty( $categories ) ) {
$out = array();
foreach ( $categories as $c )
$out[] = "<a href='edit.php?category_name=$c->slug'> " . wp_specialchars(sanitize_term_field('name', $c->name, $c->term_id, 'category', 'display')) . "</a>";
echo join( ', ', $out );
} else {
_e('Uncategorized');
}
?></td>
<?php
break;
case 'tags':
?>
<td><?php
$tags = get_the_tags();
if ( !empty( $tags ) ) {
$out = array();
foreach ( $tags as $c )
$out[] = "<a href='edit.php?tag=$c->slug'> " . wp_specialchars(sanitize_term_field('name', $c->name, $c->term_id, 'post_tag', 'display')) . "</a>";
echo join( ', ', $out );
} else {
_e('No Tags');
}
?></td>
<?php
break;
case 'comments':
?>
<td class="num"><div class="post-com-count-wrapper">
<?php
$left = isset($comment_pending_count) ? $comment_pending_count[$post->ID] : 0;
$pending_phrase = sprintf( __('%s pending'), number_format( $left ) );
if ( $left )
echo '<strong>';
comments_number("<a href='edit.php?p=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('0') . '</span></a>', "<a href='edit.php?p=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('1') . '</span></a>', "<a href='edit.php?p=$id' title='$pending_phrase' class='post-com-count'><span class='comment-count'>" . __('%') . '</span></a>');
if ( $left )
echo '</strong>';
?>
</div></td>
<?php
break;
case 'author':
?>
<td><a href="edit.php?author=<?php the_author_ID(); ?>"><?php the_author() ?></a></td>
<?php
break;
case 'status':
?>
<td>
<a href="<?php the_permalink(); ?>" title="<?php echo attribute_escape(sprintf(__('View "%s"'), $title)); ?>" rel="permalink">
<?php
switch ( $post->post_status ) {
case 'publish' :
case 'private' :
_e('Published');
break;
case 'future' :
_e('Scheduled');
break;
case 'pending' :
_e('Pending Review');
break;
case 'draft' :
_e('Unpublished');
break;
}
?>
</a>
</td>
<?php
break;
case 'control_view':
?>
<td><a href="<?php the_permalink(); ?>" rel="permalink" class="view"><?php _e('View'); ?></a></td>
<?php
break;
case 'control_edit':
?>
<td><?php if ( current_user_can('edit_post',$post->ID) ) { echo "<a href='post.php?action=edit&amp;post=$id' class='edit'>" . __('Edit') . "</a>"; } ?></td>
<?php
break;
case 'control_delete':
?>
<td><?php if ( current_user_can('delete_post',$post->ID) ) { echo "<a href='" . wp_nonce_url("post.php?action=delete&amp;post=$id", 'delete-post_' . $post->ID) . "' class='delete'>" . __('Delete') . "</a>"; } ?></td>
<?php
break;
default:
?>
<td><?php do_action('manage_posts_custom_column', $column_name, $id); ?></td>
<?php
break;
}
}
?>
</tr>
<?php
endwhile;
} else {
?>
<tr style='background-color: <?php echo $bgcolor; ?>'>
<td colspan="8"><?php _e('No posts found.') ?></td>
</tr>
<?php
} // end if ( have_posts() )
?>
</tbody>
</table>

View File

@@ -1,96 +1,41 @@
<?php
/**
* Edit tag form for inclusion in administration panels.
*
* @package WordPress
* @subpackage Administration
*/
// don't load directly
if ( !defined('ABSPATH') )
die('-1');
if ( empty($tag_ID) ) { ?>
<div id="message" class="updated"><p><strong><?php _e( 'You did not select an item for editing.' ); ?></strong></p></div>
<?php
return;
}
// Back compat hooks
if ( 'category' == $taxonomy )
do_action('edit_category_form_pre', $tag );
elseif ( 'link_category' == $taxonomy )
do_action('edit_link_category_form_pre', $tag );
else
if ( ! empty($tag_ID) ) {
$heading = __('Edit Tag');
$submit_text = __('Edit Tag');
$form = '<form name="edittag" id="edittag" method="post" action="edit-tags.php" class="validate">';
$action = 'editedtag';
$nonce_action = 'update-tag_' . $tag_ID;
do_action('edit_tag_form_pre', $tag);
do_action($taxonomy . '_pre_edit_form', $tag, $taxonomy); ?>
} else {
$heading = __('Add Tag');
$submit_text = __('Add Tag');
$form = '<form name="addtag" id="addtag" method="post" action="edit-tags.php" class="add:the-list: validate">';
$action = 'addtag';
$nonce_action = 'add-tag';
do_action('add_tag_form_pre', $tag);
}
?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php echo $tax->labels->edit_item; ?></h2>
<h2><?php echo $heading ?></h2>
<div id="ajax-response"></div>
<form name="edittag" id="edittag" method="post" action="edit-tags.php" class="validate"<?php do_action( $taxonomy . '_term_edit_form_tag' ); ?>>
<input type="hidden" name="action" value="editedtag" />
<input type="hidden" name="tag_ID" value="<?php echo esc_attr($tag->term_id) ?>" />
<input type="hidden" name="taxonomy" value="<?php echo esc_attr($taxonomy) ?>" />
<?php wp_original_referer_field(true, 'previous'); wp_nonce_field('update-tag_' . $tag_ID); ?>
<?php echo $form ?>
<input type="hidden" name="action" value="<?php echo $action ?>" />
<input type="hidden" name="tag_ID" value="<?php echo $tag->term_id ?>" />
<?php wp_original_referer_field(true, 'previous'); wp_nonce_field($nonce_action); ?>
<table class="form-table">
<tr class="form-field form-required">
<th scope="row" valign="top"><label for="name"><?php _ex('Name', 'Taxonomy Name'); ?></label></th>
<td><input name="name" id="name" type="text" value="<?php if ( isset( $tag->name ) ) echo esc_attr($tag->name); ?>" size="40" aria-required="true" />
<p class="description"><?php _e('The name is how it appears on your site.'); ?></p></td>
<th scope="row" valign="top"><label for="name"><?php _e('Tag name') ?></label></th>
<td><input name="name" id="name" type="text" value="<?php echo attribute_escape($tag->name); ?>" size="40" />
<p><?php _e('The name is how the tag appears on your site.'); ?></p></td>
</tr>
<?php if ( !global_terms_enabled() ) { ?>
<tr class="form-field">
<th scope="row" valign="top"><label for="slug"><?php _ex('Slug', 'Taxonomy Slug'); ?></label></th>
<td><input name="slug" id="slug" type="text" value="<?php if ( isset( $tag->slug ) ) echo esc_attr(apply_filters('editable_slug', $tag->slug)); ?>" size="40" />
<p class="description"><?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></td>
<th scope="row" valign="top"><label for="slug"><?php _e('Tag slug') ?></label></th>
<td><input name="slug" id="slug" type="text" value="<?php echo attribute_escape($tag->slug); ?>" 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></td>
</tr>
<?php } ?>
<?php if ( is_taxonomy_hierarchical($taxonomy) ) : ?>
<tr class="form-field">
<th scope="row" valign="top"><label for="parent"><?php _ex('Parent', 'Taxonomy Parent'); ?></label></th>
<td>
<?php wp_dropdown_categories(array('hide_empty' => 0, 'hide_if_empty' => false, 'name' => 'parent', 'orderby' => 'name', 'taxonomy' => $taxonomy, 'selected' => $tag->parent, 'exclude_tree' => $tag->term_id, 'hierarchical' => true, 'show_option_none' => __('None'))); ?>
<?php if ( 'category' == $taxonomy ) : ?>
<p class="description"><?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>
<?php endif; ?>
</td>
</tr>
<?php endif; // is_taxonomy_hierarchical() ?>
<tr class="form-field">
<th scope="row" valign="top"><label for="description"><?php _ex('Description', 'Taxonomy Description'); ?></label></th>
<td><textarea name="description" id="description" rows="5" cols="50" class="large-text"><?php echo $tag->description; // textarea_escaped ?></textarea><br />
<span class="description"><?php _e('The description is not prominent by default; however, some themes may show it.'); ?></span></td>
</tr>
<?php
// Back compat hooks
if ( 'category' == $taxonomy )
do_action('edit_category_form_fields', $tag);
elseif ( 'link_category' == $taxonomy )
do_action('edit_link_category_form_fields', $tag);
else
do_action('edit_tag_form_fields', $tag);
do_action($taxonomy . '_edit_form_fields', $tag, $taxonomy);
?>
</table>
<?php
// Back compat hooks
if ( 'category' == $taxonomy )
do_action('edit_category_form', $tag);
elseif ( 'link_category' == $taxonomy )
do_action('edit_link_category_form', $tag);
else
do_action('edit_tag_form', $tag);
do_action($taxonomy . '_edit_form', $tag, $taxonomy);
submit_button( __('Update') );
?>
<p class="submit"><input type="submit" class="button" name="submit" value="<?php echo $submit_text ?>" /></p>
<?php do_action('edit_tag_form', $tag); ?>
</form>
</div>
<script type="text/javascript">
try{document.forms.edittag.name.focus();}catch(e){}
</script>

View File

@@ -1,465 +1,216 @@
<?php
/**
* Edit Tags Administration Screen.
*
* @package WordPress
* @subpackage Administration
*/
require_once('admin.php');
/** WordPress Administration Bootstrap */
require_once( dirname( __FILE__ ) . '/admin.php' );
$title = __('Tags');
$parent_file = 'edit.php';
if ( ! $taxnow )
wp_die( __( 'Invalid taxonomy' ) );
wp_reset_vars(array('action', 'tag'));
$tax = get_taxonomy( $taxnow );
if ( isset($_GET['deleteit']) && isset($_GET['delete_tags']) )
$action = 'bulk-delete';
if ( ! $tax )
wp_die( __( 'Invalid taxonomy' ) );
switch($action) {
if ( ! current_user_can( $tax->cap->manage_terms ) )
wp_die( __( 'Cheatin&#8217; uh?' ) );
case 'addtag':
$wp_list_table = _get_list_table('WP_Terms_List_Table');
$pagenum = $wp_list_table->get_pagenum();
check_admin_referer('add-tag');
$title = $tax->labels->name;
if ( !current_user_can('manage_categories') )
wp_die(__('Cheatin&#8217; uh?'));
if ( 'post' != $post_type ) {
$parent_file = ( 'attachment' == $post_type ) ? 'upload.php' : "edit.php?post_type=$post_type";
$submenu_file = "edit-tags.php?taxonomy=$taxonomy&amp;post_type=$post_type";
} else if ( 'link_category' == $tax->name ) {
$parent_file = 'link-manager.php';
$submenu_file = 'edit-tags.php?taxonomy=link_category';
} else {
$parent_file = 'edit.php';
$submenu_file = "edit-tags.php?taxonomy=$taxonomy";
}
add_screen_option( 'per_page', array( 'label' => $title, 'default' => 20, 'option' => 'edit_' . $tax->name . '_per_page' ) );
switch ( $wp_list_table->current_action() ) {
case 'add-tag':
check_admin_referer( 'add-tag', '_wpnonce_add-tag' );
if ( !current_user_can( $tax->cap->edit_terms ) )
wp_die( __( 'Cheatin&#8217; uh?' ) );
$ret = wp_insert_term( $_POST['tag-name'], $taxonomy, $_POST );
$location = 'edit-tags.php?taxonomy=' . $taxonomy;
if ( 'post' != $post_type )
$location .= '&post_type=' . $post_type;
if ( $referer = wp_get_original_referer() ) {
if ( false !== strpos( $referer, 'edit-tags.php' ) )
$location = $referer;
$ret = wp_insert_term($_POST['name'], 'post_tag', $_POST);
if ( $ret && !is_wp_error( $ret ) ) {
wp_redirect('edit-tags.php?message=1#addtag');
} else {
wp_redirect('edit-tags.php?message=4#addtag');
}
if ( $ret && !is_wp_error( $ret ) )
$location = add_query_arg( 'message', 1, $location );
else
$location = add_query_arg( 'message', 4, $location );
wp_redirect( $location );
exit;
break;
case 'delete':
$location = 'edit-tags.php?taxonomy=' . $taxonomy;
if ( 'post' != $post_type )
$location .= '&post_type=' . $post_type;
if ( $referer = wp_get_referer() ) {
if ( false !== strpos( $referer, 'edit-tags.php' ) )
$location = $referer;
}
$tag_ID = (int) $_GET['tag_ID'];
check_admin_referer('delete-tag_' . $tag_ID);
if ( !isset( $_REQUEST['tag_ID'] ) ) {
wp_redirect( $location );
exit;
}
if ( !current_user_can('manage_categories') )
wp_die(__('Cheatin&#8217; uh?'));
$tag_ID = (int) $_REQUEST['tag_ID'];
check_admin_referer( 'delete-tag_' . $tag_ID );
wp_delete_term( $tag_ID, 'post_tag');
if ( !current_user_can( $tax->cap->delete_terms ) )
wp_die( __( 'Cheatin&#8217; uh?' ) );
wp_delete_term( $tag_ID, $taxonomy );
$location = add_query_arg( 'message', 2, $location );
wp_redirect( $location );
wp_redirect('edit-tags.php?message=2');
exit;
break;
case 'bulk-delete':
check_admin_referer( 'bulk-tags' );
check_admin_referer('bulk-tags');
if ( !current_user_can( $tax->cap->delete_terms ) )
wp_die( __( 'Cheatin&#8217; uh?' ) );
if ( !current_user_can('manage_categories') )
wp_die(__('Cheatin&#8217; uh?'));
$tags = (array) $_REQUEST['delete_tags'];
foreach ( $tags as $tag_ID ) {
wp_delete_term( $tag_ID, $taxonomy );
$tags = $_GET['delete_tags'];
foreach( (array) $tags as $tag_ID ) {
wp_delete_term( $tag_ID, 'post_tag');
}
$location = 'edit-tags.php?taxonomy=' . $taxonomy;
if ( 'post' != $post_type )
$location .= '&post_type=' . $post_type;
$location = 'edit-tags.php';
if ( $referer = wp_get_referer() ) {
if ( false !== strpos( $referer, 'edit-tags.php' ) )
if ( false !== strpos($referer, 'edit-tags.php') )
$location = $referer;
}
$location = add_query_arg( 'message', 6, $location );
wp_redirect( $location );
$location = add_query_arg('message', 6, $location);
wp_redirect($location);
exit;
break;
case 'edit':
$title = $tax->labels->edit_item;
$tag_ID = (int) $_REQUEST['tag_ID'];
require_once ('admin-header.php');
$tag_ID = (int) $_GET['tag_ID'];
$tag = get_term( $tag_ID, $taxonomy, OBJECT, 'edit' );
if ( ! $tag )
wp_die( __( 'You attempted to edit an item that doesn&#8217;t exist. Perhaps it was deleted?' ) );
require_once( ABSPATH . 'wp-admin/admin-header.php' );
include( ABSPATH . 'wp-admin/edit-tag-form.php' );
$tag = get_term($tag_ID, 'post_tag', OBJECT, 'edit');
include('edit-tag-form.php');
break;
case 'editedtag':
$tag_ID = (int) $_POST['tag_ID'];
check_admin_referer( 'update-tag_' . $tag_ID );
check_admin_referer('update-tag_' . $tag_ID);
if ( !current_user_can( $tax->cap->edit_terms ) )
wp_die( __( 'Cheatin&#8217; uh?' ) );
if ( !current_user_can('manage_categories') )
wp_die(__('Cheatin&#8217; uh?'));
$tag = get_term( $tag_ID, $taxonomy );
if ( ! $tag )
wp_die( __( 'You attempted to edit an item that doesn&#8217;t exist. Perhaps it was deleted?' ) );
$ret = wp_update_term( $tag_ID, $taxonomy, $_POST );
$location = 'edit-tags.php?taxonomy=' . $taxonomy;
if ( 'post' != $post_type )
$location .= '&post_type=' . $post_type;
$ret = wp_update_term($tag_ID, 'post_tag', $_POST);
$location = 'edit-tags.php';
if ( $referer = wp_get_original_referer() ) {
if ( false !== strpos( $referer, 'edit-tags.php' ) )
if ( false !== strpos($referer, 'edit-tags.php') )
$location = $referer;
}
if ( $ret && !is_wp_error( $ret ) )
$location = add_query_arg( 'message', 3, $location );
$location = add_query_arg('message', 3, $location);
else
$location = add_query_arg( 'message', 5, $location );
$location = add_query_arg('message', 5, $location);
wp_redirect( $location );
wp_redirect($location);
exit;
break;
default:
if ( ! empty($_REQUEST['_wp_http_referer']) ) {
$location = remove_query_arg( array('_wp_http_referer', '_wpnonce'), wp_unslash($_SERVER['REQUEST_URI']) );
if ( ! empty( $_REQUEST['paged'] ) )
$location = add_query_arg( 'paged', (int) $_REQUEST['paged'] );
wp_redirect( $location );
exit;
if ( !empty($_GET['_wp_http_referer']) ) {
wp_redirect(remove_query_arg(array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI'])));
exit;
}
$wp_list_table->prepare_items();
$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
wp_enqueue_script( 'admin-tags' );
wp_enqueue_script('admin-forms');
if ( $pagenum > $total_pages && $total_pages > 0 ) {
wp_redirect( add_query_arg( 'paged', $total_pages ) );
exit;
}
wp_enqueue_script('admin-tags');
if ( current_user_can($tax->cap->edit_terms) )
wp_enqueue_script('inline-edit-tax');
if ( 'category' == $taxonomy || 'link_category' == $taxonomy || 'post_tag' == $taxonomy ) {
$help ='';
if ( 'category' == $taxonomy )
$help = '<p>' . sprintf(__( 'You can use categories to define sections of your site and group related posts. The default category is &#8220;Uncategorized&#8221; until you change it in your <a href="%s">writing settings</a>.' ) , 'options-writing.php' ) . '</p>';
elseif ( 'link_category' == $taxonomy )
$help = '<p>' . __( 'You can create groups of links by using Link Categories. Link Category names must be unique and Link Categories are separate from the categories you use for posts.' ) . '</p>';
else
$help = '<p>' . __( 'You can assign keywords to your posts using <strong>tags</strong>. Unlike categories, tags have no hierarchy, meaning there&#8217;s no relationship from one tag to another.' ) . '</p>';
if ( 'link_category' == $taxonomy )
$help .= '<p>' . __( 'You can delete Link Categories in the Bulk Action pull-down, but that action does not delete the links within the category. Instead, it moves them to the default Link Category.' ) . '</p>';
else
$help .='<p>' . __( 'What&#8217;s the difference between categories and tags? Normally, tags are ad-hoc keywords that identify important information in your post (names, subjects, etc) that may or may not recur in other posts, while categories are pre-determined sections. If you think of your site like a book, the categories are like the Table of Contents and the tags are like the terms in the index.' ) . '</p>';
get_current_screen()->add_help_tab( array(
'id' => 'overview',
'title' => __('Overview'),
'content' => $help,
) );
if ( 'category' == $taxonomy || 'post_tag' == $taxonomy ) {
if ( 'category' == $taxonomy )
$help = '<p>' . __( 'When adding a new category on this screen, you&#8217;ll fill in the following fields:' ) . '</p>';
else
$help = '<p>' . __( 'When adding a new tag on this screen, you&#8217;ll fill in the following fields:' ) . '</p>';
$help .= '<ul>' .
'<li>' . __( '<strong>Name</strong> - The name is how it appears on your site.' ) . '</li>';
if ( ! global_terms_enabled() )
$help .= '<li>' . __( '<strong>Slug</strong> - The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.' ) . '</li>';
if ( 'category' == $taxonomy )
$help .= '<li>' . __( '<strong>Parent</strong> - Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have child categories for Bebop and Big Band. Totally optional. To create a subcategory, just choose another category from the Parent dropdown.' ) . '</li>';
$help .= '<li>' . __( '<strong>Description</strong> - The description is not prominent by default; however, some themes may display it.' ) . '</li>' .
'</ul>' .
'<p>' . __( 'You can change the display of this screen using the Screen Options tab to set how many items are displayed per screen and to display/hide columns in the table.' ) . '</p>';
get_current_screen()->add_help_tab( array(
'id' => 'adding-terms',
'title' => 'category' == $taxonomy ? __( 'Adding Categories' ) : __( 'Adding Tags' ),
'content' => $help,
) );
}
$help = '<p><strong>' . __( 'For more information:' ) . '</strong></p>';
if ( 'category' == $taxonomy )
$help .= '<p>' . __( '<a href="http://codex.wordpress.org/Posts_Categories_Screen" target="_blank">Documentation on Categories</a>' ) . '</p>';
elseif ( 'link_category' == $taxonomy )
$help .= '<p>' . __( '<a href="http://codex.wordpress.org/Links_Link_Categories_Screen" target="_blank">Documentation on Link Categories</a>' ) . '</p>';
else
$help .= '<p>' . __( '<a href="http://codex.wordpress.org/Posts_Tags_Screen" target="_blank">Documentation on Tags</a>' ) . '</p>';
$help .= '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>';
get_current_screen()->set_help_sidebar( $help );
unset( $help );
}
require_once( ABSPATH . 'wp-admin/admin-header.php' );
if ( !current_user_can($tax->cap->edit_terms) )
wp_die( __('You are not allowed to edit this item.') );
$messages = array();
$messages['_item'] = array(
0 => '', // Unused. Messages start at index 1.
1 => __( 'Item added.' ),
2 => __( 'Item deleted.' ),
3 => __( 'Item updated.' ),
4 => __( 'Item not added.' ),
5 => __( 'Item not updated.' ),
6 => __( 'Items deleted.' )
);
$messages['category'] = array(
0 => '', // Unused. Messages start at index 1.
1 => __( 'Category added.' ),
2 => __( 'Category deleted.' ),
3 => __( 'Category updated.' ),
4 => __( 'Category not added.' ),
5 => __( 'Category not updated.' ),
6 => __( 'Categories deleted.' )
);
$messages['post_tag'] = array(
0 => '', // Unused. Messages start at index 1.
1 => __( 'Tag added.' ),
2 => __( 'Tag deleted.' ),
3 => __( 'Tag updated.' ),
4 => __( 'Tag not added.' ),
5 => __( 'Tag not updated.' ),
6 => __( 'Tags deleted.' )
);
$messages = apply_filters( 'term_updated_messages', $messages );
$message = false;
if ( isset( $_REQUEST['message'] ) && ( $msg = (int) $_REQUEST['message'] ) ) {
if ( isset( $messages[ $taxonomy ][ $msg ] ) )
$message = $messages[ $taxonomy ][ $msg ];
elseif ( ! isset( $messages[ $taxonomy ] ) && isset( $messages['_item'][ $msg ] ) )
$message = $messages['_item'][ $msg ];
}
require_once ('admin-header.php');
$messages[1] = __('Tag added.');
$messages[2] = __('Tag deleted.');
$messages[3] = __('Tag updated.');
$messages[4] = __('Tag not added.');
$messages[5] = __('Tag not updated.');
$messages[6] = __('Tags deleted.');
?>
<div class="wrap nosubsub">
<?php screen_icon(); ?>
<h2><?php echo esc_html( $title );
if ( !empty($_REQUEST['s']) )
printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( wp_unslash($_REQUEST['s']) ) ); ?>
</h2>
<?php if ( $message ) : ?>
<div id="message" class="updated"><p><?php echo $message; ?></p></div>
<?php if (isset($_GET['message'])) : ?>
<div id="message" class="updated fade"><p><?php echo $messages[$_GET['message']]; ?></p></div>
<?php $_SERVER['REQUEST_URI'] = remove_query_arg(array('message'), $_SERVER['REQUEST_URI']);
endif; ?>
<div id="ajax-response"></div>
<form class="search-form" action="" method="get">
<input type="hidden" name="taxonomy" value="<?php echo esc_attr($taxonomy); ?>" />
<input type="hidden" name="post_type" value="<?php echo esc_attr($post_type); ?>" />
<div class="wrap">
<?php $wp_list_table->search_box( $tax->labels->search_items, 'tag' ); ?>
</form>
<br class="clear" />
<div id="col-container">
<div id="col-right">
<div class="col-wrap">
<form id="posts-filter" action="" method="post">
<input type="hidden" name="taxonomy" value="<?php echo esc_attr($taxonomy); ?>" />
<input type="hidden" name="post_type" value="<?php echo esc_attr($post_type); ?>" />
<?php $wp_list_table->display(); ?>
<br class="clear" />
</form>
<?php if ( 'category' == $taxonomy ) : ?>
<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>
<?php if ( current_user_can( 'import' ) ) : ?>
<p><?php printf(__('Categories can be selectively converted to tags using the <a href="%s">category to tag converter</a>.'), 'import.php') ?></p>
<form id="posts-filter" action="" method="get">
<?php if ( current_user_can('manage_categories') ) : ?>
<h2><?php printf(__('Manage Tags (<a href="%s">add new</a>)'), '#addtag') ?> </h2>
<?php else : ?>
<h2><?php _e('Manage Tags') ?> </h2>
<?php endif; ?>
</div>
<?php elseif ( 'post_tag' == $taxonomy && current_user_can( 'import' ) ) : ?>
<div class="form-wrap">
<p><?php printf(__('Tags can be selectively converted to categories using the <a href="%s">tag to category converter</a>.'), 'import.php') ;?></p>
</div>
<?php endif;
do_action('after-' . $taxonomy . '-table', $taxonomy);
?>
</div>
</div><!-- /col-right -->
<p id="post-search">
<input type="text" id="post-search-input" name="s" value="<?php echo attribute_escape(stripslashes($_GET['s'])); ?>" />
<input type="submit" value="<?php _e( 'Search Tags' ); ?>" class="button" />
</p>
<div id="col-left">
<div class="col-wrap">
<br class="clear" />
<div class="tablenav">
<?php
$pagenum = absint( $_GET['pagenum'] );
if ( empty($pagenum) )
$pagenum = 1;
if( !$tagsperpage || $tagsperpage < 0 )
$tagsperpage = 20;
if ( !is_null( $tax->labels->popular_items ) ) {
if ( current_user_can( $tax->cap->edit_terms ) )
$tag_cloud = wp_tag_cloud( array( 'taxonomy' => $taxonomy, 'echo' => false, 'link' => 'edit' ) );
else
$tag_cloud = wp_tag_cloud( array( 'taxonomy' => $taxonomy, 'echo' => false ) );
$page_links = paginate_links( array(
'base' => add_query_arg( 'pagenum', '%#%' ),
'format' => '',
'total' => ceil(wp_count_terms('post_tag') / $tagsperpage),
'current' => $pagenum
));
if ( $tag_cloud ) :
?>
<div class="tagcloud">
<h3><?php echo $tax->labels->popular_items; ?></h3>
<?php echo $tag_cloud; unset( $tag_cloud ); ?>
</div>
<?php
endif;
}
if ( current_user_can($tax->cap->edit_terms) ) {
// Back compat hooks. Deprecated in preference to {$taxonomy}_pre_add_form
if ( 'category' == $taxonomy )
do_action('add_category_form_pre', (object)array('parent' => 0) );
elseif ( 'link_category' == $taxonomy )
do_action('add_link_category_form_pre', (object)array('parent' => 0) );
else
do_action('add_tag_form_pre', $taxonomy);
do_action($taxonomy . '_pre_add_form', $taxonomy);
if ( $page_links )
echo "<div class='tablenav-pages'>$page_links</div>";
?>
<div class="form-wrap">
<h3><?php echo $tax->labels->add_new_item; ?></h3>
<form id="addtag" method="post" action="edit-tags.php" class="validate"<?php do_action( $taxonomy . '_term_new_form_tag' ); ?>>
<input type="hidden" name="action" value="add-tag" />
<input type="hidden" name="screen" value="<?php echo esc_attr($current_screen->id); ?>" />
<input type="hidden" name="taxonomy" value="<?php echo esc_attr($taxonomy); ?>" />
<input type="hidden" name="post_type" value="<?php echo esc_attr($post_type); ?>" />
<?php wp_nonce_field('add-tag', '_wpnonce_add-tag'); ?>
<div class="alignleft">
<input type="submit" value="<?php _e('Delete'); ?>" name="deleteit" class="button-secondary delete" />
<?php wp_nonce_field('bulk-tags'); ?>
</div>
<div class="form-field form-required">
<label for="tag-name"><?php _ex('Name', 'Taxonomy Name'); ?></label>
<input name="tag-name" id="tag-name" type="text" value="" size="40" aria-required="true" />
<p><?php _e('The name is how it appears on your site.'); ?></p>
<br class="clear" />
</div>
<?php if ( ! global_terms_enabled() ) : ?>
<div class="form-field">
<label for="tag-slug"><?php _ex('Slug', 'Taxonomy Slug'); ?></label>
<input name="slug" id="tag-slug" 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>
<?php endif; // global_terms_enabled() ?>
<?php if ( is_taxonomy_hierarchical($taxonomy) ) : ?>
<div class="form-field">
<label for="parent"><?php _ex('Parent', 'Taxonomy Parent'); ?></label>
<?php
$dropdown_args = array(
'hide_empty' => 0,
'hide_if_empty' => false,
'taxonomy' => $taxonomy,
'name' => 'parent',
'orderby' => 'name',
'hierarchical' => true,
'show_option_none' => __( 'None' ),
);
$dropdown_args = apply_filters( 'taxonomy_parent_dropdown_args', $dropdown_args, $taxonomy );
wp_dropdown_categories( $dropdown_args );
?>
<?php if ( 'category' == $taxonomy ) : // @todo: Generic text for hierarchical taxonomies ?>
<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>
<?php endif; ?>
</div>
<?php endif; // is_taxonomy_hierarchical() ?>
<div class="form-field">
<label for="tag-description"><?php _ex('Description', 'Taxonomy Description'); ?></label>
<textarea name="description" id="tag-description" rows="5" cols="40"></textarea>
<p><?php _e('The description is not prominent by default; however, some themes may show it.'); ?></p>
</div>
<br class="clear" />
<table class="widefat">
<thead>
<tr>
<th scope="col" class="check-column"><input type="checkbox" onclick="checkAll(document.getElementById('posts-filter'));" /></th>
<th scope="col"><?php _e('Name') ?></th>
<th scope="col" class="num" style="width: 90px"><?php _e('Posts') ?></th>
</tr>
</thead>
<tbody id="the-list" class="list:tag">
<?php
$searchterms = trim( $_GET['s'] );
$count = tag_rows( $pagenum, $tagsperpage, $searchterms );
?>
</tbody>
</table>
</form>
<div class="tablenav">
<?php
if ( ! is_taxonomy_hierarchical($taxonomy) )
do_action('add_tag_form_fields', $taxonomy);
do_action($taxonomy . '_add_form_fields', $taxonomy);
submit_button( $tax->labels->add_new_item );
// Back compat hooks. Deprecated in preference to {$taxonomy}_add_form
if ( 'category' == $taxonomy )
do_action('edit_category_form', (object)array('parent' => 0) );
elseif ( 'link_category' == $taxonomy )
do_action('edit_link_category_form', (object)array('parent' => 0) );
else
do_action('add_tag_form', $taxonomy);
do_action($taxonomy . '_add_form', $taxonomy);
if ( $page_links )
echo "<div class='tablenav-pages'>$page_links</div>";
?>
</form></div>
<?php } ?>
<br class="clear" />
</div>
<br class="clear" />
</div>
</div><!-- /col-left -->
</div><!-- /col-container -->
</div><!-- /wrap -->
<script type="text/javascript">
try{document.forms.addtag['tag-name'].focus();}catch(e){}
</script>
<?php $wp_list_table->inline_edit(); ?>
<?php if ( current_user_can('manage_categories') ) : ?>
<br />
<?php include('edit-tag-form.php'); ?>
<?php endif; ?>
<?php
break;
}
include( ABSPATH . 'wp-admin/admin-footer.php' );
include('admin-footer.php');
?>

View File

@@ -1,325 +1,243 @@
<?php
/**
* Edit Posts Administration Screen.
*
* @package WordPress
* @subpackage Administration
*/
require_once('admin.php');
/** WordPress Administration Bootstrap */
require_once( dirname( __FILE__ ) . '/admin.php' );
if ( ! $typenow )
wp_die( __( 'Invalid post type' ) );
$post_type = $typenow;
$post_type_object = get_post_type_object( $post_type );
if ( ! $post_type_object )
wp_die( __( 'Invalid post type' ) );
if ( ! current_user_can( $post_type_object->cap->edit_posts ) )
wp_die( __( 'Cheatin&#8217; uh?' ) );
$wp_list_table = _get_list_table('WP_Posts_List_Table');
$pagenum = $wp_list_table->get_pagenum();
// Back-compat for viewing comments of an entry
foreach ( array( 'p', 'attachment_id', 'page_id' ) as $_redirect ) {
if ( ! empty( $_REQUEST[ $_redirect ] ) ) {
wp_redirect( admin_url( 'edit-comments.php?p=' . absint( $_REQUEST[ $_redirect ] ) ) );
exit;
}
}
unset( $_redirect );
if ( 'post' != $post_type ) {
$parent_file = "edit.php?post_type=$post_type";
$submenu_file = "edit.php?post_type=$post_type";
$post_new_file = "post-new.php?post_type=$post_type";
} else {
$parent_file = 'edit.php';
$submenu_file = 'edit.php';
$post_new_file = 'post-new.php';
}
$doaction = $wp_list_table->current_action();
if ( $doaction ) {
// Handle bulk deletes
if ( isset($_GET['deleteit']) && isset($_GET['delete']) ) {
check_admin_referer('bulk-posts');
foreach( (array) $_GET['delete'] as $post_id_del ) {
$post_del = & get_post($post_id_del);
$sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'locked', 'ids'), wp_get_referer() );
if ( ! $sendback )
$sendback = admin_url( $parent_file );
$sendback = add_query_arg( 'paged', $pagenum, $sendback );
if ( strpos($sendback, 'post.php') !== false )
$sendback = admin_url($post_new_file);
if ( !current_user_can('delete_post', $post_id_del) )
wp_die( __('You are not allowed to delete this post.') );
if ( 'delete_all' == $doaction ) {
$post_status = preg_replace('/[^a-z0-9_-]+/i', '', $_REQUEST['post_status']);
if ( get_post_status_object($post_status) ) // Check the post status exists first
$post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type=%s AND post_status = %s", $post_type, $post_status ) );
$doaction = 'delete';
} elseif ( isset( $_REQUEST['media'] ) ) {
$post_ids = $_REQUEST['media'];
} elseif ( isset( $_REQUEST['ids'] ) ) {
$post_ids = explode( ',', $_REQUEST['ids'] );
} elseif ( !empty( $_REQUEST['post'] ) ) {
$post_ids = array_map('intval', $_REQUEST['post']);
if ( $post_del->post_type == 'attachment' ) {
if ( ! wp_delete_attachment($post_id_del) )
wp_die( __('Error in deleting...') );
} else {
if ( !wp_delete_post($post_id_del) )
wp_die( __('Error in deleting...') );
}
}
if ( !isset( $post_ids ) ) {
wp_redirect( $sendback );
exit;
}
switch ( $doaction ) {
case 'trash':
$trashed = $locked = 0;
foreach( (array) $post_ids as $post_id ) {
if ( !current_user_can( 'delete_post', $post_id) )
wp_die( __('You are not allowed to move this item to the Trash.') );
if ( wp_check_post_lock( $post_id ) ) {
$locked++;
continue;
}
if ( !wp_trash_post($post_id) )
wp_die( __('Error in moving to Trash.') );
$trashed++;
}
$sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids), 'locked' => $locked ), $sendback );
break;
case 'untrash':
$untrashed = 0;
foreach( (array) $post_ids as $post_id ) {
if ( !current_user_can( 'delete_post', $post_id) )
wp_die( __('You are not allowed to restore this item from the Trash.') );
if ( !wp_untrash_post($post_id) )
wp_die( __('Error in restoring from Trash.') );
$untrashed++;
}
$sendback = add_query_arg('untrashed', $untrashed, $sendback);
break;
case 'delete':
$deleted = 0;
foreach( (array) $post_ids as $post_id ) {
$post_del = get_post($post_id);
if ( !current_user_can( 'delete_post', $post_id ) )
wp_die( __('You are not allowed to delete this item.') );
if ( $post_del->post_type == 'attachment' ) {
if ( ! wp_delete_attachment($post_id) )
wp_die( __('Error in deleting.') );
} else {
if ( !wp_delete_post($post_id) )
wp_die( __('Error in deleting.') );
}
$deleted++;
}
$sendback = add_query_arg('deleted', $deleted, $sendback);
break;
case 'edit':
if ( isset($_REQUEST['bulk_edit']) ) {
$done = bulk_edit_posts($_REQUEST);
if ( is_array($done) ) {
$done['updated'] = count( $done['updated'] );
$done['skipped'] = count( $done['skipped'] );
$done['locked'] = count( $done['locked'] );
$sendback = add_query_arg( $done, $sendback );
}
}
break;
}
$sendback = remove_query_arg( array('action', 'action2', 'tags_input', 'post_author', 'comment_status', 'ping_status', '_status', 'post', 'bulk_edit', 'post_view'), $sendback );
$sendback = wp_get_referer();
if (strpos($sendback, 'post.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/post-new.php';
elseif (strpos($sendback, 'attachments.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/attachments.php';
$sendback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $sendback);
wp_redirect($sendback);
exit();
} elseif ( ! empty($_REQUEST['_wp_http_referer']) ) {
wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), wp_unslash($_SERVER['REQUEST_URI']) ) );
} elseif ( !empty($_GET['_wp_http_referer']) ) {
wp_redirect(remove_query_arg(array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI'])));
exit;
}
$wp_list_table->prepare_items();
$title = __('Posts');
$parent_file = 'edit.php';
wp_enqueue_script('admin-forms');
wp_enqueue_script('inline-edit-post');
list($post_stati, $avail_post_stati) = wp_edit_posts_query();
$title = $post_type_object->labels->name;
if ( 1 == count($posts) && is_singular() )
wp_enqueue_script( 'admin-comments' );
require_once('admin-header.php');
if ( 'post' == $post_type ) {
get_current_screen()->add_help_tab( array(
'id' => 'overview',
'title' => __('Overview'),
'content' =>
'<p>' . __('This screen provides access to all of your posts. You can customize the display of this screen to suit your workflow.') . '</p>'
) );
get_current_screen()->add_help_tab( array(
'id' => 'screen-content',
'title' => __('Screen Content'),
'content' =>
'<p>' . __('You can customize the display of this screen&#8217;s contents in a number of ways:') . '</p>' .
'<ul>' .
'<li>' . __('You can hide/display columns based on your needs and decide how many posts to list per screen using the Screen Options tab.') . '</li>' .
'<li>' . __('You can filter the list of posts by post status using the text links in the upper left to show All, Published, Draft, or Trashed posts. The default view is to show all posts.') . '</li>' .
'<li>' . __('You can view posts in a simple title list or with an excerpt. Choose the view you prefer by clicking on the icons at the top of the list on the right.') . '</li>' .
'<li>' . __('You can refine the list to show only posts in a specific category or from a specific month by using the dropdown menus above the posts list. Click the Filter button after making your selection. You also can refine the list by clicking on the post author, category or tag in the posts list.') . '</li>' .
'</ul>'
) );
get_current_screen()->add_help_tab( array(
'id' => 'action-links',
'title' => __('Available Actions'),
'content' =>
'<p>' . __('Hovering over a row in the posts list will display action links that allow you to manage your post. You can perform the following actions:') . '</p>' .
'<ul>' .
'<li>' . __('<strong>Edit</strong> takes you to the editing screen for that post. You can also reach that screen by clicking on the post title.') . '</li>' .
'<li>' . __('<strong>Quick Edit</strong> provides inline access to the metadata of your post, allowing you to update post details without leaving this screen.') . '</li>' .
'<li>' . __('<strong>Trash</strong> removes your post from this list and places it in the trash, from which you can permanently delete it.') . '</li>' .
'<li>' . __('<strong>Preview</strong> will show you what your draft post will look like if you publish it. View will take you to your live site to view the post. Which link is available depends on your post&#8217;s status.') . '</li>' .
'</ul>'
) );
get_current_screen()->add_help_tab( array(
'id' => 'bulk-actions',
'title' => __('Bulk Actions'),
'content' =>
'<p>' . __('You can also edit or move multiple posts to the trash at once. Select the posts you want to act on using the checkboxes, then select the action you want to take from the Bulk Actions menu and click Apply.') . '</p>' .
'<p>' . __('When using Bulk Edit, you can change the metadata (categories, author, etc.) for all selected posts at once. To remove a post from the grouping, just click the x next to its name in the Bulk Edit area that appears.') . '</p>'
) );
if ( !isset( $_GET['paged'] ) )
$_GET['paged'] = 1;
get_current_screen()->set_help_sidebar(
'<p><strong>' . __('For more information:') . '</strong></p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Posts_Screen" target="_blank">Documentation on Managing Posts</a>') . '</p>' .
'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
);
} elseif ( 'page' == $post_type ) {
get_current_screen()->add_help_tab( array(
'id' => 'overview',
'title' => __('Overview'),
'content' =>
'<p>' . __('Pages are similar to posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest pages under other pages by making one the &#8220;Parent&#8221; of the other, creating a group of pages.') . '</p>'
) );
get_current_screen()->add_help_tab( array(
'id' => 'managing-pages',
'title' => __('Managing Pages'),
'content' =>
'<p>' . __('Managing pages is very similar to managing posts, and the screens can be customized in the same way.') . '</p>' .
'<p>' . __('You can also perform the same types of actions, including narrowing the list by using the filters, acting on a page using the action links that appear when you hover over a row, or using the Bulk Actions menu to edit the metadata for multiple pages at once.') . '</p>'
) );
get_current_screen()->set_help_sidebar(
'<p><strong>' . __('For more information:') . '</strong></p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Pages_Screen" target="_blank">Documentation on Managing Pages</a>') . '</p>' .
'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
);
}
add_screen_option( 'per_page', array( 'label' => $title, 'default' => 20, 'option' => 'edit_' . $post_type . '_per_page' ) );
$bulk_counts = array(
'updated' => isset( $_REQUEST['updated'] ) ? absint( $_REQUEST['updated'] ) : 0,
'locked' => isset( $_REQUEST['locked'] ) ? absint( $_REQUEST['locked'] ) : 0,
'deleted' => isset( $_REQUEST['deleted'] ) ? absint( $_REQUEST['deleted'] ) : 0,
'trashed' => isset( $_REQUEST['trashed'] ) ? absint( $_REQUEST['trashed'] ) : 0,
'untrashed' => isset( $_REQUEST['untrashed'] ) ? absint( $_REQUEST['untrashed'] ) : 0,
);
$bulk_messages = array();
$bulk_messages['post'] = array(
'updated' => _n( '%s post updated.', '%s posts updated.', $bulk_counts['updated'] ),
'locked' => _n( '%s post not updated, somebody is editing it.', '%s posts not updated, somebody is editing them.', $bulk_counts['locked'] ),
'deleted' => _n( '%s post permanently deleted.', '%s posts permanently deleted.', $bulk_counts['deleted'] ),
'trashed' => _n( '%s post moved to the Trash.', '%s posts moved to the Trash.', $bulk_counts['trashed'] ),
'untrashed' => _n( '%s post restored from the Trash.', '%s posts restored from the Trash.', $bulk_counts['untrashed'] ),
);
$bulk_messages['page'] = array(
'updated' => _n( '%s page updated.', '%s pages updated.', $bulk_counts['updated'] ),
'locked' => _n( '%s page not updated, somebody is editing it.', '%s pages not updated, somebody is editing them.', $bulk_counts['locked'] ),
'deleted' => _n( '%s page permanently deleted.', '%s pages permanently deleted.', $bulk_counts['deleted'] ),
'trashed' => _n( '%s page moved to the Trash.', '%s pages moved to the Trash.', $bulk_counts['trashed'] ),
'untrashed' => _n( '%s page restored from the Trash.', '%s pages restored from the Trash.', $bulk_counts['untrashed'] ),
);
/**
* Filter the bulk action updated messages.
*
* By default, custom post types use the messages for the 'post' post type.
*
* @since 3.7.0
*
* @param array $bulk_messages Arrays of messages, each keyed by the corresponding post type. Messages are
* keyed with 'updated', 'locked', 'deleted', 'trashed', and 'untrashed'.
* @param array $bulk_counts Array of item counts for each message, used to build internationalized strings.
*/
$bulk_messages = apply_filters( 'bulk_post_updated_messages', $bulk_messages, $bulk_counts );
$bulk_counts = array_filter( $bulk_counts );
require_once( ABSPATH . 'wp-admin/admin-header.php' );
?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php
echo esc_html( $post_type_object->labels->name );
if ( current_user_can( $post_type_object->cap->create_posts ) )
echo ' <a href="' . esc_url( admin_url( $post_new_file ) ) . '" class="add-new-h2">' . esc_html( $post_type_object->labels->add_new ) . '</a>';
if ( ! empty( $_REQUEST['s'] ) )
printf( ' <span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', get_search_query() );
?></h2>
<?php
// If we have a bulk message to issue:
$messages = array();
foreach ( $bulk_counts as $message => $count ) {
if ( isset( $bulk_messages[ $post_type ][ $message ] ) )
$messages[] = sprintf( $bulk_messages[ $post_type ][ $message ], number_format_i18n( $count ) );
elseif ( isset( $bulk_messages['post'][ $message ] ) )
$messages[] = sprintf( $bulk_messages['post'][ $message ], number_format_i18n( $count ) );
if ( $message == 'trashed' && isset( $_REQUEST['ids'] ) ) {
$ids = preg_replace( '/[^0-9,]/', '', $_REQUEST['ids'] );
$messages[] = '<a href="' . esc_url( wp_nonce_url( "edit.php?post_type=$post_type&doaction=undo&action=untrash&ids=$ids", "bulk-posts" ) ) . '">' . __('Undo') . '</a>';
}
}
if ( $messages )
echo '<div id="message" class="updated"><p>' . join( ' ', $messages ) . '</p></div>';
unset( $messages );
$_SERVER['REQUEST_URI'] = remove_query_arg( array( 'locked', 'skipped', 'updated', 'deleted', 'trashed', 'untrashed' ), $_SERVER['REQUEST_URI'] );
?>
<?php $wp_list_table->views(); ?>
<form id="posts-filter" action="" method="get">
<h2><?php
if ( is_single() ) {
printf(__('Comments on %s'), apply_filters( "the_title", $post->post_title));
} else {
$post_status_label = _c('Manage Posts|manage posts header');
if ( isset($_GET['post_status']) && in_array( $_GET['post_status'], array_keys($post_stati) ) )
$post_status_label = $post_stati[$_GET['post_status']][1];
if ( $post_listing_pageable && !is_archive() && !is_search() )
$h2_noun = is_paged() ? sprintf(__( 'Previous %s' ), $post_status_label) : sprintf(__('Latest %s'), $post_status_label);
else
$h2_noun = $post_status_label;
// Use $_GET instead of is_ since they can override each other
$h2_author = '';
$_GET['author'] = (int) $_GET['author'];
if ( $_GET['author'] != 0 ) {
if ( $_GET['author'] == '-' . $user_ID ) { // author exclusion
$h2_author = ' ' . __('by other authors');
} else {
$author_user = get_userdata( get_query_var( 'author' ) );
$h2_author = ' ' . sprintf(__('by %s'), wp_specialchars( $author_user->display_name ));
}
}
$h2_search = isset($_GET['s']) && $_GET['s'] ? ' ' . sprintf(__('matching &#8220;%s&#8221;'), wp_specialchars( get_search_query() ) ) : '';
$h2_cat = isset($_GET['cat']) && $_GET['cat'] ? ' ' . sprintf( __('in &#8220;%s&#8221;'), single_cat_title('', false) ) : '';
$h2_tag = isset($_GET['tag']) && $_GET['tag'] ? ' ' . sprintf( __('tagged with &#8220;%s&#8221;'), single_tag_title('', false) ) : '';
$h2_month = isset($_GET['m']) && $_GET['m'] ? ' ' . sprintf( __('during %s'), single_month_title(' ', false) ) : '';
printf( _c( '%1$s%2$s%3$s%4$s%5$s%6$s|You can reorder these: 1: Posts, 2: by {s}, 3: matching {s}, 4: in {s}, 5: tagged with {s}, 6: during {s}' ), $h2_noun, $h2_author, $h2_search, $h2_cat, $h2_tag, $h2_month );
}
?></h2>
<?php $wp_list_table->search_box( $post_type_object->labels->search_items, 'post' ); ?>
<input type="hidden" name="post_status" class="post_status_page" value="<?php echo !empty($_REQUEST['post_status']) ? esc_attr($_REQUEST['post_status']) : 'all'; ?>" />
<input type="hidden" name="post_type" class="post_type_page" value="<?php echo $post_type; ?>" />
<?php if ( ! empty( $_REQUEST['show_sticky'] ) ) { ?>
<input type="hidden" name="show_sticky" value="1" />
<?php } ?>
<?php $wp_list_table->display(); ?>
</form>
<ul class="subsubsub">
<?php
if ( $wp_list_table->has_items() )
$wp_list_table->inline_edit();
$status_links = array();
$num_posts = wp_count_posts( 'post', 'readable' );
$class = empty( $_GET['post_status'] ) ? ' class="current"' : '';
$status_links[] = "<li><a href='edit.php' $class>" . __('All Posts') . '</a>';
foreach ( $post_stati as $status => $label ) {
$class = '';
if ( !in_array( $status, $avail_post_stati ) )
continue;
if ( empty( $num_posts->$status ) )
continue;
if ( $status == $_GET['post_status'] )
$class = ' class="current"';
$status_links[] = "<li><a href='edit.php?post_status=$status' $class>" .
sprintf( __ngettext( $label[2][0], $label[2][1], $num_posts->$status ), number_format_i18n( $num_posts->$status ) ) . '</a>';
}
echo implode( ' |</li>', $status_links ) . '</li>';
unset( $status_links );
?>
</ul>
<?php if ( isset($_GET['post_status'] ) ) : ?>
<input type="hidden" name="post_status" value="<?php echo attribute_escape($_GET['post_status']) ?>" />
<?php
endif;
if ( isset($_GET['posted']) && $_GET['posted'] ) : $_GET['posted'] = (int) $_GET['posted']; ?>
<div id="message" class="updated fade"><p><strong><?php _e('Your post has been saved.'); ?></strong> <a href="<?php echo get_permalink( $_GET['posted'] ); ?>"><?php _e('View post'); ?></a> | <a href="post.php?action=edit&amp;post=<?php echo $_GET['posted']; ?>"><?php _e('Edit post'); ?></a></p></div>
<?php $_SERVER['REQUEST_URI'] = remove_query_arg(array('posted'), $_SERVER['REQUEST_URI']);
endif;
?>
<div id="ajax-response"></div>
<p id="post-search">
<input type="text" id="post-search-input" name="s" value="<?php the_search_query(); ?>" />
<input type="submit" value="<?php _e( 'Search Posts' ); ?>" class="button" />
</p>
<div class="tablenav">
<?php
$page_links = paginate_links( array(
'base' => add_query_arg( 'paged', '%#%' ),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $_GET['paged']
));
if ( $page_links )
echo "<div class='tablenav-pages'>$page_links</div>";
?>
<div class="alignleft">
<input type="submit" value="<?php _e('Delete'); ?>" name="deleteit" class="button-secondary delete" />
<?php wp_nonce_field('bulk-posts'); ?>
<?php
if ( !is_singular() ) {
$arc_query = "SELECT DISTINCT YEAR(post_date) AS yyear, MONTH(post_date) AS mmonth FROM $wpdb->posts WHERE post_type = 'post' ORDER BY post_date DESC";
$arc_result = $wpdb->get_results( $arc_query );
$month_count = count($arc_result);
if ( $month_count && !( 1 == $month_count && 0 == $arc_result[0]->mmonth ) ) { ?>
<select name='m'>
<option<?php selected( @$_GET['m'], 0 ); ?> value='0'><?php _e('Show all dates'); ?></option>
<?php
foreach ($arc_result as $arc_row) {
if ( $arc_row->yyear == 0 )
continue;
$arc_row->mmonth = zeroise( $arc_row->mmonth, 2 );
if ( $arc_row->yyear . $arc_row->mmonth == $_GET['m'] )
$default = ' selected="selected"';
else
$default = '';
echo "<option$default value='$arc_row->yyear$arc_row->mmonth'>";
echo $wp_locale->get_month($arc_row->mmonth) . " $arc_row->yyear";
echo "</option>\n";
}
?>
</select>
<?php } ?>
<?php
$dropdown_options = array('show_option_all' => __('View all categories'), 'hide_empty' => 0, 'hierarchical' => 1,
'show_count' => 0, 'orderby' => 'name', 'selected' => $cat);
wp_dropdown_categories($dropdown_options);
do_action('restrict_manage_posts');
?>
<input type="submit" id="post-query-submit" value="<?php _e('Filter'); ?>" class="button-secondary" />
<?php } ?>
</div>
<br class="clear" />
</div>
<br class="clear" />
<?php include( 'edit-post-rows.php' ); ?>
</form>
<div id="ajax-response"></div>
<div class="tablenav">
<?php
include( ABSPATH . 'wp-admin/admin-footer.php' );
if ( $page_links )
echo "<div class='tablenav-pages'>$page_links</div>";
?>
<br class="clear" />
</div>
<br class="clear" />
<?php
if ( 1 == count($posts) && is_singular() ) :
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $id AND comment_approved != 'spam' ORDER BY comment_date");
if ( $comments ) :
// Make sure comments, post, and post_author are cached
update_comment_cache($comments);
$post = get_post($id);
$authordata = get_userdata($post->post_author);
?>
<br class="clear" />
<table class="widefat" style="margin-top: .5em">
<thead>
<tr>
<th scope="col"><?php _e('Comment') ?></th>
<th scope="col"><?php _e('Date') ?></th>
<th scope="col"><?php _e('Actions') ?></th>
</tr>
</thead>
<tbody id="the-comment-list" class="list:comment">
<?php
foreach ($comments as $comment)
_wp_comment_row( $comment->comment_ID, 'detail', false, false );
?>
</tbody>
</table>
<?php
endif; // comments
endif; // posts;
?>
</div>
<?php include('admin-footer.php'); ?>

View File

@@ -1,244 +1,50 @@
<?php
/**
* WordPress Export Administration Screen
*
* @package WordPress
* @subpackage Administration
*/
/** Load WordPress Bootstrap */
require_once( dirname( __FILE__ ) . '/admin.php' );
if ( !current_user_can('export') )
wp_die(__('You do not have sufficient permissions to export the content of this site.'));
/** Load WordPress export API */
require_once( ABSPATH . 'wp-admin/includes/export.php' );
require_once ('admin.php');
require_once('includes/export.php');
$title = __('Export');
/**
* Display JavaScript on the page.
*
* @since 3.5.0
*/
function export_add_js() {
?>
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function($){
var form = $('#export-filters'),
filters = form.find('.export-filters');
filters.hide();
form.find('input:radio').change(function() {
filters.slideUp('fast');
switch ( $(this).val() ) {
case 'posts': $('#post-filters').slideDown(); break;
case 'pages': $('#page-filters').slideDown(); break;
}
});
});
//]]>
</script>
<?php
}
add_action( 'admin_head', 'export_add_js' );
get_current_screen()->add_help_tab( array(
'id' => 'overview',
'title' => __('Overview'),
'content' => '<p>' . __('You can export a file of your site&#8217;s content in order to import it into another installation or platform. The export file will be an XML file format called WXR. Posts, pages, comments, custom fields, categories, and tags can be included. You can choose for the WXR file to include only certain posts or pages by setting the dropdown filters to limit the export by category, author, date range by month, or publishing status.') . '</p>' .
'<p>' . __('Once generated, your WXR file can be imported by another WordPress site or by another blogging platform able to access this format.') . '</p>',
) );
get_current_screen()->set_help_sidebar(
'<p><strong>' . __('For more information:') . '</strong></p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Tools_Export_Screen" target="_blank">Documentation on Export</a>') . '</p>' .
'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
);
$parent_file = 'edit.php';
if ( isset( $_GET['download'] ) ) {
$args = array();
if ( ! isset( $_GET['content'] ) || 'all' == $_GET['content'] ) {
$args['content'] = 'all';
} else if ( 'posts' == $_GET['content'] ) {
$args['content'] = 'post';
if ( $_GET['cat'] )
$args['category'] = (int) $_GET['cat'];
if ( $_GET['post_author'] )
$args['author'] = (int) $_GET['post_author'];
if ( $_GET['post_start_date'] || $_GET['post_end_date'] ) {
$args['start_date'] = $_GET['post_start_date'];
$args['end_date'] = $_GET['post_end_date'];
}
if ( $_GET['post_status'] )
$args['status'] = $_GET['post_status'];
} else if ( 'pages' == $_GET['content'] ) {
$args['content'] = 'page';
if ( $_GET['page_author'] )
$args['author'] = (int) $_GET['page_author'];
if ( $_GET['page_start_date'] || $_GET['page_end_date'] ) {
$args['start_date'] = $_GET['page_start_date'];
$args['end_date'] = $_GET['page_end_date'];
}
if ( $_GET['page_status'] )
$args['status'] = $_GET['page_status'];
} else {
$args['content'] = $_GET['content'];
}
/**
* Filter the export args.
*
* @since 3.5.0
*
* @param array $args The arguments to send to the exporter.
*/
$args = apply_filters( 'export_args', $args );
export_wp( $args );
export_wp( $_GET['author'] );
die();
}
require_once( ABSPATH . 'wp-admin/admin-header.php' );
/**
* Create the date options fields for exporting a given post type.
*
* @global wpdb $wpdb WordPress database object.
* @global WP_Locale $wp_locale Date and Time Locale object.
*
* @since 3.1.0
*
* @param string $post_type The post type. Default 'post'.
*/
function export_date_options( $post_type = 'post' ) {
global $wpdb, $wp_locale;
$months = $wpdb->get_results( $wpdb->prepare( "
SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month
FROM $wpdb->posts
WHERE post_type = %s AND post_status != 'auto-draft'
ORDER BY post_date DESC
", $post_type ) );
$month_count = count( $months );
if ( !$month_count || ( 1 == $month_count && 0 == $months[0]->month ) )
return;
foreach ( $months as $date ) {
if ( 0 == $date->year )
continue;
$month = zeroise( $date->month, 2 );
echo '<option value="' . $date->year . '-' . $month . '">' . $wp_locale->get_month( $month ) . ' ' . $date->year . '</option>';
}
}
require_once ('admin-header.php');
?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php echo esc_html( $title ); ?></h2>
<h2><?php _e('Export'); ?></h2>
<p><?php _e('When you click the button below WordPress will create an XML file for you to save to your computer.'); ?></p>
<p><?php _e('This format, which we call WordPress eXtended RSS or WXR, will contain your posts, pages, comments, custom fields, categories, and tags.'); ?></p>
<p><?php _e('Once you&#8217;ve saved the download file, you can use the Import function in another WordPress installation to import the content from this site.'); ?></p>
<p><?php _e('Once you&#8217;ve saved the download file, you can use the Import function on another WordPress blog to import this blog.'); ?></p>
<form action="" method="get">
<h3><?php _e('Options'); ?></h3>
<h3><?php _e( 'Choose what to export' ); ?></h3>
<form action="" method="get" id="export-filters">
<table class="form-table">
<tr>
<th><?php _e('Restrict Author'); ?></th>
<td>
<select name="author">
<option value="all" selected="selected"><?php _e('All Authors'); ?></option>
<?php
$authors = $wpdb->get_col( "SELECT post_author FROM $wpdb->posts GROUP BY post_author" );
foreach ( $authors as $id ) {
$o = get_userdata( $id );
echo "<option value='$o->ID'>$o->display_name</option>";
}
?>
</select>
</td>
</tr>
</table>
<p class="submit"><input type="submit" name="submit" value="<?php _e('Download Export File'); ?>" />
<input type="hidden" name="download" value="true" />
<p><label><input type="radio" name="content" value="all" checked="checked" /> <?php _e( 'All content' ); ?></label></p>
<p class="description"><?php _e( 'This will contain all of your posts, pages, comments, custom fields, terms, navigation menus and custom posts.' ); ?></p>
<p><label><input type="radio" name="content" value="posts" /> <?php _e( 'Posts' ); ?></label></p>
<ul id="post-filters" class="export-filters">
<li>
<label><?php _e( 'Categories:' ); ?></label>
<?php wp_dropdown_categories( array( 'show_option_all' => __('All') ) ); ?>
</li>
<li>
<label><?php _e( 'Authors:' ); ?></label>
<?php
$authors = $wpdb->get_col( "SELECT DISTINCT post_author FROM {$wpdb->posts} WHERE post_type = 'post'" );
wp_dropdown_users( array( 'include' => $authors, 'name' => 'post_author', 'multi' => true, 'show_option_all' => __('All') ) );
?>
</li>
<li>
<label><?php _e( 'Date range:' ); ?></label>
<select name="post_start_date">
<option value="0"><?php _e( 'Start Date' ); ?></option>
<?php export_date_options(); ?>
</select>
<select name="post_end_date">
<option value="0"><?php _e( 'End Date' ); ?></option>
<?php export_date_options(); ?>
</select>
</li>
<li>
<label><?php _e( 'Status:' ); ?></label>
<select name="post_status">
<option value="0"><?php _e( 'All' ); ?></option>
<?php $post_stati = get_post_stati( array( 'internal' => false ), 'objects' );
foreach ( $post_stati as $status ) : ?>
<option value="<?php echo esc_attr( $status->name ); ?>"><?php echo esc_html( $status->label ); ?></option>
<?php endforeach; ?>
</select>
</li>
</ul>
<p><label><input type="radio" name="content" value="pages" /> <?php _e( 'Pages' ); ?></label></p>
<ul id="page-filters" class="export-filters">
<li>
<label><?php _e( 'Authors:' ); ?></label>
<?php
$authors = $wpdb->get_col( "SELECT DISTINCT post_author FROM {$wpdb->posts} WHERE post_type = 'page'" );
wp_dropdown_users( array( 'include' => $authors, 'name' => 'page_author', 'multi' => true, 'show_option_all' => __('All') ) );
?>
</li>
<li>
<label><?php _e( 'Date range:' ); ?></label>
<select name="page_start_date">
<option value="0"><?php _e( 'Start Date' ); ?></option>
<?php export_date_options( 'page' ); ?>
</select>
<select name="page_end_date">
<option value="0"><?php _e( 'End Date' ); ?></option>
<?php export_date_options( 'page' ); ?>
</select>
</li>
<li>
<label><?php _e( 'Status:' ); ?></label>
<select name="page_status">
<option value="0"><?php _e( 'All' ); ?></option>
<?php foreach ( $post_stati as $status ) : ?>
<option value="<?php echo esc_attr( $status->name ); ?>"><?php echo esc_html( $status->label ); ?></option>
<?php endforeach; ?>
</select>
</li>
</ul>
<?php foreach ( get_post_types( array( '_builtin' => false, 'can_export' => true ), 'objects' ) as $post_type ) : ?>
<p><label><input type="radio" name="content" value="<?php echo esc_attr( $post_type->name ); ?>" /> <?php echo esc_html( $post_type->label ); ?></label></p>
<?php endforeach; ?>
<?php
/**
* Fires after the export filters form.
*
* @since 3.5.0
*/
do_action( 'export_filters' );
?>
<?php submit_button( __('Download Export File') ); ?>
</p>
</form>
</div>
<?php include( ABSPATH . 'wp-admin/admin-footer.php' ); ?>
<?php
include ('admin-footer.php');
?>

View File

@@ -1,57 +0,0 @@
<?php
/**
* Your Rights administration panel.
*
* @package WordPress
* @subpackage Administration
*/
/** WordPress Administration Bootstrap */
require_once( dirname( __FILE__ ) . '/admin.php' );
$title = __( 'Freedoms' );
list( $display_version ) = explode( '-', $wp_version );
include( ABSPATH . 'wp-admin/admin-header.php' );
?>
<div class="wrap about-wrap">
<h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
<div class="about-text"><?php echo str_replace( '3.7', $display_version, __( 'Thank you for updating to WordPress 3.7! You might not notice a thing, and we&#8217;re okay with that.' ) ); ?></div>
<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
<h2 class="nav-tab-wrapper">
<a href="about.php" class="nav-tab">
<?php _e( 'What&#8217;s New' ); ?>
</a><a href="credits.php" class="nav-tab">
<?php _e( 'Credits' ); ?>
</a><a href="freedoms.php" class="nav-tab nav-tab-active">
<?php _e( 'Freedoms' ); ?>
</a>
</h2>
<p class="about-description"><?php printf( __( 'WordPress is Free and open source software, built by a distributed community of mostly volunteer developers from around the world. WordPress comes with some awesome, worldview-changing rights courtesy of its <a href="%s">license</a>, the GPL.' ), 'http://wordpress.org/about/license/' ); ?></p>
<ol start="0">
<li><p><?php _e( 'You have the freedom to run the program, for any purpose.' ); ?></p></li>
<li><p><?php _e( 'You have access to the source code, the freedom to study how the program works, and the freedom to change it to make it do what you wish.' ); ?></p></li>
<li><p><?php _e( 'You have the freedom to redistribute copies of the original program so you can help your neighbor.' ); ?></p></li>
<li><p><?php _e( 'You have the freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes.' ); ?></p></li>
</ol>
<p><?php printf( __( 'WordPress grows when people like you tell their friends about it, and the thousands of businesses and services that are built on and around WordPress share that fact with their users. We&#8217;re flattered every time someone spreads the good word, just make sure to <a href="%s">check out our trademark guidelines</a> first.' ), 'http://wordpressfoundation.org/trademark-policy/' ); ?></p>
<p><?php
$plugins_url = current_user_can( 'activate_plugins' ) ? admin_url( 'plugins.php' ) : 'http://wordpress.org/plugins/';
$themes_url = current_user_can( 'switch_themes' ) ? admin_url( 'themes.php' ) : 'http://wordpress.org/themes/';
printf( __( 'Every plugin and theme in WordPress.org&#8217;s directory is 100%% GPL or a similarly free and compatible license, so you can feel safe finding <a href="%1$s">plugins</a> and <a href="%2$s">themes</a> there. If you get a plugin or theme from another source, make sure to <a href="%3$s">ask them if it&#8217;s GPL</a> first. If they don&#8217;t respect the WordPress license, we don&#8217;t recommend them.' ), $plugins_url, $themes_url, 'http://wordpress.org/about/license/' ); ?></p>
<p><?php _e( 'Don&#8217;t you wish all software came with these freedoms? So do we! For more information, check out the <a href="http://www.fsf.org/">Free Software Foundation</a>.' ); ?></p>
</div>
<?php include( ABSPATH . 'wp-admin/admin-footer.php' ); ?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 546 B

After

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 B

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 B

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 499 B

Some files were not shown because too many files have changed in this diff Show More