Compare commits

..

2446 Commits

Author SHA1 Message Date
ryan
40262adc37 no follow callback
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@6106 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 04:51:46 +00:00
ryan
7cdda656cc Fix option sanitization slashing. fixes #4949 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@6083 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 20:24:42 +00:00
ryan
9bd6651300 2.2.3 bump
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@6062 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-07 19:19:48 +00:00
ryan
8093fb3e91 Better determination. fixes #4748 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@6061 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-07 19:19:26 +00:00
ryan
5528dd0af1 Don't skip sanitization if 404. Add wp_title display filters.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@6036 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 03:13:16 +00:00
ryan
c845b0a1d8 Unset no_filter. Props xknown. fixes #4720
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@6018 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 16:28:19 +00:00
ryan
a48ea12857 Fix how wp_filter array is keyed. Props santosj/darkdragon. fixes #3875 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@6014 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 14:59:58 +00:00
markjaquith
10dd4de758 Roll back [5986], [5988], [5989]. We are in a char class, so no escaping needed. Props mdawaffe. see #4873
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5993 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 18:13:48 +00:00
markjaquith
a003f037e0 Better %0d/%0a sanitization for wp_redirect() from hakre. fixes #4819 for 2.2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5991 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 17:46:58 +00:00
markjaquith
00d289772d Escape special chars in regex. Props eightize and Otto42. fixes #4873 for 2.2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5988 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 17:38:47 +00:00
westi
fd1fc3f93c Globalise wp_version so Magpie can use it. props Nazgul, hakre. Fixes #3996 for 2.2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5961 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 20:21:39 +00:00
westi
4de37d45c9 Enable plugins to override the cockney replace array, fixes #4804 for 2.2.3 props andihit
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5931 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 21:05:27 +00:00
westi
5db0caf904 Fix plugin basename for Windows servers. Fixes #3002 for 2.2.x props Ozh
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5928 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 18:11:44 +00:00
ryan
f80a41e447 Don't allow private query vars in url_to_postid
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5926 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 16:10:43 +00:00
ryan
4b9fb9ed0c Don't die with type
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5922 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 15:52:23 +00:00
ryan
f09d565459 Sanitize a few options
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5915 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-22 18:00:48 +00:00
ryan
f6d340da08 mt_allow_pings fix. Props Joseph Scott and Allan Odgaard. fixes #4770 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5905 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-20 18:18:46 +00:00
ryan
062d072c1c Formatting cleanups from johnjosephbachir. fixes #4775 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5902 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-19 22:26:25 +00:00
ryan
bfe79aacdd Use dc:creator instead of author for rss2 comment feeds. Props lexhair, Otto42. fixes #4704 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5882 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 18:35:11 +00:00
ryan
da56b898e8 Pass args as array instead of query string.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5877 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 18:01:24 +00:00
ryan
e8b6613471 RTL fixes from mani_monaj. fixes #4729
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5864 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-13 17:20:12 +00:00
matt
7e3a60399f Version bumps.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5849 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-05 05:39:35 +00:00
markjaquith
c9d4d9c0a7 Roll back export portion of #4452 for 2.2.x, see #4452, see #4686
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5846 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-03 14:51:20 +00:00
markjaquith
3ea3be0691 Sanitize cat_id, fixes #4692 for 2.2.x, thanks g30rg3x
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5840 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-02 15:10:25 +00:00
markjaquith
c8ceeac23f Absolute numbers where we will never allow negatives, fixes #4692 for 2.2.x, thanks g30rg3x
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5839 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-02 14:58:15 +00:00
markjaquith
33b295b2b3 More upload escaping. Props Brian Layman. fixes #4689 for 2.2.x
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5838 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 20:58:38 +00:00
markjaquith
eb35c91c6c Sanitize option names in options.php, use current escaping functions. for 2.2.x
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5833 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 19:25:15 +00:00
markjaquith
113de8f97b add_option()/update_option() should pass the option name to get_option() pre-escaped. fixes #4690 for 2.2.x
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5830 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 19:14:28 +00:00
markjaquith
77a94e8c13 attribute_escape() in upload form action. Props Nazgul. fixes #4689 for 2.2.x
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5828 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 17:21:08 +00:00
markjaquith
1e03ffb3d4 Use "home," not "siteurl" for widget dropdown category URLs. Props Pastinakel. fixes #4683 for 2.2.x
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5824 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-30 16:23:45 +00:00
markjaquith
816e5dc069 Use CDATA escaping/unescaping for comment_author. props tellyworth. fixes #4452 for 2.2.x
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5822 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-30 16:08:30 +00:00
ryan
85e538c36d Don't return before doing actions. Props nbachiyski. fixes #4629 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5798 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-13 18:30:06 +00:00
markjaquith
b10d4e3ade Properly unset notoptions cache in add_option() so that get_option() and update_option() work on the same load. fixes #4429 for 2.2.x
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5789 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-07 04:08:04 +00:00
ryan
231a8a10ab Don't richedit for comments. Props Joseph Scott. fixes #4587 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5781 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-05 20:12:07 +00:00
markjaquith
60c9345dd8 Fix stylesheet-based themes. props dougal. fixes #4522
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5770 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-27 22:45:52 +00:00
markjaquith
7f0e860479 Check post type after upload. Props Alexander Concha
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5766 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-26 20:47:17 +00:00
rob1n
856d4bb2a8 Update the message too. Thanks, Lloyd. fixes #4510
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5746 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-22 22:14:17 +00:00
rob1n
2fd0d47c6d Check for PHP 4.2 or greater in 2.2 branch. fixes #4510
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5745 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-22 21:48:36 +00:00
ryan
296ccd1317 js_escape improvements from Alexander Concha. Catches &#39 &#039 ' ' ' ' &#x000027 etc.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5735 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-19 22:47:01 +00:00
ryan
4c6fc7b9b5 Protect _wp_page_template too.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5732 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-19 22:42:19 +00:00
ryan
942b046b36 Protect _wp_page_template too.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5731 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-19 22:40:59 +00:00
ryan
00f680d59d Accept 'open' and 'closed' as valid values for mt_allow_comments and mt_allow_pings in XML-RPC. Props Joseph Scott. For 2.2. see #4469
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5730 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-19 19:37:05 +00:00
ryan
fda8f02c9b Bump
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5725 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-18 17:47:33 +00:00
ryan
442687e500 Prevent editing of protected meta keys.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5724 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-18 16:30:07 +00:00
ryan
43f26d2927 escape before extracting. Props Alexander Concha.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5722 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-18 00:19:15 +00:00
rob1n
fa3bd8e93e Add missing </em>. Props johnbillion. fixes #4479
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5720 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-16 17:52:08 +00:00
ryan
4944eebb7a Bump ver
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5719 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-16 02:35:45 +00:00
ryan
5d334e880a Use EXTR_SKIP when extracting. For 2.2. See #4468
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5714 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-15 17:45:21 +00:00
ryan
f3612d4293 wp_parse_str() from mdawaffe. fixes #4467
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5713 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-15 17:35:56 +00:00
rob1n
69c8191502 Fix reference to ocomment.php. Props alanjcastonguay and Lloyd. fixes #4471
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5710 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-15 16:54:17 +00:00
markjaquith
f67057dc71 use FALSE to designate lack of user-supplied URL in *_query_arg() funcs. fixes #4465 for 2.2.x
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5706 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-14 05:12:59 +00:00
markjaquith
8d1a3315e4 only strip question marks from the RIGHT side of the query string. fixes #4464. see #4462
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5703 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-14 03:38:51 +00:00
markjaquith
feae504eda remove &paged=1 *before* we HTML entitize the link. fixes #4462
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-14 02:58:04 +00:00
ryan
1869c08c31 Add sanitize_user()
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5695 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-13 16:27:03 +00:00
rob1n
5da8b7a7ac Don't include HTML in gettext call. Props nbachiyski and Nazgul. fixes #4437
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5688 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 21:48:55 +00:00
ryan
9c928324b1 escapeshellarg the sender
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5681 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-11 23:18:24 +00:00
ryan
0de0707ffe attribute_escape REQUEST_URI
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5678 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-11 22:40:08 +00:00
rob1n
fc913b4113 Maintain "Page order" for consistency. fixes #4431
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5677 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-11 21:11:40 +00:00
rob1n
33c26d9a7d Revert multiple category stuff. see #4285
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5675 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-09 00:59:14 +00:00
rob1n
86f4f82e5e Fix <!--generator--> line's time format. Props macbis. fixes #4424 for 2.3 and 2.2.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5674 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 23:06:10 +00:00
rob1n
7cec58d66e Some more multiple category widget stuff. see #4285
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5673 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 22:50:37 +00:00
rob1n
07bc0a6632 2.2 RC 1.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5672 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 17:35:33 +00:00
rob1n
c327680cee Check the user before overwriting the attachment. Props xknown and Joseph Scott. fixes #4422
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5670 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 17:06:58 +00:00
rob1n
cb975258ca Add support for multiple instances of the category widget. see #4285
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5669 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 14:49:30 +00:00
rob1n
d987e188d7 Revert [5639] for 2.2 branch, it's causing problems. see #4296
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5668 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 14:27:44 +00:00
ryan
5fbb3a3baa Remove comment_text filter from get_comment_to_edit. fixes #4403 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5656 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-05 14:41:29 +00:00
ryan
ac55c4bdd7 Add 'edit_posts' capability check to metaWeblog.newPost. Props Joseph Scott and Wei-Yeh Lee. fixes #4404 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5650 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-04 18:31:21 +00:00
ryan
074f490576 Verbump
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5649 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-04 18:23:54 +00:00
ryan
6eb6101300 Run comment_text filter before format_to_edit() when getting a comment to edit. fixes #4403 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5647 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-04 17:46:02 +00:00
rob1n
ba59f6ea8f wp_mail() rewrite that handles HTML mail. fixes #4296
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 03:18:24 +00:00
rob1n
84f62dd1a4 Fix a strpos typo. fixes #4390
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5626 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-01 23:10:03 +00:00
rob1n
e8eda36825 Fix wp_title single post title filters. Props jhodgdon. fixes #3755
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5625 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-01 22:54:46 +00:00
markjaquith
fb7c000820 get_bloginfo("comments_atom_url") now works properly. fixes #4382 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5620 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 22:45:12 +00:00
markjaquith
c16ae810d6 correct "type" in Atom comments feed alternate links. fixes #4381 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5618 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 22:14:42 +00:00
rob1n
48ae0ff7ca Add option to exclude pages to pages widget. see #4259
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5605 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 01:57:10 +00:00
rob1n
cbd9294a83 Check that tinyMCE is defined. Props johnbillion. fixes #4257 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5603 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 01:31:04 +00:00
markjaquith
a4779fe395 sort by cat_ID for category permalinks, by name for get_the_category(). fixes #4335 for 2.2. Props Erik Barzeski for the find.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5591 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 04:56:44 +00:00
markjaquith
9074d62a78 Int casting and misc escaping for 2.2 Props g30rg3x. fixes #4333 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5589 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 04:37:35 +00:00
rob1n
14f5c0289c Apply [5570] to 2.2. fixes #4357
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5584 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 02:50:37 +00:00
rob1n
bd01e62afc Fix Atom feeds' categories. fixes #4307
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5548 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 15:55:30 +00:00
ryan
952087c2df RSD link fixes from Joseph Scott. fixes #4329 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5538 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-24 17:10:09 +00:00
rob1n
efa6212e7f Use selected() to clean that up. Thanks Mark. fixes #4291
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5535 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-24 00:29:51 +00:00
rob1n
bbb325e0c1 Fix bloginfo() filtering when it comes to links. Props Nazgul. fixes #4116
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5526 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 14:58:32 +00:00
rob1n
4f26da7350 Run the i through the parseInt to avoid IE 7 errors. fixes #4268
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5520 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 22:52:29 +00:00
rob1n
4678e74496 Run it through the filter. see #4259
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5519 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 22:36:56 +00:00
ryan
a8b6e530c6 Remove the_content filter from widget text. see #4259
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5517 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 21:31:37 +00:00
markjaquith
49e362f72e explicitly state Zulu time for desktop editors. Props Erik Barzeski and Joseph Scott. fixes #4314 for trunk
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5514 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 19:58:00 +00:00
markjaquith
3c0b16429e Prevent current author from claiming authorship of posts from other authors when editing via desktop client. Props Erik Barzeski. fixes #4315 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5512 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 19:53:33 +00:00
rob1n
2045553de4 Don't show title if user leaves it blank. see #4259
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5509 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 00:25:44 +00:00
rob1n
27026ab17d Fix accidental typo. fixes #4300
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5508 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 22:58:22 +00:00
rob1n
7f4475bedb Don't call is_wp_error() in wp_die() if it hasn't been defined yet. fixes #4308
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5507 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 22:50:32 +00:00
ryan
9d81575599 Fix theme template field. fixes #4310 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5505 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 20:11:27 +00:00
ryan
6317b80f81 Check if is_array before unsetting array index. fixes #4306
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 16:38:53 +00:00
rob1n
1b8ddc740f Pass text widget text through format_to_edit. Props Ryan. fixes #4302
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5499 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 13:13:22 +00:00
rob1n
48a8abb534 Fix wp-ajax.js addArg's hashes. Props technosailor. fixes #4277
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5498 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 12:56:39 +00:00
rob1n
377df0d7a9 Keep editing mode when paging through comments. fixes #4300
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5497 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 12:52:44 +00:00
rob1n
70cf7bb6a2 Doh. fixes #4292
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5496 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 23:44:37 +00:00
rob1n
39e02a871d Apply [5471] to 2.2.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5495 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 22:13:56 +00:00
ryan
9cc55c3312 Fix widget admin layout for IE7. Props Denis-de-Bernardy. fixes #4264 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5493 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 17:23:50 +00:00
rob1n
b6aed2a86d Check for switch_themes, not edit_themes. Props Denis de Bernardy. fixes #4292
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5492 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 04:38:51 +00:00
rob1n
ac6890d106 Don't fail when the user don't set WP-Cache up correctly. Props Denis de Bernardy. fixes #4293
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5491 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 04:32:28 +00:00
rob1n
d6dba8fab8 Select the option if it's set to that. fixes #4291
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5490 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 04:26:02 +00:00
ryan
3d8f9289cb Fix tinymce colorpicker. Props azaozz. fixes #4288 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5488 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 00:10:57 +00:00
rob1n
24298eb78f Texturize and autop the text widgets, and allow pages to be sorted by a specified field. Props Denis de Bernardy. see #4259
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5486 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-18 02:29:11 +00:00
ryan
55b780320b Restore crack-headed arg passing to register_sidebar_widget(). fixes #4275
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5484 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-16 17:48:31 +00:00
rob1n
b8314bc5aa Fix some attribute misnamings. Props Erunafailaro. fixes #4274
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5483 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-16 17:37:55 +00:00
ryan
ab32166864 Let's Getz it on.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5479 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-15 21:57:56 +00:00
ryan
81a13c27f5 Add nonce to avoid AYS when restoring image header.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5477 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-15 16:47:07 +00:00
ryan
dc5e0fe929 Theme screenshot fix from mdawaffe. fixes #4266 for 2.2.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5475 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-14 23:30:05 +00:00
ryan
f45b44194e Allow sidebar names to be passed to dynamic_sidebar(). fixes #4258 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5473 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-14 05:12:52 +00:00
ryan
e9a0c47a63 More Kubrick custom color header i18n from nbachiyski. fixes #4256 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5467 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-13 18:45:58 +00:00
ryan
edeb3e0868 Kubrick custin color header i18n from nbachiyski. fixes #4256 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5465 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-13 17:56:16 +00:00
ryan
79e3d24c60 RC2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5464 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 22:37:24 +00:00
ryan
fa3e76d676 Flush all output buffers during shutdown to avoid PHP 5 bustage. fixes #3354 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5463 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 22:37:07 +00:00
ryan
a885d5be4f Return proper protocol. fixes #3886 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5461 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 21:58:38 +00:00
rob1n
99346e897a Seeing double. Good spot momo360modena. fixes #4251 for 2.1, 2.2 and 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5459 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 19:47:47 +00:00
matt
bdbafbe8a9 The config file has been deliberately CRLF since [2370] to recognize that most people will be editing this file in a crappy windows editor.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 18:29:27 +00:00
ryan
3eaa92b8c5 Revert debug cruft accidentally committed with [5452]. Bad Ryan
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5453 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 21:41:53 +00:00
ryan
182c409c58 Fix for PHP version 5.2.2 where isn't set. fixes #4248 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5452 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 21:40:15 +00:00
rob1n
c3fc60a2ee Let WebKit 420 and above in for TinyMCE. fixes #4241 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5443 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 01:00:30 +00:00
ryan
9532679648 Escapage
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5440 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 00:55:59 +00:00
ryan
65ffc78548 Handle local and remote blogroll imports. Props apokalyptik. fixes #4243 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5438 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 21:21:37 +00:00
ryan
76ad2cc5e6 Left, right, dragChange, hop. s/left/right/. Props Lawrence Pit. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5436 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 21:18:01 +00:00
ryan
ec0efa21b5 Use correct var. Props charismabiz. fixes #4246 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5434 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 21:07:51 +00:00
ryan
cc6a998e20 Cast to array to avoid warning.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5431 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 16:31:49 +00:00
ryan
c22a4ed9f1 Var is an object var. Add missing this.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5426 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 02:30:58 +00:00
ryan
1f0a61fd73 Don't preg_match_all when processing items. fixes #4239 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5422 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 00:05:03 +00:00
ryan
2795b2e9d2 Obey show_post_count for dropdown.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5420 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-09 21:54:04 +00:00
ryan
b1a9963671 Include plugin.php before calling wp_die. fixes #4238 for 2.2.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5417 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-09 16:17:41 +00:00
rob1n
cfb41a5ad1 *Bump*. 2.2-RC1.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5414 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-09 01:40:10 +00:00
ryan
0e212e9a85 Make sure wp_actions is set before counting.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5412 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-08 17:59:32 +00:00
ryan
765fc389ce Don't send header from wp_die() if admin header already sent. fixes #4234 for 2.2.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5410 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-07 23:24:09 +00:00
ryan
72045b52b8 Fix did_action to properly account for actions that have no callbacks attached.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5408 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-07 23:22:28 +00:00
ryan
a78ebdcccb Add nonces to importers
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5405 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-07 15:57:15 +00:00
ryan
ef3400be6e attribute_escape for widgets. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5402 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-07 02:16:03 +00:00
ryan
061bad455b Make sure Widgets menu comes after Themes. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5400 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-06 20:35:51 +00:00
ryan
68866e9571 Fix widget registration back compat by splitting API. Fix feed widget. For 2.2. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5398 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-06 07:07:36 +00:00
ryan
2240947c82 Resurrect wp_parse_args() for 2.2.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5397 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-05 17:09:45 +00:00
rob1n
c973ad1d0e Add in missing delimiter. fixes #4226 for 2.0, 2.2 and 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5396 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-05 02:51:20 +00:00
rob1n
8382333b7f Don't set URL options if WP_HOME and or WP_SITEURL are defined. Props filosofo. fixes #4199
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5395 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-05 00:19:25 +00:00
rob1n
f2e57bf305 Use WP_HOME and WP_SITEURL in upgrading. Props filosofo. fixes #4211
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5394 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-05 00:17:05 +00:00
ryan
2e7433967d eol-style everywhere
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5391 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 21:48:43 +00:00
ryan
e0c548de57 Set eol-style
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5389 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 21:27:10 +00:00
ryan
dd3e81b07c Do a cap check at the top of widgets since it won't always inherit the menu cap check.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5386 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 17:52:57 +00:00
ryan
d7a6781cc6 Add 'Select' text to the dropdowns. Props Joseph Scott.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5382 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 02:24:23 +00:00
rob1n
aa19ffe126 Load order fixed.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5377 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-03 00:52:14 +00:00
rob1n
6f2a4b74a9 Don't show Widgets admin page if core widgets aren't enabled. fixes #4218
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5376 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-03 00:43:57 +00:00
rob1n
6ecf459918 Don't double encode gzip output if gzip is already set in php.ini. Props welcomb. fixes #4205 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5372 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-02 02:36:44 +00:00
ryan
5a547001ee Call get_option('siteurl') outside the loop to save a few dozen get_option calls. Props andissimo.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5371 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-02 00:32:38 +00:00
ryan
e2e4ea32da Fix inline uploader page links. Props mdawaffe. fixes #4217 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5369 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 23:34:00 +00:00
ryan
5964d5f48a Remove wp_ prefix from default widget class names. For back compat.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5367 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 22:52:14 +00:00
ryan
b7cfc5c173 Set eol-style
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5364 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 17:45:32 +00:00
rob1n
276c2f7b94 New way of loading widgets that works with PHP 5. Thanks to filosofo for testing. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5363 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 01:58:18 +00:00
rob1n
67bd2acaf9 Move widget stuff around. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 01:13:06 +00:00
ryan
a4c00744ff Widget registration fixes from Andy. For 2.2. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5359 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 20:02:15 +00:00
ryan
41a9ec3b9a When using the traditional list view of the categories,
make sure the wp_list_categories() doesn't add in another title. This
was causing a second Categories to show up on the category widget.  Props Jospeh Scott

git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5357 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 17:46:38 +00:00
ryan
73d48439f8 Fix typo breaking recent comment cache deletion for widgets.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5355 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 16:45:44 +00:00
ryan
041af31c32 Remove debug
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5352 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 03:47:34 +00:00
ryan
407b07f2a7 Don't use deprecated category API.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5350 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 03:33:13 +00:00
rob1n
77fb8f7ac6 Bring back old behavior for sidebar ID's. Props filosofo. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5348 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 02:35:28 +00:00
rob1n
0003f83892 Check basename(). see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5345 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-29 21:00:54 +00:00
rob1n
79bfe4e9d0 Automattically deactivate Automattic Widgets, if activated. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5344 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-29 20:53:29 +00:00
rob1n
4143d41188 Move widgets' JS into the <head> of widgets.php. Should fix text/rss widget controls. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5343 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-29 20:16:26 +00:00
ryan
5a58316eb0 Fix widget control registration where id is not passed in.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5342 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-28 17:04:39 +00:00
ryan
4bbdc94490 Create widget id from widget name when id not specified.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5339 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-28 06:08:45 +00:00
ryan
f59d101bd8 Kick widgets init from init hook.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5337 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-28 00:36:04 +00:00
ryan
e3748ee830 Some widgets gettext.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5335 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-28 00:29:53 +00:00
rob1n
800477a81b Add widgets-rtl.css into 2.2. Props Sewar. fixes #4185
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5332 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 20:49:52 +00:00
rob1n
e159d212e8 Widgets RTL CSS, and a few little widget bugfixes. Props Sewar. fixes #4185
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5324 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 00:51:19 +00:00
ryan
6cbf98b1b7 Fix text and rss widget registration. fixes #4202 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5321 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-26 17:49:53 +00:00
ryan
a822a3cf5c Add dropdown option to archives and categories widgets. Props Joseph Scott. fixes #4194 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5318 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-26 17:17:11 +00:00
rob1n
13dd0b74e7 Links widget fixes from Otto42. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5317 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-26 03:43:59 +00:00
rob1n
11675fb3fc WordPress.com -> .org and change widgetize link to Automattic's site for now. We still need to make a Codex page, just to make it more "WordPressy."
Props foolswisdom. fixes #4200


git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5316 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-26 02:13:18 +00:00
ryan
9fadff8d4b Remove rel_type ref
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5314 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-25 18:54:29 +00:00
rob1n
15d3bf89ce Variable name fix. Props filosofo. For 2.2. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5311 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-25 03:06:19 +00:00
ryan
6298c5b93c Update widgets to latet bits. For 2.2. see #4169
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5306 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 23:46:57 +00:00
ryan
8bffc54b84 Use GMT in XML-RPC dateCreated fields. Props Joseph Scott. fixes #4158 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5305 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 23:40:21 +00:00
ryan
bb55b9ecc0 Set eol-style on new files.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5298 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 18:39:44 +00:00
ryan
bac405380f Fix variable collission in _get_cat_children. For 2.2. see #3985
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5296 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-23 20:31:47 +00:00
rob1n
fb198a068a Widgets support. fixes #4169 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5294 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-22 23:27:40 +00:00
rob1n
e1127ba7ba Bump 2.2 version in readme.html. Props spencerp. fixes #4175
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5291 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-21 02:20:09 +00:00
rob1n
c6684fd4aa Properly close the paragraph. Props zeo. fixes #4171 for both 2.2 and 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5290 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-20 03:52:41 +00:00
markjaquith
a9b5bc0f13 Roll tags out of 2.2 -- reverts [5272], [5271], [5257], [5254], [5253], [5251], [5250], [5243], [5235], [5234], [5232], [5231], [5229], [5228], [5217], [5216], [5215], [5213], half of [5210], [5209], [5205], [5203], [5201], [5196], [5184], [5168], [5163], [5162], [5150], [5149], [5148], [5147], [5113], [5112], [5111], and [5110]
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5289 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-19 22:26:52 +00:00
ryan
bcbe992d05 2.2 branch
git-svn-id: http://svn.automattic.com/wordpress/branches/2.2@5287 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-19 04:04:22 +00:00
rob1n
83093ef0ab Rename app.php to wp-app.php and change references. fixes #4168
git-svn-id: http://svn.automattic.com/wordpress/trunk@5286 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-19 03:03:31 +00:00
rob1n
ceb60d8af8 Replace deprecated get_settings() calls with get_option(). Props johnbillion. fixes #4167
git-svn-id: http://svn.automattic.com/wordpress/trunk@5285 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-19 02:53:19 +00:00
rob1n
f2d8504d16 Cast substr()'s to int before passing through mktime() to prevent warning. Props josephscott. fixes #4166
git-svn-id: http://svn.automattic.com/wordpress/trunk@5284 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-19 02:49:19 +00:00
ryan
8cbe134f81 Add url_to_postid filter. Props Alex King. fixes #4160
git-svn-id: http://svn.automattic.com/wordpress/trunk@5283 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-18 22:51:54 +00:00
ryan
49166ab920 Revert [5275] - [5277]. Fix it later. see #4153
git-svn-id: http://svn.automattic.com/wordpress/trunk@5282 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-17 23:00:35 +00:00
ryan
25fcd398e5 XML-RPC fixes to allow for empty/zero settings in various fields. Props Joseph Scott. fixes #4156
git-svn-id: http://svn.automattic.com/wordpress/trunk@5281 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-17 22:00:00 +00:00
ryan
b4fd79f281 AJAXcat fixes and FF workaround from mdawaffe. fixes #3895
git-svn-id: http://svn.automattic.com/wordpress/trunk@5280 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-17 20:56:41 +00:00
ryan
3c05580077 Reverting [5278]. It breaks mw_getRecentPosts.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5279 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-17 16:52:11 +00:00
rob1n
798be8a8e2 Add mt_keywords support. Props redsweater. fixes #900
git-svn-id: http://svn.automattic.com/wordpress/trunk@5278 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-17 01:30:12 +00:00
rob1n
47de90d17a Fix another typo. Not a good day at all.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5277 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-17 01:17:45 +00:00
rob1n
37d7ae825b Fix typo. Thanks Lloyd.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5276 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-17 00:53:58 +00:00
rob1n
763828ed10 Add get_edit_comment_link() and get_edit_post_link(). fixes #4153
git-svn-id: http://svn.automattic.com/wordpress/trunk@5275 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-16 23:53:34 +00:00
ryan
02cfbbe93b Use wp_hash to create cron's check hash.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5274 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-16 20:47:23 +00:00
rob1n
c2e45c1e08 Update wp-config.php to reference wp-contents/languages instead of wp-includes/languages. Props Nazgul. fixes #4150
git-svn-id: http://svn.automattic.com/wordpress/trunk@5273 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-15 21:29:41 +00:00
ryan
049b86dea5 Remove debug
git-svn-id: http://svn.automattic.com/wordpress/trunk@5272 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-15 02:30:00 +00:00
ryan
f651ce93c3 tag_exists(), category_object_exists(), and some tag and cat create fix ups. see #3723
git-svn-id: http://svn.automattic.com/wordpress/trunk@5271 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-15 02:26:26 +00:00
ryan
6d3979b716 Lose reference to current_blog.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5270 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-14 22:03:32 +00:00
rob1n
d7a828c373 Add in another trim(), just in case $frag is actually something.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5269 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-14 00:19:01 +00:00
rob1n
8d26c9e4b1 Just use bloginfo(). Props jhodgdon. fixes #3903
git-svn-id: http://svn.automattic.com/wordpress/trunk@5268 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-14 00:16:38 +00:00
rob1n
999e232f12 trim() question marks *after* concatenating the string. fixes #4134
git-svn-id: http://svn.automattic.com/wordpress/trunk@5267 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-14 00:11:47 +00:00
rob1n
62f5c944dc Fix gettext's plural forms for more than 2 plural forms. Props moeffju and nbachiyski. fixes #4005
git-svn-id: http://svn.automattic.com/wordpress/trunk@5266 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-13 23:29:47 +00:00
rob1n
24e1d66471 Respect show_option_all in wp_list_categories(). Props westi. fixes #4145
git-svn-id: http://svn.automattic.com/wordpress/trunk@5265 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-13 23:20:14 +00:00
rob1n
cb5e9836c1 Add RTL css for #tagdiv. Props Sewar. fixes #4140
git-svn-id: http://svn.automattic.com/wordpress/trunk@5264 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-13 03:29:43 +00:00
rob1n
e6a85a0fc8 Add encoding to WXR exports, and clean up HTML comments.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5263 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 23:53:36 +00:00
rob1n
ae0d54317c Don't treat object and param as block elements in wpautop. fixes #3854
git-svn-id: http://svn.automattic.com/wordpress/trunk@5262 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 23:19:16 +00:00
rob1n
30d6c1ad15 Get add_query_arg() to urlencode all values of parse_str array. Props mdawaffe. fixes #4084
git-svn-id: http://svn.automattic.com/wordpress/trunk@5261 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 22:00:22 +00:00
rob1n
0e669f143d Replace some stristr's with stripos'.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5260 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 21:59:31 +00:00
rob1n
876b0c431f Take out undefined variable. fixes #2781
git-svn-id: http://svn.automattic.com/wordpress/trunk@5259 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 21:43:38 +00:00
ryan
5fae2af843 Refactor l10n code to reduce duplication. Change placement of context. Props nbachiyski. fixes #3687
git-svn-id: http://svn.automattic.com/wordpress/trunk@5258 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 21:15:44 +00:00
markjaquith
d5bd979f87 CSS IDs should avoid using underscores for compat with older browers. See http://tinyurl.com/2s99u6 addresses #4140
git-svn-id: http://svn.automattic.com/wordpress/trunk@5257 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 20:53:59 +00:00
rob1n
dbda3aabaa Upgrade TinyMCE to 2.1.0. Props andy. fixes #3788
git-svn-id: http://svn.automattic.com/wordpress/trunk@5256 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 17:04:03 +00:00
rob1n
75efedc528 Delete the cache in tmp even if the copy failed. Props andy. fixes #4141
git-svn-id: http://svn.automattic.com/wordpress/trunk@5255 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 16:31:47 +00:00
rob1n
570b2a4600 Tidy up the tags interface. Props andy. fixes #4140
git-svn-id: http://svn.automattic.com/wordpress/trunk@5254 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 16:13:37 +00:00
rob1n
aaab9dd1f4 Add small i18n fix. Props nbachiyski. fixes #4139
git-svn-id: http://svn.automattic.com/wordpress/trunk@5253 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 05:59:59 +00:00
rob1n
64f8429a12 Some fixes for another fix. Props takayukister. fixes #4040
git-svn-id: http://svn.automattic.com/wordpress/trunk@5252 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 05:55:34 +00:00
rob1n
e169d671d2 Add ability to convert all categories to tags. fixes #4135
git-svn-id: http://svn.automattic.com/wordpress/trunk@5251 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 05:46:36 +00:00
rob1n
aab2df9f6a Improve tag archive's title. Props johnbillion. fixes #4133
git-svn-id: http://svn.automattic.com/wordpress/trunk@5250 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 04:39:55 +00:00
ryan
44111a3ae7 Stripslashes post meta values before handing off to add_post_meta. Use wpdb::escape instead of addslashes. Props takayukister. fixes #4028
git-svn-id: http://svn.automattic.com/wordpress/trunk@5249 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 02:58:41 +00:00
ryan
0e28e967ad Actually make use of wp_cache_add to avoid unnecessary cache writes. Props skeltoac. fixes #4138
git-svn-id: http://svn.automattic.com/wordpress/trunk@5248 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 02:27:12 +00:00
rob1n
f8fd7370fc Use get_var and only select cat_ID. see #4040
git-svn-id: http://svn.automattic.com/wordpress/trunk@5247 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 02:08:40 +00:00
rob1n
f603da47b6 Use cat_name instead of cat_nicename when creating categories from import. Props takayukister. fixes #4040
git-svn-id: http://svn.automattic.com/wordpress/trunk@5246 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 01:49:46 +00:00
ryan
69d3f2df59 Preserve page hierarchy. Props takayukister. fixes #4025
git-svn-id: http://svn.automattic.com/wordpress/trunk@5245 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-12 01:34:15 +00:00
rob1n
43c0541e81 <!--more--> regex fixes. Props Nazgul. fixes #3698
git-svn-id: http://svn.automattic.com/wordpress/trunk@5244 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-11 22:47:36 +00:00
ryan
b6c49e3023 Allow passing an empty tag set to wp_set_post_tags() so all tags can be removed from a post. see #3723
git-svn-id: http://svn.automattic.com/wordpress/trunk@5243 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-11 18:04:49 +00:00
rob1n
f0da57ee4e Don't use fancy permalinks on draft previews. Props Viper007Bond. fixes #4117
git-svn-id: http://svn.automattic.com/wordpress/trunk@5242 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-11 16:52:58 +00:00
rob1n
61e18c550e Add the_meta_key filter with $key and $value arguments. Props mdawaffe. fixes #2861
git-svn-id: http://svn.automattic.com/wordpress/trunk@5241 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-11 05:38:30 +00:00
rob1n
25191fabb8 Rollback wonky part of [5193]. see #4084
git-svn-id: http://svn.automattic.com/wordpress/trunk@5240 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-11 03:41:42 +00:00
rob1n
ef58292639 Don't die because of output by badly-written plugins upon activation. Props masquerade. fixes #4127
git-svn-id: http://svn.automattic.com/wordpress/trunk@5239 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-11 03:23:23 +00:00
rob1n
d40f03754d Tweak displaying comments awaiting moderation to their authors. Props wnorris. fixes #4108
git-svn-id: http://svn.automattic.com/wordpress/trunk@5238 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-11 03:12:11 +00:00
rob1n
253bbfcd7f Take out duplicate ID. Props JeremyVisser. fixes #3432
git-svn-id: http://svn.automattic.com/wordpress/trunk@5237 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 23:44:58 +00:00
rob1n
879a091a06 Run make_clickable before texturize. Props Nazgul. fixes #4116
git-svn-id: http://svn.automattic.com/wordpress/trunk@5236 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 23:21:00 +00:00
ryan
45f4a1870e Change get_the_tags() to return an array of tags. Move tag list code to the_tags(). fixes #4123
git-svn-id: http://svn.automattic.com/wordpress/trunk@5235 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 21:23:11 +00:00
ryan
77cdde3f87 Tag clouds from mdawaffe. fixes #4129
git-svn-id: http://svn.automattic.com/wordpress/trunk@5234 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 19:52:15 +00:00
ryan
f32f812fa9 Bumpage
git-svn-id: http://svn.automattic.com/wordpress/trunk@5233 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 19:08:49 +00:00
ryan
de91343f51 Add get_tags(). See #3723
git-svn-id: http://svn.automattic.com/wordpress/trunk@5232 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 18:55:51 +00:00
ryan
246db4315f s/get_post_tags/wp_get_post_tags/ to match the rest of the API.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5231 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 18:30:55 +00:00
rob1n
d76a895798 Bump jQuery and Interface versions in script loader. Props Viper007Bond. fixes #4124
git-svn-id: http://svn.automattic.com/wordpress/trunk@5230 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 17:01:52 +00:00
rob1n
1a15286ed5 Use own category_exists() function, and only list categories to convert. fixes #4107
git-svn-id: http://svn.automattic.com/wordpress/trunk@5229 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 16:57:21 +00:00
rob1n
27f9b4a0fb Fix some i18n and typographical stuff in the UTW importer. Props nbachiyski. fixes #4121
git-svn-id: http://svn.automattic.com/wordpress/trunk@5228 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 09:27:50 +00:00
matt
b5b01a4976 Missing change from last commit.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5227 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 07:39:47 +00:00
matt
43e5b7c897 This fixes the broken paginate_links on the comments and users page, however the way this function works is rather awkward and should be redone. There is far too much complexity for what it's trying to do.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5226 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 07:38:36 +00:00
rob1n
a24ee4902a empty() only takes variables. Props filosofo. fixes #4118
git-svn-id: http://svn.automattic.com/wordpress/trunk@5224 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 04:28:40 +00:00
rob1n
404dd03317 Don't autop <script> blocks. Props Nazgul. fixes #3854
git-svn-id: http://svn.automattic.com/wordpress/trunk@5223 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 00:49:18 +00:00
rob1n
7507125fd3 Don't autop <hr />. fixes #3952
git-svn-id: http://svn.automattic.com/wordpress/trunk@5222 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-10 00:47:08 +00:00
rob1n
f3cc3e6049 Change edit comment link to 'edit' rather than 'e'. Props pishmishy. fixes #3977
git-svn-id: http://svn.automattic.com/wordpress/trunk@5221 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-09 21:08:46 +00:00
rob1n
dd96826c34 Default to 'en' for TinyMCE language if get_locale() is empty, to avoid meltdowns. Props m0n5t3r. fixes #4118
git-svn-id: http://svn.automattic.com/wordpress/trunk@5220 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-09 16:33:43 +00:00
rob1n
a0d725d980 Just check for manage_categories. fixes #4107
git-svn-id: http://svn.automattic.com/wordpress/trunk@5218 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-09 16:27:22 +00:00
rob1n
d5bb675acb And that's a wrap, folks.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5217 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-09 16:15:50 +00:00
rob1n
80706e269d Link to categories to tags converter and UTW importer. fixes #4100 #4107
git-svn-id: http://svn.automattic.com/wordpress/trunk@5216 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-09 06:35:32 +00:00
rob1n
8516de020f Don't show categories in getCategoryList. fixes #4114
git-svn-id: http://svn.automattic.com/wordpress/trunk@5215 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-09 02:12:29 +00:00
ryan
9442a8806b Google spell connect fix. Props Nazgul. see #3857
git-svn-id: http://svn.automattic.com/wordpress/trunk@5214 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-09 00:09:42 +00:00
rob1n
bf3110bb49 Add initial UTW tag converter. Props MellerTime. fixes #4100
git-svn-id: http://svn.automattic.com/wordpress/trunk@5213 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-08 04:51:35 +00:00
rob1n
96535f8d01 Fix typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5212 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 19:31:54 +00:00
rob1n
ccfa543340 Fixed sorting -- uasort() instead of usort().
git-svn-id: http://svn.automattic.com/wordpress/trunk@5211 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 19:06:33 +00:00
rob1n
6f3c55b1de Put the sorting on hold, and add empty contructor.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5210 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 19:04:57 +00:00
rob1n
1948792ee1 Add wp_add_post_tags() and $append variable for wp_set_post_tags(). fixes #4109
git-svn-id: http://svn.automattic.com/wordpress/trunk@5209 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 19:00:19 +00:00
rob1n
62b2339e4b Add menu_order and page_name to WP import/export. Props takaykister. fixes #4024
git-svn-id: http://svn.automattic.com/wordpress/trunk@5208 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 16:36:10 +00:00
rob1n
c7f54c6afe Add a bit of warning (red background on hover) to the Deactivate All Plugins button, and make align="right" XHTML-compliant.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5207 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 16:03:38 +00:00
rob1n
8373a8074f Sort the importers by name, instead of filename. Easier to find stuff, no?
git-svn-id: http://svn.automattic.com/wordpress/trunk@5206 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 15:53:19 +00:00
rob1n
192d5a3e33 Fix typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5205 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 15:52:53 +00:00
rob1n
88a90414bb Import cleanup and optimizations.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5204 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 15:46:09 +00:00
rob1n
e874adadaa Add clean_category_cache() and capability checking. see #4107
git-svn-id: http://svn.automattic.com/wordpress/trunk@5203 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 15:43:20 +00:00
ryan
c3508de5be Avoid php notices.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5202 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 05:24:37 +00:00
rob1n
8661af0977 Add initial category to tag importing. see #4107
git-svn-id: http://svn.automattic.com/wordpress/trunk@5201 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 04:58:28 +00:00
rob1n
f826cb98cc Move the stripslashes(), and change it to stripslashes_deep(). Props mdawaffe. fixes #4105
git-svn-id: http://svn.automattic.com/wordpress/trunk@5200 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-07 01:24:40 +00:00
rob1n
4a4d37f9f3 Set the post ID when calling wp_get_attachment_url(). Props chess64. fixes #4104
git-svn-id: http://svn.automattic.com/wordpress/trunk@5199 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 23:42:38 +00:00
rob1n
d82463f788 Fix Back to Authors and Users link. fixes #4102
git-svn-id: http://svn.automattic.com/wordpress/trunk@5198 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 23:09:02 +00:00
ryan
9e6ab0a59d Relocate get_post_tags.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5197 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 18:22:54 +00:00
ryan
142582999e Typo
git-svn-id: http://svn.automattic.com/wordpress/trunk@5196 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 17:53:34 +00:00
ryan
ab510803f4 Pass link indentifier to mymysql_affected_rows(). Props Doug Kaye.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5195 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 17:22:53 +00:00
rob1n
b5eab92808 Add AND. fixes #4101
git-svn-id: http://svn.automattic.com/wordpress/trunk@5194 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 14:53:46 +00:00
rob1n
a7d8f6aa74 Re-encode query values after passed to add_query_arg(). Props mdawaffe. fixes #4084
git-svn-id: http://svn.automattic.com/wordpress/trunk@5193 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 04:21:21 +00:00
rob1n
b557846efd Add the argument back in. Whoops.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 03:34:01 +00:00
rob1n
1efba04041 Add private posts to Recent Posts for those who can read them. Props molecularbear. fixes #3877
git-svn-id: http://svn.automattic.com/wordpress/trunk@5191 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 03:33:21 +00:00
rob1n
3f0fa28e19 Add private posts to get_usernumposts() when the current_user_can read_private_posts. Props molecularbear. fixes #3868
git-svn-id: http://svn.automattic.com/wordpress/trunk@5190 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 03:29:44 +00:00
rob1n
7bb92d3873 Add a function to unify private posts SQL based on capabilities -- get_private_posts_cap_sql().
Usage: get_private_posts_cap_sql($type), where $type is either 'post' or 'page'.

Props molecularbear. fixes #3861


git-svn-id: http://svn.automattic.com/wordpress/trunk@5189 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 03:25:41 +00:00
rob1n
7068240303 Add support to wp-mail.php for quoted-printable Content-Transfer-Encoding. Props Nazgul. fixes #2460
git-svn-id: http://svn.automattic.com/wordpress/trunk@5188 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 02:57:46 +00:00
rob1n
4a5335aee6 Add stripos() for compatibility for PHP < 5. This will be needed for a patch later, I think.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5187 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 02:54:12 +00:00
rob1n
2d799e437b Add DBX to link-add.php. Props Nazgul. fixes #3922
git-svn-id: http://svn.automattic.com/wordpress/trunk@5186 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 00:56:28 +00:00
rob1n
0b5b8fb535 Use fixed widths instead of pixels, so it stays the same at all resolutions. see #4068
git-svn-id: http://svn.automattic.com/wordpress/trunk@5185 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-06 00:38:30 +00:00
ryan
00e9ff778a Bit twiddling. Add type bitfield to categories table. see #3723
git-svn-id: http://svn.automattic.com/wordpress/trunk@5184 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-05 21:16:02 +00:00
rob1n
e551e9f390 Add RTL support for new view-link class. see #4068
git-svn-id: http://svn.automattic.com/wordpress/trunk@5183 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-05 04:54:54 +00:00
rob1n
c2ab78d52c Move inline styles to wp-admin.css. see #4068
git-svn-id: http://svn.automattic.com/wordpress/trunk@5182 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-05 02:03:40 +00:00
rob1n
c864976754 Add admin_xml_ns action to <html> in the admin header. Props jhodgdon. fixes #4077
git-svn-id: http://svn.automattic.com/wordpress/trunk@5181 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-04 23:54:47 +00:00
rob1n
ad243d0be3 Fix typo. Props Nazgul. fixes #4083
git-svn-id: http://svn.automattic.com/wordpress/trunk@5180 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-04 23:35:37 +00:00
ryan
2c31712d3a Category listing speedups. see #3985
git-svn-id: http://svn.automattic.com/wordpress/trunk@5179 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-04 22:32:24 +00:00
ryan
7f0a905ee6 Cache category hierarchy to make cat listing faster. Phase 1. see #3985
git-svn-id: http://svn.automattic.com/wordpress/trunk@5178 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-04 20:44:45 +00:00
rob1n
57cf80f5d1 Add exit hook to wp_delete_link(). Props kevinB. fixes #4078
git-svn-id: http://svn.automattic.com/wordpress/trunk@5177 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-04 04:25:44 +00:00
rob1n
04f7f566b0 Fix typo. Props johnbillion. fixes #4057
git-svn-id: http://svn.automattic.com/wordpress/trunk@5176 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-04 00:58:55 +00:00
ryan
ae7fa6c616 Cast to int after escaping. Props Joseph Scott.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5173 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-03 07:11:13 +00:00
markjaquith
923ba23e88 Fix category_name=foo WP_Queries. fixes #4069
git-svn-id: http://svn.automattic.com/wordpress/trunk@5171 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-02 19:40:15 +00:00
matt
06d577a539 Because of the next we should always do a reset.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5170 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-02 07:46:05 +00:00
matt
fde70e7623 Fixes bottlenecks found in filter system using xdebug + kcachegrind. merge_filters was being called 1000+ times.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5169 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-02 07:03:38 +00:00
rob1n
3788d718be Localize admin tag form and classic theme's tag output. Props nbachiyski. fixes #4031
git-svn-id: http://svn.automattic.com/wordpress/trunk@5168 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-01 19:42:06 +00:00
ryan
99f1babe59 i18n for quicktags.js. Props Nazgul. fixes #3958
git-svn-id: http://svn.automattic.com/wordpress/trunk@5167 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-01 16:06:19 +00:00
ryan
e273f11ec5 Translate APP and XMLRPC errors. Props nbachiyski. fixes #3997
git-svn-id: http://svn.automattic.com/wordpress/trunk@5166 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-01 15:59:50 +00:00
rob1n
2a035cdab8 Add CSS class in if it's not empty when there's no comments. fixes #2180
git-svn-id: http://svn.automattic.com/wordpress/trunk@5165 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-01 15:57:13 +00:00
rob1n
fa33be1162 Run the post titles through the the_title filter. fixes #3366
git-svn-id: http://svn.automattic.com/wordpress/trunk@5164 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-01 15:40:50 +00:00
matt
afb8aafcbf Don't forget the tag_cache
git-svn-id: http://svn.automattic.com/wordpress/trunk@5163 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-01 08:44:10 +00:00
matt
3bf8b1699a Use category_exists instead of a direct query.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5162 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 22:38:51 +00:00
matt
64771eb61d Move it to the more intuitive right side of the page, with the rest of the activation links
git-svn-id: http://svn.automattic.com/wordpress/trunk@5161 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 22:15:58 +00:00
matt
9784d05317 Make most of the buttons a map, helps the write page load faster.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5160 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 22:12:35 +00:00
matt
01961fba45 Kill the slow-loading iframe in favor of a popup link
git-svn-id: http://svn.automattic.com/wordpress/trunk@5159 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 22:02:19 +00:00
rob1n
eaac63e0d0 Add exit hook to wp_delete_post(). Props kevinB. fixes #4055
git-svn-id: http://svn.automattic.com/wordpress/trunk@5158 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 21:41:08 +00:00
rob1n
b9ddc875bf Add exit hooks to wp_insert_category(). Props kevinB. fixes #4056
git-svn-id: http://svn.automattic.com/wordpress/trunk@5157 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 21:33:33 +00:00
rob1n
d13cd6c3ce Deactivate All Plugins feature. fixes #3498
git-svn-id: http://svn.automattic.com/wordpress/trunk@5156 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 20:56:54 +00:00
rob1n
83be93d229 attribute_escape() the OPML feed's title. fixes #4061
git-svn-id: http://svn.automattic.com/wordpress/trunk@5155 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 20:15:10 +00:00
rob1n
48016d121a Add classic theme's functions.php. Good eyes, Otto42. fixes #4057
git-svn-id: http://svn.automattic.com/wordpress/trunk@5154 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 19:52:59 +00:00
rob1n
090c138591 Add link rating to wp_list_bookmarks(). fixes #3916
git-svn-id: http://svn.automattic.com/wordpress/trunk@5153 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 19:43:49 +00:00
rob1n
f91c1016ef Take out useless preg_match()'s and ignore directories starting with ".". Props m0n5t3r. fixes #4047
git-svn-id: http://svn.automattic.com/wordpress/trunk@5152 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 19:30:18 +00:00
rob1n
2e9fd09468 Add widget support (if plugin is available) to default themes. Props Otto42. fixes #4057
git-svn-id: http://svn.automattic.com/wordpress/trunk@5151 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 16:57:50 +00:00
matt
c86599b85c Now tag pretty permalinks should work, and support custom tag bases.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5150 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 09:19:32 +00:00
matt
14f1c622ff All the query stuff we need for tag= URLs to work.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5149 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 06:16:12 +00:00
matt
2706ae78bd Don't dupe categories when adding new ones, use the existing ID.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5148 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 05:22:10 +00:00
matt
3124054b45 Show tags on permalink pages.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5147 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 05:21:47 +00:00
rob1n
b30fff9c07 Fix double header when WP importer file upload fails. Props takayukister. fixes #4033
git-svn-id: http://svn.automattic.com/wordpress/trunk@5146 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 03:55:22 +00:00
rob1n
7cb4185f04 Add https:// support to script loader. Props abtime. fixes #4046
git-svn-id: http://svn.automattic.com/wordpress/trunk@5145 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-31 02:47:23 +00:00
rob1n
7dac9e0a80 Add missing the_title filter call. Props jhodgdon. fixes #4050
git-svn-id: http://svn.automattic.com/wordpress/trunk@5144 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-30 23:46:17 +00:00
rob1n
29eb1e9a2b Fix typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5143 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 04:08:54 +00:00
rob1n
fe50a59120 PHPdoc for plugin.php. Props Martin10. fixes #3852
git-svn-id: http://svn.automattic.com/wordpress/trunk@5142 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 02:45:34 +00:00
rob1n
3173b83434 Some grammar fixes in options-general.php. Props jonnylamb and foolswisdom. fixes #3749
git-svn-id: http://svn.automattic.com/wordpress/trunk@5141 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 02:43:10 +00:00
rob1n
4f33e4555b Update the PHP version and the Codex link for importing in readme.html. Props MichaelH. fixes #3998
git-svn-id: http://svn.automattic.com/wordpress/trunk@5140 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 02:37:26 +00:00
rob1n
949312bf0b Change the message when registration isn't enabled to reflect that. Props markjaquith. fixes #3640
git-svn-id: http://svn.automattic.com/wordpress/trunk@5139 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 02:30:57 +00:00
rob1n
347657de7e Add back in a question mark. Props foolswisdom. fixes #3143
git-svn-id: http://svn.automattic.com/wordpress/trunk@5138 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 02:24:25 +00:00
rob1n
cb7570b4cc Fix months in wp_title(). fixes #4043
git-svn-id: http://svn.automattic.com/wordpress/trunk@5137 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 02:06:16 +00:00
rob1n
19649b35f7 Add get_sidebar action to get_sidebar(). fixes #1445
git-svn-id: http://svn.automattic.com/wordpress/trunk@5136 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 01:45:29 +00:00
rob1n
4a6743b54c Speed (wp_)list_authors by consolidating some queries. Props graeme. fixes #1659
git-svn-id: http://svn.automattic.com/wordpress/trunk@5135 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 01:39:05 +00:00
rob1n
e5b562a070 Apply the bloginfo_rss filter and change bloginfo_rss filter to get_bloginfo. Props Kafkaesqui. fixes #2014
git-svn-id: http://svn.automattic.com/wordpress/trunk@5134 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 01:35:50 +00:00
rob1n
b4de51f25c Sorry, a little tester got in there. Didn't expect to be committing ;).
git-svn-id: http://svn.automattic.com/wordpress/trunk@5133 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 01:30:27 +00:00
rob1n
5b446f7cf7 Show more relevant titles (current category, date, etc.) in feed titles. fixes #1790
git-svn-id: http://svn.automattic.com/wordpress/trunk@5132 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 01:29:09 +00:00
ryan
5248f2a89b Set EP_ALL to 4095. Props jhodgdon. fixes #3963
git-svn-id: http://svn.automattic.com/wordpress/trunk@5131 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 00:19:42 +00:00
ryan
d92c0fa794 Rewrit endpoint fixes from westi. see #3964
git-svn-id: http://svn.automattic.com/wordpress/trunk@5130 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-29 00:17:40 +00:00
ryan
9ca2d36ada Avoid non-object error when wp_die()ing before is instantiated. Props technosailor. fixes #4042
git-svn-id: http://svn.automattic.com/wordpress/trunk@5129 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-28 18:10:03 +00:00
ryan
0013fcda22 Requesting wp-comments-post.php with GET should return 405. Props Mike Little. fixes #3797
git-svn-id: http://svn.automattic.com/wordpress/trunk@5128 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-28 17:34:42 +00:00
ryan
9ed04eae80 Don't output empty list. Props pishmishy. fixes #3779
git-svn-id: http://svn.automattic.com/wordpress/trunk@5127 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-28 17:31:28 +00:00
ryan
fdac6628a7 Add missing lvalue. Props markjaquith and joetan. fixes #3928
git-svn-id: http://svn.automattic.com/wordpress/trunk@5126 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-28 16:17:23 +00:00
ryan
5160c44c9d Add rich editing checkbox to user-edit so that the setting isn't stomped. Props kipit. fixes #4036
git-svn-id: http://svn.automattic.com/wordpress/trunk@5125 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-28 16:10:48 +00:00
ryan
68ef70bf19 Change bookmark to link. Props foolswisdom. fixes #3143
git-svn-id: http://svn.automattic.com/wordpress/trunk@5124 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-27 23:54:48 +00:00
ryan
2190b8ea41 Fix encoding of cats added over AJAX. Props mdawaffe. fixes #3676
git-svn-id: http://svn.automattic.com/wordpress/trunk@5123 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-27 23:51:26 +00:00
ryan
eca7d3c329 Fix list JS when marking comment as spam. Props mdawaffe. fixes #4038
git-svn-id: http://svn.automattic.com/wordpress/trunk@5122 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-27 23:49:15 +00:00
ryan
4de9ca69c2 More clean_url and int casts for trunk.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5119 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-27 23:45:41 +00:00
ryan
f24f716775 Dynamically refill comment list when a comment is deleted. Props mdawaffe. fixes #4038
git-svn-id: http://svn.automattic.com/wordpress/trunk@5118 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-27 21:20:16 +00:00
ryan
3d9418194f Serve robots.txt as text/plain. Props JeremyVisser. fixes #4037
git-svn-id: http://svn.automattic.com/wordpress/trunk@5117 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-27 16:44:36 +00:00
ryan
5520239138 Add trackback_url filter. Props jhodgdon. fixes #4032
git-svn-id: http://svn.automattic.com/wordpress/trunk@5116 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-26 23:40:49 +00:00
ryan
be3e9aa826 Whitespace cleanup. Props donncha. fixes #4034
git-svn-id: http://svn.automattic.com/wordpress/trunk@5115 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-26 23:39:28 +00:00
ryan
4400fe6e32 Fallback to loading english for tinyMCE if requested locale is not there. see #3882
git-svn-id: http://svn.automattic.com/wordpress/trunk@5114 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-26 22:05:36 +00:00
matt
3eb1182967 If we don't have IDs at this point, bail out. There are no tag defaults. Should fix #4035 though I can't recreate their particular error.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5113 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-26 18:05:28 +00:00
matt
2f391a1ad4 Don't show tags on the category page.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5112 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-26 17:25:15 +00:00
matt
cbe226d621 Basic theme support for tags.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5111 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-26 08:08:31 +00:00
matt
613dbfcffa A backend interface for tagging.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5110 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-26 07:28:29 +00:00
ryan
ee323a457b Revert [5102]
git-svn-id: http://svn.automattic.com/wordpress/trunk@5109 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-26 06:13:19 +00:00
ryan
ee5f8a4944 Update to latest tinyMCE compressor. Simplify MCE language loading. see #3882
git-svn-id: http://svn.automattic.com/wordpress/trunk@5108 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-26 03:44:35 +00:00
ryan
b154fd93b1 Add xmlrpc_text_filters filter. Props rob1n. fixes #1429
git-svn-id: http://svn.automattic.com/wordpress/trunk@5107 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-25 23:50:22 +00:00
ryan
7f9aa3c350 Fix day display in title. Props phKU. fixes #3801
git-svn-id: http://svn.automattic.com/wordpress/trunk@5106 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-25 23:47:48 +00:00
ryan
f54a84be7d Remove extraneous echo. Props buzink. fixes #4020
git-svn-id: http://svn.automattic.com/wordpress/trunk@5105 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-25 23:40:36 +00:00
ryan
37c1e764de Return instead of exit in template-loader. Props Otto42 and Nazgul. fixes #3790
git-svn-id: http://svn.automattic.com/wordpress/trunk@5104 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-25 23:39:14 +00:00
ryan
aeaa5b2ec8 Don't wrap submenu tabs. Props Viper007Bond. fixes #3675
git-svn-id: http://svn.automattic.com/wordpress/trunk@5103 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-25 23:35:23 +00:00
ryan
3f82bf5819 Correct reversed logic in maybe_serialize. Props takayukister. fixes #4029
git-svn-id: http://svn.automattic.com/wordpress/trunk@5102 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-25 23:23:52 +00:00
ryan
9a6630ed11 Deprecate number argument to comments_number. No longer used. fixes #2687
git-svn-id: http://svn.automattic.com/wordpress/trunk@5101 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-25 23:18:19 +00:00
ryan
84cda2c6bb XMLRPC fixes from Joseph Scott. 404 for invalid post ids. Return empty array if no pages are present.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5098 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-25 03:53:33 +00:00
ryan
bb7d61596d Fix relative link mangling in clean_url. fixes #4017 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5095 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-23 23:31:44 +00:00
ryan
81bf28dd0c Add missing the_title filter. Props jhodgdon. fixes #4019
git-svn-id: http://svn.automattic.com/wordpress/trunk@5094 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-23 23:06:45 +00:00
ryan
eed1eedc5f Allow siteurl and home to be defined as constants in wp-config, bypassing the DB. Props filosofo and charleshooper. fixes #4003
git-svn-id: http://svn.automattic.com/wordpress/trunk@5093 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-23 17:45:40 +00:00
ryan
e9e3e0787d Castaways on Gilligan's Isle
git-svn-id: http://svn.automattic.com/wordpress/trunk@5090 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-23 02:16:16 +00:00
matt
3d21925922 Ryan slays the dragon. (Some of these return WP_Error objects.)
git-svn-id: http://svn.automattic.com/wordpress/trunk@5089 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-23 02:05:29 +00:00
ryan
4cfeed615c Don't prepend protocol to relative links. fixes #4017 #4001 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5088 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-23 01:45:24 +00:00
matt
7602d17899 (int)er the dragon.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5087 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-23 00:59:21 +00:00
ryan
46fa88baf1 Cast to int
git-svn-id: http://svn.automattic.com/wordpress/trunk@5086 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-22 23:03:07 +00:00
ryan
5b22739cac More int casts
git-svn-id: http://svn.automattic.com/wordpress/trunk@5082 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-22 20:52:29 +00:00
ryan
43e6d1b011 Add _c() for disambiguatin translateable strings. Props nbachiyski. fixes #3687
git-svn-id: http://svn.automattic.com/wordpress/trunk@5081 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-22 03:34:23 +00:00
ryan
9f9d9a8d9e Cast to int. Props xknown. fixes #4012 for trunk.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5078 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-22 01:04:19 +00:00
ryan
b5a124634e Check for publish caps when editing via xmlrpc.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5074 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-21 22:15:20 +00:00
ryan
1f09b04793 clean_url only REQUEST_URI to avoid breaking the edit link. see #4001
git-svn-id: http://svn.automattic.com/wordpress/trunk@5072 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-21 06:23:22 +00:00
ryan
408b5ce591 Don't translate .thumbnail extension. fixes #2942
git-svn-id: http://svn.automattic.com/wordpress/trunk@5071 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-21 06:07:17 +00:00
ryan
809a88a918 Use clean_url instead of inline preg. Props rob1n. fixes #3983 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5068 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-21 03:58:31 +00:00
ryan
0748c257f8 Don't add http:// to relative links. Props donncha. fixes #4001
git-svn-id: http://svn.automattic.com/wordpress/trunk@5065 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-21 00:29:40 +00:00
ryan
25e7b34d7d login accessibility patch from Viper007Bond. fixes #3620
git-svn-id: http://svn.automattic.com/wordpress/trunk@5064 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-20 20:39:39 +00:00
ryan
d8e55fcfdc Fix typo. Props rob1n. fixes #4000
git-svn-id: http://svn.automattic.com/wordpress/trunk@5063 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-20 03:18:44 +00:00
ryan
19f2495fea Add RTL support to kubrick. Props Sewar. fixes #3953
git-svn-id: http://svn.automattic.com/wordpress/trunk@5062 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-19 19:08:15 +00:00
ryan
2e2832dc85 Add wp_mail_from filter. Props rob1n. fixes #2053
git-svn-id: http://svn.automattic.com/wordpress/trunk@5061 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-18 23:16:14 +00:00
ryan
1e60e0df9a escape pagenow. Props xknown. fixes #3988 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5059 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-18 23:04:22 +00:00
markjaquith
611b037efa use clean_url() instead of attribute_escape() when dealing with src/href to protect against XSS. props xknown. fixes #3986 for trunk.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5056 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-17 08:46:59 +00:00
ryan
7136d65028 Improve error propagation from newMediaObject failure in xmlrpc.php. Props Daniel Jalkut (Red Sweater Software). fixes #3981 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/trunk@5054 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-16 22:12:15 +00:00
ryan
4432eb12e7 Don't cast to string if empty. Props donncha. fixes #3979
git-svn-id: http://svn.automattic.com/wordpress/trunk@5051 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-16 22:00:43 +00:00
markjaquith
8d0e670015 have wp_list_pages() default to menu_order sorting and only use post_title sorting as a secondary sort. props johnbillion. fixes #3924 for trunk.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5049 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-16 08:19:10 +00:00
markjaquith
e43516e5f6 Removing superfluous <br /> from Options-General. Props johnbillion. fixes #3929 for trunk.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5048 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-16 08:10:02 +00:00
markjaquith
28c0f0d0ee Sanitize output of previous_posts() and next_posts(). Props Alex Concha for the report.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5045 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-16 08:04:24 +00:00
ryan
12be68075e More attribute_escape().
git-svn-id: http://svn.automattic.com/wordpress/trunk@5044 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-16 01:20:53 +00:00
markjaquith
95df22248d nonce-protect comments by users with unfiltered_html cap to prevent xsrf/xss. fixes #3973 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5039 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-14 23:10:57 +00:00
ryan
8772cbfa13 Blogger importer updates. fixes #3971
git-svn-id: http://svn.automattic.com/wordpress/trunk@5038 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-14 19:20:19 +00:00
markjaquith
877fe629b3 More int casting, just to be safe.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5037 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-14 07:40:56 +00:00
ryan
16d5e24771 Fix order by in wp_get_archives(). Props mattbta. fixes #3961
git-svn-id: http://svn.automattic.com/wordpress/trunk@5036 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-14 02:21:39 +00:00
ryan
a9a554fc12 Drop empty b2 importer file. fixes #3855
git-svn-id: http://svn.automattic.com/wordpress/trunk@5034 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-14 01:49:54 +00:00
ryan
5a64ea52c3 Rephrase category delete AYS prompt. Props rob1n. fixes #3464
git-svn-id: http://svn.automattic.com/wordpress/trunk@5033 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-13 23:54:45 +00:00
ryan
7aa7d0668f Move smilies init to function and trigger from init. Props rob1n. fixes #1721
git-svn-id: http://svn.automattic.com/wordpress/trunk@5032 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-12 21:31:24 +00:00
ryan
4bfbba990b Quote values heading to DB. Cast some ints.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-12 16:09:44 +00:00
markjaquith
df9b4188da [5006] didn't take. props Nazgul for the spot. fixes #3866
git-svn-id: http://svn.automattic.com/wordpress/trunk@5028 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-12 08:59:15 +00:00
matt
a8327cbd0d Add filters to theme_mods
git-svn-id: http://svn.automattic.com/wordpress/trunk@5026 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-12 00:07:54 +00:00
matt
6f018cf7c6 Show the post title.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5025 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-11 22:46:25 +00:00
ryan
385c4e18ff vars.php cleanups and speedups from rob1n. fixes #3956
git-svn-id: http://svn.automattic.com/wordpress/trunk@5024 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-11 01:19:16 +00:00
ryan
239b5ba356 Prophylactic casting.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5022 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 20:34:01 +00:00
markjaquith
98e4d11c00 Improvements to untrailingslashit() and trailingslashit(). props Jamie Talbot. fixes #3899
git-svn-id: http://svn.automattic.com/wordpress/trunk@5021 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 08:32:57 +00:00
markjaquith
de23b425c3 new function: untrailingslashit(). fixes #3899
git-svn-id: http://svn.automattic.com/wordpress/trunk@5020 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 06:25:33 +00:00
markjaquith
05486cce3d user_trailingslashit filter for users who sometimes want trailing slashes only on certain URL types. fixes #3899
git-svn-id: http://svn.automattic.com/wordpress/trunk@5019 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 06:18:43 +00:00
markjaquith
6cefc9b4a4 Cleaner and more complete fix for [5017]. fixes #3949
git-svn-id: http://svn.automattic.com/wordpress/trunk@5018 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 06:09:52 +00:00
markjaquith
aa45fd5ee3 Respect user trailing slash preference for multipage posts and eliminate redundant /1/. fixes #3949
git-svn-id: http://svn.automattic.com/wordpress/trunk@5017 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 05:54:12 +00:00
ryan
d115b53371 Make sure imageantialias exists. Props rob1n and jeppe. fixes #3939
git-svn-id: http://svn.automattic.com/wordpress/trunk@5016 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 05:26:28 +00:00
ryan
0f5ca2efcb Add missing filters. Props jhodgdon. fixes #3599
git-svn-id: http://svn.automattic.com/wordpress/trunk@5015 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 05:25:33 +00:00
ryan
198bf65525 apply filter before stripping tags. Props jhodgdon. fixes #3755
git-svn-id: http://svn.automattic.com/wordpress/trunk@5014 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 05:13:40 +00:00
ryan
774bdc405b Title filtering from jhodgdon. fixes #3926
git-svn-id: http://svn.automattic.com/wordpress/trunk@5013 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 03:56:35 +00:00
ryan
3802dee776 Admin RTL CSS fixes from Sewar. fixes #3947
git-svn-id: http://svn.automattic.com/wordpress/trunk@5012 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 01:34:06 +00:00
ryan
328afedc07 Link filters from jhodgdon. fixes #3595
git-svn-id: http://svn.automattic.com/wordpress/trunk@5011 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-10 01:13:49 +00:00
ryan
2051c80cac Change xmlrpc upload logic. Props Joseph Scott.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5008 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-09 20:14:52 +00:00
markjaquith
2a11c99459 Sanitize browser-bound add_query_arg() outputs. fixes #3937
git-svn-id: http://svn.automattic.com/wordpress/trunk@5007 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-09 04:36:24 +00:00
ryan
0cd477441e Return theme uri in theme data. Props nazgul. fixes #3866
git-svn-id: http://svn.automattic.com/wordpress/trunk@5006 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-09 04:15:17 +00:00
ryan
b4d8dba0f6 Unchain
git-svn-id: http://svn.automattic.com/wordpress/trunk@5005 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-09 04:13:42 +00:00
ryan
f4ce503381 get_archives query filters from westi. fixes #3866
git-svn-id: http://svn.automattic.com/wordpress/trunk@5004 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-09 04:09:24 +00:00
ryan
f774780aff Use get_query_var() in wp_title() and single_month_title().
git-svn-id: http://svn.automattic.com/wordpress/trunk@5003 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-09 04:06:23 +00:00
ryan
c295c0bffe Move some query var sanitization up to parse_query() and make sure the sanitized values are avilable via get_query_var().
git-svn-id: http://svn.automattic.com/wordpress/trunk@5002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-09 04:05:28 +00:00
matt
ea34fbf182 People are confusing the part they should edit with the part they shouldn't, so let's make the example values a little more self-evident.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5001 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-08 18:31:46 +00:00
ryan
0e6e4baefc Add bracket. Props flinkflonk. fixes #3921
git-svn-id: http://svn.automattic.com/wordpress/trunk@5000 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-08 01:21:29 +00:00
ryan
ad1ee85dc5 Remove old notice. Props johnbillion. fixes #2576
git-svn-id: http://svn.automattic.com/wordpress/trunk@4999 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 17:07:33 +00:00
ryan
6a27f1af8e Fix parse_w3cdtf. Props mortenf. fixes #3896
git-svn-id: http://svn.automattic.com/wordpress/trunk@4997 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 17:04:03 +00:00
markjaquith
2008fdcbd7 Another typo in [4990]. fixes #3920
git-svn-id: http://svn.automattic.com/wordpress/trunk@4996 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 06:17:15 +00:00
markjaquith
2734ab8ce9 Typo in [4990] caught by johnbillion. fixes #3920
git-svn-id: http://svn.automattic.com/wordpress/trunk@4995 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 06:10:33 +00:00
markjaquith
96ee1e07f8 "Delete this draft" when post is not published. fixes #3497
git-svn-id: http://svn.automattic.com/wordpress/trunk@4994 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 06:07:56 +00:00
markjaquith
cd35f6ecf9 remove old table* variables from wp-settings.php. Props Nazgul. fixes #3860
git-svn-id: http://svn.automattic.com/wordpress/trunk@4993 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 05:46:59 +00:00
markjaquith
3320dd1380 Use strpos instead of strstr where ever possible, for speed. Props rob1n. fixes #3920
git-svn-id: http://svn.automattic.com/wordpress/trunk@4990 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 05:29:15 +00:00
markjaquith
00f7071af4 add_users_page() to address changing top-level menu item. fixes #3706
git-svn-id: http://svn.automattic.com/wordpress/trunk@4987 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 05:03:32 +00:00
ryan
8338d6c203 attribute_escape content before stuffing it in value attribute. Props Dan Coulter. fixes #3919
git-svn-id: http://svn.automattic.com/wordpress/trunk@4986 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 04:29:45 +00:00
ryan
b9c75476a4 Update to tinyMCE spellchecker 1.0.3.1
git-svn-id: http://svn.automattic.com/wordpress/trunk@4985 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 04:26:26 +00:00
ryan
1f35a9de8f Make sure openssl is available. Props Robert Deaton and rob1n. fixes #3765
git-svn-id: http://svn.automattic.com/wordpress/trunk@4984 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 04:16:06 +00:00
ryan
8d7839b14c Standardize on 'url' for fetching the blog's url. Props rob1n. fixes #3623
git-svn-id: http://svn.automattic.com/wordpress/trunk@4983 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 03:05:41 +00:00
ryan
ab79f95e5f Use get_bloginfo to get the blog name. Props jhodgdon. fixes #3903
git-svn-id: http://svn.automattic.com/wordpress/trunk@4982 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 02:26:12 +00:00
ryan
66e342ca45 Change wp-login submit names and ids. Props anhill. fixes #3917
git-svn-id: http://svn.automattic.com/wordpress/trunk@4981 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 02:00:57 +00:00
ryan
6154ec1c7e Fix spawning with SSL. Props dragonhard and rob1n. fixes #3765
git-svn-id: http://svn.automattic.com/wordpress/trunk@4980 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 01:47:57 +00:00
ryan
bb8331b95d Use rawurldecode. fixes #3727
git-svn-id: http://svn.automattic.com/wordpress/trunk@4979 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 01:44:53 +00:00
ryan
a821445497 s/bookmark/link/. Props JeremyVisser. fixes #3718
git-svn-id: http://svn.automattic.com/wordpress/trunk@4978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 01:35:39 +00:00
ryan
8035698e78 s/bookmark/link/. Props MichaelH. fixes #3648
git-svn-id: http://svn.automattic.com/wordpress/trunk@4977 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 01:30:53 +00:00
ryan
be2a43cf7c wp_title shouldn't use category_name if cat is also specified. Props majelbstoat. fixes #3902
git-svn-id: http://svn.automattic.com/wordpress/trunk@4976 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 01:29:07 +00:00
ryan
fdfe3a7e34 Remove excess whitespace. Props oneno and Nazgul. fixes #3778
git-svn-id: http://svn.automattic.com/wordpress/trunk@4975 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 01:26:29 +00:00
ryan
bec5b4f188 gettext date formats. Props rob1n and yskin. fixes #3863
git-svn-id: http://svn.automattic.com/wordpress/trunk@4974 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 01:25:17 +00:00
ryan
8160b01da1 Fix wp_die() includes when bailing out in the blog header. Props tacker. fixes #3883
git-svn-id: http://svn.automattic.com/wordpress/trunk@4973 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-07 00:17:58 +00:00
ryan
83112722cd Use PLUGINDIR. Props z720 and Nazgul. fixes #3909
git-svn-id: http://svn.automattic.com/wordpress/trunk@4972 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-06 17:47:27 +00:00
ryan
34928e6ef0 JS localization from mdawaffe. fixes #3913
git-svn-id: http://svn.automattic.com/wordpress/trunk@4970 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-06 17:35:01 +00:00
ryan
e3782a3e2b Ignore redirect_to if already logged in.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4969 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-06 17:03:50 +00:00
ryan
682fcc5d4a JS localization from mdawaffe. fixes #3911
git-svn-id: http://svn.automattic.com/wordpress/trunk@4968 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-06 00:39:46 +00:00
matt
4df232e71e Broken link.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4967 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-05 19:27:40 +00:00
markjaquith
4f1a89d21c Pass draft titles through the_title filter. Props jhodgdon. fixes #3894
git-svn-id: http://svn.automattic.com/wordpress/trunk@4966 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-04 18:48:19 +00:00
markjaquith
1fd8b676c4 Cast query vars to strings. fixes #3891
git-svn-id: http://svn.automattic.com/wordpress/trunk@4965 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-04 18:08:33 +00:00
ryan
1e3ca9cde1 Pass along all parameters to get_bookmarks(). Props Otto42. fixes #3898
git-svn-id: http://svn.automattic.com/wordpress/trunk@4964 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-04 01:59:57 +00:00
ryan
782f0ffa00 Update to jQuery 1.1.2. #3824
git-svn-id: http://svn.automattic.com/wordpress/trunk@4963 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-03 17:55:36 +00:00
ryan
41b3441a38 jQuery was moved to jquery subdir. Remove redundant libs.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4962 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-03 17:01:26 +00:00
ryan
7f1945b310 xmlrpc updates from Joseph Scott.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4961 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-03 16:56:46 +00:00
ryan
b7f6a96abb Add jquery.form.js. #3824
git-svn-id: http://svn.automattic.com/wordpress/trunk@4959 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-03-02 23:26:35 +00:00
ryan
0f8983c364 Fix up page_for_posts feed. Rework some query bits. Props mdawaffe. fixes #3885
git-svn-id: http://svn.automattic.com/wordpress/trunk@4956 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-28 05:22:29 +00:00
ryan
2ecae0f50d add and apply filter optimizations from FraT. fixes #3875
git-svn-id: http://svn.automattic.com/wordpress/trunk@4955 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-28 01:09:20 +00:00
markjaquith
a1646d7122 End sentence with a period for consistency. Props Viper007Bond. fixes #3881
git-svn-id: http://svn.automattic.com/wordpress/trunk@4954 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-27 23:17:13 +00:00
markjaquith
d0f79bb3f2 trailing tabs and whitespace cleanup.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4953 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-27 15:24:54 +00:00
markjaquith
c7ce6107ad attribute_escape() in nonce AYS
git-svn-id: http://svn.automattic.com/wordpress/trunk@4951 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-27 07:15:47 +00:00
markjaquith
1104eb88ca Format <li> elements properly within wp-admin comment view. Props jhodgdon. fixes #3871
git-svn-id: http://svn.automattic.com/wordpress/trunk@4950 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-26 05:22:02 +00:00
ryan
dffc694131 Forgot to bump tinymce config script version when we added gecko_spellcheck. fixes #3856
git-svn-id: http://svn.automattic.com/wordpress/trunk@4948 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-26 04:53:03 +00:00
ryan
f199d3658a Remove debug.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-26 03:42:25 +00:00
ryan
7effafd4ee Trying out phpmailer for wp_mail(). fixes #3862
git-svn-id: http://svn.automattic.com/wordpress/trunk@4946 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 20:23:25 +00:00
ryan
2826681a18 Upgrade class-pop3. Props Nazgul. fixes #3864
git-svn-id: http://svn.automattic.com/wordpress/trunk@4945 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 18:19:21 +00:00
markjaquith
d2ccc08c17 i18n-inate Next Page/Previous Page for User Search. Props teknoseyir. fixes #3872
git-svn-id: http://svn.automattic.com/wordpress/trunk@4944 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 16:43:40 +00:00
markjaquith
18475d8787 Consistent mouseover capitalization from Nazgul. fixes #3848
git-svn-id: http://svn.automattic.com/wordpress/trunk@4943 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 14:04:49 +00:00
markjaquith
78730bdb68 Change link to deprecated wp-register.php. Props Nazgul. fixes #3802
git-svn-id: http://svn.automattic.com/wordpress/trunk@4942 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 13:43:21 +00:00
markjaquith
5a2ec38abb Sort categories in dropdown by name rather than ID, when choosing a category parent. Props donncha. fixes #3823
git-svn-id: http://svn.automattic.com/wordpress/trunk@4941 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 13:41:38 +00:00
markjaquith
5fde2708cf Use correct capabilities checks when determining whether to show private posts. Props molecularbear. fixes #3827
git-svn-id: http://svn.automattic.com/wordpress/trunk@4940 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 13:39:34 +00:00
markjaquith
92afb1e407 strip tags from comment author before determining emptiness status. props Nazgul. fixes #3839
git-svn-id: http://svn.automattic.com/wordpress/trunk@4939 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 13:35:16 +00:00
markjaquith
db017470fc Handle multi-line subjects in class-pop3.php. Props nreid. fixes #3836
git-svn-id: http://svn.automattic.com/wordpress/trunk@4938 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 13:33:03 +00:00
markjaquith
6fc0e8185f The O.C. Disorder;; Props Nazgul. fixes 3853
git-svn-id: http://svn.automattic.com/wordpress/trunk@4937 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 13:26:18 +00:00
markjaquith
13968c70f6 Fix AJAX delete/spam on individual post comments view. fixes #3639
git-svn-id: http://svn.automattic.com/wordpress/trunk@4935 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-25 11:22:49 +00:00
ryan
4bec99a338 Comment feeds everywhere. Props mdawaffe and rob1n. fixes #2485
git-svn-id: http://svn.automattic.com/wordpress/trunk@4934 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-24 07:33:29 +00:00
ryan
9b8e0722d4 Typo fixes. Props Znuff. fixes #3859
git-svn-id: http://svn.automattic.com/wordpress/trunk@4933 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-24 06:30:51 +00:00
ryan
b8f48aca58 Handle geck spellcheck in tinymce. Props dancoulter. fixes #3856
git-svn-id: http://svn.automattic.com/wordpress/trunk@4932 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 23:50:23 +00:00
ryan
2696432efc Proper atom enclosures. Props rob1n. fixes #1464
git-svn-id: http://svn.automattic.com/wordpress/trunk@4930 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 23:47:57 +00:00
ryan
6dd7765ae1 Add get_post_comments_feed_link() and have popup comments templates use it.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4929 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 08:31:07 +00:00
ryan
891662aaed Atom comments feed. First pass. Props kurtmckee and rob1n. fixes #1785
git-svn-id: http://svn.automattic.com/wordpress/trunk@4928 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 08:18:30 +00:00
ryan
dbedd143e4 Relocate feed templates to wp-includes. fixes #3846
git-svn-id: http://svn.automattic.com/wordpress/trunk@4927 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 02:50:05 +00:00
ryan
ec1d1f182e Include classes.php earlier so we can make use of WP_Error.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4926 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 02:24:09 +00:00
ryan
e9fab607a0 Change more from anchor to span for proper validation. Props coolmann and rob1n. fixes #3530
git-svn-id: http://svn.automattic.com/wordpress/trunk@4925 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 01:15:51 +00:00
ryan
3255fbb593 Fix typo. Props rob1n. fixes #1585
git-svn-id: http://svn.automattic.com/wordpress/trunk@4924 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 01:05:59 +00:00
ryan
0b5ea4a956 Don't emit empty class. Props rob1n. fixes #3787
git-svn-id: http://svn.automattic.com/wordpress/trunk@4922 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 00:55:52 +00:00
ryan
beb4deb90c Provide summary for calendar. Props littleram and rob1n. fixes #1585
git-svn-id: http://svn.automattic.com/wordpress/trunk@4921 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 00:53:34 +00:00
ryan
d672c73072 Use === to compare option values. Props roscohead and Viper007Bond. fixes #3394
git-svn-id: http://svn.automattic.com/wordpress/trunk@4920 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 00:49:37 +00:00
ryan
d379fb1b20 cache js headers for tinymce config. Props juergen and rob1n. fixes #3817
git-svn-id: http://svn.automattic.com/wordpress/trunk@4919 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 00:45:21 +00:00
ryan
e42106db80 gettext byteorder fix for 64 bit archs. fixes #3780
git-svn-id: http://svn.automattic.com/wordpress/trunk@4917 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-23 00:31:09 +00:00
ryan
faa1e3af28 APP updates from dougal and eliast. fixes #3741
git-svn-id: http://svn.automattic.com/wordpress/trunk@4916 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-22 19:44:16 +00:00
ryan
c8997ffad9 Reverse logic.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4915 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-22 15:30:47 +00:00
ryan
4f830dcbeb Show pages in ascending order in Edit->Pages. Props Xander. fixes #3760
git-svn-id: http://svn.automattic.com/wordpress/trunk@4913 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-22 01:59:33 +00:00
ryan
76a104a2e9 Handle empty search query. Props charleshooper. fixes #3722 #3759
git-svn-id: http://svn.automattic.com/wordpress/trunk@4911 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-22 01:54:28 +00:00
ryan
a316ece6ab Fix wp_delete_file action. Props filosofo. fixes #3655
git-svn-id: http://svn.automattic.com/wordpress/trunk@4910 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-22 01:52:00 +00:00
ryan
fea2a6e503 xmlrpc updates from Joseph Scott.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4908 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-22 01:42:21 +00:00
ryan
97bcc74082 Handle array of mt_tb_ping_urls. Props bafonso. fixes #3721
git-svn-id: http://svn.automattic.com/wordpress/trunk@4905 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-22 01:34:06 +00:00
ryan
f61f892876 jQuery 1.1.1 and interface 1.2. #3824
git-svn-id: http://svn.automattic.com/wordpress/trunk@4904 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-21 02:39:07 +00:00
markjaquith
7438cb83d7 properly sort categories by name for the_category(). Props rob1n. fixes #1302
git-svn-id: http://svn.automattic.com/wordpress/trunk@4903 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-21 02:13:47 +00:00
markjaquith
3bac160f13 refrain from notifying the administrator of administrator password changes (it is redundant). Props rob1n for the patch refresh. fixes #1096
git-svn-id: http://svn.automattic.com/wordpress/trunk@4902 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-21 02:08:28 +00:00
ryan
683e079c00 Wrapped allowed html in code tags. Props rob1n. fixes #998
git-svn-id: http://svn.automattic.com/wordpress/trunk@4901 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-21 01:55:16 +00:00
ryan
8ee3440b04 Don't br image maps. Props rob1n. fixes #1292
git-svn-id: http://svn.automattic.com/wordpress/trunk@4900 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-21 01:50:27 +00:00
ryan
4fc6d6cc6b Update blogger importer.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4896 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-20 07:46:40 +00:00
ryan
ce1a9edd1a Add jquery to script loader.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4895 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-20 07:46:13 +00:00
ryan
585a9ff822 Don't insert p inside of div. fixes #3669
git-svn-id: http://svn.automattic.com/wordpress/trunk@4894 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-20 05:41:39 +00:00
ryan
2cf3e9ea2f decode req uri when processing pathinfo permalinks. Props Kirin_Lin. fixes #3727
git-svn-id: http://svn.automattic.com/wordpress/trunk@4893 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-20 01:27:37 +00:00
ryan
a4d57ead4c Add WP_Error handling to wp_die(). Props mdawaffe. fixes #3791
git-svn-id: http://svn.automattic.com/wordpress/trunk@4892 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-20 01:24:31 +00:00
markjaquith
4280a27b44 Detect whether a user is logged in for popup comments templates in default and classic themes. props skippy, Nazgul, rob1n. fixes #1065
git-svn-id: http://svn.automattic.com/wordpress/trunk@4890 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-16 04:36:51 +00:00
markjaquith
5ba17b01b8 Fewer clicks and better user experience for upgrades. fixes #2447
git-svn-id: http://svn.automattic.com/wordpress/trunk@4887 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-15 08:16:43 +00:00
markjaquith
dfeeedc8da Consistent use or disuse of trailing slashes in URLs according to user preference. props MathiasBynens. fixes #1485
git-svn-id: http://svn.automattic.com/wordpress/trunk@4886 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-15 07:07:12 +00:00
markjaquith
f639cbcd24 Consistently use "Spam it:" and "Delete it:" in e-mails. fixes #3304
git-svn-id: http://svn.automattic.com/wordpress/trunk@4885 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-15 05:51:59 +00:00
markjaquith
6e9a8afe6e Make sure attachments uploaded on unsaved drafts get reunited with their parent post. Props mdawaffe. fixes #3757
git-svn-id: http://svn.automattic.com/wordpress/trunk@4884 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-15 01:03:06 +00:00
markjaquith
629e270a8e Prevent double timezone offset when saving titleless AJAX-created drafts. fixes #3701
git-svn-id: http://svn.automattic.com/wordpress/trunk@4882 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-14 22:44:57 +00:00
markjaquith
0462e6f4ca Prevent plugins from taking down the install when plugin edits results in a fatal error. fixes #3254
git-svn-id: http://svn.automattic.com/wordpress/trunk@4881 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-14 06:15:05 +00:00
markjaquith
7d0271e457 get_settings() is deprecated, use get_option(). Props Donncha. fixes #3784
git-svn-id: http://svn.automattic.com/wordpress/trunk@4880 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-14 04:54:14 +00:00
ryan
dff5f19b6b specialchars wp_explain_nonce() ouput.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4875 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-13 18:19:24 +00:00
ryan
715ea738eb editPage and newPage escaping fixes from Joseph.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4874 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-12 19:20:31 +00:00
matt
92cf3691ad Add similar hook as XML-RPC for Atom
git-svn-id: http://svn.automattic.com/wordpress/trunk@4873 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-11 04:32:31 +00:00
ryan
24dfaea9cb Send content type header. Props nbachiyski. fixes #3754
git-svn-id: http://svn.automattic.com/wordpress/trunk@4871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-06 20:12:53 +00:00
ryan
1c731faf20 XMLRPC changes from Joseph.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4870 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-06 01:44:23 +00:00
ryan
09d45db3f7 Make DB_COLLATE blank by default so that MySQL will choose the default collation for the charset. #3517
git-svn-id: http://svn.automattic.com/wordpress/trunk@4867 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-05 21:37:47 +00:00
ryan
1d054e4894 Disambiguate queries. Props mhyk25. fixes #3747
git-svn-id: http://svn.automattic.com/wordpress/trunk@4866 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-05 21:29:39 +00:00
ryan
cab399a6ae Typo fix from charleshooper. fixes #3743
git-svn-id: http://svn.automattic.com/wordpress/trunk@4865 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-03 00:56:23 +00:00
ryan
86f90f6c3d Check page ID only if is_page. fixes #3049
git-svn-id: http://svn.automattic.com/wordpress/trunk@4863 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-02 16:38:26 +00:00
ryan
16c4e7b986 More XMLRPC updates from Joseph Scott.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4862 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-02 07:43:59 +00:00
matt
cd7c0164e9 Filter for tweaking scripts srcs that go through the script loader.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4861 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-02 06:12:18 +00:00
ryan
ce0f8b4a66 First cut at mysql utf-8 charset suport. Props to sehh, drupal, and textpattern. fixes #3517
git-svn-id: http://svn.automattic.com/wordpress/trunk@4860 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-02 00:04:35 +00:00
ryan
af10b7443f Cache user id instead of full user object in the userlogins cache. Props charleshooper. fixes #3716
git-svn-id: http://svn.automattic.com/wordpress/trunk@4859 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-02 00:00:36 +00:00
markjaquith
36491e0980 make sure nothing going into the object cache is being passed by reference. fixes #3726
git-svn-id: http://svn.automattic.com/wordpress/trunk@4856 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-01 09:16:15 +00:00
markjaquith
12e9cabfb7 Introduce Notoptions and Alloptions caching, so that all options (and previously attempted Notoptions) are read from the cache in one go. Should reduce cache misses to zero or close to it. fixes #3726
git-svn-id: http://svn.automattic.com/wordpress/trunk@4855 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-01 08:53:08 +00:00
ryan
bf37dbf24f Use get_users_of_blog() for wp_getAuthors
git-svn-id: http://svn.automattic.com/wordpress/trunk@4854 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-01 07:28:12 +00:00
ryan
7179a94a0d s/table_prefix/prefix/
git-svn-id: http://svn.automattic.com/wordpress/trunk@4853 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-01 07:26:13 +00:00
ryan
73a225e4e6 Add get_users_of_blog()
git-svn-id: http://svn.automattic.com/wordpress/trunk@4852 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-01 01:19:36 +00:00
ryan
e71e25d354 XMLRPC API updates.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4851 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-02-01 00:34:33 +00:00
markjaquith
7130a2b1c8 run get_categories filter on cached get_categories hits. fixes #3728
git-svn-id: http://svn.automattic.com/wordpress/trunk@4848 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-31 05:57:54 +00:00
markjaquith
690c3604cf get_post() should check post cache before page cache. fixes #3724
git-svn-id: http://svn.automattic.com/wordpress/trunk@4847 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-31 03:43:02 +00:00
ryan
a8b506e705 Set charset for MCE. Props nbachiyski. fixes #3574
git-svn-id: http://svn.automattic.com/wordpress/trunk@4845 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-31 02:07:21 +00:00
ryan
771e8bdb8d Add pre_option_* filter that allows plugins to short-circuit fetches.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4842 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-30 18:34:18 +00:00
markjaquith
b4671adb74 Prevent a missing wp-cron.php from causing an infinite loop. Props jan. fixes #3713
git-svn-id: http://svn.automattic.com/wordpress/trunk@4834 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-30 13:06:56 +00:00
ryan
9bc0cc241e More XML-RPC API enhancements from Joseph Scott.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4833 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-30 03:09:58 +00:00
ryan
1ec4dd0209 Revert accidental commit.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4832 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-30 01:46:05 +00:00
ryan
f8c689b4f0 Remove notoptions caching. Multile rewrite_rules options were being created. See #3692 #2268
git-svn-id: http://svn.automattic.com/wordpress/trunk@4831 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-30 01:43:39 +00:00
markjaquith
a4355820c5 minor CSS consistency fix by whooami. fixes #3532
git-svn-id: http://svn.automattic.com/wordpress/trunk@4830 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-29 19:14:33 +00:00
markjaquith
d8b1ff5d95 XHTML validation fixes and <!--more--> typo correction for Reading Options page. Props JeremyVisser. fixes #3709
git-svn-id: http://svn.automattic.com/wordpress/trunk@4828 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-29 16:44:36 +00:00
ryan
effc238853 Fix typo in read_pages conditional. Props McShelby. fixes #3705
git-svn-id: http://svn.automattic.com/wordpress/trunk@4825 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-28 21:58:01 +00:00
ryan
92fa5d6830 Move to js dir.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4824 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-28 21:14:54 +00:00
markjaquith
c08e55fc61 Make <!--more--> regex non-greedy. Props Curloso and Viper007Bond. fixes #3698
git-svn-id: http://svn.automattic.com/wordpress/trunk@4821 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-27 23:31:42 +00:00
markjaquith
7873820f8c Have add_option() for options whose non-existence has been cached clear that cached non-existence before adding the option. Nice catch by Westi. fixes #3692
git-svn-id: http://svn.automattic.com/wordpress/trunk@4820 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-27 23:06:46 +00:00
markjaquith
bc7b2b7606 Oops, two locations where this filter is called. fixes #3693
git-svn-id: http://svn.automattic.com/wordpress/trunk@4818 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-27 22:57:29 +00:00
markjaquith
fc719cc97b Pass correct var to wp_create_file_in_uploads hook. props spikeyslam. fixes #3693
git-svn-id: http://svn.automattic.com/wordpress/trunk@4817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-27 22:56:32 +00:00
matt
489dd25c9d Bringing in the jquery goodness
git-svn-id: http://svn.automattic.com/wordpress/trunk@4816 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-27 18:45:54 +00:00
matt
dd97383500 Several of these projects seem dead. Linking IRC channel. Hat tip: scoop0901
git-svn-id: http://svn.automattic.com/wordpress/trunk@4815 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-27 18:26:16 +00:00
ryan
d162935209 WP XML-RPC API enhancements.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4814 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-26 20:05:53 +00:00
ryan
15b6168787 Update to prototype 1.5.0 and scriptaculous 1.7.0. Fix some AJAXy bits. Props mdawaffe. fixes #3645 #3676 #3519
git-svn-id: http://svn.automattic.com/wordpress/trunk@4813 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-26 03:41:17 +00:00
markjaquith
246602968a Link to TinyMCE css file with http scheme on all server setups. Props MichaelH and Andy. fixes #3646
git-svn-id: http://svn.automattic.com/wordpress/trunk@4812 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-26 02:57:07 +00:00
markjaquith
f7bf2c25ac Prevent plugins that generate PHP fatal errors from being activated. ticket #3254
git-svn-id: http://svn.automattic.com/wordpress/trunk@4811 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 20:45:20 +00:00
markjaquith
b0d10c7ad5 Template Name: regex fixup by gjorgensen. fixes #3674
git-svn-id: http://svn.automattic.com/wordpress/trunk@4809 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 19:42:30 +00:00
markjaquith
2df3bc064b Do not pass comma-formatted numbers to __ngettext(). Props nbachiyski. fixes #3663
git-svn-id: http://svn.automattic.com/wordpress/trunk@4808 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 19:29:30 +00:00
ryan
720df5dcf9 Cast categoryId to string to be compliant. fixes #3662
git-svn-id: http://svn.automattic.com/wordpress/trunk@4807 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 18:27:47 +00:00
ryan
54cfb25317 Expose page_status in XML-RPC API.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4806 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 18:22:05 +00:00
matt
a53887fc7f This is what I get for commiting remotely, should fix currently known issues with atom 1.0
git-svn-id: http://svn.automattic.com/wordpress/trunk@4805 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 08:48:18 +00:00
matt
4296c78d54 Missed a file and an easy mistake.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4804 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 08:37:26 +00:00
matt
bb65c4f410 Beta Atom 1.0 support
git-svn-id: http://svn.automattic.com/wordpress/trunk@4803 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 08:02:18 +00:00
ryan
06e9886777 Make some date/time formats translateable. Props teknoseyir and nbachiyski. fixes #3661
git-svn-id: http://svn.automattic.com/wordpress/trunk@4802 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 02:08:54 +00:00
ryan
858ba5eaa8 Remove redundant check. Props Mittineague. fixes #3665
git-svn-id: http://svn.automattic.com/wordpress/trunk@4801 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 02:03:55 +00:00
ryan
33d8407781 Don't output ul when title_li is empty. Props m0n5t3r. fixes #3664
git-svn-id: http://svn.automattic.com/wordpress/trunk@4800 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 02:02:21 +00:00
ryan
8f58b134c2 TinyMCE 2.0.9. fixes #3564
git-svn-id: http://svn.automattic.com/wordpress/trunk@4799 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 01:20:47 +00:00
markjaquith
a741e0d350 Cache the non-existence of options to prevent redundant queries. props davidhouse. fixes #2268
git-svn-id: http://svn.automattic.com/wordpress/trunk@4798 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-25 00:12:08 +00:00
ryan
ed4186b15f Fix wp_create_thumbnail filter. Props filosofo. fixes #3654
git-svn-id: http://svn.automattic.com/wordpress/trunk@4796 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-24 07:17:14 +00:00
markjaquith
d5eaea2f32 Typo in [4790] caught by Znuff. fixes #3644
git-svn-id: http://svn.automattic.com/wordpress/trunk@4795 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-24 05:44:24 +00:00
matt
a66758403d Bringing in beta Atom API support :) - props dougal and elias
git-svn-id: http://svn.automattic.com/wordpress/trunk@4794 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-24 01:38:07 +00:00
ryan
9af6317d3a WP XML-RPC API
git-svn-id: http://svn.automattic.com/wordpress/trunk@4793 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-24 01:16:08 +00:00
markjaquith
f09853fd9c Tending the graveyard. Memento mori.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4791 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-23 09:15:17 +00:00
markjaquith
b9490b45c2 Do not attempt to use rel-tag for URL schemes that do not support it. fixes #3265
git-svn-id: http://svn.automattic.com/wordpress/trunk@4790 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-23 08:21:28 +00:00
markjaquith
27e9efe1cd Search Users capitalization and redundant space fix by foolswisdom. fixes #3612
git-svn-id: http://svn.automattic.com/wordpress/trunk@4788 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-23 07:48:30 +00:00
markjaquith
a5dc6a5271 wp-admin colonectomy by foolswisdom. fixes #3630
git-svn-id: http://svn.automattic.com/wordpress/trunk@4787 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-23 07:43:56 +00:00
markjaquith
4021efde28 wp-admin.css cleanup. fixes #3641
git-svn-id: http://svn.automattic.com/wordpress/trunk@4786 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-23 07:14:05 +00:00
ryan
510652f65c Trunk is now for 2.2 development.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4785 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-23 06:30:37 +00:00
matt
0525d982f8 It's that time again.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4782 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-22 21:51:38 +00:00
matt
baf1f6f367 Very minor update to styling of page navigation.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4781 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-22 19:26:20 +00:00
ryan
d6287980ea Don't allow editing pages via post.php. Redirect to page.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@4780 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-22 08:16:58 +00:00
ryan
517790d375 Walker fix ups. fixes #3080
git-svn-id: http://svn.automattic.com/wordpress/trunk@4779 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-22 07:05:48 +00:00
ryan
a7da7fc027 Make sure is_array before extract. Props idle. fixes #3626
git-svn-id: http://svn.automattic.com/wordpress/trunk@4778 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-21 20:03:02 +00:00
ryan
1e019126eb RC2
git-svn-id: http://svn.automattic.com/wordpress/trunk@4776 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-20 06:48:56 +00:00
markjaquith
8c2ab4441b use lang for text/html and xml:lang for all others. Props nickshanks. fixes #3608
git-svn-id: http://svn.automattic.com/wordpress/trunk@4775 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-19 22:10:33 +00:00
ryan
9ec6d7e762 Check style. Props nickshanks. fixes #3610
git-svn-id: http://svn.automattic.com/wordpress/trunk@4774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-19 20:58:56 +00:00
ryan
425d2f70b1 Delete page_uris option before updating it to avoid possibly expensive array comparison. #3614
git-svn-id: http://svn.automattic.com/wordpress/trunk@4773 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-19 20:36:35 +00:00
ryan
15354bef0b Drop linkcategories table for those upgrading from previous alphas and betas.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4772 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-19 20:33:11 +00:00
markjaquith
f15b11bc7f Make sure the server has MySQL 4.0.0 before attempting upgrade or install. fixes #3615
git-svn-id: http://svn.automattic.com/wordpress/trunk@4771 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-19 09:28:02 +00:00
ryan
dde031e8e1 Lose all JS compression. Save it for another day.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4770 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-19 01:10:32 +00:00
ryan
040a959188 Lose quicktags.compressed.js since many people customize quicktags.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4769 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-19 01:05:20 +00:00
ryan
52f1841134 Category AJAX fixes from mdawaffe. fixes #3343
git-svn-id: http://svn.automattic.com/wordpress/trunk@4768 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-19 00:49:01 +00:00
ryan
76f70dc31d Upload manager image viewer fixes from mdawaffe. fixes #3596
git-svn-id: http://svn.automattic.com/wordpress/trunk@4767 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-19 00:19:03 +00:00
ryan
ef81b079de Don't translate admin user. Leave it fixed. Props nbachiyski. fixes #3589
git-svn-id: http://svn.automattic.com/wordpress/trunk@4766 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-18 18:03:32 +00:00
ryan
8089855f83 Update version in readme. fixes #3542
git-svn-id: http://svn.automattic.com/wordpress/trunk@4765 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-18 18:01:47 +00:00
ryan
743f7e7028 If WPLANG is empty leave empty. fixes #3611
git-svn-id: http://svn.automattic.com/wordpress/trunk@4764 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-18 17:40:05 +00:00
ryan
acc560279e Always load gettext.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4763 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-18 04:57:39 +00:00
ryan
0bb0a60950 Remove feed:
git-svn-id: http://svn.automattic.com/wordpress/trunk@4762 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-18 03:40:17 +00:00
ryan
8b5a6e47de RC1
git-svn-id: http://svn.automattic.com/wordpress/trunk@4761 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-18 03:35:01 +00:00
ryan
8c6162e883 Autosave fixes from mdawaffe. fixes #3601
git-svn-id: http://svn.automattic.com/wordpress/trunk@4760 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-18 03:32:54 +00:00
ryan
0409c8671d Thumbnail creation fix from mdawaffe. fixes #3588
git-svn-id: http://svn.automattic.com/wordpress/trunk@4759 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-17 06:23:18 +00:00
ryan
209e967b71 Markup fix from quinnhigurashi. fixes #3602
git-svn-id: http://svn.automattic.com/wordpress/trunk@4758 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-17 03:26:11 +00:00
ryan
e79ff075c1 Add language_attributes() to theme headers.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4757 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-17 00:01:21 +00:00
ryan
f717f85c0a Don't gettext before l10n bits are loaded. Props nbachiyski. fixes #3590
git-svn-id: http://svn.automattic.com/wordpress/trunk@4756 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 23:03:19 +00:00
ryan
ad41aedae6 Add wp_list_categories filter. Props Mark Jaquith. fixes #3586
git-svn-id: http://svn.automattic.com/wordpress/trunk@4755 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 22:50:30 +00:00
ryan
a78920e6b9 Fix SQL error when excluding empty cat. fixes #3598
git-svn-id: http://svn.automattic.com/wordpress/trunk@4754 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 22:37:15 +00:00
ryan
614fecf492 Discard non-scalars when building query string.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4753 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 19:05:01 +00:00
ryan
8f84936e4b Restrict wp_remote_fopen to remote files.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4752 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 18:41:05 +00:00
ryan
4f2db4c4f3 Thumbnail creation fixes from mdawaffe. fixes #3588
git-svn-id: http://svn.automattic.com/wordpress/trunk@4751 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 18:34:31 +00:00
ryan
8c51e668c8 beta4
git-svn-id: http://svn.automattic.com/wordpress/trunk@4750 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 18:16:20 +00:00
ryan
e907e8d6d1 Cat ID filter relo. Props donncha. fixes #3591
git-svn-id: http://svn.automattic.com/wordpress/trunk@4749 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 18:15:10 +00:00
ryan
30e3bd9d2b Send to Editor fixes from mdawaffe. fixes #3594
git-svn-id: http://svn.automattic.com/wordpress/trunk@4748 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 18:10:54 +00:00
ryan
132569c301 Set eol-style to native.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4747 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 17:52:13 +00:00
ryan
189f061cd8 Revert [4743]. Not needed.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4746 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 17:33:14 +00:00
ryan
53e049fb76 Doh! fixes #3587
git-svn-id: http://svn.automattic.com/wordpress/trunk@4745 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 07:38:08 +00:00
ryan
a4a327cf15 beta3
git-svn-id: http://svn.automattic.com/wordpress/trunk@4744 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 07:19:40 +00:00
ryan
52cd53fcc4 Send to edit fix for non-image uploads. Props donncha. fixes #3486
git-svn-id: http://svn.automattic.com/wordpress/trunk@4743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 07:17:48 +00:00
ryan
23148c01f3 Revert [4735]. Not needed.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4742 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 03:00:35 +00:00
ryan
7aa452938f Pass resource to mysql_error. Props jgough. fixes #3544
git-svn-id: http://svn.automattic.com/wordpress/trunk@4741 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 02:32:42 +00:00
ryan
2a392e00fe Verbage change. Props foolswisdom. fixes #3521
git-svn-id: http://svn.automattic.com/wordpress/trunk@4740 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 02:27:00 +00:00
ryan
a4d8c1a3a0 Remove empty files.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4739 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 02:13:23 +00:00
ryan
ec648ae332 Cleanup link upgrade code. Drop linkcategories table.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4738 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 01:54:50 +00:00
ryan
43c48d8f38 Change editing wp-config codex link. fixes #1936
git-svn-id: http://svn.automattic.com/wordpress/trunk@4737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 01:42:06 +00:00
ryan
f9e84c7b77 Fix plural form parsing. Props nbachiyski. fixes #3577
git-svn-id: http://svn.automattic.com/wordpress/trunk@4736 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 01:37:48 +00:00
ryan
d8ca8009d3 Fix author mapping in the WP-to-WP importer.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4735 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 01:35:19 +00:00
markjaquith
513c7c4917 Missing </p> from nickshanks. fixes #3582
git-svn-id: http://svn.automattic.com/wordpress/trunk@4734 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-16 00:27:14 +00:00
ryan
9805322fb3 gettext fix from Kirin_Lin. fixes #3558
git-svn-id: http://svn.automattic.com/wordpress/trunk@4733 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-15 23:09:07 +00:00
ryan
24a213f65d readme cleanup from zamoose and spencerp. fixes #3546
git-svn-id: http://svn.automattic.com/wordpress/trunk@4732 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-15 23:03:50 +00:00
ryan
042c574e56 Bad cut-and-paste.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4728 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-14 01:15:32 +00:00
ryan
1872907f45 Typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4727 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-13 21:32:33 +00:00
ryan
c7e3649d78 Add some back compat files and vars. Use is deprecated.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4726 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-13 21:23:41 +00:00
markjaquith
ddf32533e6 That'll teach me to trust a code snippet from php.net ... typo fix from last commit. relates to #3528
git-svn-id: http://svn.automattic.com/wordpress/trunk@4725 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-12 21:46:29 +00:00
markjaquith
de879172d7 Use http_response_code for in status_header() on PHP >= 4.3.0 per Ryan's suggestion. relates to #3528
git-svn-id: http://svn.automattic.com/wordpress/trunk@4724 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-12 21:41:48 +00:00
ryan
2d6e81e033 Pass all args to the page walker.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4723 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-12 03:54:22 +00:00
ryan
9b0816118a Use cache sets instead of adds. Props andy. fixes #3562
git-svn-id: http://svn.automattic.com/wordpress/trunk@4722 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-11 22:34:18 +00:00
ryan
efea3d66fc Prev/next query filters. Props mdwaffe. fixes #2415
git-svn-id: http://svn.automattic.com/wordpress/trunk@4721 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-11 04:30:44 +00:00
ryan
8879c4a231 Typo fix from mdawaffe. fixes #3559
git-svn-id: http://svn.automattic.com/wordpress/trunk@4720 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-11 04:26:38 +00:00
ryan
294bcb0e11 RTE link behavior fix from andy. fixes #3466
git-svn-id: http://svn.automattic.com/wordpress/trunk@4719 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-11 03:26:48 +00:00
ryan
259d52f960 Fix typos in get_rss(). Props zuzara. fixes #3527
git-svn-id: http://svn.automattic.com/wordpress/trunk@4718 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-11 03:21:35 +00:00
ryan
9323d39466 Zend hash del key or index fix. PRops MarkJaquith.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4717 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-11 03:06:28 +00:00
ryan
cc281016ff Cast to array to avoid warning. fixes #3556
git-svn-id: http://svn.automattic.com/wordpress/trunk@4716 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-10 20:42:17 +00:00
ryan
741ea65d3b Fix list cats style arg. Props Dickie. fixes #3552
git-svn-id: http://svn.automattic.com/wordpress/trunk@4713 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-10 09:19:02 +00:00
ryan
634eb771b7 Show cats that have neither links or posts.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-10 00:22:17 +00:00
ryan
3525fa164d Beta2
git-svn-id: http://svn.automattic.com/wordpress/trunk@4711 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-09 22:55:32 +00:00
ryan
3a87e7bba0 sanitize_file_name(). fixes #3382 #3554
git-svn-id: http://svn.automattic.com/wordpress/trunk@4710 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-09 22:53:14 +00:00
ryan
9154236572 Add h2 to Uploads page. Props mdawaffe. fixes #3541
git-svn-id: http://svn.automattic.com/wordpress/trunk@4708 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-09 09:05:54 +00:00
ryan
509a601439 Hierarchical category count fixes from andy. fixes #2738
git-svn-id: http://svn.automattic.com/wordpress/trunk@4707 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-09 08:45:05 +00:00
ryan
7ba967ebd2 Update comment date gmt when updating comment date. Props mm6. fixes #3503
git-svn-id: http://svn.automattic.com/wordpress/trunk@4705 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-09 08:22:28 +00:00
ryan
1c45b9c473 TinyMCE updates from andy. fixes #3505
git-svn-id: http://svn.automattic.com/wordpress/trunk@4704 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-09 01:16:40 +00:00
ryan
347ec7035e Update ver in readme. Props spencerp. fixes #3542
git-svn-id: http://svn.automattic.com/wordpress/trunk@4703 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-09 00:43:31 +00:00
ryan
0dfaeadb12 JS quoting fixes from nbachiyski. fixes #3539
git-svn-id: http://svn.automattic.com/wordpress/trunk@4702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-08 21:22:10 +00:00
ryan
9ed4ad213b Scriptaculous loader changes from mdawaffe. fixes #3519
git-svn-id: http://svn.automattic.com/wordpress/trunk@4701 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-08 03:03:36 +00:00
ryan
d8d4ca14d0 js_escape and quot fixes from nbachiyski. fixes #3524
git-svn-id: http://svn.automattic.com/wordpress/trunk@4700 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-08 03:02:33 +00:00
ryan
3e26469375 Load locale specific php code in global context. fixes #3488
git-svn-id: http://svn.automattic.com/wordpress/trunk@4699 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-08 00:11:06 +00:00
matt
d769a35f29 One too many Ss.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4698 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-07 22:23:46 +00:00
markjaquith
cde68f9336 Exit gracefully with a warning if the table_prefix uses disallowed chars. fixes #3537
git-svn-id: http://svn.automattic.com/wordpress/trunk@4695 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-07 09:41:32 +00:00
ryan
e2412eaaf2 Allow adding submenus to post.php for back-compat. fixes #3501
git-svn-id: http://svn.automattic.com/wordpress/trunk@4694 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-07 09:02:11 +00:00
markjaquith
874234dc6f Don't re-validate the username when updating the profile (as it can't be edited anyway). Props killer-g. fixes #3531
git-svn-id: http://svn.automattic.com/wordpress/trunk@4693 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-07 07:52:57 +00:00
matt
05c6094a2b Use CDATA to avoid validation errors, fixes #3496. Hat tip: JeremyVisser
git-svn-id: http://svn.automattic.com/wordpress/trunk@4691 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-07 02:25:03 +00:00
matt
e03d63d980 Allow sorting by rating, fixes #3477. Hat tip: tassoman
git-svn-id: http://svn.automattic.com/wordpress/trunk@4690 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-07 02:20:20 +00:00
matt
5128d39344 Consistent name for our autosave JS file, fixes #3469. Hat tip: nbachiyski.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4689 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-07 02:16:11 +00:00
matt
f510668919 Summaries in Atom should properly describe their content, fixes #3377. Hat tip: link92.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4688 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-07 02:14:07 +00:00
matt
44691d34ca Don't show categories that are exclusively for either posts or links, unless it's used for both.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4687 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-07 02:10:50 +00:00
ryan
4d2ab530cb Fiddle with object destruction and shutdown. Curses upon php 5.2. fixes #3354
git-svn-id: http://svn.automattic.com/wordpress/trunk@4686 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-06 23:36:51 +00:00
markjaquith
7b18a414db burn in Hades, status_header(), destroyer of souls. fixes #3528
git-svn-id: http://svn.automattic.com/wordpress/trunk@4684 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-06 08:22:12 +00:00
ryan
c5e22b5098 wp_get_attachment_thumb_url() fix from mdawaffe. fixes #3520
git-svn-id: http://svn.automattic.com/wordpress/trunk@4682 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-05 20:54:55 +00:00
markjaquith
e69c2bc3ae Ensure XHTML validity when presenting mod_rewrite rules for copy-paste. Props JeremyVisser. fixes #3523
git-svn-id: http://svn.automattic.com/wordpress/trunk@4681 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-05 09:27:22 +00:00
markjaquith
37b522d016 Change wording for Blogger import to note that it only works with OLD Blogger accounts. Props foolswisdom. fixes #3490
git-svn-id: http://svn.automattic.com/wordpress/trunk@4679 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-05 08:45:52 +00:00
markjaquith
b7371396c3 Delay Trackback data escaping until after mb_convert_encoding(). Props to Stefan Esser.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4676 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-05 05:45:46 +00:00
ryan
6befacf8f7 wp_get_attachment_thumb_url() fix from mdawaffe. fixes #3520
git-svn-id: http://svn.automattic.com/wordpress/trunk@4675 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-04 18:16:33 +00:00
matt
7b0d0d180c OMG BETA!
git-svn-id: http://svn.automattic.com/wordpress/trunk@4674 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-04 02:48:55 +00:00
ryan
26fff7a52e Custom Image Header. fixes #3465
git-svn-id: http://svn.automattic.com/wordpress/trunk@4673 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-03 23:49:34 +00:00
ryan
f5c184f843 Add kses protocol checking to clean_url. Props Andy. fixes #3515
git-svn-id: http://svn.automattic.com/wordpress/trunk@4672 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-02 21:22:41 +00:00
ryan
716e89b369 Now with less bugs. fixes #3411
git-svn-id: http://svn.automattic.com/wordpress/trunk@4671 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-02 19:51:36 +00:00
ryan
cd99ca7b90 Attachment fixes from mdawaffe. fixes #3411
git-svn-id: http://svn.automattic.com/wordpress/trunk@4670 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-01-02 19:28:30 +00:00
markjaquith
504cf9100c __ngettext() correction by nbachiyski. fixes #3508
git-svn-id: http://svn.automattic.com/wordpress/trunk@4669 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-31 06:11:24 +00:00
markjaquith
4577ba0f2d Pingback excerpt fetching improvements and fixes. fixes #3495
git-svn-id: http://svn.automattic.com/wordpress/trunk@4667 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-27 06:10:03 +00:00
markjaquith
eda5c27abf wp_specialchars() treatment for recent file list
git-svn-id: http://svn.automattic.com/wordpress/trunk@4666 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-27 05:59:45 +00:00
ryan
ce655b96b8 Typo fixes from mdawaffe. fixes #3474
git-svn-id: http://svn.automattic.com/wordpress/trunk@4664 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-27 00:51:00 +00:00
markjaquith
6dfff141ec Remove unused is_comment param in balanceTags() relates to #2714
git-svn-id: http://svn.automattic.com/wordpress/trunk@4662 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-23 06:14:34 +00:00
ryan
f2665b2cb2 Add js_escape and attribute_escape filters.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4660 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-22 05:26:43 +00:00
markjaquith
dc17d069c0 Categories with zero posts and posts with no comments no longer link to those empty views in the admin. fixes #3493
git-svn-id: http://svn.automattic.com/wordpress/trunk@4659 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-21 23:40:16 +00:00
markjaquith
8a678f3841 i18n fixes, logic cleanup, wording clarifications, and more from nbachiyski. fixes #3474
git-svn-id: http://svn.automattic.com/wordpress/trunk@4658 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-21 23:06:18 +00:00
markjaquith
bdd210972c Whitespace cleanup for [4656]
git-svn-id: http://svn.automattic.com/wordpress/trunk@4657 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-21 10:45:58 +00:00
markjaquith
5a76c03203 new function for escaping within attributes: attribute_escape()
git-svn-id: http://svn.automattic.com/wordpress/trunk@4656 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-21 10:10:04 +00:00
markjaquith
deb53f7027 No need to backslash escape single quotes and line breaks when using js_escape()
git-svn-id: http://svn.automattic.com/wordpress/trunk@4655 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-21 06:04:39 +00:00
markjaquith
d99f7eaf96 Reverse backport (?) from 2.0.x of KSES filters
git-svn-id: http://svn.automattic.com/wordpress/trunk@4654 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-21 04:44:34 +00:00
ryan
db313621d6 Login form fixes from Viper007Bond. fixes #3484
git-svn-id: http://svn.automattic.com/wordpress/trunk@4652 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-20 00:30:07 +00:00
ryan
32cc2c3ef0 Enable RTE for new users. fixes #3485
git-svn-id: http://svn.automattic.com/wordpress/trunk@4651 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-19 23:19:12 +00:00
ryan
e57369e689 Include admin-functions in xmlrpc.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4650 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-18 20:11:19 +00:00
markjaquith
e01d9334f6 Edit Comments paging fix from nbachiyski. fixes #3481
git-svn-id: http://svn.automattic.com/wordpress/trunk@4649 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-18 00:13:16 +00:00
markjaquith
71a2674bde Use $wpdb->prefix when defining table names
git-svn-id: http://svn.automattic.com/wordpress/trunk@4648 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-15 23:14:42 +00:00
ryan
bcc76b1f65 i18n fixes from nbachiyski. fixes #3470
git-svn-id: http://svn.automattic.com/wordpress/trunk@4646 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-13 19:36:10 +00:00
ryan
13c428a9ab Don't force kses filtering of imports. fixes #3290
git-svn-id: http://svn.automattic.com/wordpress/trunk@4645 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-13 19:21:09 +00:00
ryan
6c31c17921 Avoid infinite loop when getting attachment link.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4644 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-12 22:50:54 +00:00
ryan
4ea0406712 Move wp_generate_attachment_metadata() and friends to admin-functions.php and include admin-functions from xmlrpc.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4643 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-12 08:36:16 +00:00
ryan
da1c8e1df5 Select http when linking. Props markjaquith. fixes #3462
git-svn-id: http://svn.automattic.com/wordpress/trunk@4642 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-12 07:48:04 +00:00
markjaquith
448c02eed3 wp_delete_category() tweaks and code consolidation. fixes #3463
git-svn-id: http://svn.automattic.com/wordpress/trunk@4639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-10 20:53:05 +00:00
markjaquith
5ce03d44bb cat_id_filter from Donncha. fixes #3458
git-svn-id: http://svn.automattic.com/wordpress/trunk@4638 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-10 20:27:20 +00:00
markjaquith
d0e0ceb748 Move wp_check_for_changed_slugs() to post.php so it can be called in non-admin contexts. fixes #3461
git-svn-id: http://svn.automattic.com/wordpress/trunk@4637 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-10 17:17:39 +00:00
markjaquith
19801dc2f8 Revert overzealous i18n from [4545]. Props nbachiyski. fixes #3438
git-svn-id: http://svn.automattic.com/wordpress/trunk@4636 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-10 00:23:10 +00:00
markjaquith
4d8c0908f6 Add commentrss2_item action hook. Props seek3r and Viper007Bond. fixes #3456
git-svn-id: http://svn.automattic.com/wordpress/trunk@4635 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-10 00:12:58 +00:00
markjaquith
49565cf608 Init strings before concatenation. Props devil1591. fixes #3457
git-svn-id: http://svn.automattic.com/wordpress/trunk@4634 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-09 06:35:22 +00:00
ryan
7b5a39561d Fix path to cropper. fixes #3455
git-svn-id: http://svn.automattic.com/wordpress/trunk@4633 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-08 23:01:08 +00:00
ryan
203f6c5ab4 Some caching cleanups.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4631 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-08 07:35:45 +00:00
ryan
b81bf35aad did_action()
git-svn-id: http://svn.automattic.com/wordpress/trunk@4630 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-08 03:45:34 +00:00
ryan
245fa326d7 Include cropper and scriptaculous since lots of themes are using them.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4629 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-08 00:10:58 +00:00
ryan
3b09e48f19 Create attachment metadata for xmlrpc uploads. Props mdawaffe. fixes #3452
git-svn-id: http://svn.automattic.com/wordpress/trunk@4628 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-07 22:42:22 +00:00
ryan
60fdec501d Check link_count not category_count when doing link hierarchy. Props mdawaffe. fixes #3453
git-svn-id: http://svn.automattic.com/wordpress/trunk@4627 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-07 22:38:27 +00:00
markjaquith
0aa19529f9 Bunch of whitespace and coding standardization.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4626 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-07 03:57:23 +00:00
markjaquith
010379dd52 get_page() logic re-ordering and inline comments
git-svn-id: http://svn.automattic.com/wordpress/trunk@4625 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-07 03:10:47 +00:00
ryan
1b9c2ead05 Fix up get_page cache handling.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-07 01:06:28 +00:00
ryan
12ecc1f539 Reparent edit comments tab. Props mdawaffe. fixes #3448
git-svn-id: http://svn.automattic.com/wordpress/trunk@4623 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-07 00:40:31 +00:00
markjaquith
fec072e555 Disable RTE when editing comments. Props mdawaffe. fixes #3449
git-svn-id: http://svn.automattic.com/wordpress/trunk@4622 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-07 00:38:54 +00:00
ryan
021e19efe3 Don't dbxize wrappers. Props andy. fixes #2987
git-svn-id: http://svn.automattic.com/wordpress/trunk@4621 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-07 00:08:18 +00:00
markjaquith
842741c81d Add überpowerful "query" filter, for SQL queries. fixes #2721
git-svn-id: http://svn.automattic.com/wordpress/trunk@4619 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-07 00:02:03 +00:00
ryan
4d72cff3fe Ignore nopaging for feeds.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4618 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-06 23:14:37 +00:00
ryan
2793b9dafe Don't double escape JS. Props mdawaffe. fixes #3447
git-svn-id: http://svn.automattic.com/wordpress/trunk@4617 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-06 23:11:31 +00:00
markjaquith
faa08c32f1 Mass Edit Mode JS fixes for #3399
git-svn-id: http://svn.automattic.com/wordpress/trunk@4616 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-06 11:26:27 +00:00
markjaquith
d2e1e17bc7 comment => c fix, props to Pål Grønås Drange on wp-testers for catching it.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4615 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-06 10:52:09 +00:00
ryan
1c1b7a2df6 Autosave fix up for duplicate drafts from andy. fixes #3379
git-svn-id: http://svn.automattic.com/wordpress/trunk@4614 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-06 05:33:52 +00:00
ryan
a5b18aa47d Typo fix. fixes #3224
git-svn-id: http://svn.automattic.com/wordpress/trunk@4613 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-05 22:41:49 +00:00
ryan
995d839bfb Attachment data abstraction from mdawaffe. fixes #3440
git-svn-id: http://svn.automattic.com/wordpress/trunk@4612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-05 22:37:19 +00:00
ryan
8689df80a5 upload-js gettext fixes from mdawaffe. fixes #3224
git-svn-id: http://svn.automattic.com/wordpress/trunk@4611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-05 22:27:02 +00:00
markjaquith
b6092da12a Fix Template Name and Description metadata regex typo. Props devil1591. fixes #3437
git-svn-id: http://svn.automattic.com/wordpress/trunk@4610 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-05 12:29:08 +00:00
markjaquith
13d055385d CSS regression fix from Viper007Bond. fixes #3436
git-svn-id: http://svn.automattic.com/wordpress/trunk@4609 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-05 11:46:24 +00:00
ryan
b9ccbfe603 Some string changes. Props MichaelH. fixes #2724
git-svn-id: http://svn.automattic.com/wordpress/trunk@4608 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-05 07:15:12 +00:00
ryan
2435e0c1a6 Fix input label. Props JeremyVisser. fixes #3432
git-svn-id: http://svn.automattic.com/wordpress/trunk@4607 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-05 06:52:55 +00:00
ryan
175dd7bca7 Use get_the_category() within wp_get_post_categories() so that the cache is used. Props markjaquith. fixes #3430
git-svn-id: http://svn.automattic.com/wordpress/trunk@4606 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-05 06:45:48 +00:00
ryan
7d4c7408f5 upload-js gettext. Props nbachiyski. fixes #3224
git-svn-id: http://svn.automattic.com/wordpress/trunk@4605 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-05 02:29:45 +00:00
markjaquith
1877fbb867 trailingslashit() fix for paged posts links from activeingredient. fixes #3163
git-svn-id: http://svn.automattic.com/wordpress/trunk@4603 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-04 14:42:34 +00:00
markjaquith
84ec7763be change post_parent on orphaned attachments. props ryanscheuermann. fixes #2681
git-svn-id: http://svn.automattic.com/wordpress/trunk@4601 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-04 14:25:21 +00:00
markjaquith
5dbc09631b Require an attachment ID for upload.php?action=edit. fixes #3333
git-svn-id: http://svn.automattic.com/wordpress/trunk@4600 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-04 14:05:54 +00:00
markjaquith
df98461b02 Typo fix from tacker. fixes #3431
git-svn-id: http://svn.automattic.com/wordpress/trunk@4598 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-04 12:02:30 +00:00
ryan
78968b6bff Pre-fill http:// when inserting new links. Props andy. fixes #2579
git-svn-id: http://svn.automattic.com/wordpress/trunk@4597 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-04 02:35:17 +00:00
ryan
223cffa7ab More i18n friendly login screen. Props bryanveloso. fixes #3348
git-svn-id: http://svn.automattic.com/wordpress/trunk@4596 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-04 00:53:33 +00:00
ryan
bff928f8b8 Hooks needed to allow alternate category admin inteface. Props alexkingorg. fixes #3408
git-svn-id: http://svn.automattic.com/wordpress/trunk@4595 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-04 00:48:03 +00:00
ryan
5eb76b01df Make link manager hookable. Props donncha. fixes #3422
git-svn-id: http://svn.automattic.com/wordpress/trunk@4594 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-04 00:44:18 +00:00
matt
4e52293cc9 MSN Spaces seems to like exclamation points in their URLs, they must be pandering to Yahoo! ;)
git-svn-id: http://svn.automattic.com/wordpress/trunk@4593 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-03 21:55:42 +00:00
matt
936dfdd36f Prototype compressed doesn't seem to be working out so well :/
Fixes #3414

git-svn-id: http://svn.automattic.com/wordpress/trunk@4592 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-03 21:53:54 +00:00
matt
de56aaa720 Just a helpful little link.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4591 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-03 21:33:38 +00:00
matt
c69c7fdd86 Don't display table if no links/bookmarks, fixes #2684
git-svn-id: http://svn.automattic.com/wordpress/trunk@4590 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-03 21:32:17 +00:00
matt
8e397f162e Some new hooks on registration, fixes #2541
git-svn-id: http://svn.automattic.com/wordpress/trunk@4589 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-03 21:16:19 +00:00
matt
81654225ea Apply filter on locale, fixes #2383
git-svn-id: http://svn.automattic.com/wordpress/trunk@4588 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-03 21:09:24 +00:00
ryan
1218d77fd5 Don't forge to echo. Props mypatricks. fixes #3423
git-svn-id: http://svn.automattic.com/wordpress/trunk@4587 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-03 19:40:07 +00:00
markjaquith
b4a405db46 global exclude filter for wp_list_pages(). fixes #3402
git-svn-id: http://svn.automattic.com/wordpress/trunk@4586 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-03 09:23:17 +00:00
matt
0a6e2b7869 Make sidebar hierarchical, fixes #3417
git-svn-id: http://svn.automattic.com/wordpress/trunk@4585 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-02 22:32:34 +00:00
markjaquith
dc6d364661 kill double slashing on delete AYS alert(). fixes #3424
git-svn-id: http://svn.automattic.com/wordpress/trunk@4584 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-02 20:51:29 +00:00
ryan
ccacbf47cd Better AJAX feedback messages and markup fixes. Props mdawaffe. fixes #3208
git-svn-id: http://svn.automattic.com/wordpress/trunk@4583 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 23:00:04 +00:00
ryan
d1245edae6 Fix pregs. Props Mordred.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4582 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 22:44:50 +00:00
ryan
aedf76aa2f Avoid empty result category queries. Props andy. fixes #3416
git-svn-id: http://svn.automattic.com/wordpress/trunk@4580 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 18:55:27 +00:00
ryan
c198077fcc Fix category feed_img markup. Props mdawaffe. fixes #1207
git-svn-id: http://svn.automattic.com/wordpress/trunk@4579 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 18:28:43 +00:00
ryan
8da54a8e44 Font size for wp-calendar and next. Props mdawaffe. fixes #1213
git-svn-id: http://svn.automattic.com/wordpress/trunk@4578 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 12:09:35 +00:00
ryan
3026668de6 Return status from save_mod_rewrite_rules(). Props Viper007Bond. fixes #3409
git-svn-id: http://svn.automattic.com/wordpress/trunk@4577 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 12:07:01 +00:00
ryan
ec850c8478 Give CSS class to parent of current page/cat. Props mdawaffe. fixes #3253
git-svn-id: http://svn.automattic.com/wordpress/trunk@4576 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 12:05:21 +00:00
ryan
0bcce8aad3 Avoid that something strange happened error. Props mdawaffe. fixes #3276
git-svn-id: http://svn.automattic.com/wordpress/trunk@4575 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 12:02:30 +00:00
matt
fe75b90716 Remove the global rich_editing option, now it's just personal, fixes #2033
git-svn-id: http://svn.automattic.com/wordpress/trunk@4574 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 11:16:31 +00:00
matt
396bd0aac7 Curl them quotes, fixes #2835
git-svn-id: http://svn.automattic.com/wordpress/trunk@4573 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 10:26:50 +00:00
matt
51baba714f Some additional hooks for extensibility.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4572 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 10:15:15 +00:00
markjaquith
7ed36f06aa cast to array when checking for old post slugs. fixes #3202
git-svn-id: http://svn.automattic.com/wordpress/trunk@4571 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 04:51:09 +00:00
ryan
1905a747d4 Use temporary title when creating empty posts. Props mdawaffe. fixes #3097
git-svn-id: http://svn.automattic.com/wordpress/trunk@4570 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 04:38:07 +00:00
ryan
d0e1e744c4 Create attachments for xmlrpc uploads. Props donncha. fixes #3400
git-svn-id: http://svn.automattic.com/wordpress/trunk@4569 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 04:34:59 +00:00
matt
b7746f62c2 Adding a hook for comments, fixes #3084
git-svn-id: http://svn.automattic.com/wordpress/trunk@4568 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 03:30:26 +00:00
matt
76f6a1cbf2 Show HRs in posts, fixes #3291
git-svn-id: http://svn.automattic.com/wordpress/trunk@4567 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 03:18:45 +00:00
matt
089a4da361 Compress scripts using Dojo and link to the compressed versions, saving about 27kb total. Everything I tested still worked, except the colorpicker which is why it's not compressed.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4566 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 03:13:21 +00:00
matt
c6531fe271 Don't texturize things inside of script or style tags, fixes #2647
git-svn-id: http://svn.automattic.com/wordpress/trunk@4565 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 02:53:20 +00:00
ryan
d5e1cc7a6f Close previous element when depth is hit. fixes #3080
git-svn-id: http://svn.automattic.com/wordpress/trunk@4564 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 00:38:25 +00:00
ryan
bdb9f687b5 Export file content type fixups from mdawaffe. fixes #3080
git-svn-id: http://svn.automattic.com/wordpress/trunk@4563 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-12-01 00:11:43 +00:00
matt
162dcec906 Small cleanup to autop, fixes #3238
git-svn-id: http://svn.automattic.com/wordpress/trunk@4562 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 23:32:45 +00:00
ryan
ca4b493965 Make sure multiple attachments for the same post have unique permalinks. Props filosofo. fixes #3033
git-svn-id: http://svn.automattic.com/wordpress/trunk@4561 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 23:09:27 +00:00
ryan
f066f5ed43 Truncate sanitized titles to the size of the post_name field without killing multibye characters.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4560 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 20:26:42 +00:00
ryan
9c822fc9b3 Enforce edit_users cap for users.php. Props westi. fixes #3410
git-svn-id: http://svn.automattic.com/wordpress/trunk@4559 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 18:38:06 +00:00
ryan
7c759611cc Import/export category data. Props andy. fixes #3403
git-svn-id: http://svn.automattic.com/wordpress/trunk@4558 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 18:15:14 +00:00
markjaquith
b0a23b7940 Milestone for considering alternative feed parsing library was moved past 2.1, so dropping this for now.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4557 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 08:53:33 +00:00
markjaquith
42529f4516 Remember old post slugs and automatically redirect to the new slug. fixes #3202
git-svn-id: http://svn.automattic.com/wordpress/trunk@4556 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 08:48:56 +00:00
ryan
9af8606115 Can't pass function return to array_shift.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4554 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 07:30:11 +00:00
ryan
b6e8b1f1c6 Spare input, param, and script from autop. fixes #3054
git-svn-id: http://svn.automattic.com/wordpress/trunk@4553 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 02:00:40 +00:00
ryan
556b27b296 Don't use 'import' as a mime type. Props mdawaffe and westi. fixes #3219
git-svn-id: http://svn.automattic.com/wordpress/trunk@4552 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 01:56:06 +00:00
ryan
f068409a63 Fix feed links when using %category% permalink structure. Props westi. fixes #3214
git-svn-id: http://svn.automattic.com/wordpress/trunk@4551 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 01:54:05 +00:00
ryan
832953ade7 Update allowed protocols. fixes #2726
git-svn-id: http://svn.automattic.com/wordpress/trunk@4550 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 01:50:48 +00:00
ryan
1668b671ff Inline docs for wpdb. Props masquerade and davidhouse. #2474
git-svn-id: http://svn.automattic.com/wordpress/trunk@4549 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 01:44:33 +00:00
matt
b16435a39a Always put checked categories first.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4548 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 00:22:18 +00:00
matt
1097f574c1 Prevent uploads from being hidden, fixes #3227
git-svn-id: http://svn.automattic.com/wordpress/trunk@4547 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-30 00:09:50 +00:00
matt
67bc138cfd Normalization of newlines fixes #1020, also did some minor reformatting.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4546 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-29 23:18:35 +00:00
ryan
3a72d82880 gettext date format strings in wp_get_archives. fixes #1540
git-svn-id: http://svn.automattic.com/wordpress/trunk@4545 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-29 21:34:51 +00:00
matt
be9eb69f02 Make cite smaller, fixes #3247 on most screens we care about.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4544 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-29 21:21:06 +00:00
matt
a43de12ebd Link to category post page, fixes #2253
git-svn-id: http://svn.automattic.com/wordpress/trunk@4543 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-29 21:08:31 +00:00
matt
66ddbcb327 This should be an XML representation of all comments on a post, fixes #1570
git-svn-id: http://svn.automattic.com/wordpress/trunk@4542 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-29 21:02:40 +00:00
matt
0d429d4692 Center ID and comments, fixes #3404
git-svn-id: http://svn.automattic.com/wordpress/trunk@4541 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-29 20:57:52 +00:00
markjaquith
cb172fbe2f Sanitize all plugin metadata, for consistency. Props Viper007Bond. fixes #3396
git-svn-id: http://svn.automattic.com/wordpress/trunk@4540 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-29 09:22:49 +00:00
markjaquith
90220dbeca Fix parse error in wp-admin/link-add.php. Props mByte in wp-testers list.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4539 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-29 09:17:01 +00:00
markjaquith
bd8ca8ff8e No sort if no results. Props mByte in wp-testers list.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4538 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-29 08:18:34 +00:00
ryan
cc238cab45 xmlrpc filename sanitation. Props donncha. fixes #3395
git-svn-id: http://svn.automattic.com/wordpress/trunk@4537 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-28 22:03:19 +00:00
ryan
04b742e0a2 Bump ver number in MCE help dialog. Props Voper007Bond. fixes #3392
git-svn-id: http://svn.automattic.com/wordpress/trunk@4536 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-28 22:00:10 +00:00
ryan
cc44db510d Use js_escape. Props nbachiyski. fixes #3399
git-svn-id: http://svn.automattic.com/wordpress/trunk@4535 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-28 21:51:13 +00:00
ryan
950ad14094 Fix typo. fixes #3387
git-svn-id: http://svn.automattic.com/wordpress/trunk@4534 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-26 18:00:53 +00:00
ryan
30af9648b5 Filter post_content_filtered
git-svn-id: http://svn.automattic.com/wordpress/trunk@4533 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-25 17:54:41 +00:00
markjaquith
64429cec1e whitespace tidying by Viper007Bond. fixes #3385
git-svn-id: http://svn.automattic.com/wordpress/trunk@4529 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-24 22:55:28 +00:00
ryan
43fca5536b Caching fixes and cleanups.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4528 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-24 20:44:03 +00:00
ryan
d7c11f087d Typo. fixes #3389
git-svn-id: http://svn.automattic.com/wordpress/trunk@4527 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-24 16:41:07 +00:00
ryan
54016999e1 Upload filters in xmlrpc. fixes #3388
git-svn-id: http://svn.automattic.com/wordpress/trunk@4526 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-24 16:39:51 +00:00
ryan
889ff09208 cat_is_ancestor_of(). fixes #3387
git-svn-id: http://svn.automattic.com/wordpress/trunk@4525 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-24 16:37:44 +00:00
ryan
814a2b0c1c Key caches by blog ID for those doing the multi blog trick.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4524 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-23 20:39:39 +00:00
matt
3e5ade7a39 Typo in get_calendar
git-svn-id: http://svn.automattic.com/wordpress/trunk@4523 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-23 18:31:27 +00:00
matt
3224300951 Caching for get_calendar
git-svn-id: http://svn.automattic.com/wordpress/trunk@4522 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-23 17:56:53 +00:00
matt
226a7a48eb Caching for get_pages
git-svn-id: http://svn.automattic.com/wordpress/trunk@4521 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-23 17:21:08 +00:00
matt
b7d514be34 Caching for get_bookmarks
git-svn-id: http://svn.automattic.com/wordpress/trunk@4520 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-23 17:04:05 +00:00
matt
e05b055337 Caching for get_categories
git-svn-id: http://svn.automattic.com/wordpress/trunk@4519 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-23 16:52:42 +00:00
matt
64b8121680 Typo in logic was causing extra page queries.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4518 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-23 16:06:16 +00:00
matt
624c94b57e This makes things a little more interesting and cacheable (sp?)
git-svn-id: http://svn.automattic.com/wordpress/trunk@4517 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-23 15:38:22 +00:00
matt
384ec6e6c5 Let's be a little less verbose here
git-svn-id: http://svn.automattic.com/wordpress/trunk@4516 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-23 00:10:30 +00:00
matt
912d2af84f Fixes funky category checkbox spacing in IE
git-svn-id: http://svn.automattic.com/wordpress/trunk@4515 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-22 06:04:09 +00:00
markjaquith
16998c6bb3 trying Ryan's suggestion for #3215
git-svn-id: http://svn.automattic.com/wordpress/trunk@4513 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-22 04:58:31 +00:00
ryan
49281a1caf Bump autosave interval to 2 minutes for now. #3379
git-svn-id: http://svn.automattic.com/wordpress/trunk@4512 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-22 02:54:04 +00:00
ryan
6f8d9c92a5 Make wptexturize faster. Props ecb29. fixes #2980
git-svn-id: http://svn.automattic.com/wordpress/trunk@4511 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-21 22:00:10 +00:00
ryan
102885ebbc Upload JS fixes from mdawaffe. fixes #3378
git-svn-id: http://svn.automattic.com/wordpress/trunk@4510 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-21 20:10:01 +00:00
ryan
68b74ef3b9 Attempt at eliminating cron contention.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4509 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-21 02:48:12 +00:00
ryan
4caa7051e8 Bump script ver.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4508 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-21 01:40:25 +00:00
ryan
29cb9128a7 Kill form submission during autosave.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4507 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-21 01:39:09 +00:00
ryan
f336d22da7 TinyMCE 2.0.8
git-svn-id: http://svn.automattic.com/wordpress/trunk@4506 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-21 00:55:06 +00:00
ryan
84bef56f9d ID instead of id. Props Nazgul. fixes #3152
git-svn-id: http://svn.automattic.com/wordpress/trunk@4505 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-20 05:01:57 +00:00
ryan
9a8391315a ID instead of id. Props Nazgul. fixes #3152
git-svn-id: http://svn.automattic.com/wordpress/trunk@4504 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-20 04:29:06 +00:00
ryan
bb0d086933 get_children() uses get_posts(). Props mdawaffe. fixes #3189
git-svn-id: http://svn.automattic.com/wordpress/trunk@4503 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-20 04:23:12 +00:00
ryan
761d46a887 Fix logo link and use install.css in wpdb bail. Props Sewar. fixes #3209
git-svn-id: http://svn.automattic.com/wordpress/trunk@4502 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-20 04:07:34 +00:00
ryan
fff43b9dee Don't linebreak after Z. Props andy. fixes #3312
git-svn-id: http://svn.automattic.com/wordpress/trunk@4501 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-20 04:02:40 +00:00
ryan
07bedef0e5 Standardize on Links instead of Bookmarks until we change our minds again.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-20 02:23:41 +00:00
ryan
ca40a96b1f Standardize on Links instead of Bookmarks until we change our minds again.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4499 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-20 02:17:07 +00:00
ryan
9952fe0bc4 Pass format string and gmtbool as args to data and time filters. Props sdiz. fixes #2754
git-svn-id: http://svn.automattic.com/wordpress/trunk@4498 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-20 01:46:20 +00:00
ryan
4780071918 Handle empty authors list. Props MichaelH. fixes #2384
git-svn-id: http://svn.automattic.com/wordpress/trunk@4497 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-19 08:06:03 +00:00
ryan
9f534ebae6 Remove trailing spaces and convert spaces to tabs. Props Nazgul. fixes #986
git-svn-id: http://svn.automattic.com/wordpress/trunk@4495 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-19 07:56:05 +00:00
ryan
38e868257a i18n fix for comments_number(). Props Mark Jaquith. fixes #3244
git-svn-id: http://svn.automattic.com/wordpress/trunk@4494 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-19 07:45:28 +00:00
ryan
c232a94981 Don't need to mark as private in page_rows() since get_the_title() does it.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4492 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-19 07:29:09 +00:00
ryan
f13014d8a5 Show 'Unpublished' instead of epoch time for drafts.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4491 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-19 07:24:55 +00:00
ryan
2390613e37 Don't allow a category to be it's own parent. Props donncha. fixes #3278
git-svn-id: http://svn.automattic.com/wordpress/trunk@4490 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-19 01:12:36 +00:00
ryan
172bfb801f Don't enforce presence of mysql system if custom DB class is being used. Props Nazgul. fixes #3293
git-svn-id: http://svn.automattic.com/wordpress/trunk@4489 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-19 01:06:08 +00:00
ryan
422b5cd65c ceil() max_num_pages. Props MattRead. fixes #3368
git-svn-id: http://svn.automattic.com/wordpress/trunk@4488 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-19 00:58:15 +00:00
ryan
92421de747 Ref more singletons.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4486 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-19 00:12:57 +00:00
matt
9705c29507 Add IDs to export, and let it filter by authors.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4485 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-18 23:13:15 +00:00
matt
089d98d09c AJAX loading of dashboard for slow stuff
git-svn-id: http://svn.automattic.com/wordpress/trunk@4484 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-18 23:12:39 +00:00
ryan
80550746c6 Base last modified time for comment feeds on comments, not the post. Props mdawaffe. fixes #137
git-svn-id: http://svn.automattic.com/wordpress/trunk@4483 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-18 20:46:43 +00:00
ryan
c3f26d25b2 Add edit_category_form hook. fixes #2717
git-svn-id: http://svn.automattic.com/wordpress/trunk@4482 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-18 20:40:29 +00:00
ryan
0a926ab21a Menu reparenting fixes. Now even more complex and incomprehensible.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4481 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-18 16:24:31 +00:00
ryan
eda9021317 Hold off on menu cleanup until next release. There be dragons.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4480 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-18 07:31:29 +00:00
matt
2ef26430ec Paging for comments
git-svn-id: http://svn.automattic.com/wordpress/trunk@4479 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-18 06:52:01 +00:00
matt
07126127e6 Admin functions cleanup, and change how we do titles and parents in the backend
git-svn-id: http://svn.automattic.com/wordpress/trunk@4478 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-18 06:09:48 +00:00
ryan
a0dcbfac4e Force download of export file in browsers that try to be too smart. Props mdawaffe. fixes #3225
git-svn-id: http://svn.automattic.com/wordpress/trunk@4477 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-18 01:27:22 +00:00
ryan
f9c7eadff4 Visual and Code. Props foolswisdom. fixes #3233
git-svn-id: http://svn.automattic.com/wordpress/trunk@4476 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-17 21:16:17 +00:00
ryan
fd46e4b1f6 Fix attachment links for page on front. Props mdawaffe. fixes #2515
git-svn-id: http://svn.automattic.com/wordpress/trunk@4475 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-17 20:00:11 +00:00
matt
448bd4fb7b Create a new comments top-level menu and move things under it
git-svn-id: http://svn.automattic.com/wordpress/trunk@4474 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-17 16:22:46 +00:00
markjaquith
a8889fb947 silence the fopen() in wp_remote_fopen()
git-svn-id: http://svn.automattic.com/wordpress/trunk@4472 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-15 22:46:35 +00:00
ryan
7684ebbeac Set extract type and rename car to avoid overwrites.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4469 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-15 00:25:44 +00:00
ryan
e55c8a5dc9 Exit after redirect.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4468 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-15 00:02:28 +00:00
ryan
3e20ee2b0c Exit after redirect.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4467 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-14 23:44:25 +00:00
ryan
bc46166de6 Inline uploader tweaks from mdawaffe. fixes #3360
git-svn-id: http://svn.automattic.com/wordpress/trunk@4466 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-14 23:18:20 +00:00
ryan
39dbda930c Don't use deprecated start_wp(). Props westi. fixes #3188
git-svn-id: http://svn.automattic.com/wordpress/trunk@4465 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-14 01:24:27 +00:00
ryan
79d9f41663 Use die() not wp_die(). Props AlanJCastonguay. fixes #3357
git-svn-id: http://svn.automattic.com/wordpress/trunk@4464 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-13 17:37:41 +00:00
ryan
1d8d18022e is_singular should be false for the posts page. Props mdawaffe. fixes #3351
git-svn-id: http://svn.automattic.com/wordpress/trunk@4463 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-11 18:25:42 +00:00
markjaquith
8ea4ca38ce Specify <author /> for comment authors in comment feed. Props to Erik Barzeski for the report, Nazgul for the patch. fixes #3303
git-svn-id: http://svn.automattic.com/wordpress/trunk@4462 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-09 19:08:57 +00:00
markjaquith
ca63f7b35a valid XHTML for uploader. props tassoman and mdawaffe. fixes #3340
git-svn-id: http://svn.automattic.com/wordpress/trunk@4461 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-09 19:02:40 +00:00
ryan
22bee1c9d7 Preserve the original query object as wp_the_query so that it's not stomped by subsequent calls to query_posts().
git-svn-id: http://svn.automattic.com/wordpress/trunk@4460 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-09 06:50:58 +00:00
ryan
37a9660885 Bump script vers.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4459 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-08 21:24:52 +00:00
ryan
f83762e87d Ajax plugin tweakage from mdawaffe. fixes #3334
git-svn-id: http://svn.automattic.com/wordpress/trunk@4458 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-08 21:23:41 +00:00
ryan
92bacd1a91 Remove paging by days. fixes #3341
git-svn-id: http://svn.automattic.com/wordpress/trunk@4457 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-08 21:22:35 +00:00
ryan
bf8e2b03e2 redirect fixes from mdawaffe. fixes #3342.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-08 21:14:53 +00:00
ryan
19942073ea Use FOUND_ROWS to calculate the max number of pages. Need to cleanup/eliminate _max_num_pages().
git-svn-id: http://svn.automattic.com/wordpress/trunk@4455 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-08 09:13:11 +00:00
ryan
70b9f6e5ed Wrap cat name in CDATA. props alexkingorg. fixes #3252
git-svn-id: http://svn.automattic.com/wordpress/trunk@4454 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-08 06:57:26 +00:00
ryan
a25c8cb077 Add some plugin activation validation.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4453 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-08 02:20:02 +00:00
ryan
911d3a1403 Remove comment. fixes #3210
git-svn-id: http://svn.automattic.com/wordpress/trunk@4452 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-08 02:04:54 +00:00
ryan
a5b7a24962 Fix amp handling. Props skeltoac. fixes #3328
git-svn-id: http://svn.automattic.com/wordpress/trunk@4451 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-08 01:12:41 +00:00
ryan
1977863614 GROUP BY is hella faster than DISTINCT.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4450 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-07 23:43:59 +00:00
markjaquith
66aab7b56d Allow submenu tabs to wrap. Props filosofo. fixes #3213
git-svn-id: http://svn.automattic.com/wordpress/trunk@4449 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-06 08:33:49 +00:00
markjaquith
92d006dac0 Suppress "Link added" message when it has not been added. Props Nazgul. fixes #3200
git-svn-id: http://svn.automattic.com/wordpress/trunk@4448 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-04 07:00:29 +00:00
markjaquith
29c36e2b75 Restore 2x missing <br />. Props Nazgul and Xmion. fixes #3221
git-svn-id: http://svn.automattic.com/wordpress/trunk@4447 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-04 05:23:12 +00:00
markjaquith
54d7ccba56 make /languages/ directory default to /wp-content/languages/ with fallback to /wp-includes/languages/. Props Nazgul. fixes #3315
git-svn-id: http://svn.automattic.com/wordpress/trunk@4446 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-04 05:20:39 +00:00
markjaquith
5cd38edafe possible solution for #3215
git-svn-id: http://svn.automattic.com/wordpress/trunk@4445 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-03 02:42:47 +00:00
ryan
db789c6f59 category_before and category_after
git-svn-id: http://svn.automattic.com/wordpress/trunk@4444 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-02 22:12:13 +00:00
markjaquith
b32ddc7ea0 Make menu items linked with relative URLs. Props bmontgom. fixes #3246
git-svn-id: http://svn.automattic.com/wordpress/trunk@4443 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-02 06:07:59 +00:00
markjaquith
2bc8665e0d I before E except after C. Props schulte and Nazgul. fixes #3314
git-svn-id: http://svn.automattic.com/wordpress/trunk@4442 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-02 06:01:12 +00:00
markjaquith
32815e5c71 Another autosave typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4441 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-02 02:47:59 +00:00
ryan
917e73da40 Seconds not milliseconds.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4440 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-01 17:19:33 +00:00
ryan
4771a89e34 Typo
git-svn-id: http://svn.automattic.com/wordpress/trunk@4439 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-11-01 16:49:23 +00:00
markjaquith
439538aa5b Catch NULL, bool, and integer values in is_serialized(). Props mdawaffe. fixes #3310
git-svn-id: http://svn.automattic.com/wordpress/trunk@4438 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-31 08:24:09 +00:00
markjaquith
2b1f1fd240 More [4432] cleanup. fixes #3309
git-svn-id: http://svn.automattic.com/wordpress/trunk@4437 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-31 06:50:38 +00:00
markjaquith
21586ee6b6 [4432] missed "comment => c" conversion in edit_comment_link(). Props tinyau. fixes #3309
git-svn-id: http://svn.automattic.com/wordpress/trunk@4436 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-31 06:13:43 +00:00
markjaquith
9b0c765df6 Better preservation of query string when using add_query_arg(). Props in self- and Andy-flavored varieties. fixes #3308
git-svn-id: http://svn.automattic.com/wordpress/trunk@4435 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-31 05:49:14 +00:00
matt
c93dcc13d3 Missing var change from last changeset
git-svn-id: http://svn.automattic.com/wordpress/trunk@4434 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-30 20:37:59 +00:00
ryan
5e605dfa5b Autosave periodical executor from masquerade. fixes #3195
git-svn-id: http://svn.automattic.com/wordpress/trunk@4433 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-30 20:18:59 +00:00
matt
b6a531917e Make these links shorter and remove unneeded vars
git-svn-id: http://svn.automattic.com/wordpress/trunk@4432 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-30 19:27:24 +00:00
markjaquith
bc0594c5cb Bookmarklet consistency patch by foolswisdom. fixes #3168
git-svn-id: http://svn.automattic.com/wordpress/trunk@4429 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-27 22:15:38 +00:00
markjaquith
0b0c6b3f52 Temporary image parsing fix from mdawaffe until a more robust attachment API is ready. fixes #3287
git-svn-id: http://svn.automattic.com/wordpress/trunk@4427 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-27 03:58:53 +00:00
markjaquith
1001b4c5b8 Allow "quoted strings" to be used in searches. mega free-beer-when-I-finally-meet-you-in-person props to ringmaster. fixes #3177
git-svn-id: http://svn.automattic.com/wordpress/trunk@4426 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-27 03:47:43 +00:00
ryan
209ca583ff get_page_by_title()
git-svn-id: http://svn.automattic.com/wordpress/trunk@4425 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-26 19:55:10 +00:00
ryan
c476029674 Set eol style. fixes #3264
git-svn-id: http://svn.automattic.com/wordpress/trunk@4424 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-25 22:55:05 +00:00
markjaquith
ea1d50ffc3 emergency Hello Dolly surgery. Crisis averted! Props joti. fixes #3282
git-svn-id: http://svn.automattic.com/wordpress/trunk@4423 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-25 21:39:32 +00:00
ryan
2775a8a552 RTL fixes from Sewar. fixes #3217
git-svn-id: http://svn.automattic.com/wordpress/trunk@4422 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-25 21:35:40 +00:00
ryan
2acddcaee6 Set eol style on css files.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4421 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-25 21:34:42 +00:00
ryan
3df0420a56 RTL fixes from Sewar. #3217
git-svn-id: http://svn.automattic.com/wordpress/trunk@4420 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-25 21:32:20 +00:00
markjaquith
3795560bc6 Fix post meta caching system to reduce queries and eliminate redundant WP code. fixes #3273
git-svn-id: http://svn.automattic.com/wordpress/trunk@4419 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-24 10:52:59 +00:00
markjaquith
4c586e45ff unserialize serialized strings for ajax custom field addition. fixes #2591
git-svn-id: http://svn.automattic.com/wordpress/trunk@4418 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-24 09:14:47 +00:00
markjaquith
0fd28b6d83 Don't assume that TinyMCE exists, and degrade gracefully if it doesn't. fixes #3272
git-svn-id: http://svn.automattic.com/wordpress/trunk@4417 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-24 03:57:19 +00:00
markjaquith
b228b5eda2 Treat those chars specially
git-svn-id: http://svn.automattic.com/wordpress/trunk@4415 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-23 05:53:12 +00:00
ryan
ea9df4eb3f Init query_vars as an array.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4414 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-23 01:34:00 +00:00
markjaquith
0c12548e12 increase postmeta dropdown limit to 30, add filter for the limit, sort the keys. props Alex King. fixes #3237
git-svn-id: http://svn.automattic.com/wordpress/trunk@4413 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-22 03:18:07 +00:00
markjaquith
fa91c7b642 Cast to array in xmlrpc.php. fixes #3266
git-svn-id: http://svn.automattic.com/wordpress/trunk@4412 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-21 10:42:42 +00:00
markjaquith
e7b9e6ac2d Revert [3952] because it causes double slashing
git-svn-id: http://svn.automattic.com/wordpress/trunk@4409 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-19 00:39:01 +00:00
markjaquith
e04c8d972e Attachment link fixes from mdawaffe. fixes #3261
git-svn-id: http://svn.automattic.com/wordpress/trunk@4408 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-19 00:37:10 +00:00
markjaquith
5d42dae380 Add wp_redirect filter, with cancel ability. fixes #3250
git-svn-id: http://svn.automattic.com/wordpress/trunk@4407 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-18 22:02:30 +00:00
ryan
514b7a3415 i18n fix from Sewar. fixes #3242
git-svn-id: http://svn.automattic.com/wordpress/trunk@4405 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-18 21:04:27 +00:00
ryan
fa133a0fce Fix handling of stylesheet only themes that live two-levels deep.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4404 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-18 20:24:59 +00:00
markjaquith
5aeac330dc Entity encode image title attribute. Props mdawaffe. fixes #3258
git-svn-id: http://svn.automattic.com/wordpress/trunk@4402 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-17 18:24:36 +00:00
matt
fb64ee90ef Some helper functions for themes and images
git-svn-id: http://svn.automattic.com/wordpress/trunk@4401 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-16 06:06:18 +00:00
matt
61aa085018 Allow themes in subdirectories.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4400 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-16 05:57:33 +00:00
markjaquith
5d34552e04 SimplePie patch not ready for prime time. Need it to be a drop-in solution. Reverting to MagpieRSS for now.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4399 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-16 04:16:06 +00:00
matt
a98d2a37b5 Bring a little love to the oft-neglected email comment approval page.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4398 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-15 01:47:05 +00:00
matt
c14edc434a This is vestigal
git-svn-id: http://svn.automattic.com/wordpress/trunk@4397 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-15 01:44:37 +00:00
markjaquith
997b5c7c3b Only run stripslashes() on strings in update_usermeta(). Props stm. fixes #3240
git-svn-id: http://svn.automattic.com/wordpress/trunk@4396 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-14 05:35:50 +00:00
markjaquith
fd5492d87b Code cleanup: wp-includes/plugin.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@4394 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-13 14:01:53 +00:00
markjaquith
6c7037a96d Code cleanup: wp-includes/feed.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@4393 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-13 13:49:39 +00:00
markjaquith
cd5cb736ec Code cleanup: wp-includes/theme.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@4392 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-13 10:33:44 +00:00
markjaquith
a4b132aeba Point to renamed SimplePie file
git-svn-id: http://svn.automattic.com/wordpress/trunk@4391 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-13 10:20:18 +00:00
markjaquith
d703e302db Rename SimplePie name to follow standard
git-svn-id: http://svn.automattic.com/wordpress/trunk@4390 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-13 10:18:27 +00:00
markjaquith
f215d88f18 File handling tweaks in latest SimplePie trunk.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4389 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-13 09:51:34 +00:00
matt
94fc4bdc61 Don't let people upload files bigger than PHP will allow, and echo out the limit. This should be done for the inline uploader too (ping mdawaffe)
git-svn-id: http://svn.automattic.com/wordpress/trunk@4388 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-13 07:44:35 +00:00
markjaquith
e18222df3d fix function name error in last two commits. fixes #3228
git-svn-id: http://svn.automattic.com/wordpress/trunk@4387 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-13 06:08:27 +00:00
markjaquith
6c5769cc4c make_clickable() now faster and supports more link positions, from mdawaffe and myself. fixes #3228
git-svn-id: http://svn.automattic.com/wordpress/trunk@4386 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-13 06:01:33 +00:00
markjaquith
21d1fc231c cleanup [4382] a bit
git-svn-id: http://svn.automattic.com/wordpress/trunk@4383 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-13 00:23:25 +00:00
markjaquith
854cf56a7d Prevent users from entering strings that will be interpreted as serialized arrays/objects on the way out. fixes #2591
git-svn-id: http://svn.automattic.com/wordpress/trunk@4382 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-12 23:54:36 +00:00
markjaquith
b77b63ebd7 inline uploader link absolution by mdawaffe. fixes #3220
git-svn-id: http://svn.automattic.com/wordpress/trunk@4381 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-12 10:16:03 +00:00
markjaquith
f771adf9ee Somewhat stricter smilies replacements by Nazgul. fixes #3222
git-svn-id: http://svn.automattic.com/wordpress/trunk@4380 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-12 10:14:14 +00:00
markjaquith
b6349f87ce wp_die() fix for 5 minute install from alanjcastonguay. fixes #3231
git-svn-id: http://svn.automattic.com/wordpress/trunk@4379 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-12 02:33:03 +00:00
markjaquith
26f220a947 The changing of the pies. Now using SimplePie. props to gsnedders. fixes #2864
git-svn-id: http://svn.automattic.com/wordpress/trunk@4378 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-11 23:03:17 +00:00
markjaquith
58d7cc306f Pie fight! Meet SimplePie.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4377 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-11 22:40:34 +00:00
markjaquith
b111d993b5 "Code is Poetry" by Viper007Bond. fixes #3230
git-svn-id: http://svn.automattic.com/wordpress/trunk@4375 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-11 09:26:13 +00:00
markjaquith
c3f6e89f0c Blogroll link visibility typo fix by foolswisdom. fixes #3226
git-svn-id: http://svn.automattic.com/wordpress/trunk@4374 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-11 09:23:24 +00:00
markjaquith
6e8d3ba537 Post meta caching fix by mdawaffe. fixes #3229
git-svn-id: http://svn.automattic.com/wordpress/trunk@4372 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-11 09:18:54 +00:00
matt
d26379af97 Some action in get_header and footer
git-svn-id: http://svn.automattic.com/wordpress/trunk@4371 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-11 03:39:13 +00:00
matt
df4be26fb0 Missed one in [4369]
git-svn-id: http://svn.automattic.com/wordpress/trunk@4370 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-10 09:08:33 +00:00
matt
59b3ce97cf Capitalization fixes in importers. Hat tip: Niall.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4369 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-10 09:07:06 +00:00
markjaquith
91b84a04f4 Less run-on first comment. fixes #3196
git-svn-id: http://svn.automattic.com/wordpress/trunk@4366 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-10 04:48:49 +00:00
markjaquith
3363763240 Order get_editable_authors() by display_name. Props Paolo Gabrielli. fixes #2370
git-svn-id: http://svn.automattic.com/wordpress/trunk@4364 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-10 04:16:12 +00:00
markjaquith
6434941763 Matt, likes, lots, of, commas,,,
git-svn-id: http://svn.automattic.com/wordpress/trunk@4363 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-08 21:23:26 +00:00
ryan
287467334e Change cron arg passing. Props masquerade. fixes #3169.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4362 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-08 17:50:21 +00:00
markjaquith
df47e48d7c WXR export shouldn't sell itself short!
git-svn-id: http://svn.automattic.com/wordpress/trunk@4361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-07 23:50:13 +00:00
ryan
e710ff1a29 Smilies optimization from Nazgul. fixes #3201 #3216
git-svn-id: http://svn.automattic.com/wordpress/trunk@4360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-07 19:16:24 +00:00
ryan
fce38c2c1f RTL support for login sand wp_die() from Sewar. fixes #3136
git-svn-id: http://svn.automattic.com/wordpress/trunk@4359 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-07 19:12:33 +00:00
ryan
8993263634 Typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4358 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-07 19:00:32 +00:00
matt
893c0e3b26 The isset broke when we defined the var to fix E_ALL warnings, making the leading raquo appear on homepages.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4357 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-07 18:54:56 +00:00
ryan
5cb769ff02 Update script version.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4356 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-07 18:42:34 +00:00
ryan
12c6583306 Inline uploader styling from mdawaffe. fixes #3212
git-svn-id: http://svn.automattic.com/wordpress/trunk@4355 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-07 18:31:39 +00:00
markjaquith
5168a867e4 revert login $_POST vars change from [4339]. fixes #3123
git-svn-id: http://svn.automattic.com/wordpress/trunk@4354 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-07 03:02:42 +00:00
ryan
f23a961877 Relativize links. Props mdawaffe. fixes #3211
git-svn-id: http://svn.automattic.com/wordpress/trunk@4353 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-06 22:43:21 +00:00
matt
96e646b5a7 Cut off really long post titles so they don't run into the blog titles, for people like Lorelle and WLTC who have extraordinarily long post titles. ;)
git-svn-id: http://svn.automattic.com/wordpress/trunk@4352 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-06 17:49:54 +00:00
markjaquith
2883e34069 avoid double time offset in calendar. props to priv. fixes #2189
git-svn-id: http://svn.automattic.com/wordpress/trunk@4350 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-06 11:22:42 +00:00
matt
c437b9c9b0 Some UI cleanups, changes, and various miscellany.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4349 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-06 01:14:47 +00:00
ryan
7757b7ff4e Relativize links. Props mdawaffe.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4348 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-06 00:34:58 +00:00
markjaquith
2baac24452 "Compose" becomes "Editor" in RTE. fixes #3172
git-svn-id: http://svn.automattic.com/wordpress/trunk@4347 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-05 06:34:17 +00:00
markjaquith
44cfde6f04 fix usage of $m and return behavior in single_month_title(). fixes #3207
git-svn-id: http://svn.automattic.com/wordpress/trunk@4346 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-05 03:12:24 +00:00
markjaquith
a9d23d40d5 allow timer_stop() to use number_format() when returning. Props mdawaffe and nbachiyski. fixes #991
git-svn-id: http://svn.automattic.com/wordpress/trunk@4345 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 22:00:53 +00:00
markjaquith
1c9f6b4852 Better tabbing and newlining for RSS categories. Props coffee2code and Nazgul. fixes #1156
git-svn-id: http://svn.automattic.com/wordpress/trunk@4342 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 21:46:42 +00:00
ryan
95512f2d80 Uploader improvements from mdawaffe. fixes #3191
git-svn-id: http://svn.automattic.com/wordpress/trunk@4340 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 17:19:10 +00:00
ryan
00326bd9ef Improved login from Viper007Bond. fixes #3123
git-svn-id: http://svn.automattic.com/wordpress/trunk@4339 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 16:47:50 +00:00
markjaquith
5d3de3ef4e Publishing of blank pages or posts now kicks you back to the appropriate Write screen without an errant message. Props majelbstoat. fixes #3198
git-svn-id: http://svn.automattic.com/wordpress/trunk@4338 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 13:16:07 +00:00
markjaquith
a9e165babd remove page_options reference to defunct open_proxy_check option. Props Donncha. fixes #3204
git-svn-id: http://svn.automattic.com/wordpress/trunk@4337 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 13:03:13 +00:00
markjaquith
2c1907d29f CSS and consistency fixes for options.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@4336 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 12:58:05 +00:00
markjaquith
88b1b44cae remove bogus "action" option on upgrade
git-svn-id: http://svn.automattic.com/wordpress/trunk@4334 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 12:22:20 +00:00
markjaquith
12a455c39d Prevent non-option form elements from sneaking in to the options table. fixes #2595
git-svn-id: http://svn.automattic.com/wordpress/trunk@4332 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 12:18:28 +00:00
markjaquith
3c6648e96c preserve multi-line options in options.php. Props Viper007Bond. fixes #2456
git-svn-id: http://svn.automattic.com/wordpress/trunk@4330 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 11:28:38 +00:00
markjaquith
b869fd07f8 options stripslashes-fu by mdawaffe. #3095
git-svn-id: http://svn.automattic.com/wordpress/trunk@4329 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 11:02:31 +00:00
markjaquith
c95f68bcb9 printf(), not print_f().
git-svn-id: http://svn.automattic.com/wordpress/trunk@4327 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 10:35:49 +00:00
markjaquith
a008bb73ca hide Update Service option and display a friendly note when Privacy is turned on. Props mdawaffe for finding the culprit. fixes #3203
git-svn-id: http://svn.automattic.com/wordpress/trunk@4326 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 10:27:53 +00:00
markjaquith
357cff9ddc move plugin sorting (by Name) to get_plugins() so that it works for the Edit Plugins page too. fixes: #2412
git-svn-id: http://svn.automattic.com/wordpress/trunk@4325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 09:36:21 +00:00
markjaquith
3316a65f8e sort plugins by plugin name, for real. fixes #2412
git-svn-id: http://svn.automattic.com/wordpress/trunk@4322 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 08:56:44 +00:00
markjaquith
9a114c40e2 Manage Posts: hide empty categories in dropdown, provide hook for custom filtering. Props westi. fixes #3120
git-svn-id: http://svn.automattic.com/wordpress/trunk@4321 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 07:54:38 +00:00
markjaquith
175bfff21d Strip out British pound sterling (pound) symbol from post slug. fixes #2735
git-svn-id: http://svn.automattic.com/wordpress/trunk@4320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 07:51:11 +00:00
markjaquith
2537888779 Better notice and link after post/page saving. Props mdawaffe. fixes #1690
git-svn-id: http://svn.automattic.com/wordpress/trunk@4317 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 07:46:47 +00:00
markjaquith
f26dffc5d0 Manage Posts paging fix from Westi. fixes #2693
git-svn-id: http://svn.automattic.com/wordpress/trunk@4316 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 07:43:23 +00:00
markjaquith
c0c0885c61 Refrain from reading files of 0 length. Props technosailor. fixes #1999
git-svn-id: http://svn.automattic.com/wordpress/trunk@4314 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 07:29:33 +00:00
markjaquith
7d037d255d edit link next to each plugin. Props David House. fixes #1657
git-svn-id: http://svn.automattic.com/wordpress/trunk@4313 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 06:48:52 +00:00
ryan
66f5d2c2da Uploader improvements from mdawaffe. fixes #3191
git-svn-id: http://svn.automattic.com/wordpress/trunk@4312 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 06:37:42 +00:00
markjaquith
8e5ef54f14 default category starts out unchecked. Props Viper007Bond. fixes #2938
git-svn-id: http://svn.automattic.com/wordpress/trunk@4311 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 06:17:44 +00:00
markjaquith
9a7f374e7c Allow user replacement of cockney replacement array. fixes #1032
git-svn-id: http://svn.automattic.com/wordpress/trunk@4308 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 06:07:48 +00:00
markjaquith
7d9c326c36 missing wp-config.php error uses wp_die() now. props Nazgul. fixes #1936
git-svn-id: http://svn.automattic.com/wordpress/trunk@4307 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 05:32:18 +00:00
markjaquith
75ec5426d0 avoid $HTTP_RAW_POST_DATA notices. props mgeisler and Nazgul. fixes #1494
git-svn-id: http://svn.automattic.com/wordpress/trunk@4305 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 05:23:10 +00:00
markjaquith
dd4c5f6fd7 Clarify comment_max_links option text. Props chrisdolan and Nazgul. fixes 1397
git-svn-id: http://svn.automattic.com/wordpress/trunk@4303 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 05:06:51 +00:00
markjaquith
48ddfe8613 remove unused mkdir_p() function. props Nazgul. fixes #3079
git-svn-id: http://svn.automattic.com/wordpress/trunk@4301 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 04:53:48 +00:00
markjaquith
1b1b5bfe03 comment link counting improvements from Nazgul. fixes: #938
git-svn-id: http://svn.automattic.com/wordpress/trunk@4299 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 04:43:25 +00:00
markjaquith
b5595e9600 Better phrasing for date format text. Props abhay and zedlander. fixes: #2602
git-svn-id: http://svn.automattic.com/wordpress/trunk@4297 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 04:37:00 +00:00
markjaquith
764fca95fd pass incoming Technorati links through wptexturize(). Props Nazgul. fixes: #2856
git-svn-id: http://svn.automattic.com/wordpress/trunk@4295 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 04:23:21 +00:00
markjaquith
2c775dede6 remove comment_user_domain cruft. Props Nazgul. fixes #3197
git-svn-id: http://svn.automattic.com/wordpress/trunk@4293 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 03:58:43 +00:00
markjaquith
054c25887f nocache_headers from _ck_ and Nazgul. fixes #3027
git-svn-id: http://svn.automattic.com/wordpress/trunk@4291 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 03:54:10 +00:00
markjaquith
a450c80a6a case insensitive sorting. props Nazgul. fixes #3108
git-svn-id: http://svn.automattic.com/wordpress/trunk@4289 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 03:49:56 +00:00
ryan
0947d74004 Silence gethostbyaddr(). Props MarkJaquith. fixes #2759
git-svn-id: http://svn.automattic.com/wordpress/trunk@4288 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 03:05:54 +00:00
ryan
829a3570c4 Quote weblog title in email From header. Props graeme and Nazgul. fixes #1716
git-svn-id: http://svn.automattic.com/wordpress/trunk@4286 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 03:03:41 +00:00
ryan
8567d57da9 Smiley parsing fixes from Nazgul. fixes #2444 #1279
git-svn-id: http://svn.automattic.com/wordpress/trunk@4283 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 02:21:27 +00:00
ryan
550956ddf2 Grammar fix. Props Nazgul. fixes #3196
git-svn-id: http://svn.automattic.com/wordpress/trunk@4282 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-04 02:02:22 +00:00
ryan
df5afdf54b Increment tok_index. fixes #2785
git-svn-id: http://svn.automattic.com/wordpress/trunk@4279 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-03 15:56:23 +00:00
ryan
1b5577f846 more-link css class. Props Viper007Bond. fixes #3009
git-svn-id: http://svn.automattic.com/wordpress/trunk@4278 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-03 15:46:45 +00:00
ryan
c4a4ea83b1 Init vars before use. Props Alex King. fixes #3180
git-svn-id: http://svn.automattic.com/wordpress/trunk@4277 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-03 15:41:44 +00:00
ryan
41dfdfd0f6 Pageinate upload tabs. From the Paginator, mdawaffe. fixes #3193
git-svn-id: http://svn.automattic.com/wordpress/trunk@4276 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-03 15:40:26 +00:00
ryan
60394dd674 paginate_links() from mdawaffe. fixes #3159
git-svn-id: http://svn.automattic.com/wordpress/trunk@4275 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-03 07:16:49 +00:00
ryan
b5741c1270 Uploader improvements from mdawaffe. fixes #3191
git-svn-id: http://svn.automattic.com/wordpress/trunk@4274 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-03 07:15:13 +00:00
ryan
f1f2928770 Don't do status_header for IIS. Props Mark Jaquith. fixes #3190
git-svn-id: http://svn.automattic.com/wordpress/trunk@4273 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-03 00:28:06 +00:00
ryan
6a11fe2c7a Show all cats when editing link. Order cats by most used.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4272 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-02 21:52:11 +00:00
ryan
e416b64e80 Do only the minimum sanitization on the URL redirect. fixes #2994
git-svn-id: http://svn.automattic.com/wordpress/trunk@4268 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-02 19:26:12 +00:00
ryan
13eb3fbb0d Add and use delete class on delete buttons. Props mdawaffe. fixes #3187
git-svn-id: http://svn.automattic.com/wordpress/trunk@4267 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-02 18:34:08 +00:00
ryan
2f93dc5e8c Use correct var. Props Nazgul. fixes #3182
git-svn-id: http://svn.automattic.com/wordpress/trunk@4266 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-02 18:27:11 +00:00
ryan
8a4b655453 Pluggable comment throttling from Mark Jaquith. fixes #3175
git-svn-id: http://svn.automattic.com/wordpress/trunk@4265 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-02 18:19:44 +00:00
ryan
f129cef6b9 Don't use deprecated functions. Props Nazgul. fixes #3186
git-svn-id: http://svn.automattic.com/wordpress/trunk@4264 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-02 18:03:34 +00:00
ryan
e439988434 wp_list_bookmarks() enhanccements from westi. #2587
git-svn-id: http://svn.automattic.com/wordpress/trunk@4263 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-10-02 18:01:07 +00:00
ryan
ac455f6df8 comment_post_redirect and comment_edit_redirect from Mark J. fixes #2590
git-svn-id: http://svn.automattic.com/wordpress/trunk@4260 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-28 19:16:15 +00:00
ryan
c0580ed6f7 Add support for RTL in install.php, upgrade.php and inline-uploading.php. Props Sewar. #3136
git-svn-id: http://svn.automattic.com/wordpress/trunk@4259 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-28 17:35:59 +00:00
ryan
43f36aab78 RTL enhancements from Sewar. #3136
git-svn-id: http://svn.automattic.com/wordpress/trunk@4258 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-27 00:51:17 +00:00
ryan
4e557e66b7 get_the_category_rss() from masquerade.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4257 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-26 18:05:06 +00:00
ryan
8cf13570c3 Show link images by default, if they are defined.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4256 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-26 14:45:15 +00:00
ryan
f73a8c0447 wp_get_schedule() from masquerade.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4254 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-26 01:14:49 +00:00
ryan
6d3a4429f3 Send 302 on redirect. Props leflo. fixes #3166
git-svn-id: http://svn.automattic.com/wordpress/trunk@4252 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-26 00:55:21 +00:00
ryan
41ba88ad32 Add some IDs. Props Mark Jaquith. fixes #3164
git-svn-id: http://svn.automattic.com/wordpress/trunk@4250 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-25 18:53:48 +00:00
ryan
4e2f949d74 Check if isset to avoid warning. Props Alex King. fixes #3160
git-svn-id: http://svn.automattic.com/wordpress/trunk@4221 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-25 01:21:13 +00:00
ryan
f3de5a0f0e Use delete_page cap. Props activeingredient. fixes #3162
git-svn-id: http://svn.automattic.com/wordpress/trunk@4220 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-25 01:19:08 +00:00
ryan
2d65cdfcd6 Go native.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4219 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-24 20:25:23 +00:00
ryan
22d6b9e2cb Add langauge_attributes() template tag. #3136
git-svn-id: http://svn.automattic.com/wordpress/trunk@4218 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-24 20:16:13 +00:00
ryan
e307c8a125 Add language and text_direction attributes to bloginfo. Set lang and dir attributes in admin header's html tag. #3136
git-svn-id: http://svn.automattic.com/wordpress/trunk@4217 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-24 19:29:32 +00:00
ryan
37d767a019 Don't show user form without privs. Props westi. fixes #3142
git-svn-id: http://svn.automattic.com/wordpress/trunk@4216 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-24 10:08:58 +00:00
matt
a1bf9ad224 This has been a source of security probs, and is mostly replaced by the XML import/export now.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4215 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-24 00:03:33 +00:00
matt
06ddf05ec4 Correct font and height on the #advancedstuff dbx boxes under a post.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4214 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-23 10:22:05 +00:00
matt
9c9a429320 Don't show post author box unless there is more than one author to show.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4213 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-23 10:14:11 +00:00
matt
43c41ff8b2 Add a little class to our links list
git-svn-id: http://svn.automattic.com/wordpress/trunk@4212 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-23 09:33:51 +00:00
ryan
a133ed04a1 Don't reset cookies if INSTALLING.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4211 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-23 06:02:45 +00:00
ryan
a855814939 Tabbed editor fixes from skeltoac. #2829
git-svn-id: http://svn.automattic.com/wordpress/trunk@4210 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-22 22:24:50 +00:00
ryan
6e9539c22c Tabbed editor and autosave fixes. Props skeltoac and westi. #2829
git-svn-id: http://svn.automattic.com/wordpress/trunk@4209 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-22 19:35:37 +00:00
ryan
01949a7967 Check if array index is set. Props Alex King. fixes #3156
git-svn-id: http://svn.automattic.com/wordpress/trunk@4208 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-22 14:40:40 +00:00
ryan
e2a24f068b Remove extra-dimensional character caused by breach in the time-space continuum.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4207 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-22 07:09:15 +00:00
ryan
df430b5df3 Tabbed editor from skeltoac. fixes #2829
git-svn-id: http://svn.automattic.com/wordpress/trunk@4206 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-22 07:04:41 +00:00
ryan
07a02852ef Make sure query vars are set before use. Props Alex King. fixes #3154
git-svn-id: http://svn.automattic.com/wordpress/trunk@4205 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-21 21:05:38 +00:00
ryan
ac8805dbef Make sure vars are set. Props Alex King. fixes #3153
git-svn-id: http://svn.automattic.com/wordpress/trunk@4204 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-21 21:03:11 +00:00
ryan
eb4e2a2216 Prefix unregister_GLOBALS to avoid name collisions. Props westi. fixes #3151
git-svn-id: http://svn.automattic.com/wordpress/trunk@4203 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-21 21:00:22 +00:00
ryan
7a032342b3 Turn hard-coded paths to defines. Pull gettext includes int wp-settings. Props mdawaffe. fixes #3157
git-svn-id: http://svn.automattic.com/wordpress/trunk@4202 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-21 20:46:39 +00:00
ryan
8ca163a2d2 RTL support. Props mani_monaj. #3136
git-svn-id: http://svn.automattic.com/wordpress/trunk@4201 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-21 00:34:34 +00:00
ryan
7d55a43102 Don't use rewrite array as string. fixes #2771
git-svn-id: http://svn.automattic.com/wordpress/trunk@4200 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-21 00:09:37 +00:00
ryan
4be3f7547b Don't allow pages to have the same names as feeds to avoid rewrite collision. Props skeltoac. fixes #1231
git-svn-id: http://svn.automattic.com/wordpress/trunk@4199 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-21 00:01:20 +00:00
ryan
a40292bfb4 Warning and notice fixes from Alex King. fixes #3148
git-svn-id: http://svn.automattic.com/wordpress/trunk@4198 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-19 23:56:28 +00:00
matt
ae72e8377d These should say the same things.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4197 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-19 15:11:51 +00:00
matt
67d5a6d3c7 Options cleanup and some styling changes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4196 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-19 06:11:42 +00:00
ryan
8c9e11f11b Encode percent to avoid broken permalinks. Props majelbstoat. fixes #569
git-svn-id: http://svn.automattic.com/wordpress/trunk@4195 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-19 03:05:08 +00:00
ryan
5dc154c1e2 Fix logo link in wp_die(). Props Sewar. fixes #3138
git-svn-id: http://svn.automattic.com/wordpress/trunk@4194 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-18 23:40:19 +00:00
ryan
510c17a977 Validation fix from Viper007Bond. fixes #3140
git-svn-id: http://svn.automattic.com/wordpress/trunk@4193 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-18 23:33:25 +00:00
ryan
a26b883e84 Markup fix from Xmion. fixes #3133
git-svn-id: http://svn.automattic.com/wordpress/trunk@4192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-17 03:08:47 +00:00
ryan
730ee49509 Typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4191 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-14 00:25:59 +00:00
ryan
9431f91ff6 Cron unscheduling fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4190 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-14 00:18:05 +00:00
ryan
68aa6231a2 cron and future post publishing fixes. fixes #3058
git-svn-id: http://svn.automattic.com/wordpress/trunk@4189 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-13 23:54:15 +00:00
ryan
986f88a690 Bump script vers.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4188 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-13 21:46:29 +00:00
ryan
ce0c2a2f64 AJAX responsiveness improvements from mdawaffe. fixes #3099
git-svn-id: http://svn.automattic.com/wordpress/trunk@4187 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-13 21:39:53 +00:00
ryan
ad1924f837 do_action_ref_array(). fixes #3125
git-svn-id: http://svn.automattic.com/wordpress/trunk@4186 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-12 17:45:23 +00:00
ryan
b6ce612ffe Add ping status to autosave post array. Props skeltoac.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4185 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-12 00:01:18 +00:00
ryan
f666759471 Show more link in RSS. Don't show more link if more link text empty. Take more into account when creating excerpt.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4184 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-11 23:59:00 +00:00
ryan
0eeccc10e9 Add load action for pagenow.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4183 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-11 23:57:34 +00:00
matt
0957f9a061 Bring back missing filter for wp_create_thumbnail
git-svn-id: http://svn.automattic.com/wordpress/trunk@4182 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-11 02:19:15 +00:00
ryan
adb2e50e8d Add explain_nonce filter. Props mdawaffe. fixes #3121
git-svn-id: http://svn.automattic.com/wordpress/trunk@4181 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-10 17:49:24 +00:00
ryan
e02c90116e Get pages by author[s]. Props westi. fixes #1486
git-svn-id: http://svn.automattic.com/wordpress/trunk@4180 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-10 17:47:49 +00:00
ryan
3964d277ce Pass along the modified string instead of the original. fixes #3118
git-svn-id: http://svn.automattic.com/wordpress/trunk@4179 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-10 17:16:20 +00:00
ryan
5af4905706 We no longer need the outer array.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4178 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-09 01:09:21 +00:00
ryan
93a7a9617f do_action and apply_filters arg passing sanity from mdawaffe. fixes #3116
git-svn-id: http://svn.automattic.com/wordpress/trunk@4177 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-08 23:19:29 +00:00
ryan
9e240a859f Specify number of accepted args.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4176 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-08 23:18:03 +00:00
ryan
5898bcca41 Move home and siteurl update events to action hooks.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4175 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-08 21:42:05 +00:00
ryan
0f7bb42a79 timer_stop() wanted to be near timer_start().
git-svn-id: http://svn.automattic.com/wordpress/trunk@4174 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-07 23:26:52 +00:00
ryan
b4ce019386 Avoid infinite loop when category_parent equals cat_ID
git-svn-id: http://svn.automattic.com/wordpress/trunk@4173 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-07 17:42:24 +00:00
ryan
5129cbeb3e Honor show_post_count. Props westi. fixes #3110
git-svn-id: http://svn.automattic.com/wordpress/trunk@4172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-07 17:38:43 +00:00
ryan
853c59eeb3 the_search_query() from mdawaffe. fixes #914
git-svn-id: http://svn.automattic.com/wordpress/trunk@4171 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-07 17:37:26 +00:00
ryan
42a9977b7e gettext Add. Props nbachiyski. fixes #3114
git-svn-id: http://svn.automattic.com/wordpress/trunk@4170 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-07 17:30:06 +00:00
ryan
6b7de4afd3 Validate good times, come on. Props Viper007Bond. fixes #3113
git-svn-id: http://svn.automattic.com/wordpress/trunk@4169 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-07 17:28:29 +00:00
ryan
0dedf49547 Add bloginfo_url filter from Kafkaesqui. fixes #2643
git-svn-id: http://svn.automattic.com/wordpress/trunk@4168 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-07 00:35:42 +00:00
ryan
2879a6219e Recognize paragraph tags with attributes when stripping breaks. Props rockinfree. fixes #1706
git-svn-id: http://svn.automattic.com/wordpress/trunk@4167 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-07 00:33:05 +00:00
ryan
25b7a56d8b Remove is_search() check that will never be reached. fixes #1076
git-svn-id: http://svn.automattic.com/wordpress/trunk@4166 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-07 00:25:48 +00:00
ryan
ebbcf250d5 i18n fixes from nbachiyski. fixes #3109
git-svn-id: http://svn.automattic.com/wordpress/trunk@4165 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-05 18:52:24 +00:00
ryan
261b9c73b0 Enable quicktags for safari. Props mattyrob. fixes #3051
git-svn-id: http://svn.automattic.com/wordpress/trunk@4164 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-03 19:35:37 +00:00
ryan
5dc1aaf918 Revert accidental commit.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4163 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-02 22:08:10 +00:00
ryan
30dcdb6b49 Nonce delete comment. Props mdawaffe. fixes #3103
git-svn-id: http://svn.automattic.com/wordpress/trunk@4162 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-02 22:05:37 +00:00
matt
3017bb3bc8 Oh raquo, don't leave us now.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4161 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-02 21:33:33 +00:00
ryan
c84524f349 db.php instead of wp-db.php for pluggable DB load. #2721
git-svn-id: http://svn.automattic.com/wordpress/trunk@4160 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-02 20:27:51 +00:00
ryan
f8c681b9ef Check excerpt when determing if a post is empty. #3097
git-svn-id: http://svn.automattic.com/wordpress/trunk@4159 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-02 20:19:07 +00:00
ryan
3e076ba536 Page cap fixes from activeingredient. fixes #3096
git-svn-id: http://svn.automattic.com/wordpress/trunk@4158 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-02 17:15:18 +00:00
ryan
e41db03b26 Ajax post meta fixes from mdawaffe. fixes #3098
git-svn-id: http://svn.automattic.com/wordpress/trunk@4157 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-02 17:03:57 +00:00
ryan
02ad124b46 Use wp_dropdown_categories(). Fix padding. Don't allow a cat to be it's own parent. Props westi. fixes #3088
git-svn-id: http://svn.automattic.com/wordpress/trunk@4156 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-01 20:38:24 +00:00
ryan
202c2067b4 Resolve table ambiguity.Props filosofo. fixes #3091
git-svn-id: http://svn.automattic.com/wordpress/trunk@4155 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-01 18:50:58 +00:00
ryan
c01753aff6 Allow pluggable wp-db. #2721
git-svn-id: http://svn.automattic.com/wordpress/trunk@4154 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-01 18:47:47 +00:00
ryan
4cc5a3d8e9 Instantiate wpdb only if not already set. #2721
git-svn-id: http://svn.automattic.com/wordpress/trunk@4153 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-09-01 18:44:13 +00:00
ryan
ad0fa5ef99 Use home instead of PHP_SELF. Props mdawaffe. fixes #895
git-svn-id: http://svn.automattic.com/wordpress/trunk@4152 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-31 21:38:42 +00:00
ryan
37d342ef03 Make the current cat the selected cat when doing a category query. fixes #1194
git-svn-id: http://svn.automattic.com/wordpress/trunk@4151 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-31 21:36:21 +00:00
ryan
241d0e8f11 strip CDATA from title. Props pgarrett and mdawaffe. fixes #879
git-svn-id: http://svn.automattic.com/wordpress/trunk@4150 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-31 17:36:35 +00:00
ryan
64a2c6bdf1 Post date fixes. Props mdawaffe. fixes #878
git-svn-id: http://svn.automattic.com/wordpress/trunk@4149 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-31 17:34:56 +00:00
ryan
99380ce7b2 Fix percent stripping in clean_url.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4148 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-31 17:30:17 +00:00
ryan
a66eed3695 Add xmlrpc_publish_post action.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4147 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-31 05:21:27 +00:00
ryan
47e7b92b11 Deprecate idmode. fixes #2386
git-svn-id: http://svn.automattic.com/wordpress/trunk@4146 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-31 05:07:12 +00:00
ryan
b8921bfac8 Typo fix. Props schulte. fixes #3087
git-svn-id: http://svn.automattic.com/wordpress/trunk@4145 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-31 00:10:59 +00:00
ryan
849a0d29d7 Use get_option instead of get_settings. Just 'cause.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4144 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 21:46:31 +00:00
ryan
c6019230fc Grammar fix. fixes #3026
git-svn-id: http://svn.automattic.com/wordpress/trunk@4143 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 21:02:12 +00:00
ryan
a22a9f25c3 Deprecate link_pages(). Clean up wp_link_pages().
git-svn-id: http://svn.automattic.com/wordpress/trunk@4142 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 21:00:37 +00:00
ryan
3879ad5584 Fix query parsing. Props westi. fixes #3085
git-svn-id: http://svn.automattic.com/wordpress/trunk@4141 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 18:37:33 +00:00
ryan
09f48489e1 Resurrect idmode. Props MichaelH and westi. fixes #2386
git-svn-id: http://svn.automattic.com/wordpress/trunk@4140 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 18:09:12 +00:00
ryan
d71d2abfc7 Deprecate get_author_link(). Add get_author_posts_url() and the_author_link(). Props Viper007Bond and westi. fixes #2423
git-svn-id: http://svn.automattic.com/wordpress/trunk@4139 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 18:07:49 +00:00
ryan
e2f641e457 Add yearly archive display option. Props stewart and westi. fixes #2352
git-svn-id: http://svn.automattic.com/wordpress/trunk@4138 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 17:23:42 +00:00
ryan
db5d9a84ba Add Browse Category dropdown. Props westi and thomas. fixes #2340
git-svn-id: http://svn.automattic.com/wordpress/trunk@4137 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 17:17:09 +00:00
ryan
c0da1aab0d Rename Nickname to Username and mark Username and E-mail as required. Props filosofo. fixes #2940
git-svn-id: http://svn.automattic.com/wordpress/trunk@4136 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 17:09:50 +00:00
ryan
bbb5ffca6d Don't duplicate nofollow on edit. Props filosofo. fixes #2995
git-svn-id: http://svn.automattic.com/wordpress/trunk@4135 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 16:50:12 +00:00
ryan
cdc1c73f61 the_modified_date(). Props westi. fixes #2374
git-svn-id: http://svn.automattic.com/wordpress/trunk@4134 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 16:46:08 +00:00
ryan
efcb63ad21 s/URI/URL/. Props Nazgul. fixes #2666
git-svn-id: http://svn.automattic.com/wordpress/trunk@4133 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 16:40:17 +00:00
ryan
2df111aadf Cast page_id to int before deciding if is_page. fixes #2769
git-svn-id: http://svn.automattic.com/wordpress/trunk@4132 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 09:41:40 +00:00
ryan
b55b6aa240 Allow stylesheet only themes to provide functions.php. Props skeltoac. fixes #3048
git-svn-id: http://svn.automattic.com/wordpress/trunk@4131 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 09:14:37 +00:00
ryan
ef252310ae Add cap checks around getting started links. Props Mark J. fixes #3074
git-svn-id: http://svn.automattic.com/wordpress/trunk@4130 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 09:12:29 +00:00
ryan
42fffa9296 Deprecate query_string. Add 'request' filter to filter the array of query vars. Pass around arrays instead of query strings. fixes #2777
git-svn-id: http://svn.automattic.com/wordpress/trunk@4129 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 05:41:38 +00:00
ryan
51005b397d Allow passing an associative array of query vars to avoid parse_str overhead.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4128 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 04:02:12 +00:00
ryan
79e681baf5 Feeds for singular object queries should be comment feeds.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4127 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 03:34:17 +00:00
ryan
f5be1bb637 Add is_singular() convenience function.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4126 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 03:33:39 +00:00
ryan
f600dfacfa Capitalization fixes from foolswisdom and davidosier. fixes #3077
git-svn-id: http://svn.automattic.com/wordpress/trunk@4125 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 01:47:01 +00:00
ryan
1c04e53dcd style tweakage
git-svn-id: http://svn.automattic.com/wordpress/trunk@4124 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 01:11:49 +00:00
ryan
bad9c9f18d Keep the frag at the end. Props mdawaffe. fixes #3078
git-svn-id: http://svn.automattic.com/wordpress/trunk@4123 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-30 01:02:45 +00:00
ryan
11e556e7e6 Allow passing extra data back with errors.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4122 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-29 20:17:41 +00:00
ryan
eb78ba192c Alpha bumpage.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4121 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-28 23:15:52 +00:00
ryan
4f10239e93 Add page specific admin_head action. Add admin_print_scripts actions.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4120 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-28 23:08:48 +00:00
ryan
8460a0750d Handle posts with an empty cat list. fixes #3072
git-svn-id: http://svn.automattic.com/wordpress/trunk@4119 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-27 19:26:03 +00:00
ryan
39e27240a8 Don't specialchar user description on save. fixes #3069
git-svn-id: http://svn.automattic.com/wordpress/trunk@4118 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-25 17:47:19 +00:00
ryan
ae61439266 Don't save if both title and content are empty. fixes #2390
git-svn-id: http://svn.automattic.com/wordpress/trunk@4117 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-25 00:27:15 +00:00
ryan
e650a94fd0 Add single_cat_title filter. Props ryanscheuermann. fixes #2935
git-svn-id: http://svn.automattic.com/wordpress/trunk@4116 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-24 23:50:24 +00:00
ryan
f1664e6dd0 Blog public fix from Mark J. fixes #3023
git-svn-id: http://svn.automattic.com/wordpress/trunk@4115 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-24 23:38:13 +00:00
ryan
2362c86ead comments-rss2 fix from Mark J. fixes #3055
git-svn-id: http://svn.automattic.com/wordpress/trunk@4114 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-24 23:32:47 +00:00
ryan
182bc141e2 Allow use of global roles array instead of options db. Useful for multi-blog setups.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4113 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-24 23:23:36 +00:00
ryan
207d876c81 Make those chars feel special.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4112 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-24 22:33:16 +00:00
ryan
52d65dc101 Die before including the header.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4111 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-22 18:20:00 +00:00
ryan
e31723d61e Add plugin page load hooks. Useful for queueing scripts for a particular plugin page.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4110 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-22 17:38:09 +00:00
ryan
c8ef7e92d6 cache_javascript_headers() from masquerade. fixes #3059 #2799
git-svn-id: http://svn.automattic.com/wordpress/trunk@4109 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-22 17:31:53 +00:00
ryan
424159c96d Code purtification from Mark J. fixes #3060
git-svn-id: http://svn.automattic.com/wordpress/trunk@4108 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-22 09:24:31 +00:00
ryan
b8025e74a8 Use get_option instead of get_bloginfo to retrieve siteurl cause the two aren't the same for some mystical reason.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4107 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-22 05:57:28 +00:00
ryan
f605f4ffd1 Don't page off the end. Props Mark J. fixes #3039
git-svn-id: http://svn.automattic.com/wordpress/trunk@4106 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-18 08:36:11 +00:00
ryan
7102d4dd99 script loader fix from mdawaffe. fixes #2701
git-svn-id: http://svn.automattic.com/wordpress/trunk@4105 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-18 05:23:41 +00:00
ryan
f2ae26089d Update category counts to include children. Don't hide empty parent cats that have non-empty children. Props skeltoac.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4104 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-17 04:46:16 +00:00
ryan
8bfa80dcf4 Don't autosave if no changes. Props masquerade. fixes #3042
git-svn-id: http://svn.automattic.com/wordpress/trunk@4103 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-16 07:28:24 +00:00
ryan
1a9df1c2d5 Don't autosave if no changes. Props masquerade. fixes #3042
git-svn-id: http://svn.automattic.com/wordpress/trunk@4102 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-16 06:56:35 +00:00
ryan
0bc3bd75b9 Autosave focus grab fix from masquerade. fixes #3040
git-svn-id: http://svn.automattic.com/wordpress/trunk@4101 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-16 02:50:03 +00:00
ryan
44b3783d36 More fun with menus.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4100 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-15 22:13:36 +00:00
ryan
b929433507 Kill this check for now.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4099 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-15 21:37:03 +00:00
ryan
db41417539 Update action after generating a new nonce to reduce race condition window.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4098 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-15 21:07:13 +00:00
ryan
0ddaaf590f More menu fixes. #2257
git-svn-id: http://svn.automattic.com/wordpress/trunk@4097 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-15 21:03:11 +00:00
ryan
1d0af8cbc2 Preserve is_feed setting when handling a 404. Props skeltoac. fixes #3019
git-svn-id: http://svn.automattic.com/wordpress/trunk@4096 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-15 05:03:14 +00:00
ryan
6ba1e4dd56 Validate backup and fragment files. Don't allow traversal.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4095 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-15 01:07:51 +00:00
ryan
e36831ae8a Add some spacing
git-svn-id: http://svn.automattic.com/wordpress/trunk@4094 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-14 22:21:22 +00:00
ryan
3b33ed195d menu fixes. #2257 #2696
git-svn-id: http://svn.automattic.com/wordpress/trunk@4093 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-14 21:24:43 +00:00
ryan
756caab182 Init last_result to an empty array. fixes #2913
git-svn-id: http://svn.automattic.com/wordpress/trunk@4092 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 22:23:03 +00:00
ryan
4c1ec6dc5f Fix proxy check regex. Props westi. fixes #3028
git-svn-id: http://svn.automattic.com/wordpress/trunk@4091 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 22:19:28 +00:00
ryan
3ee11a9eb1 Bump mce ver for script loader.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4090 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 22:11:30 +00:00
ryan
f9e9832e36 Bump dbx ver for script loader.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4089 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 21:49:11 +00:00
ryan
a458715afa Fix autosave redirects
git-svn-id: http://svn.automattic.com/wordpress/trunk@4088 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 19:13:00 +00:00
ryan
83665b2bf5 autosave fix ups
git-svn-id: http://svn.automattic.com/wordpress/trunk@4087 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 18:54:09 +00:00
ryan
7ac67243e8 autosave fix ups
git-svn-id: http://svn.automattic.com/wordpress/trunk@4086 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 18:50:28 +00:00
ryan
d52b9b2d2a wpTriggerSave for autosave. does not move cursor.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4085 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 18:19:32 +00:00
ryan
c4a4c6c371 autosave span from masquerade
git-svn-id: http://svn.automattic.com/wordpress/trunk@4084 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 07:26:48 +00:00
ryan
6b095ddfd9 Validation fixes
git-svn-id: http://svn.automattic.com/wordpress/trunk@4083 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 06:34:14 +00:00
ryan
b4601fc06c Autosave and prototype. Props masquerade. fixes #3020 #3017
git-svn-id: http://svn.automattic.com/wordpress/trunk@4082 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-11 03:54:45 +00:00
ryan
0ead59849c Login screen updates from bryanveloso. fixes #3021
git-svn-id: http://svn.automattic.com/wordpress/trunk@4081 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-10 08:43:58 +00:00
ryan
7d69993f39 Update tinyMCE to 2.0.6.1. fixes #3003
git-svn-id: http://svn.automattic.com/wordpress/trunk@4080 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-09 19:39:17 +00:00
ryan
7677eca675 Capitalization fix from Mark J. fixes #3004
git-svn-id: http://svn.automattic.com/wordpress/trunk@4079 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-07 18:44:13 +00:00
ryan
403a5db6c5 Always clears future publication hook in case the post status bounced from future to draft.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4078 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-07 04:43:38 +00:00
ryan
7bf42ee218 Rework wp_publish_post() to use wp_update_post() again while turning off filters. Clear the cron schedule for a post when the post timestamp is updated. #2715 #2737
git-svn-id: http://svn.automattic.com/wordpress/trunk@4077 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-07 03:50:55 +00:00
ryan
033c07e86b Fix duplicate index error. Props ryanscheuermann. fixes #2695
git-svn-id: http://svn.automattic.com/wordpress/trunk@4076 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-07 00:30:56 +00:00
ryan
a9ca0da268 Don't forget to concat. Props cschneid. fixes #2988
git-svn-id: http://svn.automattic.com/wordpress/trunk@4075 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-05 04:18:09 +00:00
ryan
dadd248a93 More more for xmlrpc. fixes #2991
git-svn-id: http://svn.automattic.com/wordpress/trunk@4074 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-05 04:11:51 +00:00
ryan
3a2d71fb91 New login. fixes #2999
git-svn-id: http://svn.automattic.com/wordpress/trunk@4073 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-05 04:00:21 +00:00
ryan
fa1ec4ea1f Don't wp_die() before functions.php is loaded.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4072 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-05 03:47:20 +00:00
ryan
8fb3a20083 There can be only one, or maybe more. Props Mark J. fixes #2991
git-svn-id: http://svn.automattic.com/wordpress/trunk@4071 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-01 13:53:04 +00:00
ryan
ca2dcf7d1d (More more more) how do you like it, how do you like it. fixes #2991
git-svn-id: http://svn.automattic.com/wordpress/trunk@4070 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-08-01 04:54:23 +00:00
matt
4495b15135 Useless notice
git-svn-id: http://svn.automattic.com/wordpress/trunk@4069 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-29 17:05:39 +00:00
ryan
9b983ead22 No magic vals
git-svn-id: http://svn.automattic.com/wordpress/trunk@4067 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-29 01:45:17 +00:00
ryan
3a6c948491 htmlspecial
git-svn-id: http://svn.automattic.com/wordpress/trunk@4065 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-29 01:40:47 +00:00
ryan
112f50f0e4 trim login
git-svn-id: http://svn.automattic.com/wordpress/trunk@4062 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-28 23:16:31 +00:00
ryan
b6aaa70b7c specialchars DB error.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4061 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-28 22:58:38 +00:00
ryan
33a88217f0 Fix redirect and publish.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4059 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-28 22:18:41 +00:00
ryan
2c4a4ac455 Make nicename optional.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4057 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-28 10:50:35 +00:00
ryan
2dd0ce000f Use get_userdata(). fixes #2976
git-svn-id: http://svn.automattic.com/wordpress/trunk@4055 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-27 23:27:27 +00:00
ryan
45cacb257a Faster remove accents. Props skeltoac. fixes #2978
git-svn-id: http://svn.automattic.com/wordpress/trunk@4050 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-26 22:55:36 +00:00
ryan
4e7aacfc21 Menu and plugin tweakage.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4049 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-26 22:18:36 +00:00
ryan
7f4ef75395 fix div tags. Props leftjustified. fixes #2728
git-svn-id: http://svn.automattic.com/wordpress/trunk@4047 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-26 17:43:41 +00:00
ryan
f15335859a specialchars feed titles. Props leftjustified. fixes #1451
git-svn-id: http://svn.automattic.com/wordpress/trunk@4046 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-26 17:43:15 +00:00
ryan
1e3675526d Quote escaping fixes from mdawaffe. fixes #2975
git-svn-id: http://svn.automattic.com/wordpress/trunk@4043 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-26 08:40:00 +00:00
ryan
04f357b4eb Admin AJAX tweaks from mdawaffe. fixes #2969
git-svn-id: http://svn.automattic.com/wordpress/trunk@4042 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-25 19:01:52 +00:00
ryan
c2a613422c Category Ajax improvements from mdawaffe. fixes #2803
git-svn-id: http://svn.automattic.com/wordpress/trunk@4041 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-25 06:36:10 +00:00
ryan
d983ff8fda Kill unused var.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4040 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-24 18:26:13 +00:00
ryan
8f699d20f7 Use AND instead of HAVING. #2604
git-svn-id: http://svn.automattic.com/wordpress/trunk@4039 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-24 18:24:56 +00:00
ryan
1fe8d71aa1 Damn editor.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4037 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-23 21:20:30 +00:00
ryan
cacf5e345f Trim theme and plugin data. fixes #2943
git-svn-id: http://svn.automattic.com/wordpress/trunk@4035 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-23 19:20:11 +00:00
ryan
055eefb19f Snoopy fread fixes. Props JeremyVisser. fixes #2733
git-svn-id: http://svn.automattic.com/wordpress/trunk@4030 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-23 18:23:43 +00:00
ryan
fbfe98308d Custom field AJAX fix from mdawaffe. fixes #2970
git-svn-id: http://svn.automattic.com/wordpress/trunk@4029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-23 17:14:51 +00:00
ryan
ff745a3d00 Oops.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4027 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-22 04:57:16 +00:00
ryan
15b1452d54 Rework wp_publish_post(). Should avoid running filters when changing from future to publish.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4026 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-22 04:17:41 +00:00
ryan
f423760531 Don't validate theme during install.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4024 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-21 19:00:04 +00:00
ryan
e109d4e11b Fix current page handling when using page_for_posts. Props skeltoac. fixes #2959
git-svn-id: http://svn.automattic.com/wordpress/trunk@4023 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-20 02:05:25 +00:00
ryan
9094543b51 Don't allow blank cats. Props donncha. fixes #2960
git-svn-id: http://svn.automattic.com/wordpress/trunk@4022 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-20 01:30:37 +00:00
ryan
dab38290f0 i18n fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4021 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-18 02:31:21 +00:00
ryan
0559786a79 Relocate delete_user action. Props filosofo. fixes #2956
git-svn-id: http://svn.automattic.com/wordpress/trunk@4020 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-17 17:12:37 +00:00
ryan
ee691916c4 Remove unneeded php tags.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4019 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-17 17:08:00 +00:00
ryan
f5f5709cba bail() cannot use wp_die(). wp_die() isn't loaded when bail() runs. fixes #2941
git-svn-id: http://svn.automattic.com/wordpress/trunk@4018 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-16 15:41:36 +00:00
ryan
978fc182da Tweak theme validation.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4017 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-11 22:44:56 +00:00
ryan
3761db170b Remove unneeded arg.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4016 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-11 18:16:37 +00:00
ryan
05381daff8 Allow limiting the number of cats to fetch.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4015 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-11 18:15:24 +00:00
ryan
0f70c12715 Allow ordering by count.
git-svn-id: http://svn.automattic.com/wordpress/trunk@4014 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-11 18:01:53 +00:00
ryan
0ad0948a92 Pass arg array to get_categories filters. Props ryanscheuermann. fixes #2934
git-svn-id: http://svn.automattic.com/wordpress/trunk@4013 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-11 03:33:25 +00:00
ryan
d842e5093f Make clickable fix from whooami. fixes #2889
git-svn-id: http://svn.automattic.com/wordpress/trunk@4011 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-11 03:30:12 +00:00
ryan
577dbc08c6 Use wp_die() in wp_nonce_ays(). fixes #2929
git-svn-id: http://svn.automattic.com/wordpress/trunk@4009 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-10 16:34:43 +00:00
ryan
2a8de5229b get_category filter form majelbstoat. fixes #2466
git-svn-id: http://svn.automattic.com/wordpress/trunk@4007 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-10 16:11:43 +00:00
ryan
4e5380a24a wp_die() improvements from Sewar. fixes #2902
git-svn-id: http://svn.automattic.com/wordpress/trunk@4006 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-10 05:29:10 +00:00
matt
b2d5509491 Fix for radio labels on moderation page
git-svn-id: http://svn.automattic.com/wordpress/trunk@4005 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-07 18:35:49 +00:00
ryan
553a53efb7 Update to php-gettext 1.0.7+. fixes #1727
git-svn-id: http://svn.automattic.com/wordpress/trunk@4003 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-06 22:35:59 +00:00
ryan
2df0ebe996 Nice curves. Props ketsugi. fixes #2896
git-svn-id: http://svn.automattic.com/wordpress/trunk@4001 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-06 06:14:17 +00:00
matt
10185ecaab Properly select option, wording change
git-svn-id: http://svn.automattic.com/wordpress/trunk@4000 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-06 04:34:46 +00:00
matt
157786ecaa Some renames
git-svn-id: http://svn.automattic.com/wordpress/trunk@3999 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-06 04:27:45 +00:00
ryan
22f451a9d0 Validation fixes from leftjustified. fixes #2909
git-svn-id: http://svn.automattic.com/wordpress/trunk@3998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-06 02:45:17 +00:00
ryan
681c4b9129 specialchars quotes in comment title. Props deko. fixes #2915
git-svn-id: http://svn.automattic.com/wordpress/trunk@3995 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-06 02:28:34 +00:00
ryan
6a2bf58f78 wp_kses_no_null() redirect location for extra protection.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3992 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-06 00:28:37 +00:00
matt
7c65645c62 Clean up how we address IP addresses throughout the code
git-svn-id: http://svn.automattic.com/wordpress/trunk@3990 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-06 00:04:24 +00:00
ryan
619da18f1c Bump kses to 0.2.2. Props westi. fixes #2661
git-svn-id: http://svn.automattic.com/wordpress/trunk@3989 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 22:40:05 +00:00
ryan
9639c8a968 Strip and texturize importer title. Props Nazgul. fixes #2897
git-svn-id: http://svn.automattic.com/wordpress/trunk@3986 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 22:33:58 +00:00
ryan
42557940a1 Use wp_die(). Props filosofo. fixes #2914
git-svn-id: http://svn.automattic.com/wordpress/trunk@3985 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 22:00:03 +00:00
ryan
550ede8d60 wp_die() for comment errors. Props filosofo. fixes #1786
git-svn-id: http://svn.automattic.com/wordpress/trunk@3984 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 20:34:19 +00:00
ryan
f02a7931d8 Validation fixes from leftjustified. fixes #2907
git-svn-id: http://svn.automattic.com/wordpress/trunk@3983 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 20:28:02 +00:00
ryan
9894158868 Lower case post. Props leftjustified. fixes #2908
git-svn-id: http://svn.automattic.com/wordpress/trunk@3981 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 20:18:56 +00:00
ryan
ae4cedc61a Die with style. Props Sewar. fixes #2902
git-svn-id: http://svn.automattic.com/wordpress/trunk@3979 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 19:13:26 +00:00
ryan
7c774d0a1b Markup fixes from leftjustified. fixes #2906
git-svn-id: http://svn.automattic.com/wordpress/trunk@3978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 17:14:29 +00:00
ryan
286a822258 Add ids to inputs. Props leftjustified. fixes #2911
git-svn-id: http://svn.automattic.com/wordpress/trunk@3976 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 17:06:10 +00:00
ryan
d95038025d wp_specialchars() within wp_nonce_url(). Props Nazgul. fixes #2857
git-svn-id: http://svn.automattic.com/wordpress/trunk@3974 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 09:55:24 +00:00
ryan
7c57caf5e8 Don't trigger warning when first visiting login. fixes #2901
git-svn-id: http://svn.automattic.com/wordpress/trunk@3972 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 09:45:09 +00:00
ryan
7275ae28e4 Remove extraneous /td. Props Nazgul. fixes #2895
git-svn-id: http://svn.automattic.com/wordpress/trunk@3970 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 09:02:47 +00:00
ryan
d19217ac42 Use POST and GET instead of REQUEST since they are sanitized. fixes #2888
git-svn-id: http://svn.automattic.com/wordpress/trunk@3969 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 03:59:40 +00:00
ryan
c132456b46 Give feedback if username or password fields are empty. Props Nazgul. fixes #2901
git-svn-id: http://svn.automattic.com/wordpress/trunk@3966 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-05 01:56:20 +00:00
ryan
c05e9ea756 Preserve newlines inside style and script tags. Props Nazgul. fixes #2833
git-svn-id: http://svn.automattic.com/wordpress/trunk@3965 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 23:16:04 +00:00
ryan
7360897fef Force balanced tags in comments. Props Nazgul. fixes #2714
git-svn-id: http://svn.automattic.com/wordpress/trunk@3963 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 22:09:44 +00:00
ryan
827d00243b Markup fixes from Nazgul. fixes #2899
git-svn-id: http://svn.automattic.com/wordpress/trunk@3961 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 21:44:08 +00:00
ryan
d5a6871e97 Update RBL site and turn open proxy check off by default. Props Nazgul. fixes #2821
git-svn-id: http://svn.automattic.com/wordpress/trunk@3960 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 21:41:00 +00:00
ryan
8475c636a1 Don't allow negative values when paging. fixes #2893
git-svn-id: http://svn.automattic.com/wordpress/trunk@3957 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 19:58:11 +00:00
ryan
00b5713e5d wp_reset_vars(). Props Sewar. fixes #2888
git-svn-id: http://svn.automattic.com/wordpress/trunk@3956 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 19:31:28 +00:00
ryan
14abe71841 Relocate /div.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3954 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 19:24:00 +00:00
matt
3b5eb8d627 Add bottoms to the boxes on post screen, fixes #2894. Props: filosofo. Ryan: please backport to 2.0
git-svn-id: http://svn.automattic.com/wordpress/trunk@3953 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 18:39:53 +00:00
matt
5da002f012 Allow Windows folks to delete attachements, fixes #2496
git-svn-id: http://svn.automattic.com/wordpress/trunk@3952 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 18:33:08 +00:00
matt
b1aee5c2db Another step toward removing old table vars, this is why we should be careful about naming things! Fixes #2524
git-svn-id: http://svn.automattic.com/wordpress/trunk@3951 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 18:28:08 +00:00
matt
f20ce5d910 Extra whitespace
git-svn-id: http://svn.automattic.com/wordpress/trunk@3950 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 18:14:17 +00:00
matt
c13781fc79 We talk good. Fixes #2632
git-svn-id: http://svn.automattic.com/wordpress/trunk@3949 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 17:56:27 +00:00
matt
7569167a7b Use single quotes to be nice to ANSI mode, fixes #1498
git-svn-id: http://svn.automattic.com/wordpress/trunk@3948 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 17:30:36 +00:00
matt
79e652005e More intuitive navigation, fixes #2471
git-svn-id: http://svn.automattic.com/wordpress/trunk@3947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-04 17:19:15 +00:00
ryan
55af15d623 wp_reset_vars() from Sewar. fixes #2888
git-svn-id: http://svn.automattic.com/wordpress/trunk@3946 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-03 19:03:37 +00:00
ryan
4de7f261cb Delete comment fix from tenpura. fixes #2807
git-svn-id: http://svn.automattic.com/wordpress/trunk@3944 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-07-01 02:03:21 +00:00
ryan
70fc265986 Fix ref check.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3942 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-30 22:14:50 +00:00
ryan
9d33ab78dc Use compact instead of long query string.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3941 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-30 01:11:42 +00:00
ryan
435d479ec9 Allow % so entities such as slashes don't break.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3939 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-30 00:43:23 +00:00
ryan
869c09ff9d Get the foo out. Props skeltoac. fixes #2879
git-svn-id: http://svn.automattic.com/wordpress/trunk@3938 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-30 00:07:30 +00:00
ryan
8c75874ef0 More nonce strings. #2734
git-svn-id: http://svn.automattic.com/wordpress/trunk@3935 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-27 09:32:42 +00:00
ryan
e316dab0c2 wp_explain_nonce() and wp_nonce_ays(). Props mdawaffe. #2734
git-svn-id: http://svn.automattic.com/wordpress/trunk@3934 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-27 08:06:00 +00:00
ryan
281418c54e Add delete page nonce. fixes #2847
git-svn-id: http://svn.automattic.com/wordpress/trunk@3932 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-27 07:01:16 +00:00
ryan
30fe5d5876 Oops
git-svn-id: http://svn.automattic.com/wordpress/trunk@3931 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-27 06:59:35 +00:00
ryan
01ed3b30f4 Make script src valid. Props Nazgul. #2857
git-svn-id: http://svn.automattic.com/wordpress/trunk@3930 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-27 06:42:01 +00:00
ryan
db0b40736a Fix array_keys error when cron option is not an array. Props robmiller. fixes #2814
git-svn-id: http://svn.automattic.com/wordpress/trunk@3929 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-27 06:04:27 +00:00
ryan
ff19f4b5a5 Use wp_redirect().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3928 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-27 05:38:56 +00:00
ryan
9b8a99e398 More thorough URI sanitizer in wp_redirect().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3926 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-27 01:42:52 +00:00
matt
e92ccf5685 Minor reorg, and this should also fix the pixel shift problems.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3924 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-26 17:40:18 +00:00
ryan
99d63ca220 Use wp_get_referer(). Props robmiller. fixes #2855
git-svn-id: http://svn.automattic.com/wordpress/trunk@3921 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-24 21:14:58 +00:00
ryan
e344771fa7 Have wp_referer_field() set the referer to the current page. fixes #2800
git-svn-id: http://svn.automattic.com/wordpress/trunk@3919 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-24 18:17:10 +00:00
ryan
ec9b6242a3 Use wp_get_referer(). fixes #2800
git-svn-id: http://svn.automattic.com/wordpress/trunk@3918 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-24 07:34:35 +00:00
ryan
f12797ca96 Silence pingomatic fsockopen. Props Mark Jaquith. fixes #2522
git-svn-id: http://svn.automattic.com/wordpress/trunk@3917 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-24 06:05:12 +00:00
ryan
c8e7e66ee7 Send Content-type for 404s. Props Nazgul. fixes #2841
git-svn-id: http://svn.automattic.com/wordpress/trunk@3915 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-24 06:00:24 +00:00
ryan
b3c1dd21ca Markup fix from ckr and Nazgul. fixes #2842
git-svn-id: http://svn.automattic.com/wordpress/trunk@3912 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-24 05:57:03 +00:00
ryan
7b662dccc8 Fixed pagenow regex. Props herr_ernst. fixes #2843
git-svn-id: http://svn.automattic.com/wordpress/trunk@3910 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-24 05:54:25 +00:00
ryan
9876a3606f wp_get_referer() and friends from robmiller and markjaquith. fixes #2800
git-svn-id: http://svn.automattic.com/wordpress/trunk@3908 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-24 05:38:37 +00:00
ryan
e232ef9a32 js_escape() in onclicks. fixes #2851
git-svn-id: http://svn.automattic.com/wordpress/trunk@3907 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-24 01:28:08 +00:00
ryan
9d3fea737d Avoid recursive action. Props itdamager. fixes #2852
git-svn-id: http://svn.automattic.com/wordpress/trunk@3904 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-23 20:05:23 +00:00
ryan
1034767a9a wp_get_current_commenter()
git-svn-id: http://svn.automattic.com/wordpress/trunk@3902 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-22 20:52:12 +00:00
ryan
4b02c602d1 Move _() to compat.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@3901 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-22 19:45:49 +00:00
ryan
e673d82afb Move ping and trackback functions to comment.php (maybe to ping.php later?) #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3900 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-22 19:44:36 +00:00
ryan
a4a52da923 Doh. Fix wp_list_bookmarks().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3899 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-22 03:55:03 +00:00
ryan
acf8588752 Fix bug in add_query_arg when url like http://example.com (no trailing slash). Props skel to the ac.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3897 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-22 03:40:28 +00:00
ryan
e4605c6e64 show_on_front page preview fix from that Andy guy.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3896 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-22 03:39:23 +00:00
ryan
3cf77a3b19 wp_check_filetype() from skeltoac.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3894 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-21 23:17:19 +00:00
ryan
6d7717e159 Move plugin API to plugin.php. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3893 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-20 02:03:24 +00:00
ryan
1edfe71da2 Filename sanitation from sanitation engineer skeltoac. fixes #2823
git-svn-id: http://svn.automattic.com/wordpress/trunk@3891 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-19 22:00:50 +00:00
ryan
af5ea1480b Sort those smilies. Props HenkvandeKamer and robmiller. fixes #2778
git-svn-id: http://svn.automattic.com/wordpress/trunk@3890 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-19 17:21:02 +00:00
ryan
8ae8b35c10 wp_update_comment_count() from MarkJaquith. fixes #2836
git-svn-id: http://svn.automattic.com/wordpress/trunk@3887 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-19 17:17:52 +00:00
ryan
bd1842e963 Cat exclusion from skeltoac. fixes #2825
git-svn-id: http://svn.automattic.com/wordpress/trunk@3886 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-19 17:14:54 +00:00
matt
b9d8d2e9fd Don't hide blog when option is blank!
git-svn-id: http://svn.automattic.com/wordpress/trunk@3885 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-17 23:38:45 +00:00
matt
1f07084f77 This fixes #2832 again! (I hope.) BTW, try the new trac and SVN, it's wicked fast.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3884 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-17 02:37:24 +00:00
matt
e631143715 Fixes #2832
git-svn-id: http://svn.automattic.com/wordpress/trunk@3883 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-17 02:20:54 +00:00
matt
b14d632f4e Tweak, fixes #2832
git-svn-id: http://svn.automattic.com/wordpress/trunk@3882 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-17 02:02:29 +00:00
ryan
49e390d402 Use wp_list_categories() in templates.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3881 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-17 00:05:00 +00:00
ryan
f34731ff30 Start fleshing out wp_list_bookmarks(). #2587
git-svn-id: http://svn.automattic.com/wordpress/trunk@3880 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-16 23:35:48 +00:00
ryan
608e74150b Unlink TinySpell? tmp files
git-svn-id: http://svn.automattic.com/wordpress/trunk@3879 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-15 21:28:08 +00:00
ryan
ab541ae071 wp_get_archives() cleanup.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3878 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-15 20:28:47 +00:00
ryan
6c68ddb70e Oopsie.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3877 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-15 08:56:53 +00:00
ryan
a43e9ca36f Update Donncha's link.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3876 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-15 08:56:12 +00:00
ryan
1cdc6a5cd3 Update opml.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3875 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-15 08:18:04 +00:00
ryan
11704456ce Specialchars title. Props David House and Mark Jaquith. fixes #2625
git-svn-id: http://svn.automattic.com/wordpress/trunk@3874 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-15 07:32:06 +00:00
ryan
53ad887f0d Really cancel. Props skeltoac. fixes #2826
git-svn-id: http://svn.automattic.com/wordpress/trunk@3871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-15 07:28:23 +00:00
ryan
62927ab65b Remove wp- prefix from wp-l10n.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@3870 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-15 07:24:44 +00:00
ryan
7dab31bbe5 Query fix from skeltoac. fixes #2822
git-svn-id: http://svn.automattic.com/wordpress/trunk@3869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-14 21:49:10 +00:00
ryan
5a6407ca84 Indicate private pages in manage pages list.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3868 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-14 20:47:12 +00:00
ryan
3b2ff8ba4a Add offset support to query_posts(). Props Mark Jaquith. fixes #2558
git-svn-id: http://svn.automattic.com/wordpress/trunk@3867 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-13 20:56:38 +00:00
matt
85a6e3ecea Frickity frack funk frack fracker
git-svn-id: http://svn.automattic.com/wordpress/trunk@3866 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-13 02:32:22 +00:00
ryan
ea6a8a75bc Make sure role is set when updating. Props Mark Jaquith. fixes #2817
git-svn-id: http://svn.automattic.com/wordpress/trunk@3865 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-11 20:54:07 +00:00
ryan
aaf62a3482 WP_User_Search from Mark Jaquith. #2793
git-svn-id: http://svn.automattic.com/wordpress/trunk@3864 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-11 17:56:56 +00:00
ryan
f94f2f0bcf Use the correct filename. Props Mark Jaquith. fixes #2815
git-svn-id: http://svn.automattic.com/wordpress/trunk@3863 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-11 17:55:18 +00:00
ryan
c93efa866e Include file renames. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3862 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-11 06:43:54 +00:00
ryan
7feaf230ab User UI tweaks from Mark Jaquith. #2793
git-svn-id: http://svn.automattic.com/wordpress/trunk@3861 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-10 21:23:19 +00:00
ryan
181119bd1f Cron pass-by-reference error fix from robmiller. fixes #2790
git-svn-id: http://svn.automattic.com/wordpress/trunk@3860 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-10 20:43:49 +00:00
ryan
8310e71be6 Better handling of users with no role. Props Mark Jaquith. #2809
git-svn-id: http://svn.automattic.com/wordpress/trunk@3859 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-10 20:26:26 +00:00
ryan
5e7c850484 User management improvements from Mark Jaquith and David House. #2793
git-svn-id: http://svn.automattic.com/wordpress/trunk@3857 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-08 18:36:05 +00:00
ryan
f124c51107 Make replacement strings backref safe without using \${1} so as to preserve php <= 4.2 compatible. Props mdawaffe. fixes #2774
git-svn-id: http://svn.automattic.com/wordpress/trunk@3855 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-08 03:17:01 +00:00
ryan
c56e62f5c1 Move user functions to user.php. Relocate more post functions to post.php. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3854 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-08 02:22:16 +00:00
ryan
949f22d2d2 Canonical URI for page on front. Props skeltoac. #2515
git-svn-id: http://svn.automattic.com/wordpress/trunk@3853 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-07 23:30:09 +00:00
ryan
d56f944642 Add show_option_none to wp_dropdown_pages(). Props ryanscheuermann. #2515
git-svn-id: http://svn.automattic.com/wordpress/trunk@3852 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-07 23:27:25 +00:00
ryan
3c8ed766e1 Reworg post/page/attachment functions. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3851 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-07 23:17:59 +00:00
ryan
741934931d Use the API.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3850 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-06 05:36:28 +00:00
ryan
0585475e02 Deprecate wp_get/set_post_cats() in favor of wp_get/set_post_categories().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3849 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-06 05:04:41 +00:00
ryan
db3a022631 Deprecate list_authors(). Clean up wp_list_authors().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3848 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-06 04:50:41 +00:00
ryan
73b4b6055e List manipulation improvements from mdawaffe. fixes #2786
git-svn-id: http://svn.automattic.com/wordpress/trunk@3847 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-06 04:14:04 +00:00
ryan
dac809b5a4 Add more fine grained user management caps. Part 1. #2775
git-svn-id: http://svn.automattic.com/wordpress/trunk@3846 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-05 16:52:21 +00:00
ryan
19ea5fb78f Reorg bookmark functions. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3845 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-05 02:12:59 +00:00
ryan
0f5dc0f066 Reorg category functions. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3844 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-04 22:40:53 +00:00
ryan
df5c967953 Reorg category functions. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3843 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-04 21:36:52 +00:00
ryan
98a5598483 Undef var fix from Denis-de-Bernardy. fixes #2780
git-svn-id: http://svn.automattic.com/wordpress/trunk@3842 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-04 21:07:41 +00:00
ryan
8ea8979b73 Edit profile nonce fix from markjaquith. fixes #2776
git-svn-id: http://svn.automattic.com/wordpress/trunk@3839 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-04 03:41:33 +00:00
ryan
bc877b4aa2 Strip extra slashes from _POST when doing nonce AYS. Props MarkJaquith and mdawaffe. fixes #2761
git-svn-id: http://svn.automattic.com/wordpress/trunk@3833 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-01 23:38:34 +00:00
ryan
ff34dc012c Be less aggressive in stripping user description.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3831 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-01 22:01:05 +00:00
ryan
a481db2b6a Script loader fixes from mdawaffe. fixes #2765
git-svn-id: http://svn.automattic.com/wordpress/trunk@3830 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-01 21:51:20 +00:00
ryan
406ea582af Comment redirect fix from mdawaffe. fixes #2764
git-svn-id: http://svn.automattic.com/wordpress/trunk@3829 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-01 21:48:31 +00:00
ryan
286a935a59 Comment nonce fixes from Mark Jaquith and mdawaffe. fixes #2760
git-svn-id: http://svn.automattic.com/wordpress/trunk@3827 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-01 16:59:55 +00:00
ryan
2fce9d926e intval cat ID
git-svn-id: http://svn.automattic.com/wordpress/trunk@3824 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-06-01 07:42:46 +00:00
ryan
4a47234d84 Dots fix to work around mod_mime problem. Props skeltoac.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3822 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-31 17:07:12 +00:00
ryan
10656f2ea3 Remove extra lines.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3819 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-31 06:34:35 +00:00
ryan
a9c6ba9391 Backup plugin fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3818 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-31 06:33:37 +00:00
ryan
49dc7146e4 Typo fix.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3816 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-31 06:27:10 +00:00
ryan
05cc3b7bb5 Backup plugin fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3815 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-31 06:06:15 +00:00
ryan
1181533296 Remove unused var.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3812 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-31 01:40:25 +00:00
ryan
e38d68adac wp_salt() and more hash work.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3811 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-31 01:40:00 +00:00
ryan
a50330dd45 wp_hash() and server secret.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3810 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-31 00:24:03 +00:00
ryan
20b5e18fea Balance quotes. Props razorasdf. fixes #2749
git-svn-id: http://svn.automattic.com/wordpress/trunk@3809 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-28 23:51:53 +00:00
ryan
96c3f739a8 Update nonce action strings. Props mdawaffe.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3804 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-26 23:08:05 +00:00
ryan
1dff136d6f Add some user filters.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3800 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-26 22:47:13 +00:00
ryan
70276282ad Add some category filters.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3799 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-26 22:14:55 +00:00
ryan
e7618712cb base64 cached objects and store within multi-line comment block to avoid CRLF injections into the cache. Props Peter Westwood.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3798 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-26 21:14:36 +00:00
ryan
d05a23cbc9 sanitize_user regex fix from grigs. fixes #2729
git-svn-id: http://svn.automattic.com/wordpress/trunk@3795 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-26 17:27:51 +00:00
ryan
f072c902db Enclosure redirect fix from aegrumet. fixes #2551
git-svn-id: http://svn.automattic.com/wordpress/trunk@3793 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-26 17:25:48 +00:00
ryan
419f125cb7 Handle robots.txt requests and obey blog_plubic setting.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3791 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-22 22:06:06 +00:00
ryan
e5e2b93053 Move privacy options to a separate Privacy tab.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3790 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-22 19:34:28 +00:00
ryan
16228c3d58 Add parse_request, send_headers, and wp actions.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3789 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-22 19:23:46 +00:00
ryan
4d49e98fe4 Script loader from mdawaffe. #2701
git-svn-id: http://svn.automattic.com/wordpress/trunk@3788 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-22 17:16:05 +00:00
ryan
afc4ec89bd Add publish_page hook
git-svn-id: http://svn.automattic.com/wordpress/trunk@3787 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-19 17:22:19 +00:00
ryan
e0939f1323 Excerpt fix from Mike Little. fixes #2686
git-svn-id: http://svn.automattic.com/wordpress/trunk@3785 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-19 06:22:11 +00:00
matt
102b85a9a1 Adding Blogware importer
git-svn-id: http://svn.automattic.com/wordpress/trunk@3784 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-18 17:53:32 +00:00
ryan
8ee6921b49 Improvements to the nonce AYS from mdawaffe. #2734
git-svn-id: http://svn.automattic.com/wordpress/trunk@3783 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-18 06:49:22 +00:00
ryan
78e403f5fc Apply bloginfo_rss filter.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3782 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-18 01:23:25 +00:00
ryan
54c5fee3f8 Nonce fixes from mdawaffe. #2678
git-svn-id: http://svn.automattic.com/wordpress/trunk@3778 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-18 00:47:21 +00:00
ryan
595b9e460b Combine category forms and move to edit-category-form.php.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3777 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-18 00:46:07 +00:00
ryan
fe1dc4a796 WP importer fixes from mdawaffe. fixes #2727
git-svn-id: http://svn.automattic.com/wordpress/trunk@3776 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-17 21:39:40 +00:00
ryan
e92d1c8341 Fix cap. Props ryanscheuermann. fixes #2723
git-svn-id: http://svn.automattic.com/wordpress/trunk@3775 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-17 21:32:16 +00:00
ryan
769011e895 Fallback to admin referer check instead of nonce if no action is given to check_admin_referer(). For plugin compatibility.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-17 00:28:26 +00:00
ryan
5c407df97a Fix Scheduled Entries list. #2715
git-svn-id: http://svn.automattic.com/wordpress/trunk@3773 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-12 03:21:09 +00:00
ryan
2f68889eb6 Remove private posts from front page query. Aadd private posts and page caps. fixes #2613
git-svn-id: http://svn.automattic.com/wordpress/trunk@3772 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-11 23:13:35 +00:00
matt
fdab6f4c1e Lots of style and admin tweaks
git-svn-id: http://svn.automattic.com/wordpress/trunk@3770 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-10 20:35:10 +00:00
matt
b344d54553 New import and export, v0.1
git-svn-id: http://svn.automattic.com/wordpress/trunk@3769 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-10 20:34:17 +00:00
ryan
5adf0d701b Add file deletion filter. Props to that Andy guy. fixes #2703
git-svn-id: http://svn.automattic.com/wordpress/trunk@3768 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-09 22:44:51 +00:00
ryan
ed13228400 Category query cleanups from skeltoac. fixes #2709
git-svn-id: http://svn.automattic.com/wordpress/trunk@3767 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-08 02:16:24 +00:00
ryan
83f1cbb1d0 Oops. How did that get in there?
git-svn-id: http://svn.automattic.com/wordpress/trunk@3766 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-06 04:43:59 +00:00
ryan
25bf69a118 Better nonces for inline uploading. Props mdawaffe. #2678
git-svn-id: http://svn.automattic.com/wordpress/trunk@3765 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-06 04:41:21 +00:00
ryan
8bab10e90d nonce approve/delete comment confirmations. #2678
git-svn-id: http://svn.automattic.com/wordpress/trunk@3764 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-05 09:09:13 +00:00
ryan
293b3b4dee Better escaping of strings used in JS.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3763 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-05 07:49:05 +00:00
ryan
63001676c3 Pass action to check_admin_referer hook.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3761 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-04 09:23:17 +00:00
ryan
547a3c96d7 A couple more nonces. #2678
git-svn-id: http://svn.automattic.com/wordpress/trunk@3760 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-04 09:20:44 +00:00
ryan
3f57a94f4c Nonce from above. #2678
git-svn-id: http://svn.automattic.com/wordpress/trunk@3759 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-02 22:36:06 +00:00
ryan
89fe7ce543 nonce functions. #2678
git-svn-id: http://svn.automattic.com/wordpress/trunk@3758 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-02 22:08:34 +00:00
ryan
1008282133 Check menu privs after plugins add their menus. fixes #2696
git-svn-id: http://svn.automattic.com/wordpress/trunk@3756 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-05-02 19:08:37 +00:00
matt
2b49e833c7 add-a-hook
git-svn-id: http://svn.automattic.com/wordpress/trunk@3754 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-29 09:21:23 +00:00
ryan
8753af280c Return user ID if email exists.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3753 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-27 04:24:14 +00:00
ryan
45302e1c22 Div balance across more. Props skeltoac. fixes #2348
git-svn-id: http://svn.automattic.com/wordpress/trunk@3751 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-25 08:46:19 +00:00
ryan
a785678283 Fix page depth, again. PRops skeltoac. fixes #2690
git-svn-id: http://svn.automattic.com/wordpress/trunk@3750 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-25 00:05:59 +00:00
ryan
f36c6bd2be Remove those naughty flushes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3749 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-22 02:10:42 +00:00
ryan
8da6c47ae3 Add some prophylactic int casts and quoting.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3740 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-22 00:02:00 +00:00
ryan
85f5f5229f Add file. fixes #2677
git-svn-id: http://svn.automattic.com/wordpress/trunk@3736 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-21 08:17:05 +00:00
ryan
c8ce057570 Always load list manip js when editing. Props mdawaffe. fixes #2672
git-svn-id: http://svn.automattic.com/wordpress/trunk@3735 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-21 05:05:34 +00:00
ryan
3d45520fff Make sure we have links to iterate over. fixes #2675
git-svn-id: http://svn.automattic.com/wordpress/trunk@3734 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-21 05:00:58 +00:00
ryan
3d4f3629d0 Change number of comments awaiting moderation in menu when number changes. Props mdawaffe. fixes #2677
git-svn-id: http://svn.automattic.com/wordpress/trunk@3733 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-21 04:54:01 +00:00
ryan
1bdf7fb263 Assume an action of resetpass if key is given.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3732 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-20 22:08:37 +00:00
ryan
199618e3b5 Shorten key and action name to avoid long links that break in mail clients.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3731 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-20 21:44:14 +00:00
matt
c6e1adf128 Updating eol-style native. We must remember to do this when adding new files.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3730 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 10:13:28 +00:00
matt
22bcda930a Better use of visual space when editing/adding links
git-svn-id: http://svn.automattic.com/wordpress/trunk@3729 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 09:31:58 +00:00
matt
28a178a5b6 Cleaner category count display
git-svn-id: http://svn.automattic.com/wordpress/trunk@3728 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 09:26:56 +00:00
matt
8051187420 Navigation doesn't work, just show all pages.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3727 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 09:17:10 +00:00
matt
a14b59e7f0 Show message on publish rather than sitting dumbly. Link to site like we do for posts
git-svn-id: http://svn.automattic.com/wordpress/trunk@3726 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 09:13:47 +00:00
matt
a0950d4d4b More consistent padding in IE and FF, smoother display
git-svn-id: http://svn.automattic.com/wordpress/trunk@3725 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 09:12:52 +00:00
matt
b71ff716ab Save a few lines of code, don't show 0 in month list
git-svn-id: http://svn.automattic.com/wordpress/trunk@3724 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 08:51:01 +00:00
matt
b33778b079 Tidy comment_author_url_link just like we do on the bookmarks page
git-svn-id: http://svn.automattic.com/wordpress/trunk@3723 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 08:36:45 +00:00
matt
7fea857c9f Unification of how we display comments in various parts of the admin section
git-svn-id: http://svn.automattic.com/wordpress/trunk@3722 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 08:30:56 +00:00
matt
823f832a8e A better comment delete button
git-svn-id: http://svn.automattic.com/wordpress/trunk@3721 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 08:02:16 +00:00
matt
6af7f62f92 Improve the comment browsing UI a bit
git-svn-id: http://svn.automattic.com/wordpress/trunk@3720 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 07:34:29 +00:00
matt
2f0c1f6f50 What an oogly importer.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3719 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 07:25:52 +00:00
matt
3f9a04e5f9 Make categories clickable, just like on the posts screen
git-svn-id: http://svn.automattic.com/wordpress/trunk@3718 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 07:10:48 +00:00
ryan
bb0efd050b Move htmlentities2 to functions-formatting.php. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3717 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 03:03:27 +00:00
ryan
78e9a489f2 Remove comment_count_cache. fixes #2670
git-svn-id: http://svn.automattic.com/wordpress/trunk@3716 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 02:53:02 +00:00
ryan
ffe09c30c7 Don't forget to pass args. Props Mike Little. fixes #2668
git-svn-id: http://svn.automattic.com/wordpress/trunk@3715 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 02:33:47 +00:00
ryan
6027cfa946 Reorg comment functions. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3714 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-19 02:32:12 +00:00
ryan
d650991531 Move clean_url() to functions-formatting.php. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3713 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-18 04:58:38 +00:00
ryan
e2baa1d0ab Move url_to_postid() to rewrite.php. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-18 04:47:26 +00:00
ryan
40b2e610cf Move theme functions to theme.php. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3711 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-18 04:44:33 +00:00
ryan
97355f28fd Escape single quotes in options.php. fixes #2656
git-svn-id: http://svn.automattic.com/wordpress/trunk@3710 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-17 23:33:08 +00:00
ryan
7b2be71922 We like big inputs. fixes #2662
git-svn-id: http://svn.automattic.com/wordpress/trunk@3709 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-17 23:27:18 +00:00
ryan
15248a593b Make sure permalinks for draft pages use query string style since the slug might not be set yet.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3708 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-15 00:59:40 +00:00
ryan
c32db269eb Default show description option to off for bookmarks list, for now. This seems to be the preferred default.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3707 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-13 05:02:08 +00:00
ryan
2cf2472a52 Default category lists to hierarchical. Update default theme to use wp_list_categories(). Props David House. fixes #2653
git-svn-id: http://svn.automattic.com/wordpress/trunk@3706 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-13 04:51:45 +00:00
ryan
b1af79fb05 Add wp_revoke_user() and WP_User::remove_all_caps() to help those doing multi blog stuff.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3705 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-13 04:49:38 +00:00
ryan
a8eac8ee6d Move page walkers to classes. Props David House. fixes #2593
git-svn-id: http://svn.automattic.com/wordpress/trunk@3704 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-13 04:40:48 +00:00
ryan
22922b00bc Thwart the browser cache by versioning tinyMCE. Props to that Andy guy. fixes #2658
git-svn-id: http://svn.automattic.com/wordpress/trunk@3703 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-13 02:57:25 +00:00
ryan
6f0e341ce4 Split on '; ' not ';'.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-09 22:57:23 +00:00
matt
4390af2a82 walk_tree broken, fixes #2608
git-svn-id: http://svn.automattic.com/wordpress/trunk@3701 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-09 22:08:18 +00:00
ryan
41ebe38cb4 Use default_link_category.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3700 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-07 22:28:57 +00:00
ryan
b590c8a5c8 Fixed edit comment links.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3699 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-07 20:02:18 +00:00
ryan
0e8625e05c Mac users deserve their own backwards popup layout. Props to that Andy guy. fixes #2645
git-svn-id: http://svn.automattic.com/wordpress/trunk@3698 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-06 09:56:56 +00:00
matt
ecb3101f4e Formatting and eol fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3697 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-06 05:25:50 +00:00
ryan
8aa385cf3f Removed unused var.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3696 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-06 00:44:35 +00:00
ryan
fa29d02a4b New SACK and DBX releases and some list manip fixes from mdawaffe. fixes #2642
git-svn-id: http://svn.automattic.com/wordpress/trunk@3695 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-05 20:58:57 +00:00
ryan
9e83d18a03 Paging fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3694 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-05 20:48:29 +00:00
matt
2228ee7b9c Remove this artificial limit, it messes up posting with seldom-used categories
git-svn-id: http://svn.automattic.com/wordpress/trunk@3693 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 08:41:49 +00:00
ryan
6a1fbbfdd9 Accommodate multi-blog setups that share user tables by checking to see if the admin user already exists during install.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3692 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 02:26:02 +00:00
ryan
9ffdbe2230 List filters from David House. fixes #2328
git-svn-id: http://svn.automattic.com/wordpress/trunk@3691 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 02:02:12 +00:00
ryan
4079e0c137 Add ID to composite key. #2604
git-svn-id: http://svn.automattic.com/wordpress/trunk@3690 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 01:15:25 +00:00
ryan
230fd0cc1b ob_end_clean() in printr(). Props doit-cu. fixes #2297
git-svn-id: http://svn.automattic.com/wordpress/trunk@3689 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 01:02:19 +00:00
ryan
041257657c Control those newlines. Props to that Andy guy. fixes #1082
git-svn-id: http://svn.automattic.com/wordpress/trunk@3688 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 00:51:47 +00:00
ryan
c5fe14aa72 Spelling fix from nbachiyski. fixes #2632
git-svn-id: http://svn.automattic.com/wordpress/trunk@3687 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 00:48:44 +00:00
ryan
5f67ca579a texturize fix from that Andy guy. fixes #2634
git-svn-id: http://svn.automattic.com/wordpress/trunk@3686 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 00:47:33 +00:00
matt
e78ef4fe16 Remove use of deprecated variables, don't show bookmarklet form to unrecognized browser.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3685 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 00:25:04 +00:00
ryan
33ccb31e88 List manip improvements from mdawaffe. fixes #2633
git-svn-id: http://svn.automattic.com/wordpress/trunk@3684 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 00:16:27 +00:00
ryan
d02d4a9319 Redirect if no action given.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3683 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-04 00:12:43 +00:00
ryan
a8434c8f49 Do a therapuetic double strip on HTTP_IF_MODIFIED_SINCE since we code in an imperfect world. fixes #2597
git-svn-id: http://svn.automattic.com/wordpress/trunk@3682 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-03 05:59:03 +00:00
ryan
ffda0db982 Don't texturize home. Props Mark Jaquith and David House. fixes #2381
git-svn-id: http://svn.automattic.com/wordpress/trunk@3681 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-03 03:04:39 +00:00
ryan
30930704b6 AJAXify user addition. Props mdawaffe. fixes #2624
git-svn-id: http://svn.automattic.com/wordpress/trunk@3680 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-02 00:57:09 +00:00
ryan
0497d716ad Get all error messages with get_error_messages().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3679 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-02 00:48:14 +00:00
ryan
6123ea7eb7 Some optimization of the post query. #2604
git-svn-id: http://svn.automattic.com/wordpress/trunk@3678 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-02 00:33:10 +00:00
ryan
cebb0a3a15 AJAXify user addition. Props mdawaffe. fixes #2624
git-svn-id: http://svn.automattic.com/wordpress/trunk@3677 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-02 00:31:26 +00:00
ryan
3d2347a655 WP_Locale. Props Sewar. fixes #2568
git-svn-id: http://svn.automattic.com/wordpress/trunk@3676 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-02 00:20:11 +00:00
ryan
a165dc1e5b Add braces in case our belt gives out after a large meal. Props westi. fixes #2609
git-svn-id: http://svn.automattic.com/wordpress/trunk@3675 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-01 23:27:47 +00:00
ryan
f5e88cd3d5 Redirect if no action is set. Props Viper007Bond. fixes #2619
git-svn-id: http://svn.automattic.com/wordpress/trunk@3674 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-01 23:02:01 +00:00
ryan
33210aaf9e Make setup-config purtier. Props Potter_System. fixes #2618
git-svn-id: http://svn.automattic.com/wordpress/trunk@3673 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-01 22:59:31 +00:00
ryan
6130dcb0d6 More informative delete category dialog. Because knowing is half the battle. Props westi and mdawaffe. fixes #2617
git-svn-id: http://svn.automattic.com/wordpress/trunk@3672 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-04-01 05:27:10 +00:00
ryan
1fb3390cc2 Prompt for confirmation for mailapprovecomment action. Props mdawaffe. fixes #2615
git-svn-id: http://svn.automattic.com/wordpress/trunk@3671 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-31 08:32:30 +00:00
ryan
8a751c591d Pluggable install functions. fixes #2616
git-svn-id: http://svn.automattic.com/wordpress/trunk@3670 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-31 08:07:39 +00:00
ryan
ce623c09ba Add to bottom support in list manipulation. Props mdawaffe. fixes #2611
git-svn-id: http://svn.automattic.com/wordpress/trunk@3669 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-30 23:40:31 +00:00
ryan
9046cdf77b Move DB prefix dependent code to separate init routines that can be called independently when the prefix changes. These methods are for internal use only.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3668 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-30 23:35:42 +00:00
ryan
169842a7ce WP_Error. fixes #2600
git-svn-id: http://svn.automattic.com/wordpress/trunk@3667 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-30 23:18:14 +00:00
ryan
078c537718 Return after delete so we don't re-add an empty field.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3666 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-30 23:15:35 +00:00
ryan
805df2b129 Ref checks from mdawaffe.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3665 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-30 23:12:54 +00:00
ryan
a7337fded7 tinyMCE 2.0.5 coming at you live. fixes #2598
git-svn-id: http://svn.automattic.com/wordpress/trunk@3664 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-30 07:50:33 +00:00
ryan
73ef659763 Future post pinging and cron fixups from masquerade. fixes #2469
git-svn-id: http://svn.automattic.com/wordpress/trunk@3663 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-30 07:36:54 +00:00
ryan
31cb659651 Filter comments when updating. Props mdawaffe.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3662 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-29 20:41:13 +00:00
ryan
6ee476b1ec Typo fix. fixes #2575
git-svn-id: http://svn.automattic.com/wordpress/trunk@3661 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-29 01:58:53 +00:00
ryan
baa30dd4d8 AJAX, cause you love it. Props mdawaffe. fixes #2561
git-svn-id: http://svn.automattic.com/wordpress/trunk@3660 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-29 01:51:55 +00:00
ryan
ee60500f1f update_option() action fix. fixes #2553
git-svn-id: http://svn.automattic.com/wordpress/trunk@3659 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-25 21:46:53 +00:00
ryan
fe009bb136 Retrieve bookmarks for multiple cats. Props MichaelH. fixes #2592
git-svn-id: http://svn.automattic.com/wordpress/trunk@3658 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-24 19:22:22 +00:00
ryan
afd6dc76ba Update table list in backup plugin. Props abhay and westi. fixes #2589
git-svn-id: http://svn.automattic.com/wordpress/trunk@3657 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-24 01:19:33 +00:00
ryan
3c61e4b10d Add meta_key and meta_value options to get_posts() and get_pages(). Props MichaelH. fixes #2563
git-svn-id: http://svn.automattic.com/wordpress/trunk@3656 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-21 22:46:38 +00:00
ryan
4ce7df114d Add include param to get_posts(), get_categories(), get_pages(), and get_bookmarks(). Props MichaelH. fixes #2562
git-svn-id: http://svn.automattic.com/wordpress/trunk@3655 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-21 04:26:50 +00:00
ryan
b5b8986bca Fix backreferences in mysql2date(). Props tenpura. fixes #2564
git-svn-id: http://svn.automattic.com/wordpress/trunk@3654 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-21 04:19:52 +00:00
ryan
46df065de5 attributes should be lower case.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3653 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-21 01:15:13 +00:00
ryan
8c7e57b24c Show number of comments selected for deletion. Props robmiller. fixes #2508
git-svn-id: http://svn.automattic.com/wordpress/trunk@3652 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-21 00:33:36 +00:00
ryan
734ce3a383 Put categories dbx box up top and open. fixes #2493
git-svn-id: http://svn.automattic.com/wordpress/trunk@3651 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-21 00:25:58 +00:00
ryan
d04929ddd1 Allow alternative table prefix in dotclear importer. Props thomasq. fixes #2388
git-svn-id: http://svn.automattic.com/wordpress/trunk@3650 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-21 00:14:18 +00:00
ryan
b470886433 Don't try to do paging for single page queries. Props westi. fixes #2578
git-svn-id: http://svn.automattic.com/wordpress/trunk@3649 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-20 21:19:33 +00:00
ryan
3262f36318 Check 'Edit Timestamp' checkbox whenever the timestamp fields are changed. Props abhay. fixes #2574
git-svn-id: http://svn.automattic.com/wordpress/trunk@3648 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-20 20:57:01 +00:00
ryan
79ba4ca2ec edit_comment_link fix from westi. fixes #2559
git-svn-id: http://svn.automattic.com/wordpress/trunk@3647 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-20 19:45:46 +00:00
ryan
f3880e051d Post paging rework from David House. fixes #2536
git-svn-id: http://svn.automattic.com/wordpress/trunk@3646 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-20 19:43:57 +00:00
matt
f38d5e3c2b Weird IE fix.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3645 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-18 00:38:37 +00:00
ryan
667597592c Comment feed fixes from David House. fixes #2570
git-svn-id: http://svn.automattic.com/wordpress/trunk@3644 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-17 01:16:22 +00:00
ryan
4b7d1d077d setup-config fix from David House. fixes #2544
git-svn-id: http://svn.automattic.com/wordpress/trunk@3643 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-14 07:42:14 +00:00
ryan
898d025430 ent2ncr optimization. Props random. fixes #2548
git-svn-id: http://svn.automattic.com/wordpress/trunk@3641 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-14 02:48:36 +00:00
ryan
5b10d4b1e0 Remove smilies sort. Props random. fixes #2550
git-svn-id: http://svn.automattic.com/wordpress/trunk@3640 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-14 02:32:59 +00:00
ryan
9303053d39 Move WP_Query and its wrapper functions to query.php. #2525
git-svn-id: http://svn.automattic.com/wordpress/trunk@3639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-13 01:44:32 +00:00
ryan
6970a75e94 Rewrite API additions and improvements from David House. #2433
git-svn-id: http://svn.automattic.com/wordpress/trunk@3638 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-12 22:57:00 +00:00
ryan
3f9714b97f Cron fixes from mdawaffe. #2425
git-svn-id: http://svn.automattic.com/wordpress/trunk@3636 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-08 05:51:42 +00:00
ryan
bc44b1b75d Cron fixes from masquerade. #2425
git-svn-id: http://svn.automattic.com/wordpress/trunk@3635 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-07 22:34:05 +00:00
ryan
fb1e531077 Cron improvements from masquerade. #2425
git-svn-id: http://svn.automattic.com/wordpress/trunk@3634 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-07 21:43:59 +00:00
ryan
8d5089e9d1 Don't add UTC offset again when formatting 'U' in mysql2date. Props masquerade. fixes #2537
git-svn-id: http://svn.automattic.com/wordpress/trunk@3633 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-07 21:24:49 +00:00
ryan
e7feb40925 Pad post_date elements. Props: masquerade. fixes #2542
git-svn-id: http://svn.automattic.com/wordpress/trunk@3632 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-07 21:00:38 +00:00
ryan
7b406ed7e0 Sanitize user_login in register form
git-svn-id: http://svn.automattic.com/wordpress/trunk@3629 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-07 05:59:28 +00:00
ryan
46acb0973f List manipulation cap update from mdawaffe. fixes #2538
git-svn-id: http://svn.automattic.com/wordpress/trunk@3626 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-06 23:29:10 +00:00
ryan
14ece75d6f Language support for TinyMCE. Props capt_kirk and Stephen Chu. fixes #2476
git-svn-id: http://svn.automattic.com/wordpress/trunk@3623 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-06 22:51:28 +00:00
ryan
b8bbbd656e Add referer check. Props masquerade.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3621 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-06 08:32:20 +00:00
ryan
75a62f2e1e Add referer checks. Props masquerade.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3618 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-06 08:19:41 +00:00
matt
adb8409d4d UI cleanup, todo: i18n
git-svn-id: http://svn.automattic.com/wordpress/trunk@3617 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-06 02:52:18 +00:00
ryan
c3170f0c6b Check admin referer.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3615 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-05 22:45:44 +00:00
ryan
2714ef2df9 Relative links in RTE. fixes #2492
git-svn-id: http://svn.automattic.com/wordpress/trunk@3612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-04 22:44:51 +00:00
ryan
509ffdb9a7 Isolate backref. fixes #2521
git-svn-id: http://svn.automattic.com/wordpress/trunk@3610 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-04 22:41:16 +00:00
ryan
da41283680 Set charset in blogger importer iframe. Props Sewar. fixes #2404
git-svn-id: http://svn.automattic.com/wordpress/trunk@3609 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-04 22:11:48 +00:00
ryan
bebd52f478 Entitize
git-svn-id: http://svn.automattic.com/wordpress/trunk@3607 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-04 21:08:34 +00:00
ryan
91621266c1 Back compat fixes for get_links().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3606 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-04 20:39:51 +00:00
ryan
150bb1dcee Normalize argument names.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3605 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-03 21:38:36 +00:00
ryan
eaea1c6e70 prefix not table_prefix. Props Kafkaesqui. fixes #2528
git-svn-id: http://svn.automattic.com/wordpress/trunk@3604 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-03 20:36:40 +00:00
ryan
df35b1041b Use table prefix from wpdb. Props Mark J. #2524
git-svn-id: http://svn.automattic.com/wordpress/trunk@3603 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-03 17:19:05 +00:00
ryan
ce4fd3bf02 Forget to group with parens on [3600]. #2498
git-svn-id: http://svn.automattic.com/wordpress/trunk@3601 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-03 02:17:14 +00:00
ryan
18db892b64 Make sure posts array is not empty before checking preview state. #2498
git-svn-id: http://svn.automattic.com/wordpress/trunk@3600 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-03 02:14:31 +00:00
ryan
b3214d6cc8 Fix edit comment link.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3599 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 12:26:13 +00:00
ryan
2faf227f79 Remove linkcategories table from schema.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3598 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 10:43:57 +00:00
ryan
c29cb19596 s/get_linkz/get_bookmarks/
git-svn-id: http://svn.automattic.com/wordpress/trunk@3597 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 10:32:19 +00:00
ryan
22b9357157 Update bookmarks include.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3596 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 10:22:18 +00:00
ryan
7f125c5135 Use array_merge() to set defaults.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3595 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 06:37:00 +00:00
ryan
5643e1c1ba Allow args to be passed as query string or as associative array. This avoid multiple parse_str calls when passing args along and provides choice on the cheap.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3594 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 05:47:59 +00:00
ryan
83a6d4c005 Move links.php to template-functions-bookmarks.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@3593 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 04:59:27 +00:00
ryan
e475b0e8d9 s/get_linkz/get_bookmarks/
git-svn-id: http://svn.automattic.com/wordpress/trunk@3592 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 04:55:31 +00:00
ryan
36adfa7d1c Add wp_dropdown_categories(). Deprecate dropdown_categories(). Add wp_list_categories() and make wp_list_cats() an alias.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3591 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 04:51:24 +00:00
ryan
263088e1a8 Actually move these this time. #2520
git-svn-id: http://svn.automattic.com/wordpress/trunk@3590 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 03:31:43 +00:00
ryan
ca92bb4311 Move deprecated functions to deprecated.php. #2520
git-svn-id: http://svn.automattic.com/wordpress/trunk@3589 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 03:27:48 +00:00
ryan
7973bc5d93 DB escaping in fix_attachment_links(). #2434
git-svn-id: http://svn.automattic.com/wordpress/trunk@3586 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-02 02:47:36 +00:00
ryan
86372fea2e s/Links/Bookmarks/
git-svn-id: http://svn.automattic.com/wordpress/trunk@3585 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-01 21:44:22 +00:00
ryan
4207b4cb00 Better show up front UI from Mark Jaquith. #2515
git-svn-id: http://svn.automattic.com/wordpress/trunk@3583 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-01 20:58:40 +00:00
ryan
459c030ef3 wp_list_cats() rework. Add walk_tree() and walk_category_tree(). Use get_categories() for query.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3582 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-01 13:30:19 +00:00
ryan
6452ec1bbc What's up front? #2515
git-svn-id: http://svn.automattic.com/wordpress/trunk@3581 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-03-01 07:08:04 +00:00
ryan
5fb29643cb walk_page_tree() fix from Mark J. fixes #2516
git-svn-id: http://svn.automattic.com/wordpress/trunk@3579 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-28 21:02:10 +00:00
ryan
0c110bc342 Fix page walk bug. fixes #2516
git-svn-id: http://svn.automattic.com/wordpress/trunk@3578 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-28 11:19:04 +00:00
ryan
25c2dcac3c More comment cookie sanitation.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3577 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-28 09:49:06 +00:00
ryan
6eadde74ac Add get_category_by_path(). Remove old fullpath stuff.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3576 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-28 08:00:39 +00:00
ryan
740d8f1c1f Add name arg to wp_dropdown_pages().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3575 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-28 06:11:59 +00:00
ryan
672530a9da Strip all html from comment author name, email, and url.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3574 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-28 04:22:24 +00:00
ryan
803c970527 wp_dropdown_pages() and walk_page_tree()
git-svn-id: http://svn.automattic.com/wordpress/trunk@3573 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-28 03:57:08 +00:00
ryan
be1f99d329 _SERVER is not escaped by magic_quotes_gpc so don't strip it.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3572 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-28 01:52:59 +00:00
ryan
1de4321d0b Fix post save/delete redirects. fixes #2505 #2502
git-svn-id: http://svn.automattic.com/wordpress/trunk@3571 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-27 05:15:13 +00:00
ryan
e9c75f4bd2 Bookmark/link rework. #2499
git-svn-id: http://svn.automattic.com/wordpress/trunk@3570 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-27 04:57:30 +00:00
ryan
0bc5aae7ef Mac meta keys from Alex King. fixes #2182
git-svn-id: http://svn.automattic.com/wordpress/trunk@3569 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-24 03:55:25 +00:00
ryan
c8f803dfbd Fix Write a post link in Dashboard. fixes #2503
git-svn-id: http://svn.automattic.com/wordpress/trunk@3568 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-23 20:09:50 +00:00
ryan
83728df100 Fix edit links.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3567 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-22 19:17:28 +00:00
ryan
5322fc2faa current user cleanup
git-svn-id: http://svn.automattic.com/wordpress/trunk@3566 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-22 19:08:55 +00:00
ryan
e06ed8c9b6 Hide cookie layout behind wp_get_cookie_login() so that plugins can customize the cookies.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3565 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-22 07:30:28 +00:00
ryan
b4166c403b Allow queries by post type. Enable paging in Manage->Pages
git-svn-id: http://svn.automattic.com/wordpress/trunk@3564 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-21 08:39:58 +00:00
ryan
29540c8e2b Breakup post.php into post.php, comment.php, page.php, post-new.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@3563 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-21 06:11:46 +00:00
ryan
c8e61c99b8 Oops. Missing paren.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3562 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-20 21:23:09 +00:00
ryan
decf6ec071 Move wp_cron from shutdown hook to init. It was acting all funky (in the bad way) in the shutdown hook.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3561 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-20 21:07:17 +00:00
ryan
0cda0d89f0 Check Published for future posts. fixes #2488
git-svn-id: http://svn.automattic.com/wordpress/trunk@3560 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-20 21:00:19 +00:00
ryan
f517a9c06c Use current_time() instead of time(). fixes #2489
git-svn-id: http://svn.automattic.com/wordpress/trunk@3559 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-20 17:15:13 +00:00
ryan
605d4a617a Fix post/page slug out. Props donncha. fixes #2472
git-svn-id: http://svn.automattic.com/wordpress/trunk@3558 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-20 17:13:06 +00:00
ryan
2fc8c248b3 Add Publish button for pages. fixes #2451
git-svn-id: http://svn.automattic.com/wordpress/trunk@3550 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-19 05:57:54 +00:00
ryan
35c2833427 Add alpha sort to wp_get_archives(). Props skippy. fixes #247
git-svn-id: http://svn.automattic.com/wordpress/trunk@3549 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-19 02:07:13 +00:00
ryan
941ec0ff97 Blog privacy. fixes #2480
git-svn-id: http://svn.automattic.com/wordpress/trunk@3548 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-18 07:40:43 +00:00
ryan
70197e85f3 Honor comment_status and ping_status when writing a new post. Props Mark Jaquith. fixes #2445
git-svn-id: http://svn.automattic.com/wordpress/trunk@3547 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-18 00:16:41 +00:00
ryan
73affaa5c7 greymatter importer from bungeman. fixes #2464
git-svn-id: http://svn.automattic.com/wordpress/trunk@3546 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-18 00:06:33 +00:00
ryan
0f14c31ff1 Use wp_specialchars() to avoid double encoding. Props zonble. fixes #2446
git-svn-id: http://svn.automattic.com/wordpress/trunk@3544 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-17 02:05:40 +00:00
ryan
bfa59b9419 Remove extraneous paren. fixes #2448
git-svn-id: http://svn.automattic.com/wordpress/trunk@3543 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-17 01:34:37 +00:00
ryan
f34023a445 clean comment author url. fixes #2454
git-svn-id: http://svn.automattic.com/wordpress/trunk@3542 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-17 01:31:53 +00:00
ryan
e297c36253 Move raquo into gettext. Props SteveAgl. fixes #2453
git-svn-id: http://svn.automattic.com/wordpress/trunk@3541 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-17 01:29:33 +00:00
ryan
96ee80d399 Remove useless lines. Props majelbstoat. fixes #2455
git-svn-id: http://svn.automattic.com/wordpress/trunk@3540 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-17 01:25:10 +00:00
ryan
ec22fc85b3 Add post_content_filtered to insert and update in wp_insert_attachment(). Props bungeman. fixes #2457
git-svn-id: http://svn.automattic.com/wordpress/trunk@3539 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-17 01:09:40 +00:00
ryan
e95ada23ce get_permalink() performance improvement from arnee. fixes #2463
git-svn-id: http://svn.automattic.com/wordpress/trunk@3538 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-17 01:04:20 +00:00
ryan
34398e5a2e Make sure user_id is set before inserting. Props bungeman. fixes #2459
git-svn-id: http://svn.automattic.com/wordpress/trunk@3537 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-17 01:00:18 +00:00
ryan
1d49d0373f Dynamic menu reparenting. fixes #2257
git-svn-id: http://svn.automattic.com/wordpress/trunk@3536 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-17 00:57:10 +00:00
ryan
60d01b1f96 Use post_type not post_status.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3535 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-15 07:16:58 +00:00
ryan
e9442d2d08 schedule future posts with cron when upgrading.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3534 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-14 23:48:44 +00:00
ryan
521f99d371 Correct inverted logic.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3533 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-14 23:37:28 +00:00
ryan
e91aa85ce7 Bump db ver check.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3532 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-14 23:25:36 +00:00
ryan
a37a1d7440 Give future posts a post_status of future when upgrading.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3531 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-14 23:22:22 +00:00
ryan
71ceecb82b dotclear importer fix from thomasq. fixes #2430
git-svn-id: http://svn.automattic.com/wordpress/trunk@3530 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-14 22:32:25 +00:00
ryan
d30b5f1c99 Option to 'mark as spam' in notification e-mail from Mark J. fixes #1048
git-svn-id: http://svn.automattic.com/wordpress/trunk@3529 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-14 20:09:13 +00:00
ryan
bcb996e5d3 Don't show private and draft pages in post lists. fixes #2442
git-svn-id: http://svn.automattic.com/wordpress/trunk@3528 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-14 06:23:03 +00:00
ryan
ecb85e38bb Don't walk rewrite structure when generating comment feed rewrite rules. This fixes a bug uncovered when we switched from unions to merges. Props joshkidd. fixes #2379
git-svn-id: http://svn.automattic.com/wordpress/trunk@3527 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-14 01:30:14 +00:00
ryan
535d41ea76 If requesting post caps for a page, redirect to equivalent page caps.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3526 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-14 01:10:51 +00:00
ryan
f3faa6c75d Fix timestamps for future posts. fixes #2439
git-svn-id: http://svn.automattic.com/wordpress/trunk@3525 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-14 00:12:09 +00:00
ryan
d0f14a4c93 Move generic_ping() to execute-pings.php. fixes #2440
git-svn-id: http://svn.automattic.com/wordpress/trunk@3524 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-13 23:14:59 +00:00
ryan
a9fca43a85 get_page_by_path() tweak.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3523 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-13 07:04:14 +00:00
ryan
373424383e wp_cron() array warning fix ups from Owen. fixes #2436
git-svn-id: http://svn.automattic.com/wordpress/trunk@3522 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-13 05:30:44 +00:00
ryan
c2f5986b03 Trackback only for published posts.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3521 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-12 09:07:37 +00:00
ryan
e316add4ea Category count fix from MichaelH. fixes #2212
git-svn-id: http://svn.automattic.com/wordpress/trunk@3520 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-12 08:22:42 +00:00
ryan
8b166d5c9b User ref instead of copying. Props m4ttias. fixes #2256
git-svn-id: http://svn.automattic.com/wordpress/trunk@3519 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-12 08:14:10 +00:00
ryan
e309d60bdb i18n fix for next month links from bob58. fixes #2399
git-svn-id: http://svn.automattic.com/wordpress/trunk@3518 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-12 08:00:54 +00:00
ryan
dd202ce1f9 Death to trailing tabs. Props Mark J. fixes #2405
git-svn-id: http://svn.automattic.com/wordpress/trunk@3517 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-12 07:53:23 +00:00
ryan
17b47c6fe0 Hide add cat if user does not have mange_categories cap. Props Mark Jaquith. fixes #2432
git-svn-id: http://svn.automattic.com/wordpress/trunk@3516 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-12 07:46:34 +00:00
ryan
30bb2362e2 dylsexia
git-svn-id: http://svn.automattic.com/wordpress/trunk@3515 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-12 07:43:15 +00:00
ryan
a5fc1e9ebe Post status = future. #2426
git-svn-id: http://svn.automattic.com/wordpress/trunk@3514 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-12 07:41:56 +00:00
ryan
d6d431c1be Add new page caps now that pages can be draft or publish. Brings page caps to parity with posts. Add delete caps for posts and pages. fixes #2382 #2336 #2301
git-svn-id: http://svn.automattic.com/wordpress/trunk@3513 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-11 09:56:02 +00:00
ryan
9f50b562b5 Pseudo-cron first cut. Props Owen. #2425
git-svn-id: http://svn.automattic.com/wordpress/trunk@3512 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-11 02:24:47 +00:00
ryan
67968a6127 get_page_by_path. Some page uri cleanups.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3511 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-10 00:54:16 +00:00
ryan
f812294867 Allow draft pages. Use post_type for object types. Reserve post_status strictly for status. fixes #1820
git-svn-id: http://svn.automattic.com/wordpress/trunk@3510 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-09 10:03:48 +00:00
matt
28dbf2bf37 Nice new hook, fixes #2398
git-svn-id: http://svn.automattic.com/wordpress/trunk@3509 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-09 09:03:13 +00:00
matt
8f3d06a864 Exclude cats like we said we would, davidhouse. Fixes #2215 and fixes #2187
git-svn-id: http://svn.automattic.com/wordpress/trunk@3508 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-09 08:26:30 +00:00
matt
f4a34c7074 Better email error checking, fixes #2046
git-svn-id: http://svn.automattic.com/wordpress/trunk@3507 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-09 08:11:26 +00:00
matt
d266a0d226 Don't falsely marketh as spam. Fixes #1560
git-svn-id: http://svn.automattic.com/wordpress/trunk@3506 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-09 07:25:25 +00:00
ryan
66828c03e9 Use current_user_can
git-svn-id: http://svn.automattic.com/wordpress/trunk@3505 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-07 01:06:04 +00:00
ryan
6c4e7e48d2 Disable cache by default.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3504 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-02-04 03:21:09 +00:00
matt
7d7b32416c Bump!
git-svn-id: http://svn.automattic.com/wordpress/trunk@3502 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-31 20:05:42 +00:00
ryan
4f895adff7 Remove execute bit from uploaded files. #2190
git-svn-id: http://svn.automattic.com/wordpress/trunk@3501 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-30 22:03:06 +00:00
ryan
537e956fbc Add text/javascript header to cat-js.php. Props Juergen. fixes #2351
git-svn-id: http://svn.automattic.com/wordpress/trunk@3500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-30 21:39:20 +00:00
ryan
fa6f173c88 Remove core_files_loaded action due to general uselessness. fixes #2347
git-svn-id: http://svn.automattic.com/wordpress/trunk@3499 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-30 21:29:22 +00:00
ryan
60ccea94fd Check if HTTP_RAW_POST_DATA is set to avoid undefined var warning. Props Juergen. fixes #2350
git-svn-id: http://svn.automattic.com/wordpress/trunk@3498 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-30 21:19:44 +00:00
ryan
f035ac9b20 Make check_admin_referer() pluggable.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3497 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-29 23:06:58 +00:00
ryan
81908816ab Flush all_page_ids when a page is addded or deleted.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3496 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-29 19:58:48 +00:00
ryan
325a641cac Delete usermeta field if set to empty string. Props David House. fixes #2341
git-svn-id: http://svn.automattic.com/wordpress/trunk@3495 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-29 19:48:09 +00:00
ryan
cd678d9a32 Allow empty usermeta fields. Props David House. fixes #2341
git-svn-id: http://svn.automattic.com/wordpress/trunk@3494 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-29 00:21:48 +00:00
ryan
e4e35319e1 Fix RSD link. Props Juergen. fixes #2349
git-svn-id: http://svn.automattic.com/wordpress/trunk@3493 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-29 00:15:57 +00:00
ryan
1fe8b77d26 TB fix. fixes #2197
git-svn-id: http://svn.automattic.com/wordpress/trunk@3492 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-29 00:12:14 +00:00
ryan
5c166af378 CGI ping fixes. fixes #2197
git-svn-id: http://svn.automattic.com/wordpress/trunk@3491 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-28 18:41:19 +00:00
matt
dd14d47290 Caching typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3490 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-28 06:19:11 +00:00
ryan
a191df007e Make sure we have an array. Props David House. fixes #2344
git-svn-id: http://svn.automattic.com/wordpress/trunk@3489 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-27 19:22:55 +00:00
ryan
a225d305fa Reinstate user_firstname, user_lastname, and user_description in the user object for backwards compat.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3488 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-27 18:14:33 +00:00
ryan
10c1b81d0a Use double quotes. fixes #2332
git-svn-id: http://svn.automattic.com/wordpress/trunk@3487 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-26 02:33:14 +00:00
ryan
710a6ef5b5 post_custom cleanup. fixes #2160
git-svn-id: http://svn.automattic.com/wordpress/trunk@3486 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-25 07:38:43 +00:00
ryan
f87324b259 update_option_* actions. fixes #2332
git-svn-id: http://svn.automattic.com/wordpress/trunk@3485 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-25 06:46:21 +00:00
ryan
72dfd6faab 404 if category not found. fixes #2123
git-svn-id: http://svn.automattic.com/wordpress/trunk@3484 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-25 03:59:41 +00:00
ryan
e868acbee9 Role display fix from Owen. fixes #2338
git-svn-id: http://svn.automattic.com/wordpress/trunk@3483 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-25 03:44:35 +00:00
ryan
9cff7433a7 add_role() fix from nielshackius. fixes #2298
git-svn-id: http://svn.automattic.com/wordpress/trunk@3482 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-25 03:39:59 +00:00
ryan
99385a2f18 Username sanitization cleanups.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3481 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-25 03:09:16 +00:00
ryan
9afb7a18db Upload links fix. fixes #2337
git-svn-id: http://svn.automattic.com/wordpress/trunk@3480 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-25 00:49:13 +00:00
ryan
f5b9962831 uksort() not usort()
git-svn-id: http://svn.automattic.com/wordpress/trunk@3479 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-24 09:44:17 +00:00
ryan
392ba189b3 Bumpity, bump, bump.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3478 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-24 07:53:26 +00:00
ryan
4c08bf3d7c Sort plugins by plugin name, not file name.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3477 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-24 07:48:21 +00:00
ryan
7cba6fd969 Don't list current theme in the availablet themes list.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3476 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-24 07:38:29 +00:00
ryan
7310346328 wp-mail quote escaping fix from majelbstoat. fixes #2209
git-svn-id: http://svn.automattic.com/wordpress/trunk@3475 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-23 23:49:22 +00:00
ryan
6a4f2fbec8 add_query_arg() fix from majelbstoat. fixes #2326
git-svn-id: http://svn.automattic.com/wordpress/trunk@3474 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-23 23:42:25 +00:00
ryan
9a6867aa44 is_preview() fixes from David House. fixes #2188
git-svn-id: http://svn.automattic.com/wordpress/trunk@3473 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-23 23:39:56 +00:00
ryan
f4071a3759 Use array_append() instead of unions. Props majelbstoat. fixes #2321
git-svn-id: http://svn.automattic.com/wordpress/trunk@3472 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-23 23:20:17 +00:00
matt
cdc37f33a4 Compat function, fixes #2319
git-svn-id: http://svn.automattic.com/wordpress/trunk@3471 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-23 23:15:17 +00:00
matt
51944d9f2c Link OPML changes, fixes #2325
git-svn-id: http://svn.automattic.com/wordpress/trunk@3470 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-23 23:10:08 +00:00
ryan
2c5c084ccc updateOtherIcon. fixes #2315
git-svn-id: http://svn.automattic.com/wordpress/trunk@3469 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-21 05:41:52 +00:00
ryan
b708753730 Don't use glob. Props David House. fixes #2312
git-svn-id: http://svn.automattic.com/wordpress/trunk@3468 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-20 21:09:19 +00:00
ryan
3fa51b528a Make sure we have an array. Props Ozh and David House. fixes #2313
git-svn-id: http://svn.automattic.com/wordpress/trunk@3467 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-20 21:07:10 +00:00
ryan
042f170ed8 Remove unneeded (and broken) line. Props asher. fixes #2314
git-svn-id: http://svn.automattic.com/wordpress/trunk@3466 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-20 21:02:59 +00:00
ryan
ee7a432c55 Cache flush improvements from Owen. fixes #2223 #2278
git-svn-id: http://svn.automattic.com/wordpress/trunk@3465 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-19 22:12:15 +00:00
ryan
30be2a8f69 8 not 7. fixes #2283
git-svn-id: http://svn.automattic.com/wordpress/trunk@3464 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-19 00:21:42 +00:00
ryan
fe8cbf801a Execute pings rework from skeltoac. #2197
git-svn-id: http://svn.automattic.com/wordpress/trunk@3463 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-19 00:03:28 +00:00
ryan
4dcbfe9b37 Add ENABLE_CACHE flag to force persistent cache enable.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3462 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 22:21:40 +00:00
matt
cc8bd1bed9 Needless specificity
git-svn-id: http://svn.automattic.com/wordpress/trunk@3461 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 20:14:39 +00:00
ryan
e51a06e836 Fix kubrick and hReview style conflict. Props Ryan King. fixes #1436
git-svn-id: http://svn.automattic.com/wordpress/trunk@3460 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 19:45:24 +00:00
ryan
6ff524425a Fall back to default theme if current theme is deleted. Props David House. fixes #2305
git-svn-id: http://svn.automattic.com/wordpress/trunk@3459 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 19:38:29 +00:00
ryan
f6c66d873d Give draft posts a current timestamp. Props David House and technosailor. fixes #2164
git-svn-id: http://svn.automattic.com/wordpress/trunk@3458 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 19:30:28 +00:00
ryan
fbc3a7d010 Accomodate long page names in Page Parent dropdown. Props David House. fixes #2304
git-svn-id: http://svn.automattic.com/wordpress/trunk@3457 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 19:21:37 +00:00
ryan
19b29d08ee Check upload_files cap for inline uploader. Props David House and doit-cu. fixes #2302
git-svn-id: http://svn.automattic.com/wordpress/trunk@3456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 19:16:31 +00:00
ryan
395b6dbc1a Pass comment ID to comment email filters. Props Mark Jaquith. fixes #2307
git-svn-id: http://svn.automattic.com/wordpress/trunk@3455 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 18:49:28 +00:00
ryan
45863965f1 sanitize_user() fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3454 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 05:37:26 +00:00
ryan
b6f368702d wp_roles cleanup
git-svn-id: http://svn.automattic.com/wordpress/trunk@3453 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 03:07:26 +00:00
ryan
515892d7ab wp_roles cleanup.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3452 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-18 01:06:11 +00:00
matt
2514ca2bc7 Better text
git-svn-id: http://svn.automattic.com/wordpress/trunk@3451 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-17 02:07:37 +00:00
matt
a2f93dd321 Axe those funny looking lines - fixes #2192
git-svn-id: http://svn.automattic.com/wordpress/trunk@3450 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-17 01:51:26 +00:00
matt
fdba51eb87 Let's not modify wpconfig for now, fixes #2107
git-svn-id: http://svn.automattic.com/wordpress/trunk@3449 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-17 01:03:23 +00:00
matt
0ca2b56f1e get_post_custom_values update. Fixes #2160
git-svn-id: http://svn.automattic.com/wordpress/trunk@3448 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-17 01:01:17 +00:00
matt
a3b3902c53 Plugin update from Skippy, fixes #2251
git-svn-id: http://svn.automattic.com/wordpress/trunk@3447 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-17 00:51:34 +00:00
matt
78d25a023b Strip some more funny chars, fixes #2093
git-svn-id: http://svn.automattic.com/wordpress/trunk@3446 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-17 00:48:24 +00:00
matt
90b3004603 Better HTTPS support - fixes #2283
git-svn-id: http://svn.automattic.com/wordpress/trunk@3445 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-16 23:04:09 +00:00
matt
9865911bff Don't allow uploading PHP files, fixes #2300.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3444 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-16 23:02:27 +00:00
ryan
795609c953 Use ->comments instead of . fixes #2293
git-svn-id: http://svn.automattic.com/wordpress/trunk@3443 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-16 20:07:00 +00:00
ryan
d96ba966cd Use ->comments instead of . fixes #2294
git-svn-id: http://svn.automattic.com/wordpress/trunk@3442 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-16 20:03:56 +00:00
ryan
e701f8c526 Link import fix from Kafkaesqui. fixes #2296
git-svn-id: http://svn.automattic.com/wordpress/trunk@3441 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-16 19:57:20 +00:00
ryan
86d3dbb81f wp_specialchars the request uri when contructing paging links. fixes #1686
git-svn-id: http://svn.automattic.com/wordpress/trunk@3440 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-15 23:42:10 +00:00
ryan
43abf185f3 Set charset. Props ruckus. fixes #2289
git-svn-id: http://svn.automattic.com/wordpress/trunk@3439 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-15 23:21:29 +00:00
ryan
aaf8f92d73 i18n fix from pandem. fixes #2292
git-svn-id: http://svn.automattic.com/wordpress/trunk@3438 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-15 22:04:21 +00:00
ryan
db03553bf2 More upload path tweaks. fixes #2271
git-svn-id: http://svn.automattic.com/wordpress/trunk@3437 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-14 22:09:51 +00:00
ryan
150fb02aa0 Disable peristent cache when safe_mode.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3436 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-14 21:22:48 +00:00
ryan
937e73d016 Acquire lock when flushing cache.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3435 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-14 00:05:22 +00:00
ryan
f7ed2d60d3 Relocate edit_page_form hook for consistency. Props Denis-de-Bernardy. fixes #2118
git-svn-id: http://svn.automattic.com/wordpress/trunk@3434 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-13 22:42:45 +00:00
ryan
58029f7249 Force absolute lookup. Props tanuki. fixes #2237
git-svn-id: http://svn.automattic.com/wordpress/trunk@3433 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-13 22:40:22 +00:00
ryan
3addf81bd1 Make sure cat-js loads. Props donncha. fixes #2262
git-svn-id: http://svn.automattic.com/wordpress/trunk@3432 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-13 22:09:57 +00:00
ryan
e762c60a4d Remove debug cruft. fixes #2273
git-svn-id: http://svn.automattic.com/wordpress/trunk@3431 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-13 22:08:00 +00:00
ryan
cb093369a1 Make the xmlrpc user the current user. fixes #2273
git-svn-id: http://svn.automattic.com/wordpress/trunk@3430 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-13 19:19:09 +00:00
ryan
558711072b kses regex tweakage for better comment filtering. fixes #2130
git-svn-id: http://svn.automattic.com/wordpress/trunk@3429 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-13 07:28:47 +00:00
ryan
acff9479ff Remove reference to non-existant edit-attachment-form. fixes #2270
git-svn-id: http://svn.automattic.com/wordpress/trunk@3428 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-12 03:44:44 +00:00
ryan
ba29615e7e Trigger pre_ping action outside of loop. Props Mark Jaquith. fixes #2269
git-svn-id: http://svn.automattic.com/wordpress/trunk@3427 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-11 21:35:36 +00:00
ryan
96abeca9f3 Don't overwrite global request when starting a new query.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3426 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-11 11:06:26 +00:00
ryan
3904108d96 Add gettext filter. fixes #2258
git-svn-id: http://svn.automattic.com/wordpress/trunk@3425 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-10 22:53:40 +00:00
ryan
813d3c7737 i18n updates from SteveAgl. fixes #2260
git-svn-id: http://svn.automattic.com/wordpress/trunk@3424 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-10 22:50:19 +00:00
ryan
f44e565656 Require admin.php. fixes #2263
git-svn-id: http://svn.automattic.com/wordpress/trunk@3423 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-10 22:49:11 +00:00
matt
759faa6b9a HTML and JS cleanup
git-svn-id: http://svn.automattic.com/wordpress/trunk@3422 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-10 05:16:17 +00:00
matt
bfbe1f2def Re-arrange these options a bit
git-svn-id: http://svn.automattic.com/wordpress/trunk@3421 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-10 03:14:34 +00:00
matt
e9678c577b Better redirect back.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3420 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-10 03:06:48 +00:00
ryan
a905e79b9f Dotclear importer from thomasq. fixes #2234
git-svn-id: http://svn.automattic.com/wordpress/trunk@3419 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-10 01:46:54 +00:00
ryan
107326dcd9 Rerun comment text back through kses.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3418 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-10 01:27:36 +00:00
ryan
ea84ce4551 Pass comments through kses. Props tsimmons. fixes #2130 #2167
git-svn-id: http://svn.automattic.com/wordpress/trunk@3417 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-09 23:49:56 +00:00
ryan
0962ff9bff Confirm-delete dialog fix from Mark Jaquith. fixes #2249
git-svn-id: http://svn.automattic.com/wordpress/trunk@3416 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-09 22:50:35 +00:00
ryan
410206ab66 dbx hooks from Owen. fixes #2250
git-svn-id: http://svn.automattic.com/wordpress/trunk@3415 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-09 22:44:42 +00:00
ryan
8154a9f636 Bump version.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3414 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-09 22:29:36 +00:00
ryan
88e32d34fc Add upload folder options. Props David House. fixes #2206
git-svn-id: http://svn.automattic.com/wordpress/trunk@3413 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-09 22:24:57 +00:00
ryan
0784227411 i81n fix from David House. fixes #2214
git-svn-id: http://svn.automattic.com/wordpress/trunk@3412 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-07 06:33:49 +00:00
ryan
84da5fc90f Save cache after the shutdown hook runs. fixes #2232
git-svn-id: http://svn.automattic.com/wordpress/trunk@3411 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-06 02:10:43 +00:00
ryan
02089fb5f2 Fix get_post_meta() array return. fixes #2183
git-svn-id: http://svn.automattic.com/wordpress/trunk@3410 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-06 01:30:13 +00:00
ryan
cff4c42d36 Avoid invoking template filters twice. Props David House. fixes #2225
git-svn-id: http://svn.automattic.com/wordpress/trunk@3409 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-06 01:09:16 +00:00
ryan
c1ed565c23 Check if SCRIPT_FILENAME is set to avoid warnings. fixes #2227
git-svn-id: http://svn.automattic.com/wordpress/trunk@3408 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-06 01:05:59 +00:00
ryan
63e1963e19 Send to editor fix ups. fixes #2199
git-svn-id: http://svn.automattic.com/wordpress/trunk@3407 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-05 23:33:50 +00:00
matt
0b1e3030b3 Technorati URL change.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3406 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-05 06:31:11 +00:00
ryan
aeb76a3a42 LJ importer tweaks.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3405 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-05 05:35:09 +00:00
ryan
778923ceb1 Don't cache posts when importing. fixes #2224
git-svn-id: http://svn.automattic.com/wordpress/trunk@3404 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-05 05:34:28 +00:00
ryan
81cb9e9d7b Remove printr calls.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3403 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-05 05:27:31 +00:00
ryan
05188cd4a0 Don't remove top level cache dir when flushing.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3402 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-05 04:50:58 +00:00
ryan
9c9f5f8aaa Add [L] to rewrite rule. Props cavemonkey50. fixes #2222
git-svn-id: http://svn.automattic.com/wordpress/trunk@3401 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-05 03:47:38 +00:00
ryan
9675f5fd55 More reliable cache flusher that does not require glob().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3400 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-05 02:56:42 +00:00
ryan
dd8e5a3aae Default theme header color provisioning tweaks. fixes #2219
git-svn-id: http://svn.automattic.com/wordpress/trunk@3399 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-05 01:47:22 +00:00
ryan
c26e1c0cc3 Handle quotes in upload titles. fixes #2198
git-svn-id: http://svn.automattic.com/wordpress/trunk@3398 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-05 01:43:30 +00:00
ryan
0275a631e0 Fix typo. Props gasper@gmail.com. fixes #2213
git-svn-id: http://svn.automattic.com/wordpress/trunk@3397 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-04 00:49:25 +00:00
ryan
6db55e81a6 Fix variable name collision that was breaking paging. fixes #2204
git-svn-id: http://svn.automattic.com/wordpress/trunk@3396 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-04 00:41:53 +00:00
ryan
e2aecdde88 Better broken path info workaround for setups that use redirection.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3395 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-03 00:59:31 +00:00
ryan
d004dacd10 Strip # from filenames. fixes #2166
git-svn-id: http://svn.automattic.com/wordpress/trunk@3394 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-02 21:31:51 +00:00
ryan
ee8b3c94df i18n fixes from SteveAgl. fixes #2207
git-svn-id: http://svn.automattic.com/wordpress/trunk@3393 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-02 21:08:34 +00:00
ryan
b60db381c7 Decode entities in inline uploader. fixes #2208
git-svn-id: http://svn.automattic.com/wordpress/trunk@3392 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-02 20:55:45 +00:00
ryan
f156be20cb Fix redirect when already logged in.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3391 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-02 08:46:13 +00:00
ryan
b0f69e20a3 Create dir hierarchy for files passed to wp_upload_bits().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3390 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-02 04:59:39 +00:00
ryan
c798fede84 Upload dir cleanups. Honor old fileupload_path settings if present.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3389 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-02 04:33:27 +00:00
ryan
807f5ded08 Preserve suid and sgid bits when creating new directories. fixes #2190
git-svn-id: http://svn.automattic.com/wordpress/trunk@3388 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-02 02:50:59 +00:00
ryan
da72493884 MT import fixes from cubex.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3387 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2006-01-01 22:54:56 +00:00
ryan
faa30b7898 Default expiration is too long. Change it to 15 minutes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3386 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-31 22:34:58 +00:00
ryan
67febd9d7a Fallback to matching the leaf category if the full path doesn't match. Props David House. fixes #2161
git-svn-id: http://svn.automattic.com/wordpress/trunk@3385 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-31 21:53:13 +00:00
ryan
90fc694201 Trackback tweaks. Props http://blog.serv.idv.tw/2005/12/29/380/. fixes #2170
git-svn-id: http://svn.automattic.com/wordpress/trunk@3384 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-31 21:24:56 +00:00
ryan
41a3730222 newCatAddIn fix. fixes #2184
git-svn-id: http://svn.automattic.com/wordpress/trunk@3383 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-31 20:59:28 +00:00
ryan
38f4fca0db Move PHP_SELF setup to wp-settings.php. #2153
git-svn-id: http://svn.automattic.com/wordpress/trunk@3382 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-29 23:11:26 +00:00
ryan
095edb0aea Add footer to Import Blogroll page. Props Ozh. fixes #2168
git-svn-id: http://svn.automattic.com/wordpress/trunk@3381 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-29 21:59:38 +00:00
ryan
fb25862f14 Silenzio.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3380 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-29 21:42:56 +00:00
ryan
8cdc22e3d8 Post delete fix from David House. fixes #2173
git-svn-id: http://svn.automattic.com/wordpress/trunk@3379 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-29 21:16:53 +00:00
ryan
6d40d77615 More wp_upload_bits() fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3378 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-29 02:07:10 +00:00
ryan
39195303f1 Fix extension handling.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3377 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-29 01:46:32 +00:00
ryan
d789b7005e Typo in wp_upload_bits()
git-svn-id: http://svn.automattic.com/wordpress/trunk@3376 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-29 01:40:42 +00:00
ryan
00e695e6f5 LJ tweaks.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3375 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-29 01:25:41 +00:00
ryan
529d5294ec Flesh out LJ importer.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3374 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 20:24:12 +00:00
ryan
305a286ce1 Cache rewrite rules. Add WP_Rewrite::flush_rules(). fixes #2155
git-svn-id: http://svn.automattic.com/wordpress/trunk@3373 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 07:05:05 +00:00
ryan
81f0c504cd Regen page rewrite rules when upgrading.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3372 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 05:20:13 +00:00
ryan
240128b76d Create explicit page attachment rewrite rules rather than matching the attachment name against a regexp.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3371 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 04:27:21 +00:00
ryan
8906eb2557 Anchor str replacements to head so that we don't replace across the entire string. fixes #2162
git-svn-id: http://svn.automattic.com/wordpress/trunk@3370 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 01:48:29 +00:00
ryan
b64e33619d Use mb_strcut instead of mb_substr. fixes #2163
git-svn-id: http://svn.automattic.com/wordpress/trunk@3369 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 01:06:57 +00:00
ryan
f1e77a800a i18n trackback fix. Props thinkini. fixes #2163
git-svn-id: http://svn.automattic.com/wordpress/trunk@3368 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 00:55:55 +00:00
ryan
97749ecf1d Title fixes for plugin menu pages. fixes #1447
git-svn-id: http://svn.automattic.com/wordpress/trunk@3367 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 00:45:13 +00:00
ryan
365a7b5ee0 Use API to delete comment so that counts are kept in sync. Props Mike Little. fixes #2159
git-svn-id: http://svn.automattic.com/wordpress/trunk@3366 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 00:42:42 +00:00
ryan
7ff17cba43 Exit after sending headers. fixes #1917
git-svn-id: http://svn.automattic.com/wordpress/trunk@3365 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 00:16:40 +00:00
ryan
e4bc49b839 Don't be lazy. Props Denyerec
git-svn-id: http://svn.automattic.com/wordpress/trunk@3364 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-28 00:10:23 +00:00
matt
08005a3bba Pop the champagne
git-svn-id: http://svn.automattic.com/wordpress/trunk@3362 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-26 20:15:06 +00:00
ryan
c24a484571 Don't require admin-header.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-26 17:00:39 +00:00
ryan
94b2a5ad5d Use wp_handle_upload().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-26 09:55:24 +00:00
ryan
ca096fabad Make sure we have a valid timestamp. fixes #2148
git-svn-id: http://svn.automattic.com/wordpress/trunk@3359 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-25 21:42:07 +00:00
ryan
9c99a92bc5 Silence mkdir().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3358 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-25 21:16:27 +00:00
ryan
48f0f0a89e Update post_modified when the post is changed. fixes #1837
git-svn-id: http://svn.automattic.com/wordpress/trunk@3357 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-24 20:04:59 +00:00
ryan
541c30cc70 Fix page permalink 404 when pages are reordered. Props David House. fixes #2071
git-svn-id: http://svn.automattic.com/wordpress/trunk@3356 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-24 16:26:55 +00:00
ryan
d3105dc988 gettext updates from SteveAgl. fixes #2143
git-svn-id: http://svn.automattic.com/wordpress/trunk@3355 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-24 15:12:59 +00:00
ryan
c9afa8e4dc MAke sure post_parent is valid.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3354 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-24 05:34:50 +00:00
ryan
d0ff0c9315 Make wp_insert_attachment() MySQL 5 strict mode compliant. fixes #2115
git-svn-id: http://svn.automattic.com/wordpress/trunk@3353 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-24 05:32:49 +00:00
ryan
5df9400ad9 Enable MT importer.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3352 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-23 23:16:20 +00:00
ryan
cbb50041a8 Return ID not user_login.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3351 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-23 23:16:01 +00:00
ryan
a8652d0823 Use API.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3350 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-23 23:10:59 +00:00
ryan
0ea2312357 Styling for the theme select button. fixes #2101
git-svn-id: http://svn.automattic.com/wordpress/trunk@3349 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-23 21:08:42 +00:00
ryan
33ad867646 Remove cruft.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3348 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-23 20:59:23 +00:00
ryan
71d5605298 Fix already pinged list. Props pirateking. fixes #2136
git-svn-id: http://svn.automattic.com/wordpress/trunk@3347 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-23 20:43:30 +00:00
ryan
242cfef107 Typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3346 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-23 20:30:25 +00:00
ryan
056106dcfd h-scroll fix. fixes #1994
git-svn-id: http://svn.automattic.com/wordpress/trunk@3345 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-23 03:24:10 +00:00
matt
e5f66550f4 Hack hack hack hack hack hack hack
git-svn-id: http://svn.automattic.com/wordpress/trunk@3344 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-23 02:52:11 +00:00
ryan
2a40219b33 Hide errors when getting usermeta in case we're upgrading and usermeta doesn't exist yet. fixes #2110
git-svn-id: http://svn.automattic.com/wordpress/trunk@3343 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-23 00:32:15 +00:00
matt
b111087cbb Updating to stable version.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3342 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-22 21:45:59 +00:00
ryan
8b686cdc2d Update cache when editing categories. fixes #2127
git-svn-id: http://svn.automattic.com/wordpress/trunk@3341 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-22 20:32:12 +00:00
ryan
65223a924f Reduce consecutive backslashes to one backslash. Handy when escaped windows paths are passed in.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3340 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-22 05:18:18 +00:00
ryan
2a1cd8b2cd Bump ver in readme.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3339 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-22 05:05:52 +00:00
ryan
3a3d3f6aee Don't get children for cat 0. fixes #2123
git-svn-id: http://svn.automattic.com/wordpress/trunk@3338 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-22 04:31:48 +00:00
ryan
17707c8a55 plugin_page fix from Owen.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3337 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-22 03:06:04 +00:00
ryan
e2e74cf4b9 Clear user cache when the password is reset.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3336 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-22 01:40:32 +00:00
ryan
f33dda4dd2 Add error checking to file save. fixes #2109
git-svn-id: http://svn.automattic.com/wordpress/trunk@3335 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-21 16:56:11 +00:00
ryan
ebf2f33207 edit form fix from Viper007Bond. fixes #2113
git-svn-id: http://svn.automattic.com/wordpress/trunk@3334 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-21 15:56:14 +00:00
ryan
0d9a94d553 Edit link does not belong on attachments. fixes #2119
git-svn-id: http://svn.automattic.com/wordpress/trunk@3333 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-21 15:47:54 +00:00
matt
d62c42289e It goes bump in the night.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3332 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-20 07:07:26 +00:00
ryan
2d9779beba Make sure comment_parent is set.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3331 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-20 04:28:32 +00:00
ryan
a626f32296 Cache user ids and user logins separately to avoid collision. Props donncha. fixes #2096
git-svn-id: http://svn.automattic.com/wordpress/trunk@3330 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-19 19:14:22 +00:00
ryan
4f3bef3ac1 Validation tweaks. fixes #2097
git-svn-id: http://svn.automattic.com/wordpress/trunk@3329 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-19 19:10:09 +00:00
ryan
dbbd5efeb2 Attachment template fix. fixes #2098
git-svn-id: http://svn.automattic.com/wordpress/trunk@3328 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-19 19:08:30 +00:00
ryan
beca0741ca Init tweak. No need to prime category cache.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3327 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-18 22:08:01 +00:00
matt
4302cb0aee Update that readme.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3326 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-18 17:06:06 +00:00
ryan
f7feb0f213 Widen those buttons. fixes #2091
git-svn-id: http://svn.automattic.com/wordpress/trunk@3325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-18 15:54:02 +00:00
ryan
df7a837535 Workaround browser bug. fixes #2090
git-svn-id: http://svn.automattic.com/wordpress/trunk@3324 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-18 15:51:56 +00:00
ryan
bb564ec1aa Fix JS error in IE. fixes #2089
git-svn-id: http://svn.automattic.com/wordpress/trunk@3323 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-18 15:50:53 +00:00
ryan
02fb838f97 Fix ping races. fixes #2088
git-svn-id: http://svn.automattic.com/wordpress/trunk@3322 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-18 15:49:43 +00:00
ryan
4e79fa55fe get_children()
git-svn-id: http://svn.automattic.com/wordpress/trunk@3321 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-16 09:50:10 +00:00
ryan
30c70223b3 Compression tweaks.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-16 08:04:55 +00:00
ryan
4260bf8b16 Populate PHP_SELF from REQUEST_URI if blank.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-16 08:04:41 +00:00
ryan
708d693096 Add CDATA. fixes #1957
git-svn-id: http://svn.automattic.com/wordpress/trunk@3318 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-16 03:28:05 +00:00
ryan
97cd7143da New asyncronous ping method. fixes #2048
git-svn-id: http://svn.automattic.com/wordpress/trunk@3317 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-16 03:04:33 +00:00
ryan
c98cc7da09 Validation fix from philor. fixes #1958
git-svn-id: http://svn.automattic.com/wordpress/trunk@3316 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-16 02:40:40 +00:00
ryan
32743aec23 Don't die.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3315 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-15 22:26:22 +00:00
ryan
ee7b572202 Add post titles to site comment feed. Add some gettext. fixes #2067 #1987
git-svn-id: http://svn.automattic.com/wordpress/trunk@3314 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-15 22:20:06 +00:00
ryan
c676e9c5c0 Separate dbx managers for post and page forms. Props mdawaffe. fixes #2035
git-svn-id: http://svn.automattic.com/wordpress/trunk@3313 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-15 21:48:12 +00:00
ryan
3a51b35f25 Pluggable tinyMCE init. fixes #2080
git-svn-id: http://svn.automattic.com/wordpress/trunk@3312 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-15 21:42:38 +00:00
ryan
fd28b6f640 When changing a post's categories, redo category counts for both old and new cats. Props ringmaster. fixes #2085
git-svn-id: http://svn.automattic.com/wordpress/trunk@3311 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-15 20:31:29 +00:00
ryan
d567007a42 Don't treat a numeric user name as an id.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3310 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-15 16:45:20 +00:00
ryan
5a56fc2414 is_user_logged_in()
git-svn-id: http://svn.automattic.com/wordpress/trunk@3309 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-15 16:31:41 +00:00
ryan
9aa7dc5290 Bump ver.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3308 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-15 01:17:46 +00:00
ryan
0df81fe574 noscript support for uploading. fixes #2078
git-svn-id: http://svn.automattic.com/wordpress/trunk@3307 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-14 08:29:43 +00:00
ryan
47889e8cea JS init changes. fixes #2077
git-svn-id: http://svn.automattic.com/wordpress/trunk@3306 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-14 06:27:30 +00:00
ryan
4a2287378d More inline uploading tweaks. fixes #2076
git-svn-id: http://svn.automattic.com/wordpress/trunk@3305 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-14 04:24:05 +00:00
ryan
ab9b8f8b6a Attachment enhancements from skeltoac. fixes #2074
git-svn-id: http://svn.automattic.com/wordpress/trunk@3303 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-13 19:19:56 +00:00
ryan
9a11319958 Better user check.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3302 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-13 18:18:07 +00:00
ryan
100b550e1a Remove lang attribute. fixes #2072
git-svn-id: http://svn.automattic.com/wordpress/trunk@3301 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-13 08:47:55 +00:00
ryan
3671c6786d Update post cache before running the_posts filter. Since we already retrieved them, might as well cache them even if they are filtered out by plugins later.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3300 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-13 03:49:09 +00:00
ryan
2343663e0b If no user is logged in, setup an empty user.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3299 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-13 03:46:40 +00:00
ryan
f2d7c06c6d Add optional user_id arg.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3298 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-13 03:46:08 +00:00
ryan
f588d966bd Add read_post meta cap.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3297 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-13 00:54:52 +00:00
ryan
72650ed6b7 role_has_cap and user_has_cap filters from ringmaster. fixes #2005
git-svn-id: http://svn.automattic.com/wordpress/trunk@3296 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-12 23:20:44 +00:00
ryan
ece625403c i18n updates from nbachiyski. fixes #2069
git-svn-id: http://svn.automattic.com/wordpress/trunk@3295 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-12 22:48:30 +00:00
ryan
ea090d6f91 Use 'were' for past subjunctive. fixes #2000
git-svn-id: http://svn.automattic.com/wordpress/trunk@3294 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-12 01:48:12 +00:00
ryan
2a4aafe9b9 Fix attachment queries. fixes #2041
git-svn-id: http://svn.automattic.com/wordpress/trunk@3293 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-12 01:33:46 +00:00
ryan
9d75e305a2 MCE improvements from skeltoac. fixes #2058
git-svn-id: http://svn.automattic.com/wordpress/trunk@3292 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-12 01:27:56 +00:00
ryan
b5da83787d Resurrect save_post action for back compat. fixes #2063
git-svn-id: http://svn.automattic.com/wordpress/trunk@3291 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-12 00:30:14 +00:00
ryan
93cd8402f2 Update get_queried_object() to use get_userdata() when retrieving authors. fixes #2044
git-svn-id: http://svn.automattic.com/wordpress/trunk@3290 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-11 19:14:29 +00:00
ryan
931ee9ff74 get_post(), get_page() fixes from skeltoac. fixes #2057
git-svn-id: http://svn.automattic.com/wordpress/trunk@3289 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-11 18:01:19 +00:00
ryan
ffcfc84b78 Remove debug cruft. fixes #2056
git-svn-id: http://svn.automattic.com/wordpress/trunk@3288 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-11 17:57:50 +00:00
ryan
4e4739b918 Gecko paste fix. fixes #2051
git-svn-id: http://svn.automattic.com/wordpress/trunk@3287 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-11 01:32:05 +00:00
ryan
e6bcf0632d Fix is_admin() for situations where the query is not run. fixes #1741
git-svn-id: http://svn.automattic.com/wordpress/trunk@3286 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-10 23:29:39 +00:00
ryan
157aecdf6e Make sure fields without defaults are specified when inserting. fixes #1953
git-svn-id: http://svn.automattic.com/wordpress/trunk@3285 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-10 23:22:47 +00:00
ryan
0ace9024cd Add richedit_pre filter. Props mani_monaj. fixes #2047
git-svn-id: http://svn.automattic.com/wordpress/trunk@3284 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-10 19:03:22 +00:00
ryan
06c51d01c2 MCE fix-em-ups from skeltoac. fixes #1962
git-svn-id: http://svn.automattic.com/wordpress/trunk@3283 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-09 19:24:14 +00:00
ryan
25887cc8bc Peekaboo, I see you. fixes #2008
git-svn-id: http://svn.automattic.com/wordpress/trunk@3282 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-09 19:21:39 +00:00
ryan
8bb98038ab TEXT fields cannot have defaults. #1953
git-svn-id: http://svn.automattic.com/wordpress/trunk@3281 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-09 19:04:12 +00:00
ryan
ec0b1a8602 Remove debug cruft. fixes #2040
git-svn-id: http://svn.automattic.com/wordpress/trunk@3280 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-08 23:54:24 +00:00
ryan
1f2e257074 Add timezone to iso8601 timestamp. Props devlogic. fixes #2036
git-svn-id: http://svn.automattic.com/wordpress/trunk@3279 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-08 00:08:12 +00:00
ryan
3221e7d7df gzdeflate unnecessary. fixes #2038
git-svn-id: http://svn.automattic.com/wordpress/trunk@3278 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-07 23:53:02 +00:00
ryan
c8b54e3bba Make page slugs unique. Props skeltoac. fixes #2034
git-svn-id: http://svn.automattic.com/wordpress/trunk@3277 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-07 19:02:05 +00:00
ryan
1547da4733 Remove calls to html_entity_decode(). fixes #2029
git-svn-id: http://svn.automattic.com/wordpress/trunk@3276 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-07 00:36:07 +00:00
ryan
0d0c51e8fe Enable rich editing for comment form.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3275 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-07 00:30:39 +00:00
ryan
181dd79885 Add wp_title filter.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3274 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-05 23:57:41 +00:00
ryan
3d55d1e28c autop fixes from skeltoac. fixes #2022
git-svn-id: http://svn.automattic.com/wordpress/trunk@3273 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-05 17:00:01 +00:00
ryan
9d4c41b823 i18n fix from pandem. fixes #2028
git-svn-id: http://svn.automattic.com/wordpress/trunk@3272 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-05 16:58:26 +00:00
ryan
9dc3881715 Decrease comment count only when deleting approved comments.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3271 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-05 05:31:27 +00:00
ryan
fbaf9428a0 Delete user's usermeta when deleting the user.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3270 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-05 05:17:28 +00:00
ryan
1a44970d3a Add edit_pages checks.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3269 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-05 04:04:23 +00:00
ryan
37bd0472b1 Check for publish_posts cap.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3268 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-05 03:38:35 +00:00
ryan
bd31c21f83 Relocate wp_upload_dir(). fixes #2019
git-svn-id: http://svn.automattic.com/wordpress/trunk@3267 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-05 03:17:03 +00:00
ryan
6fbd70fcdb Role fixup from David House. fixes #2024
git-svn-id: http://svn.automattic.com/wordpress/trunk@3266 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-05 03:11:55 +00:00
ryan
57ce56e8f4 tinyMCE updates from skeltoac. fixes #1991
git-svn-id: http://svn.automattic.com/wordpress/trunk@3265 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-05 03:04:25 +00:00
ryan
38fbb47e77 Alignment fix from skeltoac. fixes #2007
git-svn-id: http://svn.automattic.com/wordpress/trunk@3264 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-02 22:41:11 +00:00
ryan
f0d0e69648 Eliminate eval. Props ringmaster. fixes #2002
git-svn-id: http://svn.automattic.com/wordpress/trunk@3263 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-02 22:39:41 +00:00
ryan
843a9afbfc i18n fixes from nbachiyski. #2006
git-svn-id: http://svn.automattic.com/wordpress/trunk@3262 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-02 22:37:02 +00:00
ryan
3f1e55afc3 Remove extra paren. fixes #2018
git-svn-id: http://svn.automattic.com/wordpress/trunk@3261 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-02 18:00:36 +00:00
ryan
d77b5659aa i18n updates from nbachiyski. #2006
git-svn-id: http://svn.automattic.com/wordpress/trunk@3260 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-02 17:42:12 +00:00
ryan
a06b4a86cf i18n updates from nbachiyski. #2006
git-svn-id: http://svn.automattic.com/wordpress/trunk@3259 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-02 17:39:36 +00:00
ryan
7023eb3f59 i18n updates from nbachiyski. #2006
git-svn-id: http://svn.automattic.com/wordpress/trunk@3258 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-02 17:35:36 +00:00
ryan
68b055fdd8 Use correct ids. Props filosofo. fixes #2016
git-svn-id: http://svn.automattic.com/wordpress/trunk@3257 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-02 17:32:07 +00:00
ryan
18b3f7f749 Use link_rel id. Props filosofo. fixes #2017
git-svn-id: http://svn.automattic.com/wordpress/trunk@3256 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-02 17:30:49 +00:00
ryan
30a8b614b2 Add wp_upload_bits(). Attempt to fix mw_newMediaObject().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3255 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-01 22:51:40 +00:00
ryan
9de108b9bf Make sure user_login keyed caches are cleared upon change.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3254 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-01 17:38:37 +00:00
ryan
7fc3f04fc1 Textpattern importer updates from technosailor. #1944
git-svn-id: http://svn.automattic.com/wordpress/trunk@3253 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-01 17:12:22 +00:00
ryan
40a83116c2 Don't attempt to match the index against a rule. This fixes problems with /index.php requests matching agagainst the %category% rewrite rules.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3252 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-12-01 01:34:29 +00:00
ryan
3e14966b54 Attachment cleanups from skeltoac.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3251 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 22:44:00 +00:00
ryan
4cc66547a3 Remove ugly whitespace. Props abhay. fixes #1996
git-svn-id: http://svn.automattic.com/wordpress/trunk@3250 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 21:13:18 +00:00
ryan
ec4e918588 add_role() and remove_role() convenience wrappers around
git-svn-id: http://svn.automattic.com/wordpress/trunk@3249 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 20:04:04 +00:00
ryan
a2997ccd6a I18n fixes from SteveAgl for #1985
git-svn-id: http://svn.automattic.com/wordpress/trunk@3248 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 19:39:19 +00:00
ryan
d9c7e8ff0d Add delete_usermeta(). fixes #1992
git-svn-id: http://svn.automattic.com/wordpress/trunk@3247 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 19:19:47 +00:00
ryan
548ef114e8 RTL LTR. fixes #1995
git-svn-id: http://svn.automattic.com/wordpress/trunk@3246 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 19:07:28 +00:00
ryan
24d31cbef8 Remove extraneous parens.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3245 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 17:30:51 +00:00
ryan
8f6c123fa7 TinyMCE directionality for RTL support. Props skeltoac. fixes #1967
git-svn-id: http://svn.automattic.com/wordpress/trunk@3244 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 17:15:43 +00:00
ryan
7b9f47b54b Allow Author role to edit published posts.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3243 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 07:47:22 +00:00
ryan
b174a8dadb Return role object after adding.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3242 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 07:32:43 +00:00
ryan
e4a74710df Remove unnecessary quotes. Props technosailor. fixes #1990
git-svn-id: http://svn.automattic.com/wordpress/trunk@3241 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 07:27:39 +00:00
ryan
e2bc225d0c Textpattern importer changes from Aaron Brazell. fixes #1944
git-svn-id: http://svn.automattic.com/wordpress/trunk@3240 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 07:13:20 +00:00
ryan
5211ae3da6 Unserialize fix. fixes #1988
git-svn-id: http://svn.automattic.com/wordpress/trunk@3239 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-30 00:25:05 +00:00
ryan
1a351ef8c0 Add get_role() convenience wrapper.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3238 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 18:47:28 +00:00
matt
cee0f1cbca Bring the blue back
git-svn-id: http://svn.automattic.com/wordpress/trunk@3237 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 14:59:29 +00:00
ryan
dacae390a1 TP importer tweaks.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3236 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 14:59:23 +00:00
ryan
489c6c4257 escapeshell SA17779
git-svn-id: http://svn.automattic.com/wordpress/trunk@3235 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 14:07:30 +00:00
matt
0ff8f49cd5 Part of a healthy balanced breakfast - fixes #1980
git-svn-id: http://svn.automattic.com/wordpress/trunk@3234 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 07:58:50 +00:00
ryan
f57362c61c Only unset query vars when serving admin pages. fixes #1979
git-svn-id: http://svn.automattic.com/wordpress/trunk@3233 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 06:44:44 +00:00
ryan
8cbfe2c46e Regenerate page rewrite rules after creating the first page during install.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3232 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 02:47:31 +00:00
ryan
b62211209a If PHP_SELF is empty, use REQUEST_URI when determining pagenow.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3231 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 02:33:25 +00:00
matt
138f2e6a91 So close I can taste it.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3230 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 02:01:48 +00:00
ryan
efce6979b1 Use the full page hierarchy when matching page URIs. Props David House. fixes #1964
git-svn-id: http://svn.automattic.com/wordpress/trunk@3229 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 01:43:32 +00:00
ryan
2059a97ebd Textpattern importer from Aaron Brazell.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3228 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 00:40:09 +00:00
matt
2e6a305fca Who did the goo-id? Fixes #1089
git-svn-id: http://svn.automattic.com/wordpress/trunk@3227 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-29 00:16:04 +00:00
ryan
cba87fb462 Don't try to do permalinks for admin pages.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3226 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 23:30:42 +00:00
ryan
ef2c2c4cb9 Inling uploading updates from skeltoac.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3225 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 23:13:35 +00:00
matt
9a440c7951 Fixes #1966
git-svn-id: http://svn.automattic.com/wordpress/trunk@3224 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 23:06:21 +00:00
matt
beff0bedba Don't do bad xhtml fixing by default - fixes #1975
git-svn-id: http://svn.automattic.com/wordpress/trunk@3223 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 23:05:12 +00:00
matt
6b4867e248 Fix the unsightly visible category line, fixes #1898
git-svn-id: http://svn.automattic.com/wordpress/trunk@3222 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 10:23:45 +00:00
matt
380033a673 Allow 0 for postmeta, fixes #1912
git-svn-id: http://svn.automattic.com/wordpress/trunk@3221 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 10:21:23 +00:00
matt
2235469b60 No need to do those big fancy joins.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3220 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 09:44:56 +00:00
matt
7c4d4cbec8 Another query bites the dust!
git-svn-id: http://svn.automattic.com/wordpress/trunk@3219 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 09:37:17 +00:00
matt
dced5779ea Don't create empty umeta values.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3218 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 08:48:18 +00:00
matt
e8a4812526 Return if not an array, fixes #1940
git-svn-id: http://svn.automattic.com/wordpress/trunk@3217 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 06:38:12 +00:00
matt
5bb35ba138 Show comments in moderation even if there are no new ones. Fixes #1473
git-svn-id: http://svn.automattic.com/wordpress/trunk@3216 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 05:45:45 +00:00
matt
2fdc11a1d2 Don't show 404s for empty cats, fixes #1969
git-svn-id: http://svn.automattic.com/wordpress/trunk@3215 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-28 03:15:48 +00:00
matt
43b2fc5f73 Better email from, fixes #1532
git-svn-id: http://svn.automattic.com/wordpress/trunk@3214 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-25 22:57:26 +00:00
matt
1b15c54153 Only show tooltip when rich editing is on, fixes #1942
git-svn-id: http://svn.automattic.com/wordpress/trunk@3213 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-25 22:44:48 +00:00
matt
b5dee82b85 Better error, fixes #1934
git-svn-id: http://svn.automattic.com/wordpress/trunk@3212 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-25 09:12:22 +00:00
matt
6ff1b1af48 Removing old importers.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3211 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-25 05:01:47 +00:00
matt
138a13dee7 Only load category JS on editing pages, fixes #1901
git-svn-id: http://svn.automattic.com/wordpress/trunk@3210 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-25 05:00:25 +00:00
matt
fc66387b58 Options not used anymore, fixes #1950
git-svn-id: http://svn.automattic.com/wordpress/trunk@3209 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-25 04:44:53 +00:00
matt
f2ccb3f21d Trim submitted values, fixes #1954
git-svn-id: http://svn.automattic.com/wordpress/trunk@3208 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-25 04:36:03 +00:00
ryan
9410afb60e Check those XFN boxes. fixes #1946
git-svn-id: http://svn.automattic.com/wordpress/trunk@3207 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-23 23:07:36 +00:00
ryan
313e9a406b Strip home path from path info. This prevents a path info value of '/wp/index.php' from being considered as a permalink request. fixes #1938
git-svn-id: http://svn.automattic.com/wordpress/trunk@3206 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-23 22:38:25 +00:00
ryan
6708e3d4ff s/user_description/description/. Props tinyau. fixes #1943
git-svn-id: http://svn.automattic.com/wordpress/trunk@3205 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-23 18:01:32 +00:00
ryan
88fc7ae84e MT importer work.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3204 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-23 10:02:23 +00:00
ryan
945a03bea5 Add get_attached_file().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3203 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-23 10:00:07 +00:00
matt
45c73a3298 Don't show 0 as a month.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3202 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-23 07:57:58 +00:00
matt
e8f47bf315 Forgot this wasn't in there, it's been incredibly helpful on WP.com
git-svn-id: http://svn.automattic.com/wordpress/trunk@3201 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-23 07:28:46 +00:00
ryan
0b3cf7e738 Allow wp_insert/update_post to handle classes in addition to associative arrays. This should avoid the 'Cannot use object of type stdClass as array' warnings.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3200 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-23 01:35:08 +00:00
ryan
c9cc15c4f4 Add some defaults to avoid MySQL warnings.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3199 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-23 00:38:56 +00:00
ryan
7b29bce03c Add glob() compat for php < 4.3.0
git-svn-id: http://svn.automattic.com/wordpress/trunk@3198 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-22 23:39:56 +00:00
ryan
9426478867 Store some values in the class for debug purposes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3197 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-22 21:07:48 +00:00
dougal
d6ec4672a7 Fetch related post-meta for each comment item. (#1745)
git-svn-id: http://svn.automattic.com/wordpress/trunk@3196 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-22 15:01:32 +00:00
matt
ac47eb038c Bumpa version
git-svn-id: http://svn.automattic.com/wordpress/trunk@3195 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-22 09:56:15 +00:00
ryan
5be6242b23 Silence mkdir().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3194 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-22 07:45:07 +00:00
ryan
24e2307445 Instead of incrementing the current comment count, recount all comments to make sure we have a good count. Props Mark Jaquith. fixes #1920
git-svn-id: http://svn.automattic.com/wordpress/trunk@3193 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-22 03:45:40 +00:00
ryan
0d31fcbeef Count only approved comments. Props Mark JAquith. fixes #1930
git-svn-id: http://svn.automattic.com/wordpress/trunk@3192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-22 03:40:32 +00:00
ryan
a9d801767f Upgrade to Snoopy 1.2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@3191 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-22 01:14:26 +00:00
ryan
73dde55507 Update meta before updating the post so that page_template is not stomped. fixes #1933
git-svn-id: http://svn.automattic.com/wordpress/trunk@3190 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-22 00:36:36 +00:00
ryan
2d46d957a6 Add db_version option for fresh installs.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3189 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 21:59:43 +00:00
ryan
bfcc6d9927 Close iframe properly. Props ringmaster. fixes #1932
git-svn-id: http://svn.automattic.com/wordpress/trunk@3188 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 18:30:46 +00:00
ryan
5f83a2a756 Filter blog name and description through kses. Props donncha. fixes #1931
git-svn-id: http://svn.automattic.com/wordpress/trunk@3187 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 18:28:32 +00:00
ryan
f78567d941 Add trailing slash. Props Mark Jaquith. fixes #1929
git-svn-id: http://svn.automattic.com/wordpress/trunk@3186 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 09:54:15 +00:00
ryan
f7cda7e8db Require manage_options cap to access Options menu.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3185 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 09:29:19 +00:00
ryan
d203771e72 Verbage change.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3184 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 09:15:42 +00:00
ryan
40bcf58a25 Therapeutic db version bump.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3183 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 09:13:20 +00:00
ryan
36131de6e4 Upgrade or die.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3182 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 09:11:19 +00:00
ryan
b851080920 Don't show the 'All images' tab if no images have been uploaded. Props David House. fixes #1915
git-svn-id: http://svn.automattic.com/wordpress/trunk@3181 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 08:44:38 +00:00
ryan
ab4bbdab05 Remove unneeded arg.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3180 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 08:35:05 +00:00
ryan
d6b41824e8 Remove extra curly.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3179 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 08:33:06 +00:00
matt
d3ce049567 Better wording, fixes #1916
git-svn-id: http://svn.automattic.com/wordpress/trunk@3178 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 08:29:07 +00:00
ryan
58aa471101 Wrong var name.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3177 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 08:25:50 +00:00
ryan
9947a83ae2 Remove unused vars. Fixed var reference.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3176 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 08:23:08 +00:00
ryan
1e0500a8e3 Add delete_link action. fixes #1926
git-svn-id: http://svn.automattic.com/wordpress/trunk@3175 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 08:06:18 +00:00
ryan
3587a865c9 Run attachment filter for themes that don't have single.php or page.php. Props podz. fixes #1924
git-svn-id: http://svn.automattic.com/wordpress/trunk@3174 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-21 02:08:59 +00:00
ryan
2f439c9306 stripslashes() from admin email and weblog title since update_option() takes care of escaping them. fixes #1919
git-svn-id: http://svn.automattic.com/wordpress/trunk@3173 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-20 07:40:17 +00:00
ryan
6cc1deb00c TinyMCE publish fix from skeltoac. fixes #1921
git-svn-id: http://svn.automattic.com/wordpress/trunk@3172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-20 07:34:47 +00:00
ryan
eb7c563406 Silence fopen warnings and check return.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3171 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 22:52:57 +00:00
ryan
6628bfcf35 Suppress fopen warnings and check return.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3170 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 20:12:26 +00:00
ryan
51b8a36906 get_post_mime_type() from skeltoac.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3169 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 20:08:21 +00:00
ryan
ed7b824257 Remove extra file.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3168 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 19:41:54 +00:00
ryan
e1a257cc18 Add missing file.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3167 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 19:41:21 +00:00
ryan
a42ba92fe9 Relocate help icon to the correct place.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3166 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 19:39:09 +00:00
ryan
d34cfa089b Update help icon.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3165 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 19:28:48 +00:00
ryan
8272052631 Tab highlight fix from skeltoac. fixes #1619
git-svn-id: http://svn.automattic.com/wordpress/trunk@3164 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 19:20:33 +00:00
ryan
15147edb24 TinyMCE help. fixes #1908
git-svn-id: http://svn.automattic.com/wordpress/trunk@3163 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 19:15:11 +00:00
ryan
ff39307b04 Wrong PCRE flag break TinyMCE on lower PHP versions. fixes #1913
git-svn-id: http://svn.automattic.com/wordpress/trunk@3162 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 19:11:03 +00:00
matt
042e052bdf Adding akismet
git-svn-id: http://svn.automattic.com/wordpress/trunk@3161 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 00:35:53 +00:00
matt
94c145394c Dat da-da duuuummmmmmmm
git-svn-id: http://svn.automattic.com/wordpress/trunk@3160 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-19 00:19:43 +00:00
matt
6b57435536 Proper eol-style.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3159 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 23:43:41 +00:00
matt
99354b6c34 Adding missing div.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3158 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 23:42:53 +00:00
matt
c078e2dbca Randomize the directory a little bit.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3157 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 23:32:40 +00:00
ryan
a78ca073b5 Don't texturize for the rich editor. Props skeltoac. fixes #1909
git-svn-id: http://svn.automattic.com/wordpress/trunk@3156 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 23:27:39 +00:00
matt
f8b2138eeb Be more discrete.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3155 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 23:18:34 +00:00
matt
cc75d38839 Adding backup plugin
git-svn-id: http://svn.automattic.com/wordpress/trunk@3154 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 23:00:36 +00:00
ryan
dfb4f6b962 Autosave warning fix. fixes #1910
git-svn-id: http://svn.automattic.com/wordpress/trunk@3153 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 22:55:39 +00:00
matt
be3ae757c7 Another HTML error.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3152 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 22:54:02 +00:00
matt
4b03838a00 Validation fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3151 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 22:27:38 +00:00
ryan
b0386faa66 Restore accidental reversion.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3150 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 10:10:53 +00:00
ryan
e1f22d2364 Restore accidental reversion.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3149 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 10:03:27 +00:00
ryan
68400673d8 Radio selection smartness. Props filosofo. fixes #1895
git-svn-id: http://svn.automattic.com/wordpress/trunk@3148 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 09:36:43 +00:00
ryan
139a251324 Don't strip all spaces. fixes #1899
git-svn-id: http://svn.automattic.com/wordpress/trunk@3147 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 09:30:19 +00:00
ryan
a0b9e7c1a1 Set default tab for inline uploader. Props skeltoac. fixes #1905
git-svn-id: http://svn.automattic.com/wordpress/trunk@3146 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 09:28:37 +00:00
ryan
f4f22fce81 Attachment cleanups from skeltoac. fixes #1870
git-svn-id: http://svn.automattic.com/wordpress/trunk@3145 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 09:25:47 +00:00
ryan
cd83af259e Who's got big toggle? fixes #1904
git-svn-id: http://svn.automattic.com/wordpress/trunk@3144 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 09:07:57 +00:00
ryan
d2ae62c45c Remove dead code.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3143 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 02:20:19 +00:00
ryan
c1095d12dd Don't return undefined variable.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3142 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 02:15:08 +00:00
ryan
1f9a6fdb92 Don't register MT importer since it's not quite ready.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3141 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-18 01:36:20 +00:00
ryan
2b178e8737 Filter on the_content_rss. Props Kafkaesqui. fixes #1685
git-svn-id: http://svn.automattic.com/wordpress/trunk@3140 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 23:17:06 +00:00
ryan
90004a8ae6 Don't stripslashes() in plugin_basename() since this breaks established expectation of being able to pass a non-escaped FILE. Instead, stripslashes further up the stack. fixes #1866
git-svn-id: http://svn.automattic.com/wordpress/trunk@3139 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 23:01:28 +00:00
ryan
f237c0bf41 Don't loop over empty options. fixes #1900
git-svn-id: http://svn.automattic.com/wordpress/trunk@3138 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 22:46:18 +00:00
ryan
e6425a4127 Tidy up get_userdatabylogin().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3137 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 18:15:59 +00:00
ryan
544842e3dc Big tiny fixes from skeltoac. fixes #1897
git-svn-id: http://svn.automattic.com/wordpress/trunk@3136 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 17:47:29 +00:00
matt
20660c0ffb Slicker category adding, fixes #1882
git-svn-id: http://svn.automattic.com/wordpress/trunk@3135 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 10:23:35 +00:00
ryan
c9685b895a Trailing slashes. Propers to Mark Jaquith. fixes #1893
git-svn-id: http://svn.automattic.com/wordpress/trunk@3134 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 10:10:10 +00:00
ryan
550a201c63 Use new logo. Props nbachiyski. fixes #1896
git-svn-id: http://svn.automattic.com/wordpress/trunk@3133 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 09:55:53 +00:00
ryan
f048de8695 Bookmarklet script updates.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3132 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 09:44:41 +00:00
ryan
3a83db90da Don't bother with sems.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3131 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 09:30:14 +00:00
ryan
d662ef80b1 Add posts_groupby and posts_request filters. fixes #1479
git-svn-id: http://svn.automattic.com/wordpress/trunk@3130 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 09:10:18 +00:00
ryan
6b01b6a07a Flush the cache for upgrades. Flesh out __get_option().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3129 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 05:32:55 +00:00
ryan
bfd865984e Populate category and comment counts for default post and cat.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3128 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 05:10:18 +00:00
ryan
f34d914107 New bookmarklet action.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3127 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 03:26:24 +00:00
matt
32daaee631 Some changes and tweaks to how the inline image uploading works.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3126 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 03:19:19 +00:00
ryan
a370a5d002 i18n fix from nbachiyski. fixes #1874
git-svn-id: http://svn.automattic.com/wordpress/trunk@3125 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 03:01:55 +00:00
matt
2428727fa3 This doesn't work with PHP running under suexec.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3124 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 02:50:14 +00:00
ryan
a6472cdafa Check if writable before checking if dir to avoid permission denied problems.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3123 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 02:24:52 +00:00
matt
60e7c34c12 Fixes
git-svn-id: http://svn.automattic.com/wordpress/trunk@3122 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 01:57:18 +00:00
matt
06c09b9e74 Don't let people register dupe emails, fixes #1487
git-svn-id: http://svn.automattic.com/wordpress/trunk@3121 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 01:18:16 +00:00
matt
1fb7241355 New logo, better login.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3120 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 00:51:34 +00:00
matt
773df46145 Not used any more.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3119 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-17 00:34:24 +00:00
ryan
a41c4a693f Add missing space to fix validation. Props seth. fixes #1887
git-svn-id: http://svn.automattic.com/wordpress/trunk@3118 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 23:59:29 +00:00
ryan
09809cc917 Don't run stylesheet directory URI through filters. fixes #1890
git-svn-id: http://svn.automattic.com/wordpress/trunk@3117 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 23:54:39 +00:00
matt
91bb67b363 git-svn-id: http://svn.automattic.com/wordpress/trunk@3116 1a063a9b-81f0-0310-95a4-ce76da25c4cd 2005-11-16 23:51:04 +00:00
ryan
5fdc8b56da Add some comment API and update comment popup templates to use them. Props David Hose. fixes #1892
git-svn-id: http://svn.automattic.com/wordpress/trunk@3115 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 23:48:12 +00:00
matt
6154d26ea1 Better email links, fixes #1416
git-svn-id: http://svn.automattic.com/wordpress/trunk@3114 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 23:44:03 +00:00
ryan
36722b2528 Silence file ops.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3113 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 23:40:14 +00:00
matt
d0aa219739 Removing personal options, putting on profile page. Fixes #1557
git-svn-id: http://svn.automattic.com/wordpress/trunk@3112 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 23:32:38 +00:00
ryan
4eb19bcf5e More 404 work. Hopefully fixes #1471
git-svn-id: http://svn.automattic.com/wordpress/trunk@3111 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 22:54:52 +00:00
ryan
64567c90f4 Don't flush if cache is disabled.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3110 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 19:01:58 +00:00
ryan
d0bb17a2f3 Delete cut-and-paste error.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3109 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 18:27:47 +00:00
ryan
aba1a4437d Fix 404s. Props donncha. fixes #1471
git-svn-id: http://svn.automattic.com/wordpress/trunk@3108 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 10:16:20 +00:00
ryan
60006e43f2 Use mb_substr for trackback titles. Props zet. fixes #1474
git-svn-id: http://svn.automattic.com/wordpress/trunk@3107 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 09:38:54 +00:00
ryan
428f06c54a Fix typos in remove_accents(). Props kyknos and YaaL. fixes #1688
git-svn-id: http://svn.automattic.com/wordpress/trunk@3106 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 06:37:06 +00:00
ryan
cf15dd3943 Assign a valid default role. Props ringmaster. fixes #1823
git-svn-id: http://svn.automattic.com/wordpress/trunk@3105 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 06:31:21 +00:00
ryan
25b644e8ce Add comment_count to the posts table. Props donncha. fixes #1860
git-svn-id: http://svn.automattic.com/wordpress/trunk@3104 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 06:29:36 +00:00
ryan
005dce9352 Make sure plugins and themes are readable. Props Mike Little. fixes #1502
git-svn-id: http://svn.automattic.com/wordpress/trunk@3103 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 03:27:22 +00:00
ryan
b6f44dc532 Pull the values in WP_User::data directly into WP_User so that we don't have to do ->data->blah.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3102 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 02:54:23 +00:00
ryan
c45ebe1b03 Don't show Publish button for published posts.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3101 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 02:17:26 +00:00
ryan
5f5430e9dc A button called Save. Props morydd. fixes #1411
git-svn-id: http://svn.automattic.com/wordpress/trunk@3100 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 02:15:24 +00:00
ryan
b80dfb3469 Typo. fixes #1805
git-svn-id: http://svn.automattic.com/wordpress/trunk@3099 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 02:09:27 +00:00
ryan
82e3412256 Importer work.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3098 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 02:07:56 +00:00
ryan
10c71b6d01 Execute rewrite rules for / so that plugins can add rules. Props: filosofo. fixes #1864
git-svn-id: http://svn.automattic.com/wordpress/trunk@3097 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 01:58:04 +00:00
ryan
be186a5135 Don't register incomplete importers.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3096 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 00:52:14 +00:00
ryan
72c031e0a5 Update to use cap API.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3095 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-16 00:50:02 +00:00
ryan
0170736e28 Move category post count updater into wp_set_post_cats().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3094 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-15 23:47:16 +00:00
ryan
a90b0d297d Import data uploading. wp_import_handle_upload(), wp_import_cleanup(), wp_import_upload_form().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3093 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-15 23:39:32 +00:00
ryan
f83326f125 Renaming. object and subpost are now attachment. post_type is post_mime_type.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3092 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-15 22:55:24 +00:00
ryan
e120711bdd Update category counts. Props donncha. fixes #1886
git-svn-id: http://svn.automattic.com/wordpress/trunk@3091 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-15 16:31:24 +00:00
ryan
9ba3193309 Fix [3074] commit so that draft->publish transitions up date the timestamp.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3090 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-15 00:00:26 +00:00
matt
e13b370b3d Mystery of the disappearing post solved, fixes #1879
git-svn-id: http://svn.automattic.com/wordpress/trunk@3089 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 23:28:10 +00:00
ryan
a3a84d2957 Flush the cache before installing. fixes #1877
git-svn-id: http://svn.automattic.com/wordpress/trunk@3088 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 22:32:03 +00:00
ryan
08fea3c335 Implement wp_cache_flush().
git-svn-id: http://svn.automattic.com/wordpress/trunk@3087 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 22:10:28 +00:00
ryan
60d04abb0c Avoid infinite recursion when expiring cache. fixes #1875
git-svn-id: http://svn.automattic.com/wordpress/trunk@3086 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 21:29:30 +00:00
matt
1bf946e618 Fixes #1515
git-svn-id: http://svn.automattic.com/wordpress/trunk@3085 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 11:38:15 +00:00
matt
5c1a6a23ad No need to display the whole big path, fixes #1617
git-svn-id: http://svn.automattic.com/wordpress/trunk@3084 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 10:26:39 +00:00
matt
50cc9f757b Don't die on me now! Fixes #1631
git-svn-id: http://svn.automattic.com/wordpress/trunk@3083 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 10:21:39 +00:00
matt
53bc27f352 Clear bottoms, fixes #1640
git-svn-id: http://svn.automattic.com/wordpress/trunk@3082 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 10:19:22 +00:00
matt
f3c4d80b5e Cut international trackbacks, fixes #1647
git-svn-id: http://svn.automattic.com/wordpress/trunk@3081 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 10:14:43 +00:00
matt
886de0616c Allow modified, fixes #1651
git-svn-id: http://svn.automattic.com/wordpress/trunk@3080 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 10:12:22 +00:00
matt
8d1cfdb434 These are not the categories you're looking for, fixes #1654
git-svn-id: http://svn.automattic.com/wordpress/trunk@3079 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 10:11:15 +00:00
matt
682ad94a9f Follow standards in Pingback - fixes #1668
git-svn-id: http://svn.automattic.com/wordpress/trunk@3078 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 10:08:12 +00:00
matt
8f97312858 Good idea, fixes #1687
git-svn-id: http://svn.automattic.com/wordpress/trunk@3077 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 10:06:52 +00:00
matt
4b3737c79d Fixes #1783
git-svn-id: http://svn.automattic.com/wordpress/trunk@3076 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 10:04:25 +00:00
matt
5a4c1ef911 No weird chars in #1714
git-svn-id: http://svn.automattic.com/wordpress/trunk@3075 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 09:59:47 +00:00
matt
f059c4f049 Fixes #1837 timestamp funkiness
git-svn-id: http://svn.automattic.com/wordpress/trunk@3074 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 09:56:41 +00:00
matt
f1bd822833 Add charset and such, fixes #1831
git-svn-id: http://svn.automattic.com/wordpress/trunk@3073 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 09:45:13 +00:00
matt
d91b877545 Slight pretty-upping, fixes #1798
git-svn-id: http://svn.automattic.com/wordpress/trunk@3072 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 09:42:44 +00:00
matt
4f0edc7878 Reverse that cleanup, there is reason in the madness ;)
git-svn-id: http://svn.automattic.com/wordpress/trunk@3071 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 09:08:27 +00:00
matt
156c10fe85 Real default category, fixes #1873
git-svn-id: http://svn.automattic.com/wordpress/trunk@3070 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 08:58:16 +00:00
matt
885ee8f9fd This should fix permalinks, but may break the PHP as CGI funkiness again
git-svn-id: http://svn.automattic.com/wordpress/trunk@3069 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 08:56:40 +00:00
matt
f1951d856a Small cleanup
git-svn-id: http://svn.automattic.com/wordpress/trunk@3068 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 08:51:04 +00:00
ryan
f6fd138e51 Don't return false from get_settings() when installing. Use update_option() when setting the blog title and admin email so that the cache is kept in sync. fixes #1869
git-svn-id: http://svn.automattic.com/wordpress/trunk@3067 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 06:51:09 +00:00
matt
46d3b062a9 Silly thumbnail files
git-svn-id: http://svn.automattic.com/wordpress/trunk@3066 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 03:08:08 +00:00
matt
1301fdf266 More accessible comment links
git-svn-id: http://svn.automattic.com/wordpress/trunk@3065 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-14 03:06:52 +00:00
matt
c45ca605cb Fixes #1825 again so people can't demote themselves
git-svn-id: http://svn.automattic.com/wordpress/trunk@3064 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-13 04:56:05 +00:00
matt
4e25506c93 Really shouldn't be shown.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3063 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-13 04:54:03 +00:00
matt
8591106e59 More eol-style: native
git-svn-id: http://svn.automattic.com/wordpress/trunk@3062 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-13 04:43:57 +00:00
matt
b7f5af4551 Update all to eol-style: native, also fixes #1645
git-svn-id: http://svn.automattic.com/wordpress/trunk@3061 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-13 04:40:18 +00:00
matt
fe1e8af589 Don't allow newlines in redirects
git-svn-id: http://svn.automattic.com/wordpress/trunk@3060 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-13 04:38:56 +00:00
matt
5fbc876db8 Debug string?
git-svn-id: http://svn.automattic.com/wordpress/trunk@3059 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-13 04:21:44 +00:00
matt
b9af94acdc Documentation link, fixes #1652
git-svn-id: http://svn.automattic.com/wordpress/trunk@3058 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-13 03:13:32 +00:00
matt
d3d3e45cf7 Add error function back, fixes #1446
git-svn-id: http://svn.automattic.com/wordpress/trunk@3057 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-13 02:54:49 +00:00
matt
dd67f966fb Account for more letter entities, fixes #1431
git-svn-id: http://svn.automattic.com/wordpress/trunk@3056 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-13 02:48:35 +00:00
matt
9187979859 Moderation and comment_author_link, fixes #1019
git-svn-id: http://svn.automattic.com/wordpress/trunk@3055 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-13 02:45:53 +00:00
ryan
3f20184aa3 Cleanup options save.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3054 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-12 09:36:20 +00:00
matt
64948b825d Ryan says it's stable ;)
git-svn-id: http://svn.automattic.com/wordpress/trunk@3053 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 02:25:31 +00:00
ryan
0c2c997bab Don't use hard query. Remove unneeded line. fixes #1858
git-svn-id: http://svn.automattic.com/wordpress/trunk@3052 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 02:24:09 +00:00
matt
815bd99a96 PHP notice fix
git-svn-id: http://svn.automattic.com/wordpress/trunk@3051 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 02:22:19 +00:00
matt
005605d6b9 Better link for date formatting, fixes #1419
git-svn-id: http://svn.automattic.com/wordpress/trunk@3050 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 02:19:49 +00:00
matt
62b08c17be Missing stripslashes - fixes #1793
git-svn-id: http://svn.automattic.com/wordpress/trunk@3049 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 02:16:26 +00:00
matt
2b47bd4e9d Missed a line, fixes #1593
git-svn-id: http://svn.automattic.com/wordpress/trunk@3048 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 02:00:06 +00:00
matt
cfa85af2d8 Call nocache_headers for logged in users
git-svn-id: http://svn.automattic.com/wordpress/trunk@3047 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 01:44:41 +00:00
matt
7970315fa3 Obsolete
git-svn-id: http://svn.automattic.com/wordpress/trunk@3046 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 01:39:14 +00:00
matt
06a0fc3af6 Formatting
git-svn-id: http://svn.automattic.com/wordpress/trunk@3045 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 01:37:25 +00:00
matt
286ffcfa3d Allow redirect on logout, fixes #1239
git-svn-id: http://svn.automattic.com/wordpress/trunk@3044 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 01:35:15 +00:00
matt
5f99fbae3a Send a header as well as a meta, fixes #857
git-svn-id: http://svn.automattic.com/wordpress/trunk@3043 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 01:31:59 +00:00
matt
3feb023992 Image FUNction, fixes #1797
git-svn-id: http://svn.automattic.com/wordpress/trunk@3042 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 01:27:58 +00:00
matt
41775561d5 Add HTTPS support, fixes #1372
git-svn-id: http://svn.automattic.com/wordpress/trunk@3041 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 01:21:28 +00:00
matt
7c20f40c39 Be nicer to people without http
git-svn-id: http://svn.automattic.com/wordpress/trunk@3040 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 01:13:30 +00:00
matt
89bbb5bb21 Eliminating query and vars now that we have category_count in DB
git-svn-id: http://svn.automattic.com/wordpress/trunk@3039 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 01:03:13 +00:00
ryan
2a94c54ff7 Don't loop over empty list. Props skippy. fixes #1467
git-svn-id: http://svn.automattic.com/wordpress/trunk@3038 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 00:55:31 +00:00
ryan
42f144b4d9 Add author support to wp_title(). Props graeme. fixes #1615
git-svn-id: http://svn.automattic.com/wordpress/trunk@3037 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 00:48:31 +00:00
ryan
33404a070f Remove redundant lines. Props johnjosephbachir. fixes #1774
git-svn-id: http://svn.automattic.com/wordpress/trunk@3036 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 00:32:15 +00:00
matt
98945dd8b4 Use reply-to instead of from to stop acting spammy - fixes #1593
git-svn-id: http://svn.automattic.com/wordpress/trunk@3035 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-11 00:07:39 +00:00
matt
c50e7da21b Fixes #1591 (again)
git-svn-id: http://svn.automattic.com/wordpress/trunk@3034 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-10 23:57:45 +00:00
ryan
c42cbf7d09 Highlight current class. Props amanzi and skippy. fixes #1800
git-svn-id: http://svn.automattic.com/wordpress/trunk@3033 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-10 23:42:56 +00:00
ryan
d6800890df Don't loop over empty list. Props Mark Jaquith. fixes #1827
git-svn-id: http://svn.automattic.com/wordpress/trunk@3032 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-10 23:36:50 +00:00
matt
f67be7f30f Don't notify your own comments, fixes #1670
git-svn-id: http://svn.automattic.com/wordpress/trunk@3031 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-10 23:31:58 +00:00
ryan
833f1cca4e Template functions for getting the post's modified time from error and Mark Jaquith. fixes #1836
git-svn-id: http://svn.automattic.com/wordpress/trunk@3030 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-10 23:31:30 +00:00
ryan
7710b94ad0 Add radio button for our default permalink structure. Add got_mod_rewrite(). Props Mark Jaquith. fixes #1840
git-svn-id: http://svn.automattic.com/wordpress/trunk@3029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-10 23:25:39 +00:00
ryan
03567e7d88 Return false if we don't find the option.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3028 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-10 20:59:20 +00:00
ryan
a9aa2b0e8d Delete link fix from donncha. fixes #1862
git-svn-id: http://svn.automattic.com/wordpress/trunk@3027 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-10 16:52:12 +00:00
ryan
d2fec03493 Fix commit gone wild.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3026 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-09 21:30:40 +00:00
matt
dace166de0 Missing semi, also fixes #1599
git-svn-id: http://svn.automattic.com/wordpress/trunk@3025 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-09 21:01:24 +00:00
matt
9ada34a5ae Should fix #1599 for IIS blogs.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3024 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-09 20:58:58 +00:00
ryan
8e154dc493 Options fixes from donncha. fixes #1859
git-svn-id: http://svn.automattic.com/wordpress/trunk@3023 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-09 18:15:55 +00:00
ryan
3a088cfaf1 Remove debug cruft.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3022 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-09 11:17:33 +00:00
ryan
6f54ba207a Add cache expiration. Cache requests for non-existant options.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3021 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-09 11:10:34 +00:00
ryan
a656505563 TinyMCE accesskeys from skeltoac. fixes #1854
git-svn-id: http://svn.automattic.com/wordpress/trunk@3020 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-09 08:44:48 +00:00
ryan
f49dbd725d Hide serialized object data in comment blocks within .php files. Props ringmaster. fixes #1857
git-svn-id: http://svn.automattic.com/wordpress/trunk@3019 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-09 02:38:17 +00:00
ryan
13cff25d99 Oops. Comment out stats dump.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3018 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-08 22:28:45 +00:00
ryan
b9ee18b899 Obfuscate keys with some salt. Add empty index.php files to the cache dirs to prevent directory listings. Props to ringmaster. fixes #1851
git-svn-id: http://svn.automattic.com/wordpress/trunk@3017 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-08 22:15:06 +00:00
ryan
98d7be84ca Handle the lack of curl. From skeltoac. fixes #1855
git-svn-id: http://svn.automattic.com/wordpress/trunk@3016 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-08 21:55:01 +00:00
ryan
6705b20ff7 TinyMCE tweaks from skeltoac. fixes #1852
git-svn-id: http://svn.automattic.com/wordpress/trunk@3015 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-08 19:17:08 +00:00
ryan
4e2d4a842f Remove trailing blank lines.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3014 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-08 00:39:26 +00:00
ryan
69e8270fcf Use get_*() API instead of SELECTs so that we hit the cache.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3013 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-07 23:15:21 +00:00
ryan
1a76958310 Add LIMIT 1 to some of our gets.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3012 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-07 23:09:09 +00:00
ryan
85723b8944 Object caching, round one.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3011 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-07 21:56:03 +00:00
matt
f811abe59f Not used anymore.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3010 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-07 19:16:34 +00:00
matt
af8c37fd71 Add RSD support. See http://archipelago.phrasewise.com/rsd
git-svn-id: http://svn.automattic.com/wordpress/trunk@3009 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-07 09:47:51 +00:00
matt
9587b46a27 Style tweaks.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3008 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-07 09:46:28 +00:00
matt
44857e2f23 Fixes #1443
git-svn-id: http://svn.automattic.com/wordpress/trunk@3007 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-07 09:35:54 +00:00
matt
415b23c88b Some tweaks to the default theme, fixes #1847 and the custom header validation error.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3006 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-07 09:31:05 +00:00
matt
725cc84302 Simplify status_header
git-svn-id: http://svn.automattic.com/wordpress/trunk@3005 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-07 09:05:47 +00:00
matt
5b1a7b5ed0 Missing user line.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3004 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-07 08:58:37 +00:00
ryan
b1cdba1f31 Remove extraneous header() call.
git-svn-id: http://svn.automattic.com/wordpress/trunk@3003 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 19:06:10 +00:00
ryan
68987bec00 Don't trackbacks from draft post. Props markjaquith. fixes #1801
git-svn-id: http://svn.automattic.com/wordpress/trunk@3002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 07:10:15 +00:00
ryan
e19c9ab70c Preview future dated posts. Props davidhouse. fixes #1795
git-svn-id: http://svn.automattic.com/wordpress/trunk@3001 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 07:04:46 +00:00
ryan
56289508f3 Order cats by name. Props davidhouse. fixes #1780
git-svn-id: http://svn.automattic.com/wordpress/trunk@3000 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 06:48:41 +00:00
ryan
bd6c99496f Remove redudant line. Props johnjosephbachir. fixes #1781
git-svn-id: http://svn.automattic.com/wordpress/trunk@2999 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 06:44:51 +00:00
ryan
f85f2529c6 Add ids to timestamp fields. Props nmoog. fixes #1796
git-svn-id: http://svn.automattic.com/wordpress/trunk@2998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 06:21:50 +00:00
ryan
2f5a00dc1b Really move image-uploading.php to inline-uploading.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@2997 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 05:43:01 +00:00
ryan
bd4d154c1f Protection against multiple trackbacks in one bunch from markjaquith. fixes #1817
git-svn-id: http://svn.automattic.com/wordpress/trunk@2996 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 04:02:12 +00:00
ryan
a8b6fe21ba Show Role in profile and user edit. Don't allow users with edit_users caps to demote themselves. Props: davidhouse, ringmaster. fixes #1825
git-svn-id: http://svn.automattic.com/wordpress/trunk@2995 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 03:58:52 +00:00
ryan
acfd349d19 Rename image-uploading to inline-uploading. Props skeltoac. fixes #1834
git-svn-id: http://svn.automattic.com/wordpress/trunk@2994 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 03:40:43 +00:00
ryan
344b1dcee0 TinyMCE 2.0RC4 Props skeltoac. fixes #1830
git-svn-id: http://svn.automattic.com/wordpress/trunk@2993 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 03:30:11 +00:00
ryan
81669e4652 Admin nicename setup incorrectly. Props Mark Jaquith fixes #1839
git-svn-id: http://svn.automattic.com/wordpress/trunk@2992 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 03:16:59 +00:00
ryan
81aab2897b Remove extraneous whitespace from wp_list_pages() output. Props: error fixes #1838
git-svn-id: http://svn.automattic.com/wordpress/trunk@2991 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 03:15:43 +00:00
matt
04e5dde292 Prettier boxes
git-svn-id: http://svn.automattic.com/wordpress/trunk@2990 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 01:57:59 +00:00
matt
5d2a9fbc28 Icon for notices and small tweaks
git-svn-id: http://svn.automattic.com/wordpress/trunk@2989 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-06 00:37:51 +00:00
matt
9c88f3968e Redirect to new permalink if slug changes. Fixes #1068
git-svn-id: http://svn.automattic.com/wordpress/trunk@2988 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-05 22:57:56 +00:00
matt
7bf19367e7 Bad grammar. Fixes #1766
git-svn-id: http://svn.automattic.com/wordpress/trunk@2987 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-05 22:55:04 +00:00
matt
cdd3a0a295 Allow "anonymous" to be translated, fixes #1740
git-svn-id: http://svn.automattic.com/wordpress/trunk@2986 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-05 22:53:40 +00:00
matt
db1941ba0b Redirect to profile unless redirect, fixes #1240
git-svn-id: http://svn.automattic.com/wordpress/trunk@2985 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-05 22:17:34 +00:00
matt
140f059191 Redirect to permalink instead of referrer. Fixes #1673
git-svn-id: http://svn.automattic.com/wordpress/trunk@2984 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-05 22:08:56 +00:00
ryan
e445ffe7e6 Don't self ping. Props Mark Jaquith fixes #993
git-svn-id: http://svn.automattic.com/wordpress/trunk@2983 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-05 16:20:09 +00:00
ryan
43b9af22c6 Link to home instead of siteurl. Props: masquerade. fixees #964
git-svn-id: http://svn.automattic.com/wordpress/trunk@2982 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-05 15:56:47 +00:00
ryan
ffb20f3fd4 Don't show publish button when post is already published. Props: Mark Jaquith fixes #1813
git-svn-id: http://svn.automattic.com/wordpress/trunk@2981 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-04 02:51:59 +00:00
ryan
a79cdd3a92 Add middle_name and flickr_username for users.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2980 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-02 08:26:42 +00:00
ryan
45435f003e wp_handle_upload() and image upload improvements from Andy. fixes #1806
git-svn-id: http://svn.automattic.com/wordpress/trunk@2979 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-01 21:28:03 +00:00
matt
56e058d6d8 Missing global, fix from airport. :)
git-svn-id: http://svn.automattic.com/wordpress/trunk@2978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-11-01 18:22:30 +00:00
matt
ba2ba0e252 Even better, array functions are fun.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2977 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-29 23:28:05 +00:00
matt
2718217d3b Some optimizations in queries and code.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2976 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-29 23:23:17 +00:00
matt
e0e5a1659c Cleaner, better, faster.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2975 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-29 22:24:27 +00:00
ryan
5521083d41 Create gmt_offset option for fresh installs. Fallout from [2966]. fixes #1803
git-svn-id: http://svn.automattic.com/wordpress/trunk@2974 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-29 05:32:39 +00:00
ryan
faa8397c00 Put the preview anchors on the h2. Props: markjaquith fixes #1765
git-svn-id: http://svn.automattic.com/wordpress/trunk@2973 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-29 01:52:56 +00:00
ryan
8c07d3bd1d Give a little love to the bookmarklet.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2972 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-28 08:43:23 +00:00
ryan
e3cb2254cd Let wp_insert_post() figure out the GMT date.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2971 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-28 04:37:06 +00:00
ryan
5aa1e12f58 Let wp_insert_post() figure out the GMT date.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2970 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-28 04:36:24 +00:00
ryan
f081b601cc If post_date_gmt is not supplied, derive it from post_date instead of current time.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2969 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-28 04:34:49 +00:00
ryan
158b6eafd3 Use full hierarchy when resolving category URIs. fixes #1787 Props: ringmaster Owen
git-svn-id: http://svn.automattic.com/wordpress/trunk@2968 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-28 01:14:57 +00:00
ryan
4de2c0de08 Create upload dirs with same perms as wp-content. fixes #1784 #1726
git-svn-id: http://svn.automattic.com/wordpress/trunk@2967 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-28 01:12:54 +00:00
ryan
5939e76b0b DB versioning. fixes #1791
git-svn-id: http://svn.automattic.com/wordpress/trunk@2966 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-27 22:04:12 +00:00
matt
b8edb9642b LiteSpeed support everything Apache does
git-svn-id: http://svn.automattic.com/wordpress/trunk@2965 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-25 23:44:27 +00:00
ryan
29c6e8b3e2 TinyMCE fixes. Reinstate "More..." button. Filter trailing br. fixes #1789
git-svn-id: http://svn.automattic.com/wordpress/trunk@2964 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-25 23:10:14 +00:00
ryan
85a85a8aaf Filter title with kses. fixes #1788
git-svn-id: http://svn.automattic.com/wordpress/trunk@2963 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-25 14:46:23 +00:00
matt
79f393ea94 Making our OPML compliant
git-svn-id: http://svn.automattic.com/wordpress/trunk@2962 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-23 17:00:13 +00:00
ryan
f309558d94 Remove debug code.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2961 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-20 22:15:07 +00:00
ryan
df89b36156 Give wp-mail a little love.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2960 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-20 21:20:52 +00:00
ryan
54d4d7fcf1 Category parent fix from donncha. fixes #1775
git-svn-id: http://svn.automattic.com/wordpress/trunk@2959 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-20 20:50:31 +00:00
ryan
45fc6c1664 Image fu from Andy. fixes #1776
git-svn-id: http://svn.automattic.com/wordpress/trunk@2958 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-20 20:48:32 +00:00
ryan
183593f333 Fix typo in blogger_editPost(). Don't invoke content_save_pre since that is done by the insert/update functions. fixes #1777
git-svn-id: http://svn.automattic.com/wordpress/trunk@2957 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-20 16:38:07 +00:00
matt
8c0dd12af3 Fix for header redirects - Hat tip: http://www.davidmeade.com/post/post.php?topicID=579
git-svn-id: http://svn.automattic.com/wordpress/trunk@2956 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-19 06:09:23 +00:00
ryan
ab8cf86716 More massive code cleanups from Mark Jaquith. fixes #1772
git-svn-id: http://svn.automattic.com/wordpress/trunk@2955 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-18 22:42:02 +00:00
matt
751a663f3c Missing directory
git-svn-id: http://svn.automattic.com/wordpress/trunk@2954 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-18 16:40:06 +00:00
ryan
a6ae47a303 Don't process enclosures when importing. Props: skeltoac. fixes #1771
git-svn-id: http://svn.automattic.com/wordpress/trunk@2953 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-17 23:45:50 +00:00
ryan
845917e6ff More code cleanups from Mark Jaquith. fixes #1768
git-svn-id: http://svn.automattic.com/wordpress/trunk@2952 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-17 23:41:28 +00:00
ryan
0b735b842f Image uploading for pages. Props skeltoac. fixes #1759
git-svn-id: http://svn.automattic.com/wordpress/trunk@2951 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-14 21:52:56 +00:00
ryan
721b7746a2 Add ordered list tags to kses. fixes #1761
git-svn-id: http://svn.automattic.com/wordpress/trunk@2950 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-14 18:52:44 +00:00
ryan
69022c397b wp_attach_object threading fix ups. fixes #1760 #1758
git-svn-id: http://svn.automattic.com/wordpress/trunk@2949 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-14 18:06:23 +00:00
ryan
5977b21bc4 Remove thread unsafe Auto_increment tricks. fixes #1753
git-svn-id: http://svn.automattic.com/wordpress/trunk@2948 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-13 19:06:31 +00:00
ryan
f95b357e8d Oops. Patch didn't apply cleanly. fixes #1750
git-svn-id: http://svn.automattic.com/wordpress/trunk@2947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-13 18:59:10 +00:00
ryan
e3af2b4163 Category insert cleanup from donncha. fixes #1750
git-svn-id: http://svn.automattic.com/wordpress/trunk@2946 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-13 18:17:05 +00:00
ryan
e81550ae0f Trailing slashes, on the URI, make me happy, make me feel fine. fixes #1742
git-svn-id: http://svn.automattic.com/wordpress/trunk@2945 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-12 18:21:15 +00:00
ryan
47f15ab10d Add admin-db include. Props donncha. fixes #1751
git-svn-id: http://svn.automattic.com/wordpress/trunk@2944 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-12 17:04:27 +00:00
ryan
b1f86c0a51 Code cleanup from Mark Jaquith. fixes #1746
git-svn-id: http://svn.automattic.com/wordpress/trunk@2943 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-12 17:01:50 +00:00
matt
65f1a4df26 Awesome fix from Dougal about ping timeout problems.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2942 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-10 16:36:54 +00:00
ryan
e1140b014d Code cleanups from markjaquith. fixes #1743
git-svn-id: http://svn.automattic.com/wordpress/trunk@2941 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-10 09:25:38 +00:00
matt
ef2049566f admin-db is needed for wp_delete_category
git-svn-id: http://svn.automattic.com/wordpress/trunk@2940 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-09 01:59:02 +00:00
ryan
1dd2e8f0d1 Blogger updates from skeltoac. * No more SSL * No more fopen wrappers required (all CURL) * Better FTP handling * Better duplicate handling * Strings marked for translation * Post IDs are cronological * Coffee stays fresher longer. fixes #1737
git-svn-id: http://svn.automattic.com/wordpress/trunk@2939 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-07 17:43:43 +00:00
ryan
5a87d54700 pre_get_posts action from ringmaster. fixes #1736
git-svn-id: http://svn.automattic.com/wordpress/trunk@2938 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-06 17:27:57 +00:00
ryan
a7fc7ec1b7 Move some fxns to admin-db.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2937 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-06 17:26:06 +00:00
ryan
08015f1bf1 Start marking strings for translation.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2936 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-06 00:44:04 +00:00
ryan
ae5fbef066 Don't run bloginfo filters on URIs. fixes #1545 #1410 #1729
git-svn-id: http://svn.automattic.com/wordpress/trunk@2935 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-06 00:04:59 +00:00
ryan
e56c5d190d Add kses_init_filters(). Call it when running importers.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2934 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-05 23:58:16 +00:00
ryan
4ffa89daa7 Send User-Agent when confirming pingbacks. Props error. fixes #1713
git-svn-id: http://svn.automattic.com/wordpress/trunk@2933 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-05 23:29:56 +00:00
ryan
8bf7f4c443 Actually remove deleted plugins from the active plugin list. This has been broken for ever. fixes #1709
git-svn-id: http://svn.automattic.com/wordpress/trunk@2932 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-05 23:19:48 +00:00
ryan
d0a769dd73 SQL error fix from MikeLittle. fixes #1711
git-svn-id: http://svn.automattic.com/wordpress/trunk@2931 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-05 22:48:51 +00:00
ryan
2aacfc655d Header generator font fixes from skeltoac. fixes #1728
git-svn-id: http://svn.automattic.com/wordpress/trunk@2930 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-05 22:24:29 +00:00
ryan
9995e83e1f wp_delete_object() and image popup from skeltoac. fixes #1731
git-svn-id: http://svn.automattic.com/wordpress/trunk@2929 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-04 17:38:04 +00:00
ryan
a7911b5acb Blogger importer updates from skeltoac. fixes #1722
git-svn-id: http://svn.automattic.com/wordpress/trunk@2928 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-10-01 11:29:03 +00:00
ryan
4c607e6d67 Typo fix from ringmaster. fixes #1717
git-svn-id: http://svn.automattic.com/wordpress/trunk@2927 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-30 22:45:06 +00:00
ryan
bb27dabb29 Image Uploader bug fixes and UI rework from Andy. fixes #1718
git-svn-id: http://svn.automattic.com/wordpress/trunk@2926 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-30 22:42:26 +00:00
ryan
9531b6328b Don't double escape.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2925 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-28 20:41:53 +00:00
matt
e2b904c714 Some of that really shouldn't be in posts.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2924 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-27 21:23:02 +00:00
matt
c773470866 Minor cleanups.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2923 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-27 03:42:17 +00:00
matt
eb89133eb6 For apos in links.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2922 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-27 03:34:37 +00:00
ryan
7b0442ea12 Image uploading widget from skeltoac. fixes #1710
git-svn-id: http://svn.automattic.com/wordpress/trunk@2921 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-26 23:55:36 +00:00
matt
a32bad283f Validate!
git-svn-id: http://svn.automattic.com/wordpress/trunk@2920 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-26 17:21:51 +00:00
matt
b226483656 We had reverted this fix from [1253]
git-svn-id: http://svn.automattic.com/wordpress/trunk@2919 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-26 16:06:58 +00:00
matt
e655cf00e3 Shhhh windows
git-svn-id: http://svn.automattic.com/wordpress/trunk@2918 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-26 15:50:08 +00:00
matt
da4199e963 A few cleanups from the upgrade.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2917 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-26 07:13:48 +00:00
matt
5034e50bb4 Updating to latest TinyMCE
git-svn-id: http://svn.automattic.com/wordpress/trunk@2916 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-26 06:52:30 +00:00
ryan
808b0f36ce Moving more stuff to new API.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2915 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-24 18:07:46 +00:00
ryan
7de2ddc98d Use cap instead of level.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2914 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-24 05:56:22 +00:00
ryan
ed15ebd4c3 Header color picker for default theme from skeltoac. fixes #1705
git-svn-id: http://svn.automattic.com/wordpress/trunk@2913 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-24 05:55:14 +00:00
ryan
693ad89730 Level typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2912 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-24 05:38:09 +00:00
matt
c02f57c876 A few more tweaks.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2911 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-24 00:05:50 +00:00
ryan
a012a42987 Kubrick header generator from skeltoac. fixes #1703
git-svn-id: http://svn.automattic.com/wordpress/trunk@2910 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-23 23:35:37 +00:00
matt
5289fdf148 Add blockquoting.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2909 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-23 23:32:03 +00:00
ryan
31fd52fa5c Add object awareness to WP_Query. Props skeltoac. fixes #1700
git-svn-id: http://svn.automattic.com/wordpress/trunk@2908 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-23 23:24:19 +00:00
ryan
cc3a803930 Array and object support for post meta from skeltoac. fixes #1699
git-svn-id: http://svn.automattic.com/wordpress/trunk@2907 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-23 23:22:51 +00:00
ryan
feb0b6d562 Post preview, now with extra spiff, from Mark Jaquith. fixes #1701
git-svn-id: http://svn.automattic.com/wordpress/trunk@2906 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-23 00:44:26 +00:00
ryan
46df98f327 Typos
git-svn-id: http://svn.automattic.com/wordpress/trunk@2905 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-22 21:14:52 +00:00
ryan
34c848fb0a Pass along grant state when saving cap. Props Owen. fixes #1702
git-svn-id: http://svn.automattic.com/wordpress/trunk@2904 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-22 20:39:37 +00:00
matt
e91046317b Uppercase, please.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2903 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-22 08:39:09 +00:00
ryan
18c673c275 stripslashes before running kses. Props donncha. fixes #1697
git-svn-id: http://svn.automattic.com/wordpress/trunk@2902 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-21 16:35:35 +00:00
ryan
d8ea1c7db4 Populate link_owner. Props donncha. fixes #1695
git-svn-id: http://svn.automattic.com/wordpress/trunk@2901 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-21 16:32:05 +00:00
ryan
14eb9ebc01 Partial migration to roles.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2900 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-21 05:13:49 +00:00
ryan
1d16b58059 Remove extra line. fixes #1694
git-svn-id: http://svn.automattic.com/wordpress/trunk@2899 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-21 02:38:47 +00:00
ryan
22fb57c5c6 Spiffier role creation code.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2898 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-20 23:48:28 +00:00
matt
196c1920ed Prevents dupe key errors
git-svn-id: http://svn.automattic.com/wordpress/trunk@2897 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-20 23:43:56 +00:00
ryan
42d6530c36 Filter posts with kses for users who do not have the unfiltered_html cap. Props donncha. fixes #1674
git-svn-id: http://svn.automattic.com/wordpress/trunk@2896 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-20 22:18:47 +00:00
ryan
b03de9abe4 Don't reset user cookies when editing other users. Props donncha. fixes #1689
git-svn-id: http://svn.automattic.com/wordpress/trunk@2895 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-20 17:55:16 +00:00
ryan
a34a4ca8c7 wp_insert_comment(), wp_update_comment(), wp_allow_comment(), and wp_filter_comment() from skeltoac. fixes #1683
git-svn-id: http://svn.automattic.com/wordpress/trunk@2894 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-20 03:17:43 +00:00
ryan
047531792a Re-add xfn flag.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2893 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-19 02:50:42 +00:00
ryan
e0bffdaf03 Do over to avoid write context warning.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2892 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-19 02:49:53 +00:00
ryan
cf9735284d Trim spaw words before checking for empty. Props markjaquith. fixes #1653
git-svn-id: http://svn.automattic.com/wordpress/trunk@2891 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-19 02:17:41 +00:00
ryan
ad3e2f6dba Consolidate link forms into edit-link-form
git-svn-id: http://svn.automattic.com/wordpress/trunk@2890 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-19 00:47:58 +00:00
ryan
cd0db4edfa Link love. Add get_link(), get_link_to_edit(), add_link(), edit_link(), wp_insert_link(), wp_update_link(), wp_delete_link()
git-svn-id: http://svn.automattic.com/wordpress/trunk@2889 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-18 19:44:14 +00:00
ryan
dccf85d6e1 Add variable path support to load_plugin_textdomain() in order to support subdir plugins. Props firas. fixes #1468
git-svn-id: http://svn.automattic.com/wordpress/trunk@2888 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-16 22:30:03 +00:00
matt
195206fbb4 Fixes #1681 and the annoying empty meta problem.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2887 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-16 17:27:09 +00:00
ryan
dd14bda3ae Don't write multiple rewrite rule blocks to htaccess. fixes #1661
git-svn-id: http://svn.automattic.com/wordpress/trunk@2886 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-16 03:25:22 +00:00
ryan
a691288ccd Clear all other query flags if we have a 404. fixes #1413
git-svn-id: http://svn.automattic.com/wordpress/trunk@2885 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-16 03:16:12 +00:00
matt
032349cfe1 Fix for systems with no PHP_INFO
git-svn-id: http://svn.automattic.com/wordpress/trunk@2884 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-15 23:44:41 +00:00
ryan
4b40f98408 Add missing comma. Props donncha. fixes #1675
git-svn-id: http://svn.automattic.com/wordpress/trunk@2883 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-15 23:44:33 +00:00
ryan
69fad9bf3b Reference passing fix from jsteidl. fixes #1676
git-svn-id: http://svn.automattic.com/wordpress/trunk@2882 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-15 23:42:29 +00:00
ryan
ef29f0ba5f get_comments_number() improvements from markjaquith. fixes #1677
git-svn-id: http://svn.automattic.com/wordpress/trunk@2881 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-15 23:40:04 +00:00
ryan
94ec494381 Blogger importer from skeltoac. fixes #1680
git-svn-id: http://svn.automattic.com/wordpress/trunk@2880 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-15 23:37:54 +00:00
ryan
7d7b930e17 comment_exists() from skeltoac. fixes #1679
git-svn-id: http://svn.automattic.com/wordpress/trunk@2879 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-15 23:36:48 +00:00
ryan
a0ea9e4466 wp_insert_post() return value fix from skeltoac. fixes #1678
git-svn-id: http://svn.automattic.com/wordpress/trunk@2878 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-15 23:34:54 +00:00
matt
80a333aa85 login not necessarily unique.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2877 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-15 07:45:35 +00:00
matt
6bd0ae83a3 Allow for more redirect flexibility
git-svn-id: http://svn.automattic.com/wordpress/trunk@2876 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-14 20:57:21 +00:00
ryan
68a4b954d2 Flesh out MT importer. WIP.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2875 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-14 05:17:20 +00:00
ryan
932d50e5d0 Remove inactive roles. Add unfiltered_html cap to admin and editor roles.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2874 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-14 03:26:47 +00:00
ryan
8552177520 Add clean_post_cache() and clean_page_cache(). Reset GUID when transitioning from draft to publish. fixes #1257
git-svn-id: http://svn.automattic.com/wordpress/trunk@2873 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-14 00:34:04 +00:00
ryan
5ba66d6c04 User create/update rework. Introduce wp_insert_user(), wp_create_user(), wp_update_user(), add_user(), update_user(), wp_new_user_notification().
git-svn-id: http://svn.automattic.com/wordpress/trunk@2872 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-14 00:03:02 +00:00
matt
9f95e3de61 Missing that cool fade feel.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-13 00:52:22 +00:00
matt
296195afe1 Don't rewrite to relative URLs.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2870 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-12 22:42:32 +00:00
matt
4b9631bd39 Order scheduled posts by date.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-12 18:55:23 +00:00
ryan
dc756855d9 RSS importer tweaks.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2868 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-11 00:00:18 +00:00
ryan
da14f8881c Make RSS importer actually kinda work.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2867 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-10 22:45:32 +00:00
ryan
a8146c0523 Add post_exists() and wp_create_categories().
git-svn-id: http://svn.automattic.com/wordpress/trunk@2866 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-10 22:45:07 +00:00
ryan
333025ea54 Don't ping when importing.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2865 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-10 22:44:14 +00:00
ryan
92a670361c Add category_exists() and wp_create_category().
git-svn-id: http://svn.automattic.com/wordpress/trunk@2864 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-10 18:44:05 +00:00
ryan
c66509851c Fix typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2863 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-10 18:39:40 +00:00
matt
7c8cba9fa8 Fix for IE from Michael, fixes #1634
git-svn-id: http://svn.automattic.com/wordpress/trunk@2862 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-10 09:16:32 +00:00
ryan
3859dd35a6 Spacing fix from markjaquith. fixes #1665
git-svn-id: http://svn.automattic.com/wordpress/trunk@2861 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-09 23:35:30 +00:00
ryan
b96fd5e203 Update loop in rdf. Props Leffe. fixes #1542
git-svn-id: http://svn.automattic.com/wordpress/trunk@2860 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 22:02:14 +00:00
ryan
bec3e71292 Fix before/after spacing. Props mjsteinbaugh. fixes #1588
git-svn-id: http://svn.automattic.com/wordpress/trunk@2859 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 21:40:37 +00:00
ryan
ad57698f14 Add the_author filter. Props markjaquith. fixes #1531
git-svn-id: http://svn.automattic.com/wordpress/trunk@2858 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 21:18:28 +00:00
ryan
190ef81565 Revert [2808]. #1525 is invalid
git-svn-id: http://svn.automattic.com/wordpress/trunk@2857 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 21:16:03 +00:00
ryan
0c5eda6c31 Check the option cache before querying. Props westi. fixes #1499
git-svn-id: http://svn.automattic.com/wordpress/trunk@2856 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 21:08:48 +00:00
ryan
35d02a7ab4 posts_nav_link fixes from Denis-de-Bernardy. fixes #789
git-svn-id: http://svn.automattic.com/wordpress/trunk@2855 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 21:05:07 +00:00
ryan
e62bcd9fd4 Use wp_remote_fopen to fetch remote OPML. Props Cypher, davidhouse. fixes #1491
git-svn-id: http://svn.automattic.com/wordpress/trunk@2854 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 21:01:54 +00:00
ryan
16ebd0d26e Add missing fieldset tag. Props idansof. fixes #1589
git-svn-id: http://svn.automattic.com/wordpress/trunk@2853 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 20:57:52 +00:00
ryan
9df8152e7f If PATH_INFO contains the index, don't use it for permalinks. Props gslin. fixes #1591
git-svn-id: http://svn.automattic.com/wordpress/trunk@2852 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 20:48:09 +00:00
ryan
2ddfc1c1d6 remove_cap() fix from mdawaffe. fixes #1608
git-svn-id: http://svn.automattic.com/wordpress/trunk@2851 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 20:39:37 +00:00
ryan
54d761eee0 Fix page edit redirect.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2850 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-08 20:38:30 +00:00
ryan
2271e198b0 Update path to images. Props jaseone. fixes #1646
git-svn-id: http://svn.automattic.com/wordpress/trunk@2849 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-07 03:58:28 +00:00
ryan
d950b9588b Make link category ID types consistent.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2848 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-07 03:37:24 +00:00
ryan
c7bdb71ce3 Roles display fix from davidhouse. fixes #1660
git-svn-id: http://svn.automattic.com/wordpress/trunk@2847 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-07 03:16:08 +00:00
ryan
c2fd7b83dc Capability updates for xmlrpc.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2846 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-07 00:20:04 +00:00
matt
17a433ac05 Wrong var
git-svn-id: http://svn.automattic.com/wordpress/trunk@2845 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-06 18:56:40 +00:00
matt
101ac654d1 Better names and typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2844 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-06 06:58:02 +00:00
matt
9745f25a57 Bigger excerpt and better styling of profile profile.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2843 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-06 06:45:31 +00:00
matt
e955928ff0 Update jabber
git-svn-id: http://svn.automattic.com/wordpress/trunk@2842 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-06 06:42:33 +00:00
matt
b2afd0be71 Break out the updating part.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2841 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-06 03:08:09 +00:00
matt
a1d90df64d Break up profile page into more logical sections
git-svn-id: http://svn.automattic.com/wordpress/trunk@2840 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-06 02:01:33 +00:00
matt
d2e83e3d2c Fix menu annoyance. Clean up themes.php code.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2839 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-05 23:33:10 +00:00
matt
ee121a076e We lost the option fade.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2838 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-05 20:32:11 +00:00
matt
fa38002141 Don't set for logged in users.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2837 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-05 04:14:29 +00:00
ryan
4c2ea946aa AJAX cat creation fix from mdawaffe. fixes #1639
git-svn-id: http://svn.automattic.com/wordpress/trunk@2836 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-02 17:17:36 +00:00
ryan
18145da089 Use wp_mail instead of mail. Props to tliebig. fixes #1642
git-svn-id: http://svn.automattic.com/wordpress/trunk@2835 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-02 17:12:58 +00:00
ryan
e72b47cd5f Fix permalink structure refs. Props to dougal. fixes #1643
git-svn-id: http://svn.automattic.com/wordpress/trunk@2834 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-02 17:08:39 +00:00
ryan
2844d3a71c Move pings out-of-band to speed up posting. Props to Owen. fixes #1644
git-svn-id: http://svn.automattic.com/wordpress/trunk@2833 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-09-02 16:56:28 +00:00
ryan
c7771dcaaf On the fly list manipulation. Delete in style. Mad props to mdawaffe. Applies to #1634
git-svn-id: http://svn.automattic.com/wordpress/trunk@2832 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-31 02:39:17 +00:00
matt
5fd72f93fb Fixes #1186 for 1.6
git-svn-id: http://svn.automattic.com/wordpress/trunk@2831 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 23:25:34 +00:00
matt
2b1dc4616d Hook compatibility
git-svn-id: http://svn.automattic.com/wordpress/trunk@2830 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 23:24:12 +00:00
matt
e4224f411b Fixes #1567 for 1.6
git-svn-id: http://svn.automattic.com/wordpress/trunk@2829 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 23:21:25 +00:00
matt
ab39a0e1ac Make posting faster. Fixes #1580 for 1.6
git-svn-id: http://svn.automattic.com/wordpress/trunk@2828 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 23:19:32 +00:00
matt
c9b3f35a83 Fixes #1578 for 1.6
git-svn-id: http://svn.automattic.com/wordpress/trunk@2827 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 23:17:42 +00:00
matt
8f184fb7a3 Fixes #972 for 1.6
git-svn-id: http://svn.automattic.com/wordpress/trunk@2826 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 23:06:04 +00:00
matt
69405371e3 Friendlier names
git-svn-id: http://svn.automattic.com/wordpress/trunk@2825 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 23:05:44 +00:00
ryan
ee6ae5ccf7 Make sure extra_query_vars is an array instead of an empty string to avoid weird bug that can cause all query vars to be stomped in certain envs.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2824 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 19:01:45 +00:00
ryan
c444b2635d Allow query strings at the end of cruftless URIs. Props Owen and Mark. fixes #1581
git-svn-id: http://svn.automattic.com/wordpress/trunk@2823 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 04:17:52 +00:00
ryan
a5dc15bfb4 url_to_postid() typo fix. Props markjaquith. fixes #1612
git-svn-id: http://svn.automattic.com/wordpress/trunk@2822 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 04:07:12 +00:00
ryan
344982b88c Translation fix. Props nbachiyski. fixes #1574
git-svn-id: http://svn.automattic.com/wordpress/trunk@2821 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 03:50:27 +00:00
matt
f59d488483 More and nextpage, from ringmaster. Fixes #1564
git-svn-id: http://svn.automattic.com/wordpress/trunk@2820 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 01:25:19 +00:00
matt
ded2247f37 Better ajaxness meets buzzword index compliance and fixes #1605
git-svn-id: http://svn.automattic.com/wordpress/trunk@2819 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-30 00:57:34 +00:00
ryan
c369310b0c Better support for theme plugins. add_theme_page() and active theme functions.php autoloader.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2818 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-29 23:40:32 +00:00
ryan
ee7c13ee80 Set home during install. Props Owen and Mark. fixes #1506
git-svn-id: http://svn.automattic.com/wordpress/trunk@2817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-29 19:12:29 +00:00
matt
c7940de3b3 Parse
git-svn-id: http://svn.automattic.com/wordpress/trunk@2816 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-28 17:35:06 +00:00
matt
e643a11b36 Enter now works for popups.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2815 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-28 08:30:21 +00:00
matt
6da9feeacb Browse Happy :)
git-svn-id: http://svn.automattic.com/wordpress/trunk@2814 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-27 19:18:26 +00:00
matt
e7d3959ae5 Move images
git-svn-id: http://svn.automattic.com/wordpress/trunk@2813 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-27 19:10:56 +00:00
matt
185732b420 Big JS move
git-svn-id: http://svn.automattic.com/wordpress/trunk@2812 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-27 18:48:56 +00:00
matt
878bcd48ec Be ambiguous
git-svn-id: http://svn.automattic.com/wordpress/trunk@2811 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-27 18:42:41 +00:00
matt
3c021ffcd7 Errors are broken.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2810 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-27 18:31:42 +00:00
matt
0102ed5569 No Thumbs.db
git-svn-id: http://svn.automattic.com/wordpress/trunk@2809 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-24 07:14:19 +00:00
matt
5e8b3513ff Reversed links, fixes #1525
git-svn-id: http://svn.automattic.com/wordpress/trunk@2808 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-23 08:02:15 +00:00
matt
3cac59f10c No horizontal resizing
git-svn-id: http://svn.automattic.com/wordpress/trunk@2807 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-23 07:52:47 +00:00
matt
ee4a846726 Optimization from Skippy, fixes #1393
git-svn-id: http://svn.automattic.com/wordpress/trunk@2806 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-23 07:51:14 +00:00
matt
317499b911 Don't hardcode file type, fixes #1553
git-svn-id: http://svn.automattic.com/wordpress/trunk@2805 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-23 07:48:23 +00:00
matt
d171aa7ec4 Move JS below edit form, fixes #1555
git-svn-id: http://svn.automattic.com/wordpress/trunk@2804 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-23 07:46:33 +00:00
matt
e58da70252 Fixes #1357
git-svn-id: http://svn.automattic.com/wordpress/trunk@2803 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-23 07:43:11 +00:00
matt
a258b5203e Bugfix and remember resize
git-svn-id: http://svn.automattic.com/wordpress/trunk@2802 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-23 01:37:34 +00:00
matt
c7fac7fcb6 Changing to native
git-svn-id: http://svn.automattic.com/wordpress/trunk@2801 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-23 01:33:52 +00:00
ryan
16aa6aee11 New import system. Very rough draft.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2800 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-21 07:03:23 +00:00
ryan
d878c57a30 Call time pass by reference not allowed. Use the array trick. fixes #1583
git-svn-id: http://svn.automattic.com/wordpress/trunk@2798 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-20 02:01:44 +00:00
ryan
597157fbbf Improved insert_with_markers(). Props Eric Anderson. fixes #1417
git-svn-id: http://svn.automattic.com/wordpress/trunk@2797 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-20 01:56:27 +00:00
ryan
7d8e168532 Validation fixes. Props idansof. fixes #1590
git-svn-id: http://svn.automattic.com/wordpress/trunk@2796 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-20 01:49:24 +00:00
ryan
e93dd02321 get_links() purtification. Props MaThIbUs. fixes #1244
git-svn-id: http://svn.automattic.com/wordpress/trunk@2795 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-20 01:46:18 +00:00
ryan
5c6d00bbfc Set nickname during install. Props skippy and markjaquith. fixes #1568
git-svn-id: http://svn.automattic.com/wordpress/trunk@2794 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-20 01:43:43 +00:00
ryan
3627bffe0e Capabilities fixes from the O man. fixes #1561
git-svn-id: http://svn.automattic.com/wordpress/trunk@2793 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-20 01:37:41 +00:00
ryan
c58b95fe37 Fix add_options_page(). Props to Owen. fixes #1562
git-svn-id: http://svn.automattic.com/wordpress/trunk@2792 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-20 01:33:09 +00:00
matt
18891bd2af Better resizing CSS
git-svn-id: http://svn.automattic.com/wordpress/trunk@2791 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-18 23:19:06 +00:00
matt
4b2090d592 Disabled in safe mode.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2790 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-18 21:21:24 +00:00
matt
77e8b6fcc4 Clap on Clap off
git-svn-id: http://svn.automattic.com/wordpress/trunk@2789 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-18 01:51:59 +00:00
matt
1dbfb4ce58 Forgot a file
git-svn-id: http://svn.automattic.com/wordpress/trunk@2788 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-18 00:13:08 +00:00
matt
f9c2d71a23 Resize the text area on the fly
git-svn-id: http://svn.automattic.com/wordpress/trunk@2787 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-17 23:47:27 +00:00
matt
0bd45809eb Removing link at Carthik's request.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2786 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-16 23:27:16 +00:00
matt
fe95c191b8 No trailing index.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@2785 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-15 05:12:46 +00:00
matt
dce5220c15 Typos and more secure unsetting. Hat tip: Stefen Esser
git-svn-id: http://svn.automattic.com/wordpress/trunk@2784 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-15 04:02:19 +00:00
matt
87a7399de2 Add ID to moderation div
git-svn-id: http://svn.automattic.com/wordpress/trunk@2782 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-15 00:07:30 +00:00
matt
4ada9a43a2 Getting much better! Fixes #1566
git-svn-id: http://svn.automattic.com/wordpress/trunk@2776 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-10 23:39:15 +00:00
matt
c678e7821f Bad comment
git-svn-id: http://svn.automattic.com/wordpress/trunk@2775 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-10 21:02:47 +00:00
matt
d39983aa54 Missing translation
git-svn-id: http://svn.automattic.com/wordpress/trunk@2774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-10 06:50:20 +00:00
matt
376ec4dce5 Tweak
git-svn-id: http://svn.automattic.com/wordpress/trunk@2772 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-09 22:38:32 +00:00
matt
2919fe2956 That last thing didn't work at all.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2770 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-09 20:09:20 +00:00
matt
9689a19f00 Fixes #1565
git-svn-id: http://svn.automattic.com/wordpress/trunk@2769 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-09 20:00:29 +00:00
matt
877e6a711a Turn register globals off. Hat tip: Christian Schmidt
git-svn-id: http://svn.automattic.com/wordpress/trunk@2768 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-09 08:26:54 +00:00
matt
b34ca93366 Adding categories on the fly is happiness. Fixes #1563 thanks to mdawaffe
git-svn-id: http://svn.automattic.com/wordpress/trunk@2767 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-09 08:16:29 +00:00
matt
4843099308 Annoying alert
git-svn-id: http://svn.automattic.com/wordpress/trunk@2766 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-09 08:13:12 +00:00
matt
3a5fb3ce8a Typo
git-svn-id: http://svn.automattic.com/wordpress/trunk@2765 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-08 19:35:48 +00:00
matt
08b3dc28a4 Show profile to the right people
git-svn-id: http://svn.automattic.com/wordpress/trunk@2764 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-08 07:38:41 +00:00
matt
887422e56f Minor tweaks
git-svn-id: http://svn.automattic.com/wordpress/trunk@2763 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-08 03:28:37 +00:00
matt
65546ba7a5 Draw more attention to the messages, which now blend in a little with the header. TODO: Put all messages in an array, abstract out HTML
git-svn-id: http://svn.automattic.com/wordpress/trunk@2762 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-08 01:13:22 +00:00
matt
06e8e848a4 Removing some unused javascript and adding hook
git-svn-id: http://svn.automattic.com/wordpress/trunk@2761 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-07 19:36:42 +00:00
matt
d9bb04b5a0 Adding personal options
git-svn-id: http://svn.automattic.com/wordpress/trunk@2760 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-07 19:23:41 +00:00
matt
851ac5a414 Clean up plugins and dashboard
git-svn-id: http://svn.automattic.com/wordpress/trunk@2759 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-07 10:45:06 +00:00
matt
b6af74e8bf Freshen Dolly up
git-svn-id: http://svn.automattic.com/wordpress/trunk@2758 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-07 10:30:53 +00:00
matt
4022b5c2be Making the presentation page a little more intuitive
git-svn-id: http://svn.automattic.com/wordpress/trunk@2757 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-07 10:11:30 +00:00
matt
a7b8ae2f17 Tweaks and catchups
git-svn-id: http://svn.automattic.com/wordpress/trunk@2756 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-07 08:58:10 +00:00
matt
09c016f904 Updated style
git-svn-id: http://svn.automattic.com/wordpress/trunk@2755 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-07 08:14:41 +00:00
matt
6c1b1fa1fb Make it slower while testing for easier debugging
git-svn-id: http://svn.automattic.com/wordpress/trunk@2754 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-06 18:04:44 +00:00
matt
fd1748ef2f You should be able to change the defaults
git-svn-id: http://svn.automattic.com/wordpress/trunk@2753 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-05 20:44:18 +00:00
matt
cbbe477c85 Eliminate target
git-svn-id: http://svn.automattic.com/wordpress/trunk@2752 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-05 20:21:50 +00:00
matt
a0cb418938 Have first field focus on popup
git-svn-id: http://svn.automattic.com/wordpress/trunk@2751 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-05 18:30:35 +00:00
matt
0f84eac781 Bump
git-svn-id: http://svn.automattic.com/wordpress/trunk@2750 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-05 00:16:18 +00:00
matt
8f46d13348 More places where WYSIWYG should be triggered
git-svn-id: http://svn.automattic.com/wordpress/trunk@2749 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-04 09:26:32 +00:00
matt
84281f1e02 Adding WYSIWYG. Todo: remove all uneccesary stuff.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2748 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-04 08:37:46 +00:00
matt
8ffe6dfe99 Better tab order, indenting
git-svn-id: http://svn.automattic.com/wordpress/trunk@2747 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-03 01:56:02 +00:00
matt
526eb93236 Better permalink interface, marginally
git-svn-id: http://svn.automattic.com/wordpress/trunk@2746 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-03 01:50:56 +00:00
matt
fd16cda0a7 Note character restrictions, fixes #910
git-svn-id: http://svn.automattic.com/wordpress/trunk@2745 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-03 00:46:57 +00:00
matt
40a7d9d2dd Fixes #1488
git-svn-id: http://svn.automattic.com/wordpress/trunk@2744 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-03 00:42:52 +00:00
matt
5ebbcc659b Adding some hooks, fixes #1489
git-svn-id: http://svn.automattic.com/wordpress/trunk@2743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-03 00:40:42 +00:00
matt
0e15d15f9b Fixes #1541
git-svn-id: http://svn.automattic.com/wordpress/trunk@2742 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-03 00:30:40 +00:00
matt
12cd19ce22 More hooks, fixes #1535
git-svn-id: http://svn.automattic.com/wordpress/trunk@2741 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-03 00:28:09 +00:00
matt
a8e34ba8e9 Fixes #1370
git-svn-id: http://svn.automattic.com/wordpress/trunk@2740 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-03 00:24:13 +00:00
matt
e270daf352 Make sure it's an array first.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2739 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-03 00:21:53 +00:00
matt
d62ae6b368 Better name
git-svn-id: http://svn.automattic.com/wordpress/trunk@2738 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-08-01 20:24:11 +00:00
matt
60327b0ca2 It falls back to funky escaping that causes problems and is not reversible, so temporarily disabling.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-26 20:11:41 +00:00
matt
086e5b4c29 Uncheck by default, fixes #1537
git-svn-id: http://svn.automattic.com/wordpress/trunk@2736 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-26 20:02:42 +00:00
matt
4c1fa286cc Setting native eol:style
git-svn-id: http://svn.automattic.com/wordpress/trunk@2735 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-23 16:16:03 +00:00
matt
84611d5844 Typo was making everyone admins.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2734 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-23 16:14:29 +00:00
matt
97a426b19c Remember me button on login, fixes #379
git-svn-id: http://svn.automattic.com/wordpress/trunk@2733 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-23 06:56:59 +00:00
matt
7fb99dd853 Validation error, fixes #1462
git-svn-id: http://svn.automattic.com/wordpress/trunk@2732 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-23 06:39:57 +00:00
matt
bbd789660a Negate that. Fixes #1490. Hat tip: mdawaffe
git-svn-id: http://svn.automattic.com/wordpress/trunk@2731 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-23 06:29:46 +00:00
matt
ba19c859f9 A few CSS polishes
git-svn-id: http://svn.automattic.com/wordpress/trunk@2730 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-23 06:22:48 +00:00
matt
54f46d875a Fixing tab order, adding publish access key.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2729 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-21 23:45:12 +00:00
ryan
5f18302c9c Remove extra comma. Props: isharra
git-svn-id: http://svn.automattic.com/wordpress/trunk@2728 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-19 15:26:34 +00:00
ryan
9bca3f5db6 Refactor level to cap upgrade code.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2727 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-19 14:24:06 +00:00
matt
6a30e8033f More cookie catchups
git-svn-id: http://svn.automattic.com/wordpress/trunk@2726 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-18 20:12:48 +00:00
matt
41afea2f94 Let advanced users override cookies.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2725 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-18 19:55:24 +00:00
ryan
5ac98a6fba Cap migration.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2724 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-17 21:21:50 +00:00
ryan
63073bc4fe Fix draft list and publish button. fixes #1514
git-svn-id: http://svn.automattic.com/wordpress/trunk@2723 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-17 21:08:47 +00:00
ryan
44644cbb6c Add temporary cap/roles updater. Define RESET_CAPS to enable.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2722 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-17 19:57:41 +00:00
ryan
8226fb2239 get_usermeta() fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2721 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-17 19:55:19 +00:00
ryan
1e5d0b0736 Cap migration.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2720 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-17 19:29:55 +00:00
ryan
4260709314 touch_time() fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2719 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-17 19:02:05 +00:00
ryan
ed3d0a7589 Cap migration.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2718 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-17 18:59:14 +00:00
ryan
5177196b10 Trim option value only if it is a string. Don't trim objects and arrays. Props: Jason Bainbridge
git-svn-id: http://svn.automattic.com/wordpress/trunk@2717 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-17 18:41:11 +00:00
ryan
0282a8fc0c in_the_loop() Props: Mark Jaquith fixes #1518
git-svn-id: http://svn.automattic.com/wordpress/trunk@2716 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-17 16:58:13 +00:00
matt
253221dbb2 Check it if matches before serializing, because get_option de-serializes. Hat tip: Donncha.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2715 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-16 21:13:14 +00:00
ryan
508e55acd2 More cap migration.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2714 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-15 02:16:45 +00:00
ryan
40a99fc9a1 Move user_can_*() functions to capabilities.php.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2713 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-15 01:27:01 +00:00
ryan
2f6ae330c0 Cap migration.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-15 01:24:08 +00:00
ryan
27174a151b Fix typos in is_role() and get_userdata(). fixes #1509 Props: mdawaffe
git-svn-id: http://svn.automattic.com/wordpress/trunk@2711 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-14 22:58:58 +00:00
ryan
04a3dc4c03 Inverted logic. Should fix problem where user display name is stomped during upgrade.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2710 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-14 22:53:56 +00:00
ryan
02523f59d3 Migrate to caps.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2709 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-13 22:26:26 +00:00
ryan
88183ca9eb Fill out level caps.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2708 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-13 20:16:06 +00:00
ryan
e0b97e8a20 Setup admin's role during install. Props: Owen Winkler. fixes #1505
git-svn-id: http://svn.automattic.com/wordpress/trunk@2707 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-13 19:55:05 +00:00
ryan
98aa7f597a Rearrange load order. Init classes before loading the text domain and setting the template path.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2706 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-13 19:29:18 +00:00
ryan
0218d1e198 Move menus from levels to capabilities.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2705 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-13 16:04:14 +00:00
ryan
7af36168cb Roles update + UI from Owen.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2704 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-12 15:53:13 +00:00
ryan
a6ade4a767 Role/capability system. Round one. Props: Owen Winkler
git-svn-id: http://svn.automattic.com/wordpress/trunk@2703 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-11 22:39:50 +00:00
matt
13f492ab75 Massive user_level fix. We were still using the user_level field in wp_users in some places, where we should just use the table prefixed usermeta value.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2702 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-09 01:27:46 +00:00
matt
233afca132 Drafts clean up.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2701 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-08 22:59:15 +00:00
ryan
6cbb6fecb3 Stripslashes doesn't work on arrays. Add stripslashes_deep(). Props: Mike Little
git-svn-id: http://svn.automattic.com/wordpress/trunk@2700 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-06 01:12:38 +00:00
ryan
91efba11ad Use wpdb->escape instead of addslashes to prepare DB bound data.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2699 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-05 20:47:22 +00:00
ryan
a79476f1e7 wp_delete_user()
git-svn-id: http://svn.automattic.com/wordpress/trunk@2698 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-04 22:03:42 +00:00
ryan
cbce881c2b register_activation_hook() and register_deactivation_hook(). Let's try these on.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2697 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-04 21:53:26 +00:00
ryan
20ae785c4c Typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2696 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-04 06:27:04 +00:00
ryan
740381afdf wp_insert_category(), wp_update_category(), wp_delete_category().
git-svn-id: http://svn.automattic.com/wordpress/trunk@2695 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-03 19:26:51 +00:00
ryan
6b0cc52fe1 Remove extra logIOs.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2694 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-03 18:34:04 +00:00
ryan
54766eade4 XMLRPC category fixes
git-svn-id: http://svn.automattic.com/wordpress/trunk@2693 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-03 18:33:03 +00:00
matt
e2d9a4c765 Ugly escaping
git-svn-id: http://svn.automattic.com/wordpress/trunk@2692 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-03 17:42:11 +00:00
ryan
5edea3a5cd Fix ID in confirmdeletecomment.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2691 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-03 17:34:55 +00:00
matt
d4cdb47503 Wrong translation and indentation fix, fixes #1373
git-svn-id: http://svn.automattic.com/wordpress/trunk@2689 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-02 23:44:35 +00:00
matt
f8a51d856b Unecessary query, fixes #1456
git-svn-id: http://svn.automattic.com/wordpress/trunk@2688 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-02 23:41:07 +00:00
matt
df98e352ac Update includes in import files, fixes #1427
git-svn-id: http://svn.automattic.com/wordpress/trunk@2687 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-02 23:39:29 +00:00
matt
e065df406a Output not echo, fixes #1465
git-svn-id: http://svn.automattic.com/wordpress/trunk@2686 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-02 23:37:08 +00:00
matt
f048ab7b0a Indentation and correct response link when no comments, fixes #1408
git-svn-id: http://svn.automattic.com/wordpress/trunk@2685 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-02 23:35:36 +00:00
matt
76fd741767 Better escaping from class, fixes #1394
git-svn-id: http://svn.automattic.com/wordpress/trunk@2684 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-02 23:31:43 +00:00
ryan
56c304f8bb Make sure cat list is an array. Props: Peter Westwood
git-svn-id: http://svn.automattic.com/wordpress/trunk@2683 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-07-02 17:28:06 +00:00
ryan
bdfab81fd0 Default category and pingback check fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2680 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-30 16:07:42 +00:00
ryan
c26724062a Don't escape image bits.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2676 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-30 00:12:18 +00:00
ryan
3882320f61 Don't escape objects.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2674 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-29 17:01:11 +00:00
matt
210192f822 We don't think these are needed...
git-svn-id: http://svn.automattic.com/wordpress/trunk@2671 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-29 00:44:02 +00:00
ryan
9c9ba0aef8 Escape XMLRPC args.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2668 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-28 22:16:27 +00:00
ryan
bec4057356 url_to_postid() fixes from Mark Jaquith.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2665 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-27 22:02:57 +00:00
matt
aa4556ab08 Make it a page
git-svn-id: http://svn.automattic.com/wordpress/trunk@2664 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-27 18:16:16 +00:00
ryan
e2e3204fa0 Quote IDs in get queries.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2663 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-26 20:44:58 +00:00
ryan
8b55719431 Comment updating cleanup. Add get_comment(), edit_comment(), get_comment_to_edit(), and wp_update_comment().
git-svn-id: http://svn.automattic.com/wordpress/trunk@2662 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-26 19:55:12 +00:00
ryan
e01bad86bc Initialize message before concat.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2658 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-24 01:22:55 +00:00
ryan
ee2a1df296 Return the modified query from remove_query_arg(). Props MC_incubus fixes #1362
git-svn-id: http://svn.automattic.com/wordpress/trunk@2657 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-20 02:03:35 +00:00
ryan
b1a8620710 Return output of get_links() when calling from wp_get_links(). Props: Kafkaesqui fixes #1437
git-svn-id: http://svn.automattic.com/wordpress/trunk@2656 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-20 01:40:52 +00:00
ryan
48035b638a Return output of list_cats() when calling from wp_list_cats(). Props: edavis fixes #1449
git-svn-id: http://svn.automattic.com/wordpress/trunk@2655 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-20 01:30:39 +00:00
ryan
16efd6a7f3 Return post_ID from write_post() and pass it along when doing a save and continue redirect. Props: CŽedric
git-svn-id: http://svn.automattic.com/wordpress/trunk@2654 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-19 23:44:22 +00:00
ryan
de05283f30 Don't stomp post_ID in mw_editPost(). Pass TB URIs to wp_update_post() and wp_insert_post() instead of directly calling trackback_url_list(). #1452
git-svn-id: http://svn.automattic.com/wordpress/trunk@2653 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-19 03:30:46 +00:00
ryan
4cb88cef6e Page editing form cleaning and repair.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2652 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-19 03:07:16 +00:00
ryan
0b7373e0cc Add get_post_to_edit() and get_default_post_to_edit(). More post.php cleanup.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2651 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-19 02:51:48 +00:00
ryan
477f109d97 Consolidate post update code.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2650 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-19 01:33:38 +00:00
ryan
d1ea1c932e Use instead of hardcoding 1. Do we really need a separate default category for XMLRPC posting?
git-svn-id: http://svn.automattic.com/wordpress/trunk@2649 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-18 19:21:37 +00:00
ryan
eb91c8f770 Use default_category option if not cat specified.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2648 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-18 19:17:55 +00:00
ryan
5cfc1a248b Consolidate post creation code into wp_insert_post().
git-svn-id: http://svn.automattic.com/wordpress/trunk@2647 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-18 19:08:38 +00:00
ryan
a4d31a1e5f Don't need to include blog header when you've got wp().
git-svn-id: http://svn.automattic.com/wordpress/trunk@2646 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-17 00:59:58 +00:00
matt
0887b4b554 Add a default About page on install.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2645 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-16 09:05:06 +00:00
ryan
2c44f33f78 Straighten out user_id/user_ID conflict. Don't make user_id global in get_currentuserinfo() because it stomps on the local user_id in user-edit.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2644 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-16 06:27:30 +00:00
ryan
f220786deb Set display_name only if the user table still containts id_mode. This prevents multiple upgrades from stomping display_name.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2643 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-16 06:14:07 +00:00
matt
ee3e50ff3d Encode stylesheet reference. Hit tip: Scott Yang
git-svn-id: http://svn.automattic.com/wordpress/trunk@2642 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-15 18:49:47 +00:00
ryan
06cc5c6677 DB escape fields inserted into usermeta table. Hide errors when dropping old columns from user table.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2641 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-14 23:22:55 +00:00
ryan
fa147528c6 Wrap metavalue loop in is_array to check to avoid invalid argument warning.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2640 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-14 22:54:58 +00:00
matt
4a25d166b4 New schmancy posting interface
git-svn-id: http://svn.automattic.com/wordpress/trunk@2639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-14 07:31:36 +00:00
matt
1851ed7f78 Let's be a little more discrete ;)
git-svn-id: http://svn.automattic.com/wordpress/trunk@2638 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-13 09:06:30 +00:00
matt
0ca51a3e5c Typo
git-svn-id: http://svn.automattic.com/wordpress/trunk@2637 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-13 08:38:42 +00:00
matt
1f9a608be9 User data migration should be complete
git-svn-id: http://svn.automattic.com/wordpress/trunk@2636 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-13 08:32:44 +00:00
ryan
8f00d317de Parse REQUEST_URI as a permalink if it looks permalinkish. Use reduced mod_rewrite rules by default.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2635 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-13 02:09:24 +00:00
matt
a08b652698 More user fixups
git-svn-id: http://svn.automattic.com/wordpress/trunk@2634 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-13 00:05:41 +00:00
matt
10586c54bc More user
git-svn-id: http://svn.automattic.com/wordpress/trunk@2633 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-12 23:22:06 +00:00
matt
de9cc8b12c More user updates
git-svn-id: http://svn.automattic.com/wordpress/trunk@2632 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-12 23:14:52 +00:00
matt
0c17753031 Beginning of user system overhaul, TODO: update all code that deals with user data
git-svn-id: http://svn.automattic.com/wordpress/trunk@2631 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-12 20:49:13 +00:00
matt
a436e15576 Bump
git-svn-id: http://svn.automattic.com/wordpress/trunk@2630 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-12 20:48:07 +00:00
matt
c3b27c3a39 Planning waaay ahead, all INTs should match.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2629 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-12 07:05:07 +00:00
matt
1613a1e1ab Adding profile update hook, fixes #1434
git-svn-id: http://svn.automattic.com/wordpress/trunk@2628 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-10 23:33:58 +00:00
ryan
1baf503d64 Break blog header up into functional chunks. Stick it all in a WP class for now. Make wp() the front door. Move template/theme loader code into template-loader.php. Clean up feed file loadup. Modularize.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2627 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-10 23:15:13 +00:00
matt
1f7552af25 Fix for get_author_link, fixes #1430
git-svn-id: http://svn.automattic.com/wordpress/trunk@2626 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-10 23:13:19 +00:00
matt
cbe1c352ad Adding hooks in syndication feeds.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2625 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-10 18:45:39 +00:00
matt
1f4e4017d2 Allow filtering of options
git-svn-id: http://svn.automattic.com/wordpress/trunk@2624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-10 08:51:40 +00:00
matt
09adfadae0 Better headers for CGI enviroments
git-svn-id: http://svn.automattic.com/wordpress/trunk@2623 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-09 00:17:43 +00:00
matt
aa209f78de Updating IXR to latest, fixes #1400
git-svn-id: http://svn.automattic.com/wordpress/trunk@2622 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-07 07:39:39 +00:00
matt
af28ba7155 Far too few people use these for them to be included by default. To possibly be replaced by more useful plugins after a survey.
git-svn-id: http://svn.automattic.com/wordpress/trunk@2620 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-06 01:55:45 +00:00
matt
c65f0168cd Better pingback extraction, fixes #1268
git-svn-id: http://svn.automattic.com/wordpress/trunk@2619 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-06-04 10:15:36 +00:00
matt
084361c8ac Bump
git-svn-id: http://svn.automattic.com/wordpress/trunk@2618 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-05-27 17:51:30 +00:00
matt
4beed03c65 Bump
git-svn-id: http://svn.automattic.com/wordpress/trunk@2617 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-05-27 06:14:25 +00:00
matt
b3a5117b6d Bad cat ID cleanup
git-svn-id: http://svn.automattic.com/wordpress/trunk@2616 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-05-27 06:10:41 +00:00
matt
a185b7376e Reducing the number of tabs to make using the built-in editor easier
git-svn-id: http://svn.automattic.com/wordpress/trunk@2615 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2005-05-23 17:58:59 +00:00
452 changed files with 72333 additions and 22281 deletions

View File

@@ -1,4 +1,4 @@
<?php
<?php
/* Short and sweet */
define('WP_USE_THEMES', true);
require('./wp-blog-header.php');

View File

@@ -1,118 +1,83 @@
<!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>
<title>WordPress &rsaquo; ReadMe</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
<!--
html {
background: #eee;
}
body {
background: #fff;
color: #000;
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 25%;
margin-right: 25%;
padding: .2em 2em;
}
h1 {
color: #006;
font-size: 18px;
font-weight: lighter;
}
h2 {
font-size: 16px;
}
p, li, dt {
line-height: 140%;
padding-bottom: 2px;
}
ul, ol {
padding: 5px 5px 5px 20px;
}
-->
</style>
<title>WordPress &rsaquo; ReadMe</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="wp-admin/install.css" type="text/css" />
</head>
<body>
<h1 style="text-align: center"><img alt="WordPress" src="http://wordpress.org/images/wordpress.gif" /> <br />
Version 1.5.1</h1>
<p style="text-align: center"> Semantic Personal Publishing Platform </p>
<h1 id="logo" style="text-align: center">
<img alt="WordPress" src="wp-admin/images/wordpress-logo.png" />
<br /> Version 2.2
</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'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>
<p style="text-align: right;">&#8212; Matt Mullenweg</p>
<h1 id="installation">Installation: Famous 5-minute install</h1>
<h1>Installation: Famous 5-minute install</h1>
<ol>
<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>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>Launch <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>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>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 1.5:</h2>
<h2>Upgrading from any previous WordPress to 2.2:</h2>
<ol>
<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>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>
<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'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>
<dd>The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available. </dd>
<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/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>
<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>
<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'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>
<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 amoung people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.freenode.net #wordpresss) </dd>
<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 id="requirements">System Recommendations</h1>
<h1>System Recommendations</h1>
<ul>
<li>PHP version <strong>4.1</strong> or higher</li>
<li>MySQL version <strong>3.23.23</strong> or higher</li>
<li>... and a link to <a href="http://wordpress.org">http://wordpress.org</a> on your site.</li>
<li>PHP version <strong>4.2</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>
<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_from_other_blogging_software">import from a number of systems</a>. First you need to get WordPress installed and working as described above.</p>
<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 id="templates">XML-RPC Interface</h1>
<p>You can now post to your WordPress blog with tools like <a href="http://ecto.kung-foo.tv/">Ecto</a>, <a href="http://blogbuddy.sourceforge.net">BlogBuddy</a>, <a href="http://bloggar.com/">Bloggar</a>, <a href="http://www.ubique.ch/wapblogger/">WapBlogger</a> (post from your Wap cellphone!), <a href="http://radio.userland.com">Radio Userland</a> (which means you can use Radio's email-to-blog feature), <a href="http://www.zempt.com/">Zempt</a>, <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>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 dicrete. The script will <i>delete</i> emails that are successfully posted. </p>
<h1 id="notes">User Levels </h1>
<p>You may allow or disallow user registration in your <a href="wp-admin/options-general.php">General options</a>. If &quot;new users can blog&quot; is disabled you must first raise the level of a newly registered user to allow them to post. Click the plus sign next to their name on the <a href="wp-admin/users.php">Users</a> page. </p>
<h2>User Levels</h2>
<ul>
<li>0 - New User </li>
<li>1 - User can post, edit, and delete their own posts.</li>
<li>5+ - Admin; can post, edit, delete other people's posts, and change the options.</li>
<li>Any user whose level is higher than 1, can edit and delete the posts and change the level of lower users. Example: a level 2 user is not an admin, but can edit the posts of level 1 users, and up the level of a new user from 0 to 1.</li>
</ul>
<p>Usually you want to have a team of level 1 users except for you.</p>
<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 dicrete. The script will <i>delete</i> 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>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>
@@ -123,4 +88,4 @@
<p>WordPress is released under the <abbr title="GNU Public License">GPL</abbr> (see <a href="license.txt">license.txt</a>).</p>
</body>
</html>
</html>

296
wp-admin/admin-ajax.php Normal file
View File

@@ -0,0 +1,296 @@
<?php
require_once('../wp-config.php');
require_once('admin-functions.php');
require_once('admin-db.php');
define('DOING_AJAX', true);
check_ajax_referer();
if ( !is_user_logged_in() )
die('-1');
function get_out_now() { exit; }
add_action( 'shutdown', 'get_out_now', -1 );
function wp_ajax_meta_row( $pid, $mid, $key, $value ) {
$value = attribute_escape($value);
$key_js = addslashes(wp_specialchars($key, 'double'));
$key = attribute_escape($key);
$r .= "<tr id='meta-$mid'><td valign='top'>";
$r .= "<input name='meta[$mid][key]' tabindex='6' onkeypress='return killSubmit(\"theList.ajaxUpdater(&#039;meta&#039;,&#039;meta-$mid&#039;);\",event);' type='text' size='20' value='$key' />";
$r .= "</td><td><textarea name='meta[$mid][value]' tabindex='6' rows='2' cols='30'>$value</textarea></td><td align='center'>";
$r .= "<input name='updatemeta' type='button' class='updatemeta' tabindex='6' value='".attribute_escape(__('Update'))."' onclick='return theList.ajaxUpdater(&#039;meta&#039;,&#039;meta-$mid&#039;);' /><br />";
$r .= "<input name='deletemeta[$mid]' type='submit' onclick=\"return deleteSomething( 'meta', $mid, '";
$r .= js_escape(sprintf(__("You are about to delete the '%s' custom field on this post.\n'OK' to delete, 'Cancel' to stop."), $key_js));
$r .= "' );\" class='deletemeta' tabindex='6' value='".attribute_escape(__('Delete'))."' /></td></tr>";
return $r;
}
$id = (int) $_POST['id'];
switch ( $_POST['action'] ) :
case 'delete-comment' :
if ( !$comment = get_comment( $id ) )
die('0');
if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
die('-1');
if ( wp_delete_comment( $comment->comment_ID ) )
die('1');
else die('0');
break;
case 'delete-comment-as-spam' :
if ( !$comment = get_comment( $id ) )
die('0');
if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) )
die('-1');
if ( wp_set_comment_status( $comment->comment_ID, 'spam' ) )
die('1');
else die('0');
break;
case 'delete-cat' :
if ( !current_user_can( 'manage_categories' ) )
die('-1');
if ( wp_delete_category( $id ) )
die('1');
else die('0');
break;
case 'delete-link' :
if ( !current_user_can( 'manage_links' ) )
die('-1');
if ( wp_delete_link( $id ) )
die('1');
else die('0');
break;
case 'delete-meta' :
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' :
if ( !current_user_can( 'delete_post', $id ) )
die('-1');
if ( wp_delete_post( $id ) )
die('1');
else die('0');
break;
case 'delete-page' :
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) ) {
if ( wp_set_comment_status( $comment->comment_ID, 'approve' ) )
die('1');
} else {
if ( wp_set_comment_status( $comment->comment_ID, 'hold' ) )
die('1');
}
die('0');
break;
case 'add-category' : // On the Fly
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);
if ( !$category_nicename = sanitize_title($cat_name) )
die('0');
if ( !$cat_id = category_exists( $cat_name ) )
$cat_id = wp_create_category( $cat_name );
$cat_name = wp_specialchars(stripslashes($cat_name));
$x->add( array(
'what' => 'category',
'id' => $cat_id,
'data' => "<li id='category-$cat_id'><label for='in-category-$cat_id' class='selectit'><input value='$cat_id' type='checkbox' checked='checked' name='post_category[]' id='in-category-$cat_id'/> $cat_name</label></li>"
) );
}
$x->send();
break;
case 'add-cat' : // From Manage->Categories
if ( !current_user_can( 'manage_categories' ) )
die('-1');
if ( !$cat = wp_insert_category( $_POST ) )
die('0');
if ( !$cat = get_category( $cat ) )
die('0');
$level = 0;
$cat_full_name = $cat->cat_name;
$_cat = $cat;
while ( $_cat->category_parent ) {
$_cat = get_category( $_cat->category_parent );
$cat_full_name = $_cat->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->cat_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->cat_ID", $cat_full_name))
) );
$x->send();
break;
case 'add-comment' :
if ( !current_user_can( 'edit_post', $id ) )
die('-1');
$search = isset($_POST['s']) ? $_POST['s'] : false;
$start = isset($_POST['page']) ? intval($_POST['page']) * 25 : 25;
list($comments, $total) = _wp_get_comment_list( $search, $start, 1 );
if ( !$comments )
die('1');
$x = new WP_Ajax_Response();
foreach ( (array) $comments as $comment ) {
get_comment( $comment );
ob_start();
_wp_comment_list_item( $comment->comment_ID );
$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' :
if ( !current_user_can( 'edit_post', $id ) )
die('-1');
if ( $id < 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))
) ) )
$mid = add_meta( $pid );
else
die('0');
} else if ( !$mid = add_meta( $id ) ) {
die('0');
}
$meta = get_post_meta_by_id( $mid );
$key = $meta->meta_key;
$value = $meta->meta_value;
$pid = (int) $meta->post_id;
$x = new WP_Ajax_Response( array(
'what' => 'meta',
'id' => $mid,
'data' => wp_ajax_meta_row( $pid, $mid, $key, $value ),
'supplemental' => array('postid' => $pid)
) );
$x->send();
break;
case 'update-meta' :
$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 ) ) {
$key = stripslashes($key);
$value = stripslashes($value);
$x = new WP_Ajax_Response( array(
'what' => 'meta',
'id' => $mid,
'data' => wp_ajax_meta_row( $meta->post_id, $mid, $key, $value ),
'supplemental' => array('postid' => $meta->post_id)
) );
$x->send();
}
die('1'); // We know meta exists; we also know it's unchanged (or DB error, in which case there are bigger problems).
break;
case 'add-user' :
if ( !current_user_can('edit_users') )
die('-1');
require_once(ABSPATH . WPINC . '/registration.php');
if ( !$user_id = add_user() )
die('0');
elseif ( is_wp_error( $user_id ) ) {
foreach( $user_id->get_error_messages() as $message )
echo "<p>$message<p>";
exit;
}
$user_object = new WP_User( $user_id );
$x = new WP_Ajax_Response( array(
'what' => 'user',
'id' => $user_id,
'data' => user_row( $user_object ),
'supplemental' => array('show-link' => sprintf(__( 'User <a href="#%s">%s</a> added' ), "user-$user_id", $user_object->user_login))
) );
$x->send();
break;
case 'autosave' : // The name of this action is hardcoded in edit_post()
$_POST['post_content'] = $_POST['content'];
$_POST['post_excerpt'] = $_POST['excerpt'];
$_POST['post_status'] = 'draft';
$_POST['post_category'] = explode(",", $_POST['catslist']);
if($_POST['post_type'] == 'page' || empty($_POST['post_category']))
unset($_POST['post_category']);
if($_POST['post_ID'] < 0) {
$_POST['temp_ID'] = $_POST['post_ID'];
$id = wp_write_post();
if( is_wp_error($id) )
die($id->get_error_message());
else
die("$id");
} else {
$post_ID = (int) $_POST['post_ID'];
$_POST['ID'] = $post_ID;
$post = get_post($post_ID);
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.'));
}
wp_update_post($_POST);
}
die('0');
break;
case 'autosave-generate-nonces' :
$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;
default :
do_action( 'wp_ajax_' . $_POST['action'] );
die('0');
break;
endswitch;
?>

525
wp-admin/admin-db.php Normal file
View File

@@ -0,0 +1,525 @@
<?php
function get_users_drafts( $user_id ) {
global $wpdb;
$user_id = (int) $user_id;
$query = "SELECT ID, post_title FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'draft' AND post_author = $user_id ORDER BY ID DESC";
$query = apply_filters('get_users_drafts', $query);
return $wpdb->get_results( $query );
}
function get_others_drafts( $user_id ) {
global $wpdb;
$user = get_userdata( $user_id );
$level_key = $wpdb->prefix . 'user_level';
$editable = get_editable_user_ids( $user_id );
if( !$editable ) {
$other_drafts = '';
} else {
$editable = join(',', $editable);
$other_drafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'draft' AND post_author IN ($editable) AND post_author != '$user_id' ");
}
return apply_filters('get_others_drafts', $other_drafts);
}
function get_editable_authors( $user_id ) {
global $wpdb;
$editable = get_editable_user_ids( $user_id );
if( !$editable ) {
return false;
} else {
$editable = join(',', $editable);
$authors = $wpdb->get_results( "SELECT * FROM $wpdb->users WHERE ID IN ($editable) ORDER BY display_name" );
}
return apply_filters('get_editable_authors', $authors);
}
function get_editable_user_ids( $user_id, $exclude_zeros = true ) {
global $wpdb;
$user = new WP_User( $user_id );
if ( ! $user->has_cap('edit_others_posts') ) {
if ( $user->has_cap('edit_posts') || $exclude_zeros == false )
return array($user->id);
else
return false;
}
$level_key = $wpdb->prefix . 'user_level';
$query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'";
if ( $exclude_zeros )
$query .= " AND meta_value != '0'";
return $wpdb->get_col( $query );
}
function get_author_user_ids() {
global $wpdb;
$level_key = $wpdb->prefix . 'user_level';
$query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value != '0'";
return $wpdb->get_col( $query );
}
function get_nonauthor_user_ids() {
global $wpdb;
$level_key = $wpdb->prefix . 'user_level';
$query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value = '0'";
return $wpdb->get_col( $query );
}
function wp_insert_category($catarr) {
global $wpdb;
extract($catarr, EXTR_SKIP);
if( trim( $cat_name ) == '' )
return 0;
$cat_ID = (int) $cat_ID;
// Are we updating or creating?
if (!empty ($cat_ID))
$update = true;
else
$update = false;
$cat_name = apply_filters('pre_category_name', $cat_name);
if (empty ($category_nicename))
$category_nicename = sanitize_title($cat_name);
else
$category_nicename = sanitize_title($category_nicename);
$category_nicename = apply_filters('pre_category_nicename', $category_nicename);
if (empty ($category_description))
$category_description = '';
$category_description = apply_filters('pre_category_description', $category_description);
$category_parent = (int) $category_parent;
if ( empty($category_parent) || !get_category( $category_parent ) || ($cat_ID && cat_is_ancestor_of($cat_ID, $category_parent) ) )
$category_parent = 0;
if ( isset($posts_private) )
$posts_private = (int) $posts_private;
else
$posts_private = 0;
if ( isset($links_private) )
$links_private = (int) $links_private;
else
$links_private = 0;
if (!$update) {
$wpdb->query("INSERT INTO $wpdb->categories (cat_ID, cat_name, category_nicename, category_description, category_parent, links_private, posts_private) VALUES ('0', '$cat_name', '$category_nicename', '$category_description', '$category_parent', '$links_private', '$posts_private')");
$cat_ID = (int) $wpdb->insert_id;
} else {
$wpdb->query ("UPDATE $wpdb->categories SET cat_name = '$cat_name', category_nicename = '$category_nicename', category_description = '$category_description', category_parent = '$category_parent', links_private = '$links_private', posts_private = '$posts_private' WHERE cat_ID = '$cat_ID'");
}
if ( $category_nicename == '' ) {
$category_nicename = sanitize_title($cat_name, $cat_ID );
$wpdb->query( "UPDATE $wpdb->categories SET category_nicename = '$category_nicename' WHERE cat_ID = '$cat_ID'" );
}
// Keep in mind when using this filter and altering the cat_ID that the two queries above
// have already taken place with the OLD cat_ID
// Also note that you may have post2cat entries with the old cat_ID if this is an update
if ($update) {
do_action('edit_category', $cat_ID);
} else {
do_action('create_category', $cat_ID);
do_action('add_category', $cat_ID);
}
$cat_ID = apply_filters('cat_id_filter', $cat_ID, $update);
clean_category_cache($cat_ID);
if ($update)
do_action('edited_category', $cat_ID);
else
do_action('created_category', $cat_ID);
return $cat_ID;
}
function wp_update_category($catarr) {
global $wpdb;
$cat_ID = (int) $catarr['cat_ID'];
if( $cat_ID == $catarr['category_parent'] )
return false;
// First, get all of the original fields
$category = get_category($cat_ID, ARRAY_A);
// Escape data pulled from DB.
$category = add_magic_quotes($category);
// Merge old and new fields with new fields overwriting old ones.
$catarr = array_merge($category, $catarr);
return wp_insert_category($catarr);
}
function wp_delete_category($cat_ID) {
global $wpdb;
$cat_ID = (int) $cat_ID;
$default_cat = get_option('default_category');
$default_link_cat = get_option('default_link_category');
// Don't delete either of the default cats
if ( $cat_ID == $default_cat || $cat_ID == $default_link_cat )
return 0;
$category = get_category($cat_ID);
$parent = $category->category_parent;
// Delete the category
if ( !$wpdb->query("DELETE FROM $wpdb->categories WHERE cat_ID = '$cat_ID'") )
return 0;
// Update children to point to new parent
$wpdb->query("UPDATE $wpdb->categories SET category_parent = '$parent' WHERE category_parent = '$cat_ID'");
// Only set posts and links to the default category if they're not in another category already
$posts = $wpdb->get_col("SELECT post_id FROM $wpdb->post2cat WHERE category_id='$cat_ID'");
foreach ( (array) $posts as $post_id ) {
$cats = wp_get_post_categories($post_id);
if ( 1 == count($cats) )
$cats = array($default_cat);
else
$cats = array_diff($cats, array($cat_ID));
wp_set_post_categories($post_id, $cats);
}
$links = $wpdb->get_col("SELECT link_id FROM $wpdb->link2cat WHERE category_id='$cat_ID'");
foreach ( (array) $links as $link_id ) {
$cats = wp_get_link_cats($link_id);
if ( 1 == count($cats) )
$cats = array($default_link_cat);
else
$cats = array_diff($cats, array($cat_ID));
wp_set_link_cats($link_id, $cats);
}
clean_category_cache($cat_ID);
do_action('delete_category', $cat_ID);
return 1;
}
function wp_create_category($cat_name) {
$cat_array = compact('cat_name');
return wp_insert_category($cat_array);
}
function wp_create_categories($categories, $post_id = '') {
$cat_ids = array ();
foreach ($categories as $category) {
if ($id = category_exists($category))
$cat_ids[] = $id;
else
if ($id = wp_create_category($category))
$cat_ids[] = $id;
}
if ($post_id)
wp_set_post_categories($post_id, $cat_ids);
return $cat_ids;
}
function category_exists($cat_name) {
global $wpdb;
if (!$category_nicename = sanitize_title($cat_name))
return 0;
return (int) $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$category_nicename'");
}
function wp_delete_user($id, $reassign = 'novalue') {
global $wpdb;
$id = (int) $id;
$user = get_userdata($id);
if ($reassign == 'novalue') {
$post_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_author = $id");
if ($post_ids) {
foreach ($post_ids as $post_id)
wp_delete_post($post_id);
}
// Clean links
$wpdb->query("DELETE FROM $wpdb->links WHERE link_owner = $id");
} else {
$reassign = (int) $reassign;
$wpdb->query("UPDATE $wpdb->posts SET post_author = {$reassign} WHERE post_author = {$id}");
$wpdb->query("UPDATE $wpdb->links SET link_owner = {$reassign} WHERE link_owner = {$id}");
}
// FINALLY, delete user
do_action('delete_user', $id);
$wpdb->query("DELETE FROM $wpdb->users WHERE ID = $id");
$wpdb->query("DELETE FROM $wpdb->usermeta WHERE user_id = '$id'");
wp_cache_delete($id, 'users');
wp_cache_delete($user->user_login, 'userlogins');
return true;
}
function wp_revoke_user($id) {
$id = (int) $id;
$user = new WP_User($id);
$user->remove_all_caps();
}
function wp_insert_link($linkdata) {
global $wpdb, $current_user;
extract($linkdata, EXTR_SKIP);
$update = false;
if ( !empty($link_id) )
$update = true;
$link_id = (int) $link_id;
if( trim( $link_name ) == '' )
return 0;
$link_name = apply_filters('pre_link_name', $link_name);
if( trim( $link_url ) == '' )
return 0;
$link_url = apply_filters('pre_link_url', $link_url);
if ( empty($link_rating) )
$link_rating = 0;
else
$link_rating = (int) $link_rating;
if ( empty($link_image) )
$link_image = '';
$link_image = apply_filters('pre_link_image', $link_image);
if ( empty($link_target) )
$link_target = '';
$link_target = apply_filters('pre_link_target', $link_target);
if ( empty($link_visible) )
$link_visible = 'Y';
$link_visibile = preg_replace('/[^YNyn]/', '', $link_visible);
if ( empty($link_owner) )
$link_owner = $current_user->id;
else
$link_owner = (int) $link_owner;
if ( empty($link_notes) )
$link_notes = '';
$link_notes = apply_filters('pre_link_notes', $link_notes);
if ( empty($link_description) )
$link_description = '';
$link_description = apply_filters('pre_link_description', $link_description);
if ( empty($link_rss) )
$link_rss = '';
$link_rss = apply_filters('pre_link_rss', $link_rss);
if ( empty($link_rel) )
$link_rel = '';
$link_rel = apply_filters('pre_link_rel', $link_rel);
// Make sure we set a valid category
if (0 == count($link_category) || !is_array($link_category)) {
$link_category = array(get_option('default_link_category'));
}
if ( $update ) {
$wpdb->query("UPDATE $wpdb->links SET link_url='$link_url',
link_name='$link_name', link_image='$link_image',
link_target='$link_target',
link_visible='$link_visible', link_description='$link_description',
link_rating='$link_rating', link_rel='$link_rel',
link_notes='$link_notes', link_rss = '$link_rss'
WHERE link_id='$link_id'");
} else {
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_image, link_target, link_description, link_visible, link_owner, link_rating, link_rel, link_notes, link_rss) VALUES('$link_url','$link_name', '$link_image', '$link_target', '$link_description', '$link_visible', '$link_owner', '$link_rating', '$link_rel', '$link_notes', '$link_rss')");
$link_id = (int) $wpdb->insert_id;
}
wp_set_link_cats($link_id, $link_category);
if ( $update )
do_action('edit_link', $link_id);
else
do_action('add_link', $link_id);
return $link_id;
}
function wp_update_link($linkdata) {
global $wpdb;
$link_id = (int) $linkdata['link_id'];
$link = get_link($link_id, ARRAY_A);
// Escape data pulled from DB.
$link = add_magic_quotes($link);
// Passed link category list overwrites existing category list if not empty.
if ( isset($linkdata['link_category']) && is_array($linkdata['link_category'])
&& 0 != count($linkdata['link_category']) )
$link_cats = $linkdata['link_category'];
else
$link_cats = $link['link_category'];
// Merge old and new fields with new fields overwriting old ones.
$linkdata = array_merge($link, $linkdata);
$linkdata['link_category'] = $link_cats;
return wp_insert_link($linkdata);
}
function wp_delete_link($link_id) {
global $wpdb;
do_action('delete_link', $link_id);
$categories = wp_get_link_cats($link_id);
if( is_array( $categories ) ) {
foreach ( $categories as $category ) {
$wpdb->query("UPDATE $wpdb->categories SET link_count = link_count - 1 WHERE cat_ID = '$category'");
wp_cache_delete($category, 'category');
do_action('edit_category', $cat_id);
}
}
$wpdb->query("DELETE FROM $wpdb->link2cat WHERE link_id = '$link_id'");
$wpdb->query("DELETE FROM $wpdb->links WHERE link_id = '$link_id'");
do_action('deleted_link', $link_id);
return true;
}
function wp_get_link_cats($link_ID = 0) {
global $wpdb;
$sql = "SELECT category_id
FROM $wpdb->link2cat
WHERE link_id = $link_ID
ORDER BY category_id";
$result = $wpdb->get_col($sql);
if ( !$result )
$result = array();
return array_unique($result);
}
function wp_set_link_cats($link_ID = 0, $link_categories = array()) {
global $wpdb;
// If $link_categories isn't already an array, make it one:
if (!is_array($link_categories) || 0 == count($link_categories))
$link_categories = array(get_option('default_link_category'));
$link_categories = array_unique($link_categories);
// First the old categories
$old_categories = $wpdb->get_col("
SELECT category_id
FROM $wpdb->link2cat
WHERE link_id = '$link_ID'");
if (!$old_categories) {
$old_categories = array();
} else {
$old_categories = array_unique($old_categories);
}
// Delete any?
$delete_cats = array_diff($old_categories,$link_categories);
if ($delete_cats) {
foreach ($delete_cats as $del) {
$del = (int) $del;
$wpdb->query("
DELETE FROM $wpdb->link2cat
WHERE category_id = '$del'
AND link_id = '$link_ID'
");
}
}
// Add any?
$add_cats = array_diff($link_categories, $old_categories);
if ($add_cats) {
foreach ($add_cats as $new_cat) {
$new_cat = (int) $new_cat;
if ( !empty($new_cat) )
$wpdb->query("
INSERT INTO $wpdb->link2cat (link_id, category_id)
VALUES ('$link_ID', '$new_cat')");
}
}
// Update category counts.
$all_affected_cats = array_unique(array_merge($link_categories, $old_categories));
foreach ( $all_affected_cats as $cat_id ) {
$count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->link2cat, $wpdb->links WHERE $wpdb->links.link_id = $wpdb->link2cat.link_id AND category_id = '$cat_id'");
$wpdb->query("UPDATE $wpdb->categories SET link_count = '$count' WHERE cat_ID = '$cat_id'");
wp_cache_delete($cat_id, 'category');
do_action('edit_category', $cat_id);
}
} // wp_set_link_cats()
function post_exists($title, $content = '', $post_date = '') {
global $wpdb;
if (!empty ($post_date))
$post_date = "AND post_date = '$post_date'";
if (!empty ($title))
return $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$title' $post_date");
else
if (!empty ($content))
return $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_content = '$content' $post_date");
return 0;
}
function comment_exists($comment_author, $comment_date) {
global $wpdb;
return $wpdb->get_var("SELECT comment_post_ID FROM $wpdb->comments
WHERE comment_author = '$comment_author' AND comment_date = '$comment_date'");
}
?>

View File

@@ -1,13 +1,10 @@
<div id="footer"><p><a href="http://wordpress.org/"><img src="../wp-images/wp-small.png" alt="WordPress" /></a><br />
<?php bloginfo('version'); ?> <br />
<a href="http://codex.wordpress.org/"><?php _e('Documentation'); ?></a> &#8212; <a href="http://wordpress.org/support/"><?php _e('Support Forums'); ?></a> <br />
<?php printf(__('%s seconds'), number_format(timer_stop(), 2)); ?>
</p>
<div id="footer">
<p class="logo"><a href="http://wordpress.org/" id="wordpress-logo"><img src="images/wordpress-logo.png" alt="WordPress" /></a></p>
<p class="docs"><?php _e('<a href="http://codex.wordpress.org/">Documentation</a>'); ?> &#8212; <?php _e('<a href="http://wordpress.org/support/">Support Forums</a>'); ?><br />
<?php bloginfo('version'); ?> &#8212; <?php printf(__('%s seconds'), timer_stop(0, 2)); ?></p>
</div>
<?php do_action('admin_footer', ''); ?>
<script type="text/javascript">if(typeof wpOnload=='function')wpOnload();</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,93 +1,52 @@
<?php
<?php
@header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
if (!isset($_GET["page"])) require_once('admin.php'); ?>
<?php 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">
<head>
<title><?php bloginfo('name') ?> &rsaquo; <?php echo $title; ?> &#8212; WordPress</title>
<link rel="stylesheet" href="<?php echo get_settings('siteurl') ?>/wp-admin/wp-admin.css?version=<?php bloginfo('version'); ?>" type="text/css" />
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_settings('blog_charset'); ?>" />
if (!isset($_GET["page"])) require_once('admin.php');
if ( $editing ) {
wp_enqueue_script( array('dbx-admin-key?pagenow=' . attribute_escape($pagenow),'admin-custom-fields') );
if ( current_user_can('manage_categories') )
wp_enqueue_script( 'ajaxcat' );
if ( user_can_richedit() )
wp_enqueue_script( 'wp_tiny_mce' );
}
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>
<link rel="stylesheet" href="<?php echo get_option('siteurl') ?>/wp-admin/wp-admin.css?version=<?php bloginfo('version'); ?>" type="text/css" />
<?php if ( ('rtl' == $wp_locale->text_direction) ) : ?>
<link rel="stylesheet" href="<?php echo get_option('siteurl') ?>/wp-admin/rtl.css?version=<?php bloginfo('version'); ?>" type="text/css" />
<?php endif; ?>
<script type="text/javascript">
//<![CDATA[
function customToggleLink() {
// TODO: Only show link if there's a hidden row
document.write('<small>(<a href="javascript:;" id="customtoggle" onclick="toggleHidden()"><?php _e('Show hidden'); ?></a>)</small>');
// TODO: Rotate link to say "show" or "hide"
// TODO: Use DOM
}
function toggleHidden() {
var allElements = document.getElementsByTagName('tr');
for (i = 0; i < allElements.length; i++) {
if ( allElements[i].className.indexOf('hidden') != -1 ) {
allElements[i].className = allElements[i].className.replace('hidden', '');
}
}
}
<?php if ( isset($xfn) ) : ?>
function GetElementsWithClassName(elementName, className) {
var allElements = document.getElementsByTagName(elementName);
var elemColl = new Array();
for (i = 0; i < allElements.length; i++) {
if (allElements[i].className == className) {
elemColl[elemColl.length] = allElements[i];
}
}
return elemColl;
}
function meChecked() {
var undefined;
var eMe = document.getElementById('me');
if (eMe == undefined) return false;
else return eMe.checked;
}
function upit() {
var isMe = meChecked(); //document.getElementById('me').checked;
var inputColl = GetElementsWithClassName('input', 'valinp');
var results = document.getElementById('rel');
var linkText, linkUrl, inputs = '';
for (i = 0; i < inputColl.length; i++) {
inputColl[i].disabled = isMe;
inputColl[i].parentNode.className = isMe ? 'disabled' : '';
if (!isMe && inputColl[i].checked && inputColl[i].value != '') {
inputs += inputColl[i].value + ' ';
}
}
inputs = inputs.substr(0,inputs.length - 1);
if (isMe) inputs='me';
results.value = inputs;
}
function blurry() {
if (!document.getElementById) return;
var aInputs = document.getElementsByTagName('input');
for (var i = 0; i < aInputs.length; i++) {
aInputs[i].onclick = aInputs[i].onkeyup = upit;
}
}
window.onload = blurry;
<?php endif; ?>
function addLoadEvent(func) {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') ) : ?>
<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');
<?php do_action('admin_head', ''); ?>
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>
<div id="wphead">
<h1><?php echo wptexturize(get_settings(('blogname'))); ?> <span>(<a href="<?php echo get_settings('home') . '/'; ?>"><?php _e('View site') ?> &raquo;</a>)</span></h1>
<h1><?php bloginfo('name'); ?> <span>(<a href="<?php echo get_option('home') . '/'; ?>"><?php _e('View site &raquo;') ?></a>)</span></h1>
</div>
<div id="user_info"><p><?php printf(__('Howdy, <strong>%s</strong>.'), $user_identity) ?> [<a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log out of this account') ?>"><?php _e('Sign Out'); ?></a>, <a href="profile.php"><?php _e('My Profile'); ?></a>] </p></div>
<?php
require(ABSPATH . '/wp-admin/menu-header.php');

View File

@@ -3,69 +3,105 @@ if ( defined('ABSPATH') )
require_once( ABSPATH . 'wp-config.php');
else
require_once('../wp-config.php');
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/admin-functions.php');
require_once(ABSPATH . 'wp-admin/admin-db.php');
require_once(ABSPATH . WPINC . '/registration.php');
auth_redirect();
header('Expires: Wed, 11 Jan 1984 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-cache, must-revalidate, max-age=0');
header('Pragma: no-cache');
nocache_headers();
update_category_cache();
get_currentuserinfo();
wp_get_current_user();
$posts_per_page = get_settings('posts_per_page');
$what_to_show = get_settings('what_to_show');
$date_format = get_settings('date_format');
$time_format = get_settings('time_format');
$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');
$wpvarstoreset = array('profile','redirect','redirect_url','a','popuptitle','popupurl','text', 'trackback', 'pingback');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
wp_reset_vars(array('profile', 'redirect', 'redirect_url', 'a', 'popuptitle', 'popupurl', 'text', 'trackback', 'pingback'));
wp_enqueue_script( 'fat' );
$editing = false;
if (isset($_GET['page'])) {
$plugin_page = stripslashes($_GET['page']);
$plugin_page = plugin_basename($plugin_page);
}
require(ABSPATH . '/wp-admin/menu.php');
// Handle plugin admin pages.
if (isset($_GET['page'])) {
$plugin_page = plugin_basename($_GET['page']);
if (isset($plugin_page)) {
$page_hook = get_plugin_page_hook($plugin_page, $pagenow);
if ( $page_hook ) {
do_action('load-' . $page_hook);
if (! isset($_GET['noheader']))
require_once(ABSPATH . '/wp-admin/admin-header.php');
do_action($page_hook);
} else {
if ( validate_file($plugin_page) ) {
die(__('Invalid plugin page'));
wp_die(__('Invalid plugin page'));
}
if (! file_exists(ABSPATH . "wp-content/plugins/$plugin_page"))
die(sprintf(__('Cannot load %s.'), $plugin_page));
if (! file_exists(ABSPATH . PLUGINDIR . "/$plugin_page"))
wp_die(sprintf(__('Cannot load %s.'), htmlentities($plugin_page)));
do_action('load-' . $plugin_page);
if (! isset($_GET['noheader']))
require_once(ABSPATH . '/wp-admin/admin-header.php');
include(ABSPATH . "wp-content/plugins/$plugin_page");
include(ABSPATH . PLUGINDIR . "/$plugin_page");
}
include(ABSPATH . 'wp-admin/admin-footer.php');
exit();
} else if (isset($_GET['import'])) {
$importer = $_GET['import'];
if ( ! current_user_can('import') )
wp_die(__('You are not allowed to import.'));
if ( validate_file($importer) ) {
wp_die(__('Invalid importer.'));
}
if (! file_exists(ABSPATH . "wp-admin/import/$importer.php"))
wp_die(__('Cannot load importer.'));
include(ABSPATH . "wp-admin/import/$importer.php");
$parent_file = 'edit.php';
$submenu_file = 'import.php';
$title = __('Import');
if (! isset($_GET['noheader']))
require_once(ABSPATH . 'wp-admin/admin-header.php');
require_once(ABSPATH . 'wp-admin/upgrade-functions.php');
define('WP_IMPORTING', true);
call_user_func($wp_importers[$importer][2]);
include(ABSPATH . 'wp-admin/admin-footer.php');
exit();
} else {
do_action("load-$pagenow");
}
?>
?>

View File

@@ -2,11 +2,10 @@
$mode = 'bookmarklet';
require_once('admin.php');
if ($user_level == 0)
die ("Cheatin' uh?");
if ('b' == $a) {
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>
@@ -19,40 +18,39 @@ window.close()
<body></body>
</html>
<?php
} else {
$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_title = stripslashes($post_title);
} else {
$post_title = $popuptitle;
}
$edited_post_title = wp_specialchars($post_title);
exit;
endif;
// $post_pingback needs to be set in any file that includes edit-form.php
$post_pingback = get_settings('default_pingback_flag');
$content = wp_specialchars($_REQUEST['content']);
$popupurl = wp_specialchars($_REQUEST['popupurl']);
if ( !empty($content) ) {
$content = wp_specialchars( stripslashes($_REQUEST['content']) );
} else {
$content = '<a href="'.$popupurl.'">'.$popuptitle.'</a>'."\n$text";
}
/* /big funky fixes */
$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_settings('blog_charset'); ?>" />
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
<link rel="stylesheet" href="wp-admin.css" type="text/css" />
<style type="text/css">
@@ -79,15 +77,15 @@ window.close()
}
#wpbookmarklet .wrap {
border: 0px;
border: 0px;
}
#wpbookmarklet #postdiv {
margin-bottom: 0.5em;
margin-bottom: 0.5em;
}
#wpbookmarklet #titlediv {
margin-bottom: 1em;
margin-bottom: 1em;
}
-->
@@ -103,6 +101,4 @@ window.close()
<?php do_action('admin_footer', ''); ?>
</body>
</html><?php
}
?>
</html>

10
wp-admin/cat.js Normal file
View File

@@ -0,0 +1,10 @@
addLoadEvent(function(){catList=new listMan('categorychecklist');catList.ajaxRespEl='jaxcat';catList.topAdder=1;catList.alt=0;catList.showLink=0;});
addLoadEvent(newCatAddIn);
function newCatAddIn() {
var jaxcat = $('jaxcat');
if ( !jaxcat )
return false;
Element.update(jaxcat,'<span id="ajaxcat"><input type="text" name="newcat" id="newcat" size="16" autocomplete="off"/><input type="button" name="Button" id="catadd" value="' + catL10n.add + '"/><input type="hidden"/><span id="howto">' + catL10n.how + '</span></span>');
$('newcat').onkeypress = function(e) { return killSubmit("catList.ajaxAdder('category','jaxcat');", e); };
$('catadd').onclick = function() { catList.ajaxAdder('category', 'jaxcat'); };
}

16
wp-admin/categories.js Normal file
View File

@@ -0,0 +1,16 @@
addLoadEvent(function() {
if (!theList.theList) return false;
document.forms.addcat.submit.onclick = function(e) {return killSubmit('theList.ajaxAdder("cat", "addcat");', e); };
theList.addComplete = function(what, where, update, transport) {
var name = getNodeValue(transport.responseXML, 'name').unescapeHTML();
var id = transport.responseXML.getElementsByTagName(what)[0].getAttribute('id');
var options = document.forms['addcat'].category_parent.options;
options[options.length] = new Option(name, id);
};
theList.delComplete = function(what, id) {
var options = document.forms['addcat'].category_parent.options;
for ( var o = 0; o < options.length; o++ )
if ( id == options[o].value )
options[o] = null;
};
});

View File

@@ -4,176 +4,120 @@ require_once('admin.php');
$title = __('Categories');
$parent_file = 'edit.php';
$wpvarstoreset = array('action','cat');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
wp_reset_vars(array('action', 'cat'));
switch($action) {
case 'addcat':
if ($user_level < 3)
die (__('Cheatin&#8217; uh?'));
$cat_name= wp_specialchars($_POST['cat_name']);
$id_result = $wpdb->get_row("SHOW TABLE STATUS LIKE '$wpdb->categories'");
$cat_ID = $id_result->Auto_increment;
$category_nicename = sanitize_title($cat_name, $cat_ID);
$category_description = $_POST['category_description'];
$cat = intval($_POST['cat']);
$wpdb->query("INSERT INTO $wpdb->categories (cat_ID, cat_name, category_nicename, category_description, category_parent) VALUES ('0', '$cat_name', '$category_nicename', '$category_description', '$cat')");
header('Location: categories.php?message=1#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':
check_admin_referer();
$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);
$category = $wpdb->get_row("SELECT * FROM $wpdb->categories WHERE cat_ID = '$cat_ID'");
$cat_parent = $category->category_parent;
if ( 1 == $cat_ID )
die(sprintf(__("Can't delete the <strong>%s</strong> category: this is the default one"), $cat_name));
// 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));
if ( $user_level < 3 )
die (__('Cheatin&#8217; uh?'));
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 for links"), $cat_name));
$wpdb->query("DELETE FROM $wpdb->categories WHERE cat_ID = '$cat_ID'");
$wpdb->query("UPDATE $wpdb->categories SET category_parent = '$cat_parent' WHERE category_parent = '$cat_ID'");
// TODO: Only set categories to general if they're not in another category already
$wpdb->query("UPDATE $wpdb->post2cat SET category_id='1' WHERE category_id='$cat_ID'");
wp_delete_category($cat_ID);
header('Location: categories.php?message=2');
wp_redirect('categories.php?message=2');
exit;
break;
case 'edit':
require_once ('admin-header.php');
$cat_ID = (int) $_GET['cat_ID'];
$category = $wpdb->get_row("SELECT * FROM $wpdb->categories WHERE cat_ID = '$cat_ID'");
$cat_name = $category->cat_name;
?>
<div class="wrap">
<h2><?php _e('Edit Category') ?></h2>
<form name="editcat" action="categories.php" method="post">
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('Category name:') ?></th>
<td width="67%"><input name="cat_name" type="text" value="<?php echo wp_specialchars($cat_name); ?>" size="40" /> <input type="hidden" name="action" value="editedcat" />
<input type="hidden" name="cat_ID" value="<?php echo $cat_ID ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Category slug:') ?></th>
<td><input name="category_nicename" type="text" value="<?php echo wp_specialchars($category->category_nicename); ?>" size="40" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Category parent:') ?></th>
<td>
<select name='cat'>
<option value='0' <?php if (!$category->category_parent) echo " selected='selected'"; ?>><?php _e('None') ?></option>
<?php wp_dropdown_cats($category->cat_ID, $category->category_parent); ?>
</select></td>
</tr>
<tr>
<th scope="row"><?php _e('Description:') ?></th>
<td><textarea name="category_description" rows="5" cols="50" style="width: 97%;"><?php echo wp_specialchars($category->category_description, 1); ?></textarea></td>
</tr>
</table>
<p class="submit"><input type="submit" name="submit" value="<?php _e('Edit category') ?> &raquo;" /></p>
</form>
<p><a href="categories.php"><?php _e('&laquo; Return to category list'); ?></a></p>
</div>
<?php
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':
if ($user_level < 3)
die (__('Cheatin&#8217; uh?'));
$cat_name = wp_specialchars($_POST['cat_name']);
$cat_ID = (int) $_POST['cat_ID'];
$category_nicename = sanitize_title($_POST['category_nicename'], $cat_ID);
$category_description = $_POST['category_description'];
$wpdb->query("UPDATE $wpdb->categories SET cat_name = '$cat_name', category_nicename = '$category_nicename', category_description = '$category_description', category_parent = '$cat' WHERE cat_ID = '$cat_ID'");
check_admin_referer('update-category_' . $cat_ID);
header('Location: categories.php?message=3');
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:
wp_enqueue_script( 'admin-categories' );
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 class="updated"><p><?php echo $messages[$_GET['message']]; ?></p></div>
<div id="message" class="updated fade"><p><?php echo $messages[$_GET['message']]; ?></p></div>
<?php endif; ?>
<div class="wrap">
<?php if ( $user_level > 3 ) : ?>
<?php if ( current_user_can('manage_categories') ) : ?>
<h2><?php printf(__('Categories (<a href="%s">add new</a>)'), '#addcat') ?> </h2>
<?php else : ?>
<h2><?php _e('Categories') ?> </h2>
<?php endif; ?>
<table width="100%" cellpadding="3" cellspacing="3">
<table class="widefat">
<thead>
<tr>
<th scope="col"><?php _e('ID') ?></th>
<th scope="col" style="text-align: center"><?php _e('ID') ?></th>
<th scope="col"><?php _e('Name') ?></th>
<th scope="col"><?php _e('Description') ?></th>
<th scope="col"><?php _e('# Posts') ?></th>
<th colspan="2"><?php _e('Action') ?></th>
<th scope="col" width="90" style="text-align: center"><?php _e('Posts') ?></th>
<th scope="col" width="90" style="text-align: center"><?php _e('Links') ?></th>
<th colspan="2" style="text-align: center"><?php _e('Action') ?></th>
</tr>
</thead>
<tbody id="the-list">
<?php
cat_rows();
?>
</tbody>
</table>
</div>
<?php if ( $user_level > 3 ) : ?>
<?php if ( current_user_can('manage_categories') ) : ?>
<div class="wrap">
<p><?php printf(__('<strong>Note:</strong><br />Deleting a category does not delete posts from that category, it will just set them back to the default category <strong>%s</strong>.'), get_catname(1)) ?>
</p>
<p><?php printf(__('<strong>Note:</strong><br />Deleting a category does not delete the posts and links in that category. Instead, posts that were only assigned to the deleted category are set to the category <strong>%s</strong> and links that were only assigned to the deleted category are set to <strong>%s</strong>.'), apply_filters('the_category', get_catname(get_option('default_category'))), apply_filters('the_category', get_catname(get_option('default_link_category')))) ?></p>
</div>
<div class="wrap">
<h2><?php _e('Add New Category') ?></h2>
<form name="addcat" id="addcat" action="categories.php" method="post">
<p><?php _e('Name:') ?><br />
<input type="text" name="cat_name" value="" /></p>
<p><?php _e('Category parent:') ?><br />
<select name='cat' class='postform'>
<option value='0'><?php _e('None') ?></option>
<?php wp_dropdown_cats(0); ?>
</select></p>
<p><?php _e('Description: (optional)') ?> <br />
<textarea name="category_description" rows="5" cols="50" style="width: 97%;"></textarea></p>
<p class="submit"><input type="hidden" name="action" value="addcat" /><input type="submit" name="submit" value="<?php _e('Add Category &raquo;') ?>" /></p>
</form>
</div>
<?php include('edit-category-form.php'); ?>
<?php endif; ?>
<?php
@@ -181,4 +125,5 @@ break;
}
include('admin-footer.php');
?>

213
wp-admin/comment.php Normal file
View File

@@ -0,0 +1,213 @@
<?php
require_once('admin.php');
$parent_file = 'edit-comments.php';
$submenu_file = 'edit-comments.php';
wp_reset_vars(array('action'));
if ( isset( $_POST['deletecomment'] ) )
$action = 'deletecomment';
switch($action) {
case 'editcomment':
$title = __('Edit Comment');
require_once ('admin-header.php');
$comment = (int) $_GET['c'];
if ( ! $comment = get_comment($comment) )
wp_die(__('Oops, no comment with this ID.').sprintf(' <a href="%s">'.__('Go back').'</a>!', 'javascript:history.go(-1)'));
if ( !current_user_can('edit_post', $comment->comment_post_ID) )
wp_die( __('You are not allowed to edit comments on this post.') );
$comment = get_comment_to_edit($comment);
include('edit-form-comment.php');
break;
case 'cdc':
case 'mac':
require_once('./admin-header.php');
$comment = (int) $_GET['c'];
$formaction = 'cdc' == $action ? 'deletecomment' : 'approvecomment';
$nonce_action = 'cdc' == $action ? 'delete-comment_' : 'approve-comment_';
$nonce_action .= $comment;
if ( ! $comment = get_comment_to_edit($comment) )
wp_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) )
wp_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 if ( 'spam' == $_GET['dt'] ) { ?>
<p><?php echo '<strong>'.__('Caution:').'</strong> '.__('You are about to mark the following comment as spam:'); ?></p>
<?php } elseif ( 'cdc' == $action ) { ?>
<p><?php echo '<strong>'.__('Caution:').'</strong> '.__('You are about to delete the following comment:'); ?></p>
<?php } else { ?>
<p><?php echo '<strong>'.__('Caution:').'</strong> '.__('You are about to approve the following comment:'); ?></p>
<?php } ?>
<p><?php _e('Are you sure you want to do that?'); ?></p>
<form action='<?php echo get_option('siteurl'); ?>/wp-admin/comment.php' method='get'>
<table width="100%">
<tr>
<td><input type='button' value='<?php _e('No'); ?>' onclick="self.location='<?php echo get_option('siteurl'); ?>/wp-admin/edit-comments.php';" /></td>
<td align="right"><input type='submit' value='<?php _e('Yes'); ?>' /></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="editform" cellpadding="5">
<tr class="alt">
<th scope="row"><?php _e('Author:'); ?></th>
<td><?php echo $comment->comment_author; ?></td>
</tr>
<?php if ( $comment->comment_author_email ) { ?>
<tr>
<th scope="row"><?php _e('E-mail:'); ?></th>
<td><?php echo $comment->comment_author_email; ?></td>
</tr>
<?php } ?>
<?php if ( $comment->comment_author_url ) { ?>
<tr>
<th scope="row"><?php _e('URL:'); ?></th>
<td><?php echo $comment->comment_author_url; ?></td>
</tr>
<?php } ?>
<tr>
<th scope="row" valign="top"><p><?php _e('Comment:'); ?></p></th>
<td><?php echo $comment->comment_content; ?></td>
</tr>
</table>
</div>
</div>
<?php
break;
case 'deletecomment':
$comment = (int) $_REQUEST['c'];
check_admin_referer('delete-comment_' . $comment);
if ( isset($_REQUEST['noredir']) ) {
$noredir = true;
} else {
$noredir = false;
}
if ( ! $comment = get_comment($comment) )
wp_die(__('Oops, no comment with this ID.').sprintf(' <a href="%s">'.__('Go back').'</a>!', 'edit-comments.php'));
if ( !current_user_can('edit_post', $comment->comment_post_ID) )
wp_die( __('You are not allowed to edit comments on this post.') );
if ( 'spam' == $_REQUEST['dt'] )
wp_set_comment_status($comment->comment_ID, 'spam');
else
wp_delete_comment($comment->comment_ID);
if ((wp_get_referer() != '') && (false == $noredir)) {
wp_redirect(wp_get_referer());
} else {
wp_redirect(get_option('siteurl') .'/wp-admin/edit-comments.php');
}
exit();
break;
case 'unapprovecomment':
$comment = (int) $_GET['c'];
check_admin_referer('unapprove-comment_' . $comment);
if (isset($_GET['noredir'])) {
$noredir = true;
} else {
$noredir = false;
}
if ( ! $comment = get_comment($comment) )
wp_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) )
wp_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='. (int) $comment->comment_post_ID.'&c=1#comments');
}
exit();
break;
case 'approvecomment':
$comment = (int) $_GET['c'];
check_admin_referer('approve-comment_' . $comment);
if (isset($_GET['noredir'])) {
$noredir = true;
} else {
$noredir = false;
}
if ( ! $comment = get_comment($comment) )
wp_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) )
wp_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 (get_option("comments_notify") == true) {
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='. (int) $comment->comment_post_ID.'&c=1#comments');
}
exit();
break;
case 'editedcomment':
$comment_ID = (int) $_POST['comment_ID'];
$comment_post_ID = (int) $_POST['comment_post_id'];
check_admin_referer('update-comment_' . $comment_ID);
edit_comment();
$location = ( empty($_POST['referredby']) ? "edit.php?p=$comment_post_ID&c=1" : $_POST['referredby'] ) . '#comment-' . $comment_ID;
$location = apply_filters('comment_edit_redirect', $location, $comment_ID);
wp_redirect($location);
exit();
break;
default:
break;
} // end switch
include('admin-footer.php');
?>

26
wp-admin/custom-fields.js Normal file
View File

@@ -0,0 +1,26 @@
function customFieldsOnComplete( what, where, update, transport ) {
var pidEl = $('post_ID');
pidEl.name = 'post_ID';
pidEl.value = getNodeValue(transport.responseXML, 'postid');
var aEl = $('hiddenaction')
if ( aEl.value == 'post' ) aEl.value = 'postajaxpost';
}
addLoadEvent(customFieldsAddIn);
function customFieldsAddIn() {
theList.showLink=0;
theList.addComplete = customFieldsOnComplete;
if (!theList.theList) return false;
inputs = theList.theList.getElementsByTagName('input');
for ( var i=0; i < inputs.length; i++ ) {
if ('text' == inputs[i].type) {
inputs[i].setAttribute('autocomplete', 'off');
inputs[i].onkeypress = function(e) {return killSubmit('theList.ajaxUpdater("meta", "meta-' + parseInt(this.name.slice(5),10) + '");', e); };
}
if ('updatemeta' == inputs[i].className) {
inputs[i].onclick = function(e) {return killSubmit('theList.ajaxUpdater("meta", "meta-' + parseInt(this.parentNode.parentNode.id.slice(5),10) + '");', e); };
}
}
$('metakeyinput').onkeypress = function(e) {return killSubmit('theList.inputData+="&id="+$("post_ID").value;theList.ajaxAdder("meta", "newmeta");', e); };
$('updatemetasub').onclick = function(e) {return killSubmit('theList.inputData+="&id="+$("post_ID").value;theList.ajaxAdder("meta", "newmeta");', e); };
}

332
wp-admin/custom-header.php Normal file
View File

@@ -0,0 +1,332 @@
<?php
class Custom_Image_Header {
var $admin_header_callback;
function Custom_Image_Header($admin_header_callback) {
$this->admin_header_callback = $admin_header_callback;
}
function init() {
$page = add_theme_page(__('Custom Image Header'), __('Custom Image Header'), 'edit_themes', 'custom-header', array(&$this, 'admin_page'));
add_action("admin_print_scripts-$page", array(&$this, 'js_includes'));
add_action("admin_head-$page", array(&$this, 'js'), 50);
add_action("admin_head-$page", $this->admin_header_callback, 51);
}
function js_includes() {
wp_enqueue_script('cropper');
wp_enqueue_script('colorpicker');
}
function js() {
if ( isset( $_POST['textcolor'] ) ) {
check_admin_referer('custom-header');
if ( 'blank' == $_POST['textcolor'] ) {
set_theme_mod('header_textcolor', 'blank');
} else {
$color = preg_replace('/[^0-9a-fA-F]/', '', $_POST['textcolor']);
if ( strlen($color) == 6 || strlen($color) == 3 )
set_theme_mod('header_textcolor', $color);
}
}
if ( isset($_POST['resetheader']) ) {
check_admin_referer('custom-header');
remove_theme_mods();
}
?>
<script type="text/javascript">
function onEndCrop( coords, dimensions ) {
$( 'x1' ).value = coords.x1;
$( 'y1' ).value = coords.y1;
$( 'x2' ).value = coords.x2;
$( 'y2' ).value = coords.y2;
$( 'width' ).value = dimensions.width;
$( 'height' ).value = dimensions.height;
}
// with a supplied ratio
Event.observe(
window,
'load',
function() {
var xinit = <?php echo HEADER_IMAGE_WIDTH; ?>;
var yinit = <?php echo HEADER_IMAGE_HEIGHT; ?>;
var ratio = xinit / yinit;
var ximg = $('upload').width;
var yimg = $('upload').height;
if ( yimg < yinit || ximg < xinit ) {
if ( ximg / yimg > ratio ) {
yinit = yimg;
xinit = yinit * ratio;
} else {
xinit = ximg;
yinit = xinit / ratio;
}
}
new Cropper.Img(
'upload',
{
ratioDim: { x: xinit, y: yinit },
displayOnInit: true,
onEndCrop: onEndCrop
}
)
}
);
var cp = new ColorPicker();
function pickColor(color) {
$('name').style.color = color;
$('desc').style.color = color;
$('textcolor').value = color;
}
function PopupWindow_hidePopup(magicword) {
if ( magicword != 'prettyplease' )
return false;
if (this.divName != null) {
if (this.use_gebi) {
document.getElementById(this.divName).style.visibility = "hidden";
}
else if (this.use_css) {
document.all[this.divName].style.visibility = "hidden";
}
else if (this.use_layers) {
document.layers[this.divName].visibility = "hidden";
}
}
else {
if (this.popupWindow && !this.popupWindow.closed) {
this.popupWindow.close();
this.popupWindow = null;
}
}
return false;
}
function colorSelect(t,p) {
if ( cp.p == p && document.getElementById(cp.divName).style.visibility != "hidden" ) {
cp.hidePopup('prettyplease');
} else {
cp.p = p;
cp.select(t,p);
}
}
function colorDefault() {
pickColor('<?php echo HEADER_TEXTCOLOR; ?>');
}
function hide_text() {
$('name').style.display = 'none';
$('desc').style.display = 'none';
$('pickcolor').style.display = 'none';
$('defaultcolor').style.display = 'none';
$('textcolor').value = 'blank';
$('hidetext').value = '<?php _e('Show Text'); ?>';
// $('hidetext').onclick = 'show_text()';
Event.observe( $('hidetext'), 'click', show_text );
}
function show_text() {
$('name').style.display = 'block';
$('desc').style.display = 'block';
$('pickcolor').style.display = 'inline';
$('defaultcolor').style.display = 'inline';
$('textcolor').value = '<?php echo HEADER_TEXTCOLOR; ?>';
$('hidetext').value = '<?php _e('Hide Text'); ?>';
Event.stopObserving( $('hidetext'), 'click', show_text );
Event.observe( $('hidetext'), 'click', hide_text );
}
<?php if ( 'blank' == get_theme_mod('header_textcolor', HEADER_TEXTCOLOR) ) { ?>
Event.observe( window, 'load', hide_text );
<?php } ?>
</script>
<?php
}
function step_1() {
if ( $_GET['updated'] ) { ?>
<div id="message" class="updated fade">
<p><?php _e('Header updated.') ?></p>
</div>
<?php } ?>
<div class="wrap">
<h2><?php _e('Your Header Image'); ?></h2>
<p><?php _e('This is your header image. You can change the text color or upload and crop a new image.'); ?></p>
<div id="headimg" style="background: url(<?php clean_url(header_image()) ?>) no-repeat;">
<h1><a onclick="return false;" href="<?php bloginfo('url'); ?>" title="<?php bloginfo('name'); ?>" id="name"><?php bloginfo('name'); ?></a></h1>
<div id="desc"><?php bloginfo('description');?></div>
</div>
<?php if ( !defined( 'NO_HEADER_TEXT' ) ) { ?>
<form method="post" action="<?php echo get_option('siteurl') ?>/wp-admin/themes.php?page=custom-header&amp;updated=true">
<input type="button" value="<?php _e('Hide Text'); ?>" onclick="hide_text()" id="hidetext" />
<input type="button" value="<?php _e('Select a Text Color'); ?>" onclick="colorSelect($('textcolor'), 'pickcolor')" id="pickcolor" /><input type="button" value="<?php _e('Use Original Color'); ?>" onclick="colorDefault()" id="defaultcolor" />
<?php wp_nonce_field('custom-header') ?>
<input type="hidden" name="textcolor" id="textcolor" value="#<?php attribute_escape(header_textcolor()) ?>" /><input name="submit" type="submit" value="<?php _e('Save Changes'); ?> &raquo;" /></form>
<?php } ?>
<div id="colorPickerDiv" style="z-index: 100;background:#eee;border:1px solid #ccc;position:absolute;visibility:hidden;"> </div>
</div>
<div class="wrap">
<h2><?php _e('Upload New Header Image'); ?></h2><p><?php _e('Here you can upload a custom header image to be shown at the top of your blog instead of the default one. On the next screen you will be able to crop the image.'); ?></p>
<p><?php printf(__('Images of exactly <strong>%1$d x %2$d pixels</strong> will be used as-is.'), HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT); ?></p>
<form enctype="multipart/form-data" id="uploadForm" method="POST" action="<?php echo attribute_escape(add_query_arg('step', 2)) ?>" style="margin: auto; width: 50%;">
<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-header') ?>
<p class="submit">
<input type="submit" value="<?php _e('Upload'); ?> &raquo;" />
</p>
</form>
</div>
<?php if ( get_theme_mod('header_image') || get_theme_mod('header_textcolor') ) : ?>
<div class="wrap">
<h2><?php _e('Reset Header Image and Color'); ?></h2>
<p><?php _e('This will restore the original header image and color. You will not be able to retrieve any customizations.') ?></p>
<form method="post" action="<?php echo attribute_escape(add_query_arg('step', 1)) ?>">
<?php wp_nonce_field('custom-header'); ?>
<input type="submit" name="resetheader" value="<?php _e('Restore Original Header'); ?>" />
</form>
</div>
<?php endif;
}
function step_2() {
check_admin_referer('custom-header');
$overrides = array('test_form' => false);
$file = wp_handle_upload($_FILES['import'], $overrides);
if ( isset($file['error']) )
die( $file['error'] );
$url = $file['url'];
$file = $file['file'];
$filename = basename($file);
// Construct the object array
$object = array(
'post_title' => $filename,
'post_content' => $url,
'post_mime_type' => 'import',
'guid' => $url);
// Save the data
$id = wp_insert_attachment($object, $file);
$upload = array('file' => $file, 'id' => $id);
list($width, $height, $type, $attr) = getimagesize( $file );
if ( $width == HEADER_IMAGE_WIDTH && $height == HEADER_IMAGE_HEIGHT ) {
set_theme_mod('header_image', clean_url($url));
$header = apply_filters('wp_create_file_in_uploads', $file, $id); // For replication
return $this->finished();
} elseif ( $width > HEADER_IMAGE_WIDTH ) {
$oitar = $width / HEADER_IMAGE_WIDTH;
$image = wp_crop_image($file, 0, 0, $width, $height, HEADER_IMAGE_WIDTH, $height / $oitar, false, str_replace(basename($file), 'midsize-'.basename($file), $file));
$image = apply_filters('wp_create_file_in_uploads', $image, $id); // For replication
$url = str_replace(basename($url), basename($image), $url);
$width = $width / $oitar;
$height = $height / $oitar;
} else {
$oitar = 1;
}
?>
<div class="wrap">
<form method="POST" action="<?php echo attribute_escape(add_query_arg('step', 3)) ?>">
<p><?php _e('Choose the part of the image you want to use as your header.'); ?></p>
<div id="testWrap">
<img src="<?php echo $url; ?>" id="upload" width="<?php echo $width; ?>" height="<?php echo $height; ?>" />
</div>
<p class="submit">
<input type="hidden" name="x1" id="x1" />
<input type="hidden" name="y1" id="y1" />
<input type="hidden" name="x2" id="x2" />
<input type="hidden" name="y2" id="y2" />
<input type="hidden" name="width" id="width" />
<input type="hidden" name="height" id="height" />
<input type="hidden" name="attachment_id" id="attachment_id" value="<?php echo $id; ?>" />
<input type="hidden" name="oitar" id="oitar" value="<?php echo $oitar; ?>" />
<?php wp_nonce_field('custom-header') ?>
<input type="submit" value="<?php _e('Crop Header &raquo;'); ?>" />
</p>
</form>
</div>
<?php
}
function step_3() {
check_admin_referer('custom-header');
if ( $_POST['oitar'] > 1 ) {
$_POST['x1'] = $_POST['x1'] * $_POST['oitar'];
$_POST['y1'] = $_POST['y1'] * $_POST['oitar'];
$_POST['width'] = $_POST['width'] * $_POST['oitar'];
$_POST['height'] = $_POST['height'] * $_POST['oitar'];
}
$header = wp_crop_image($_POST['attachment_id'], $_POST['x1'], $_POST['y1'], $_POST['width'], $_POST['height'], HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT);
$header = apply_filters('wp_create_file_in_uploads', $header); // For replication
$parent = get_post($_POST['attachment_id']);
$parent_url = $parent->guid;
$url = str_replace(basename($parent_url), basename($header), $parent_url);
set_theme_mod('header_image', $url);
// cleanup
$file = get_attached_file( $_POST['attachment_id'] );
$medium = str_replace(basename($file), 'midsize-'.basename($file), $file);
@unlink( apply_filters( 'wp_delete_file', $medium ) );
wp_delete_attachment( $_POST['attachment_id'] );
return $this->finished();
}
function finished() {
?>
<div class="wrap">
<h2><?php _e('Header complete!'); ?></h2>
<p><?php _e('Visit your site and you should see the new header now.'); ?></p>
</div>
<?php
}
function admin_page() {
if ( !isset( $_GET['step'] ) )
$step = 1;
else
$step = (int) $_GET['step'];
if ( 1 == $step ) {
$this->step_1();
} elseif ( 2 == $step ) {
$this->step_2();
} elseif ( 3 == $step ) {
$this->step_3();
}
}
}
?>

47
wp-admin/dbx-admin-key.js Normal file
View File

@@ -0,0 +1,47 @@
addLoadEvent( function() {var manager = new dbxManager( dbxL10n.manager );} );
addLoadEvent( function()
{
//create new docking boxes group
var meta = new dbxGroup(
'grabit', // container ID [/-_a-zA-Z0-9/]
'vertical', // orientation ['vertical'|'horizontal']
'10', // drag threshold ['n' pixels]
'no', // restrict drag movement to container axis ['yes'|'no']
'10', // animate re-ordering [frames per transition, or '0' for no effect]
'yes', // include open/close toggle buttons ['yes'|'no']
'closed', // default state ['open'|'closed']
dbxL10n.open, // word for "open", as in "open this box"
dbxL10n.close, // word for "close", as in "close this box"
dbxL10n.moveMouse, // sentence for "move this box" by mouse
dbxL10n.toggleMouse, // pattern-match sentence for "(open|close) this box" by mouse
dbxL10n.moveKey, // sentence for "move this box" by keyboard
dbxL10n.toggleKey, // pattern-match sentence-fragment for "(open|close) this box" by keyboard
'%mytitle% [%dbxtitle%]' // pattern-match syntax for title-attribute conflicts
);
// Boxes are closed by default. Open the Category box if the cookie isn't already set.
var catdiv = document.getElementById('categorydiv');
if ( catdiv ) {
var button = catdiv.getElementsByTagName('A')[0];
if ( dbx.cookiestate == null && /dbx\-toggle\-closed/.test(button.className) )
meta.toggleBoxState(button, true);
}
var advanced = new dbxGroup(
'advancedstuff',
'vertical',
'10',
'yes', // restrict drag movement to container axis ['yes'|'no']
'10',
'yes',
'closed',
dbxL10n.open,
dbxL10n.close,
dbxL10n.moveMouse,
dbxL10n.toggleMouse,
dbxL10n.moveKey,
dbxL10n.toggleKey,
'%mytitle% [%dbxtitle%]' // pattern-match syntax for title-attribute conflicts
);
});

View File

@@ -0,0 +1,49 @@
<?php
if ( ! empty($cat_ID) ) {
$heading = __('Edit Category');
$submit_text = __('Edit Category &raquo;');
$form = '<form name="editcat" id="editcat" method="post" action="categories.php">';
$action = 'editedcat';
$nonce_action = 'update-category_' . $cat_ID;
do_action('edit_category_form_pre', $category);
} else {
$heading = __('Add Category');
$submit_text = __('Add Category &raquo;');
$form = '<form name="addcat" id="addcat" method="post" action="categories.php">';
$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->cat_ID ?>" />
<?php wp_nonce_field($nonce_action); ?>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row" valign="top"><label for="cat_name"><?php _e('Category name:') ?></label></th>
<td width="67%"><input name="cat_name" id="cat_name" type="text" value="<?php echo attribute_escape($category->cat_name); ?>" size="40" /></td>
</tr>
<tr>
<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->category_nicename); ?>" size="40" /></td>
</tr>
<tr>
<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->category_parent . '&hierarchical=1&show_option_none=' . __('None')); ?>
</td>
</tr>
<tr>
<th scope="row" valign="top"><label for="category_description"><?php _e('Description: (optional)') ?></label></th>
<td><textarea name="category_description" id="category_description" rows="5" cols="50" style="width: 97%;"><?php echo wp_specialchars($category->category_description); ?></textarea></td>
</tr>
</table>
<p class="submit"><input type="submit" name="submit" value="<?php echo $submit_text ?>" /></p>
<?php do_action('edit_category_form', $category); ?>
</form>
</div>

59
wp-admin/edit-comments.js Normal file
View File

@@ -0,0 +1,59 @@
addLoadEvent(function() {
theCommentList = new listMan('the-comment-list');
if ( !theCommentList )
return false;
theExtraCommentList = new listMan('the-extra-comment-list');
if ( theExtraCommentList ) {
theExtraCommentList.showLink = 0;
theExtraCommentList.altOffset = 1;
if ( theExtraCommentList.theList && theExtraCommentList.theList.childNodes )
var commentNum = $A(theExtraCommentList.theList.childNodes).findAll( function(i) { return Element.visible(i) } ).length;
else
var commentNum = 0;
var urlQ = document.location.href.split('?');
var params = urlQ[1] ? urlQ[1].toQueryParams() : [];
var search = params['s'] ? params['s'] : '';
var page = params['apage'] ? params['apage'] : 1;
}
theCommentList.dimComplete = function(what,id,dimClass) {
var m = document.getElementById('awaitmod');
if ( document.getElementById(what + '-' + id).className.match(dimClass) )
m.innerHTML = parseInt(m.innerHTML,10) + 1;
else
m.innerHTML = parseInt(m.innerHTML,10) - 1;
}
theCommentList.delComplete = function(what,id) {
var m = document.getElementById('awaitmod');
what = what.split('-')[0];
if ( document.getElementById(what + '-' + id).className.match('unapproved') )
m.innerHTML = parseInt(m.innerHTML,10) - 1;
if ( theExtraCommentList && commentNum ) {
var theMover = theExtraCommentList.theList.childNodes[0];
Element.removeClassName(theMover,'alternate');
theCommentList.theList.appendChild(theMover);
theExtraCommentList.inputData += '&page=' + page;
if ( search )
theExtraCommentList.inputData += '&s=' + search; // trust the URL not the search box
theExtraCommentList.addComplete = function() {
if ( theExtraCommentList.theList.childNodes )
var commentNum = $A(theExtraCommentList.theList.childNodes).findAll( function(i) { return Element.visible(i) } ).length;
else
var commentNum = 0;
}
theExtraCommentList.ajaxAdder( 'comment', 'ajax-response' ); // Dummy Request
}
}
if ( theList ) // the post list: edit.php
theList.delComplete = function() {
var comments = document.getElementById('comments');
var commdel = encloseFunc(function(a){a.parentNode.removeChild(a);},comments);
var listdel = encloseFunc(function(a){a.parentNode.removeChild(a);},theCommentList.theList);
setTimeout(commdel,705);
setTimeout(listdel,705);
}
});

View File

@@ -2,11 +2,12 @@
require_once('admin.php');
$title = __('Edit Comments');
$parent_file = 'edit.php';
$parent_file = 'edit-comments.php';
wp_enqueue_script( 'admin-comments' );
require_once('admin-header.php');
if (empty($_GET['mode'])) $mode = 'view';
else $mode = wp_specialchars($_GET['mode'], 1);
else $mode = attribute_escape($_GET['mode']);
?>
<script type="text/javascript">
@@ -22,139 +23,165 @@ function checkAll(form)
}
}
}
function getNumChecked(form)
{
var num = 0;
for (i = 0, n = form.elements.length; i < n; i++) {
if(form.elements[i].type == "checkbox") {
if(form.elements[i].checked == true)
num++;
}
}
return num;
}
//-->
</script>
<div class="wrap">
<h2><?php _e('Comments'); ?></h2>
<form name="searchform" action="" method="get">
<form name="searchform" action="" method="get" id="editcomments">
<fieldset>
<legend><?php _e('Show Comments That Contain...') ?></legend>
<input type="text" name="s" value="<?php if (isset($_GET['s'])) echo wp_specialchars($_GET['s'], 1); ?>" size="17" />
<input type="text" name="s" value="<?php if (isset($_GET['s'])) echo attribute_escape($_GET['s']); ?>" size="17" />
<input type="submit" name="submit" value="<?php _e('Search') ?>" />
<input type="hidden" name="mode" value="<?php echo $mode; ?>" />
<?php _e('(Searches within comment text, e-mail, URI, and IP address.)') ?>
<?php _e('(Searches within comment text, e-mail, URL, and IP address.)') ?>
</fieldset>
</form>
<p><a href="?mode=view"><?php _e('View Mode') ?></a> | <a href="?mode=edit"><?php _e('Mass Edit Mode') ?></a></p>
<?php
if ( !empty( $_POST['delete_comments'] ) ) :
check_admin_referer('bulk-comments');
$i = 0;
foreach ($_POST['delete_comments'] as $comment) : // Check the permissions on each
$comment = (int) $comment;
$post_id = $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 ( user_can_delete_post_comments($user_ID, $post_id) ) :
$wpdb->query("DELETE FROM $wpdb->comments WHERE comment_ID = $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) ) {
if ( !empty( $_POST['spam_button'] ) )
wp_set_comment_status($comment, 'spam');
else
wp_set_comment_status($comment, 'delete');
++$i;
endif;
}
endforeach;
echo "<div class='wrap'><p>" . sprintf(__('%s comments deleted.'), $i) . "</p></div>";
echo '<div style="background-color: rgb(207, 235, 247);" id="message" class="updated fade"><p>';
if ( !empty( $_POST['spam_button'] ) ) {
printf(__ngettext('%s comment marked as spam', '%s comments marked as spam.', $i), $i);
} else {
printf(__ngettext('%s comment deleted.', '%s comments deleted.', $i), $i);
}
echo '</p></div>';
endif;
if (isset($_GET['s'])) {
$s = $wpdb->escape($_GET['s']);
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE
(comment_author LIKE '%$s%' OR
comment_author_email LIKE '%$s%' OR
comment_author_url LIKE ('%$s%') OR
comment_author_IP LIKE ('%$s%') OR
comment_content LIKE ('%$s%') ) AND
comment_approved != 'spam'
ORDER BY comment_date DESC");
} else {
if ( isset($_GET['offset']) )
$offset = (int) $_GET['offset'] * 20;
else
$offset = 0;
if ( isset( $_GET['apage'] ) )
$page = abs( (int) $_GET['apage'] );
else
$page = 1;
$start = $offset = ( $page - 1 ) * 20;
list($_comments, $total) = _wp_get_comment_list( isset($_GET['s']) ? $_GET['s'] : false, $start, 25 ); // Grab a few extra
$comments = array_slice($_comments, 0, 20);
$extra_comments = array_slice($_comments, 20);
$page_links = paginate_links( array(
'base' => add_query_arg( 'apage', '%#%' ),
'format' => '',
'total' => ceil($total / 20),
'current' => $page
));
if ( $page_links )
echo "<p class='pagenav'>$page_links</p>";
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = '0' OR comment_approved = '1' ORDER BY comment_date DESC LIMIT $offset,20");
}
if ('view' == $mode) {
if ($comments) {
if ($offset)
$start = " start='$offset'";
else
$start = '';
$offset = $offset + 1;
$start = " start='$offset'";
echo "<ol class='commentlist' $start>";
echo "<ol id='the-comment-list' class='commentlist' $start>\n";
$i = 0;
foreach ($comments as $comment) {
++$i; $class = '';
$authordata = get_userdata($wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $comment->comment_post_ID"));
$comment_status = wp_get_comment_status($comment->comment_ID);
if ('unapproved' == $comment_status)
$class .= ' unapproved';
if ($i % 2)
$class .= ' alternate';
echo "<li class='$class'>";
?>
<p><strong><?php _e('Name:') ?></strong> <?php comment_author() ?> <?php if ($comment->comment_author_email) { ?>| <strong><?php _e('E-mail:') ?></strong> <?php comment_author_email_link() ?> <?php } if ($comment->comment_author_url) { ?> | <strong><?php _e('URI:') ?></strong> <?php comment_author_url_link() ?> <?php } ?>| <strong><?php _e('IP:') ?></strong> <a href="http://ws.arin.net/cgi-bin/whois.pl?queryinput=<?php comment_author_IP() ?>"><?php comment_author_IP() ?></a></p>
<?php comment_text() ?>
foreach ( $comments as $comment ) {
get_comment( $comment ); // Cache it
_wp_comment_list_item( $comment->comment_ID, ++$i );
}
echo "</ol>\n\n";
<p><?php _e('Posted'); echo ' '; comment_date('M j, g:i A');
if ( user_can_edit_post_comments($user_ID, $comment->comment_post_ID) ) {
echo " | <a href=\"post.php?action=editcomment&amp;comment=".$comment->comment_ID."\">" . __('Edit Comment') . "</a>";
}
if ( user_can_delete_post_comments($user_ID, $comment->comment_post_ID) ) {
echo " | <a href=\"post.php?action=deletecomment&amp;p=".$comment->comment_post_ID."&amp;comment=".$comment->comment_ID."\" onclick=\"return confirm('" . sprintf(__("You are about to delete this comment by \'%s\'\\n \'Cancel\' to stop, \'OK\' to delete."), $comment->comment_author) . "')\">" . __('Delete Comment') . "</a> &#8212; ";
} // end if any comments to show
// Get post title
if ( user_can_edit_post($user_ID, $comment->comment_post_ID) ) {
$post_title = $wpdb->get_var("SELECT post_title FROM $wpdb->posts WHERE ID = $comment->comment_post_ID");
$post_title = ('' == $post_title) ? "# $comment->comment_post_ID" : $post_title;
?> <a href="post.php?action=edit&amp;post=<?php echo $comment->comment_post_ID; ?>"><?php printf(__('Edit Post &#8220;%s&#8221;'), stripslashes($post_title)); ?></a>
<?php } ?>
| <a href="<?php echo get_permalink($comment->comment_post_ID); ?>"><?php _e('View Post') ?></a></p>
</li>
if ( $extra_comments ) : ?>
<div id="extra-comments" style="display:none">
<ul id="the-extra-comment-list" class="commentlist">
<?php
foreach ( $extra_comments as $comment ) {
get_comment( $comment ); // Cache it
_wp_comment_list_item( $comment->comment_ID, ++$i );
}
?>
</ul>
</div>
<?php endif; // $extra_comments ?>
<?php } // end foreach ?>
</ol>
<div id="ajax-response"></div>
<?php
} else {
} else { //no comments to show
?>
<p>
<strong><?php _e('No comments found.') ?></strong></p>
<strong><?php _e('No comments found.') ?></strong></p>
<?php
} // end if ($comments)
} elseif ('edit' == $mode) {
if ($comments) {
echo '<form name="deletecomments" id="deletecomments" action="" method="post">
<table width="100%" cellpadding="3" cellspacing="3">
echo '<form name="deletecomments" id="deletecomments" action="" method="post"> ';
wp_nonce_field('bulk-comments');
echo '<table class="widefat">
<thead>
<tr>
<th scope="col">*</th>
<th scope="col" style="text-align: center"><input type="checkbox" onclick="checkAll(document.getElementById(\'deletecomments\'));" /></th>
<th scope="col">' . __('Name') . '</th>
<th scope="col">' . __('E-mail') . '</th>
<th scope="col">' . __('IP') . '</th>
<th scope="col">' . __('Comment Excerpt') . '</th>
<th scope="col" colspan="3">' . __('Actions') . '</th>
</tr>';
<th scope="col" colspan="3" style="text-align: center">' . __('Actions') . '</th>
</tr>
</thead>';
foreach ($comments as $comment) {
$authordata = get_userdata($wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $comment->comment_post_ID"));
$comment_status = wp_get_comment_status($comment->comment_ID);
$class = ('alternate' == $class) ? '' : 'alternate';
$class .= ('unapproved' == $comment_status) ? ' unapproved' : '';
?>
<tr class='<?php echo $class; ?>'>
<td><?php if (user_can_delete_post_comments($user_ID, $comment->comment_post_ID) ) { ?><input type="checkbox" name="delete_comments[]" value="<?php echo $comment->comment_ID; ?>" /><?php } ?></td>
<tr id="comment-<?php echo $comment->comment_ID; ?>" class='<?php echo $class; ?>'>
<td><?php if ( current_user_can('edit_post', $comment->comment_post_ID) ) { ?><input type="checkbox" name="delete_comments[]" value="<?php echo $comment->comment_ID; ?>" /><?php } ?></td>
<td><?php comment_author_link() ?></td>
<td><?php comment_author_email_link() ?></td>
<td><a href="http://ws.arin.net/cgi-bin/whois.pl?queryinput=<?php comment_author_IP() ?>"><?php comment_author_IP() ?></a></td>
<td><?php comment_excerpt(); ?></td>
<td><a href="<?php echo get_permalink($comment->comment_post_ID); ?>#comment-<?php comment_ID() ?>" class="edit"><?php _e('View') ?></a></td>
<td><?php if ( user_can_edit_post_comments($user_ID, $comment->comment_post_ID) ) {
echo "<a href='post.php?action=editcomment&amp;comment=$comment->comment_ID' class='edit'>" . __('Edit') . "</a>"; } ?></td>
<td><?php if ( user_can_delete_post_comments($user_ID, $comment->comment_post_ID) ) {
echo "<a href=\"post.php?action=deletecomment&amp;p=".$comment->comment_post_ID."&amp;comment=".$comment->comment_ID."\" onclick=\"return confirm('" . sprintf(__("You are about to delete this comment by \'%s\'\\n \'Cancel\' to stop, \'OK\' to delete."), $comment->comment_author) . "')\" class='delete'>" . __('Delete') . "</a>"; } ?></td>
<td>
<?php if ('unapproved' == $comment_status) { ?>
(Unapproved)
<?php } else { ?>
<a href="<?php echo get_permalink($comment->comment_post_ID); ?>#comment-<?php comment_ID() ?>" class="edit"><?php _e('View') ?></a>
<?php } ?>
</td>
<td><?php if ( current_user_can('edit_post', $comment->comment_post_ID) ) {
echo "<a href='comment.php?action=editcomment&amp;c=$comment->comment_ID' class='edit'>" . __('Edit') . "</a>"; } ?></td>
<td><?php if ( current_user_can('edit_post', $comment->comment_post_ID) ) {
echo "<a href=\"comment.php?action=deletecomment&amp;p=".$comment->comment_post_ID."&amp;c=".$comment->comment_ID."\" onclick=\"return deleteSomething( 'comment', $comment->comment_ID, '" . js_escape(sprintf(__("You are about to delete this comment by '%s'. \n 'Cancel' to stop, 'OK' to delete."), $comment->comment_author )) . "', theCommentList );\" class='delete'>" . __('Delete') . "</a> ";
} ?></td>
</tr>
<?php
} // end foreach
?></table>
<p><a href="javascript:;" onclick="checkAll(document.getElementById('deletecomments')); return false; "><?php _e('Invert Checkbox Selection') ?></a></p>
<p class="submit"><input type="submit" name="Submit" value="<?php _e('Delete Checked Comments') ?> &raquo;" onclick="return confirm('<?php _e("You are about to delete these comments permanently \\n \'Cancel\' to stop, \'OK\' to delete.") ?>')" /> </p>
<p class="submit"><input type="submit" name="delete_button" class="delete" value="<?php _e('Delete Checked Comments &raquo;') ?>" onclick="var numchecked = getNumChecked(document.getElementById('deletecomments')); if(numchecked < 1) { alert('<?php echo js_escape(__("Please select some comments to delete")); ?>'); return false } return confirm('<?php echo sprintf(js_escape(__("You are about to delete %s comments permanently \n 'Cancel' to stop, 'OK' to delete.")), "' + numchecked + '"); ?>')" />
<input type="submit" name="spam_button" value="<?php _e('Mark Checked Comments as Spam &raquo;') ?>" onclick="var numchecked = getNumChecked(document.getElementById('deletecomments')); if(numchecked < 1) { alert('<?php echo js_escape(__("Please select some comments to mark as spam")); ?>'); return false } return confirm('<?php echo sprintf(js_escape(__("You are about to mark %s comments as spam \n 'Cancel' to stop, 'OK' to mark as spam.")), "' + numchecked + '"); ?>')" /></p>
</form>
<div id="ajax-response"></div>
<?php
} else {
?>
@@ -164,8 +191,12 @@ if ('view' == $mode) {
<?php
} // end if ($comments)
}
?>
if ( $page_links )
echo "<p class='pagenav'>$page_links</p>";
?>
</div>
<?php include('admin-footer.php'); ?>
<?php include('admin-footer.php'); ?>

View File

@@ -1,206 +1,264 @@
<?php
if ( isset($_GET['message']) )
$_GET['message'] = (int) $_GET['message'];
$messages[1] = __('Post updated');
$messages[2] = __('Custom field updated');
$messages[3] = __('Custom field deleted.');
?>
<?php if (isset($_GET['message'])) : ?>
<div class="updated"><p><?php echo $messages[$_GET['message']]; ?></p></div>
<div id="message" class="updated fade"><p><?php echo wp_specialchars($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">
<h2><?php _e('Write Post'); ?></h2>
<?php
if (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' name='post_ID' value='$post_ID' />";
$form_extra = "<input type='hidden' id='post_ID' name='post_ID' value='$post_ID' />";
wp_nonce_field('update-post_' . $post_ID);
}
$form_pingback = '<input type="hidden" name="post_pingback" value="' . get_option('default_pingback_flag') . '" id="post_pingback" />';
$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="'.$post_status.'" />';
$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="'. str_replace("\n", ' ', $to_ping) .'" />';
$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 ('' != $pinged) {
$pings .= '<p>'. __('Already pinged:') . '</p><ul>';
$already_pinged = explode("\n", trim($pinged));
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>$pinged_url</li>";
$pings .= "\n\t<li>" . wp_specialchars($pinged_url) . "</li>";
}
$pings .= '</ul>';
}
$saveasdraft = '<input name="save" type="submit" id="save" tabindex="6" value="' . __('Save and Continue Editing') . '" />';
$saveasdraft = '<input name="save" type="submit" id="save" tabindex="3" value="' . attribute_escape( __('Save and Continue Editing') ) . '" />';
if (empty($post_status)) $post_status = 'draft';
if (empty($post->post_status)) $post->post_status = 'draft';
?>
<input type="hidden" name="user_ID" value="<?php echo $user_ID ?>" />
<input type="hidden" name="action" value="<?php echo $form_action ?>" />
<input type="hidden" name="post_author" value="<?php echo $post_author ?>" />
<input type="hidden" 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" name="post_author" value="<?php echo attribute_escape( $post->post_author ); ?>" />
<input type="hidden" id="post_type" name="post_type" value="post" />
<?php echo $form_extra ?>
<?php if (isset($_GET['message']) && 2 > $_GET['message']) : ?>
<script type="text/javascript">
<!--
function focusit() {
// focus on first input field
document.post.title.focus();
}
window.onload = focusit;
//-->
addLoadEvent(focusit);
</script>
<?php endif; ?>
<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 $edited_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(get_settings('default_category')); ?></div>
</fieldset>
<div id="moremeta">
<div id="grabit" class="dbx-group">
<fieldset id="commentstatusdiv">
<legend><a href="http://wordpress.org/docs/reference/post/#comments" title="<?php _e('Help on comment status') ?>"><?php _e('Discussion') ?></a></legend>
<div>
<input name="advanced_view" type="hidden" value="1" />
<label for="comment_status" class="selectit">
<input name="comment_status" type="checkbox" id="comment_status" value="open" <?php checked($comment_status, 'open'); ?> />
<?php _e('Allow Comments') ?></label>
<label for="ping_status" class="selectit"><input name="ping_status" type="checkbox" id="ping_status" value="open" <?php checked($ping_status, 'open'); ?> /> <?php _e('Allow Pings') ?></label>
<fieldset id="categorydiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Categories') ?></h3>
<div class="dbx-content">
<p id="jaxcat"></p>
<ul id="categorychecklist"><?php dropdown_categories(); ?></ul></div>
</fieldset>
<fieldset id="commentstatusdiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Discussion') ?></h3>
<div class="dbx-content">
<input name="advanced_view" type="hidden" value="1" />
<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>
<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>
</div>
</fieldset>
<fieldset id="postpassworddiv">
<legend><a href="http://wordpress.org/docs/reference/post/#post_password" title="<?php _e('Help on post password') ?>"><?php _e('Post Password') ?></a></legend>
<div><input name="post_password" type="text" size="13" id="post_password" value="<?php echo $post_password ?>" /></div>
</fieldset>
<br />
<fieldset id="postexcerpt">
<legend><a href="http://wordpress.org/docs/reference/post/#excerpt" title="<?php _e('Help with excerpts') ?>"><?php _e('Excerpt') ?></a></legend>
<div><textarea rows="1" cols="40" name="excerpt" tabindex="4" id="excerpt"><?php echo $excerpt ?></textarea></div>
<fieldset id="passworddiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Post Password') ?></h3>
<div class="dbx-content"><input name="post_password" type="text" size="13" id="post_password" value="<?php echo attribute_escape( $post->post_password ); ?>" /></div>
</fieldset>
<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 the_quicktags(); ?>
<?php
$rows = get_settings('default_post_edit_rows');
if (($rows < 3) || ($rows > 100)) {
$rows = 10;
}
?>
<div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="5" id="content"><?php echo $content ?></textarea></div>
<fieldset id="slugdiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Post Slug') ?></h3>
<div class="dbx-content"><input name="post_name" type="text" size="13" id="post_name" value="<?php echo attribute_escape( $post->post_name ); ?>" /></div>
</fieldset>
<?php
<fieldset id="poststatusdiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Post Status') ?></h3>
<div class="dbx-content"><?php if ( current_user_can('publish_posts') ) : ?>
<label for="post_status_publish" class="selectit"><input id="post_status_publish" name="post_status" type="radio" value="publish" <?php checked($post->post_status, 'publish'); checked($post->post_status, 'future'); ?> /> <?php _e('Published') ?></label>
<?php endif; ?>
<label for="post_status_draft" class="selectit"><input id="post_status_draft" name="post_status" type="radio" value="draft" <?php checked($post->post_status, 'draft'); ?> /> <?php _e('Draft') ?></label>
<label for="post_status_private" class="selectit"><input id="post_status_private" name="post_status" type="radio" value="private" <?php checked($post->post_status, 'private'); ?> /> <?php _e('Private') ?></label></div>
</fieldset>
<?php if ( current_user_can('edit_posts') ) : ?>
<fieldset id="posttimestampdiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Post Timestamp'); ?></h3>
<div class="dbx-content"><?php touch_time(($action == 'edit')); ?></div>
</fieldset>
<?php endif; ?>
<?php
$authors = get_editable_authors( $current_user->id ); // TODO: ROLE SYSTEM
if ( $authors && count( $authors ) > 1 ) :
?>
<script type="text/javascript">
<!--
edCanvas = document.getElementById('content');
//-->
</script>
<fieldset id="authordiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Post Author'); ?></h3>
<div class="dbx-content">
<select name="post_author_override" id="post_author_override">
<?php
foreach ($authors as $o) :
$o = get_userdata( $o->ID );
if ( $post->post_author == $o->ID || ( empty($post_ID) && $user_ID == $o->ID ) ) $selected = 'selected="selected"';
else $selected = '';
echo "<option value='" . (int) $o->ID . "' $selected>" . wp_specialchars( $o->display_name ) . "</option>";
endforeach;
?>
</select>
</div>
</fieldset>
<?php endif; ?>
<?php do_action('dbx_post_sidebar'); ?>
</div>
</div>
<fieldset id="titlediv">
<legend><?php _e('Title') ?></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="<?php echo user_can_richedit() ? 'postdivrich' : 'postdiv'; ?>">
<legend><?php _e('Post') ?>
<?php if ( 'publish' == $post->post_status ) { ?>
<a href="<?php echo clean_url(get_permalink($post->ID)); ?>" class="view-link" target="_blank"><?php _e('View &raquo;'); ?></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)))); ?>" class="view-link" target="_blank"><?php _e('Preview &raquo;'); ?></a>
<?php } ?>
</legend>
<?php the_editor($post->post_content); ?>
</fieldset>
<?php echo $form_pingback ?>
<?php echo $form_prevstatus ?>
<p class="submit"><?php echo $saveasdraft; ?> <input type="submit" name="submit" value="<?php _e('Save') ?>" style="font-weight: bold;" tabindex="6" />
<p class="submit">
<span id="autosave"></span>
<?php echo $saveasdraft; ?>
<input type="submit" name="submit" value="<?php _e('Save') ?>" style="font-weight: bold;" tabindex="4" />
<?php
if ('publish' != $post_status || 0 == $post_ID) {
if ('publish' != $post->post_status || 0 == $post_ID) {
?>
<?php if ( user_can_create_post($user_ID) ) : ?>
<input name="publish" type="submit" id="publish" tabindex="10" value="<?php _e('Publish') ?>" />
<?php if ( current_user_can('publish_posts') ) : ?>
<input name="publish" type="submit" id="publish" tabindex="5" accesskey="p" value="<?php _e('Publish'); ?>" />
<?php endif; ?>
<?php
}
?>
<input name="referredby" type="hidden" id="referredby" value="<?php echo wp_specialchars($_SERVER['HTTP_REFERER']); ?>" />
</p>
<input name="referredby" type="hidden" id="referredby" value="<?php
if ( !empty($_REQUEST['popupurl']) )
echo clean_url(stripslashes($_REQUEST['popupurl']));
else if ( url_to_postid(wp_get_referer()) == $post_ID )
echo 'redo';
else
echo clean_url(stripslashes(wp_get_referer()));
?>" /></p>
<?php do_action('edit_form_advanced', ''); ?>
</div>
<?php do_action('edit_form_advanced'); ?>
</div>
<div class="wrap">
<h2><?php _e('Advanced'); ?></h2>
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<tr>
<th scope="row" valign="top"><?php _e('Post Status') ?>:</th>
<td><?php if ( user_can_create_post($user_ID) ) : ?>
<label for="post_status_publish" class="selectit"><input id="post_status_publish" name="post_status" type="radio" value="publish" <?php checked($post_status, 'publish'); ?> /> <?php _e('Published') ?></label><br />
<?php endif; ?>
<label for="post_status_draft" class="selectit"><input id="post_status_draft" name="post_status" type="radio" value="draft" <?php checked($post_status, 'draft'); ?> /> <?php _e('Draft') ?></label><br />
<label for="post_status_private" class="selectit"><input id="post_status_private" name="post_status" type="radio" value="private" <?php checked($post_status, 'private'); ?> /> <?php _e('Private') ?></label></td>
</tr>
<tr>
<th scope="row" valign="top"><?php _e('Send trackbacks to'); ?>:</th>
<td><?php echo $form_trackback; ?> <br />
<?php _e('Separate multiple URIs with spaces'); ?></td>
</tr>
<tr valign="top">
<th scope="row" width="25%"><?php _e('Post slug') ?>:</th>
<td><input name="post_name" type="text" size="25" id="post_name" value="<?php echo $post_name ?>" /></td>
</tr>
<?php if ($user_level > 7 && $users = $wpdb->get_results("SELECT ID, user_login, user_firstname, user_lastname FROM $wpdb->users WHERE user_level <= $user_level AND user_level > 0") ) : ?>
<tr>
<th scope="row"><?php _e('Post author'); ?>:</th>
<td>
<select name="post_author_override" id="post_author_override">
<?php
foreach ($users as $o) :
if ( $post_author == $o->ID || ( empty($post_ID) && $user_ID == $o->ID ) ) $selected = 'selected="selected"';
else $selected = '';
echo "<option value='$o->ID' $selected>$o->user_login ($o->user_firstname $o->user_lastname)</option>";
endforeach;
?>
</select>
</td>
</tr>
<?php endif; ?>
<?php if ($user_level > 4) : ?>
<tr>
<th scope="row"><?php _e('Edit time'); ?>:</th>
<td><?php touch_time(($action == 'edit')); ?></td>
</tr>
<?php endif; ?>
<?php if ('edit' == $action) : ?>
<tr>
<th scope="row"><?php _e('Delete'); ?>:</th>
<td>
<input name="deletepost" class="button" type="submit" id="deletepost" tabindex="10" value="<?php _e('Delete this post') ?>" <?php echo "onclick=\"return confirm('" . sprintf(__("You are about to delete this post \'%s\'\\n \'Cancel\' to stop, \'OK\' to delete."), addslashes($edited_post_title) ) . "')\""; ?> />
</td>
<?php endif; ?>
</tr>
</table>
<fieldset id="postcustom">
<legend><?php _e('Custom Fields') ?></legend>
<div id="postcustomstuff">
<?php
if($metadata = has_meta($post_ID)) {
?>
<?php
list_meta($metadata);
?>
<?php
if (current_user_can('upload_files')) {
$uploading_iframe_ID = (int) (0 == $post_ID ? $temp_ID : $post_ID);
$uploading_iframe_src = wp_nonce_url("upload.php?style=inline&amp;tab=upload&amp;post_id=$uploading_iframe_ID", 'inlineuploading');
$uploading_iframe_src = apply_filters('uploading_iframe_src', $uploading_iframe_src);
if ( false != $uploading_iframe_src )
echo '<iframe id="uploading" frameborder="0" src="' . $uploading_iframe_src . '">' . __('This feature requires iframe support.') . '</iframe>';
}
meta_form();
?>
<div id="advancedstuff" class="dbx-group" >
<div class="dbx-b-ox-wrapper">
<fieldset id="postexcerpt" class="dbx-box">
<div class="dbx-h-andle-wrapper">
<h3 class="dbx-handle"><?php _e('Optional Excerpt') ?></h3>
</div>
<div class="dbx-c-ontent-wrapper">
<div class="dbx-content"><textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt"><?php echo $post->post_excerpt ?></textarea></div>
</div>
</fieldset>
<?php
if ('' != $pinged)
</div>
<div class="dbx-b-ox-wrapper">
<fieldset id="trackbacksdiv" class="dbx-box">
<div class="dbx-h-andle-wrapper">
<h3 class="dbx-handle"><?php _e('Trackbacks') ?></h3>
</div>
<div class="dbx-c-ontent-wrapper">
<div class="dbx-content"><?php _e('Send trackbacks to:'); ?> <?php echo $form_trackback; ?> (<?php _e('Separate multiple URLs with spaces'); ?>)
<?php
if ( ! empty($pings) )
echo $pings;
?>
</div>
</div>
</fieldset>
</div>
</form>
<div class="dbx-b-ox-wrapper">
<fieldset id="postcustom" class="dbx-box">
<div class="dbx-h-andle-wrapper">
<h3 class="dbx-handle"><?php _e('Custom Fields') ?></h3>
</div>
<div class="dbx-c-ontent-wrapper">
<div id="postcustomstuff" class="dbx-content">
<table cellpadding="3">
<?php
$metadata = has_meta($post_ID);
list_meta($metadata);
?>
</table>
<?php
meta_form();
?>
<div id="ajax-response"></div>
</div>
</div>
</fieldset>
</div>
<?php do_action('dbx_post_advanced'); ?>
</div>
<?php if ('edit' == $action) : $delete_nonce = wp_create_nonce( 'delete-post_' . $post_ID ); ?>
<input name="deletepost" class="button delete" type="submit" id="deletepost" tabindex="10" value="<?php echo ( 'draft' == $post->post_status ) ? __('Delete this draft') : __('Delete this post'); ?>" <?php echo "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 )) . "') ) { document.forms.post._wpnonce.value = '$delete_nonce'; return true;}return false;\""; ?> />
<?php endif; ?>
</div>
</div>
</form>

View File

@@ -1,61 +1,48 @@
<?php
$submitbutton_text = __('Edit Comment &raquo;');
$toprow_title = sprintf(__('Editing Comment # %s'), $commentdata['comment_ID']);
$toprow_title = sprintf(__('Editing Comment # %s'), $comment->comment_ID);
$form_action = 'editedcomment';
$form_extra = "' />\n<input type='hidden' name='comment_ID' value='$comment' />\n<input type='hidden' name='comment_post_ID' value='".$commentdata["comment_post_ID"];
$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="post.php" method="post" id="post">
<form name="post" action="comment.php" method="post" id="post">
<?php wp_nonce_field('update-comment_' . $comment->comment_ID) ?>
<div class="wrap">
<input type="hidden" name="user_ID" value="<?php echo $user_ID ?>" />
<input type="hidden" name="user_ID" value="<?php echo (int) $user_ID ?>" />
<input type="hidden" name="action" value='<?php echo $form_action . $form_extra ?>' />
<script type="text/javascript">
function focusit() {
// focus on first input field
function focusit() { // focus on first input field
document.post.name.focus();
}
window.onload = focusit;
addLoadEvent(focusit);
</script>
<fieldset id="namediv">
<legend><?php _e('Name:') ?></legend>
<legend><label for="name"><?php _e('Name:') ?></label></legend>
<div>
<input type="text" name="newcomment_author" size="22" value="<?php echo format_to_edit($commentdata['comment_author']) ?>" tabindex="1" id="name" />
<input type="text" name="newcomment_author" size="25" value="<?php echo attribute_escape( $comment->comment_author ); ?>" tabindex="1" id="name" />
</div>
</fieldset>
<fieldset id="emaildiv">
<legend><?php _e('E-mail:') ?></legend>
<legend><label for="email"><?php _e('E-mail:') ?></label></legend>
<div>
<input type="text" name="newcomment_author_email" size="30" value="<?php echo format_to_edit($commentdata['comment_author_email']) ?>" tabindex="2" id="email" />
<input type="text" name="newcomment_author_email" size="20" value="<?php echo attribute_escape( $comment->comment_author_email ); ?>" tabindex="2" id="email" />
</div>
</fieldset>
<fieldset id="uridiv">
<legend><?php _e('URI:') ?></legend>
<legend><label for="newcomment_author_url"><?php _e('URL:') ?></label></legend>
<div>
<input type="text" name="newcomment_author_url" size="35" value="<?php echo format_to_edit($commentdata['comment_author_url']) ?>" tabindex="3" id="URL" />
<input type="text" id="newcomment_author_url" name="newcomment_author_url" size="35" value="<?php echo attribute_escape( $comment->comment_author_url ); ?>" tabindex="3" />
</div>
</fieldset>
<fieldset style="clear: both;">
<legend><?php _e('Comment') ?></legend>
<?php the_quicktags(); ?>
<?php
$rows = get_settings('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" style="width: 99%"><?php echo $content ?></textarea></div>
<?php the_editor($comment->comment_content, 'content', 'newcomment_author_url'); ?>
</fieldset>
<script type="text/javascript">
<!--
edCanvas = document.getElementById('content');
//-->
</script>
<p class="submit"><input type="submit" name="editcomment" id="editcomment" value="<?php echo $submitbutton_text ?>" style="font-weight: bold;" tabindex="6" />
<input name="referredby" type="hidden" id="referredby" value="<?php echo $_SERVER['HTTP_REFERER']; ?>" />
<input name="referredby" type="hidden" id="referredby" value="<?php echo wp_get_referer(); ?>" />
</p>
</div>
@@ -66,21 +53,25 @@ edCanvas = document.getElementById('content');
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<tr>
<th scope="row" valign="top"><?php _e('Comment Status') ?>:</th>
<td><label for="comment_status_approved" class="selectit"><input id="comment_status_approved" name="comment_status" type="radio" value="1" <?php checked($comment_status, '1'); ?> /> <?php _e('Approved') ?></label><br />
<label for="comment_status_moderated" class="selectit"><input id="comment_status_moderated" name="comment_status" type="radio" value="0" <?php checked($comment_status, '0'); ?> /> <?php _e('Moderated') ?></label><br />
<label for="comment_status_spam" class="selectit"><input id="comment_status_spam" name="comment_status" type="radio" value="spam" <?php checked($comment_status, 'spam'); ?> /> <?php _e('Spam') ?></label></td>
<td><label for="comment_status_approved" class="selectit"><input id="comment_status_approved" name="comment_status" type="radio" value="1" <?php checked($comment->comment_approved, '1'); ?> /> <?php _e('Approved') ?></label><br />
<label for="comment_status_moderated" class="selectit"><input id="comment_status_moderated" name="comment_status" type="radio" value="0" <?php checked($comment->comment_approved, '0'); ?> /> <?php _e('Moderated') ?></label><br />
<label for="comment_status_spam" class="selectit"><input id="comment_status_spam" name="comment_status" type="radio" value="spam" <?php checked($comment->comment_approved, 'spam'); ?> /> <?php _e('Spam') ?></label></td>
</tr>
<?php if ($user_level > 4) : ?>
<?php if ( current_user_can('edit_posts') ) : ?>
<tr>
<th scope="row"><?php _e('Edit time'); ?>:</th>
<td><?php touch_time(('editcomment' == $action), 0); ?></td>
<th scope="row" valign="top"><?php _e('Edit time'); ?>:</th>
<td><?php touch_time(('editcomment' == $action), 0); ?> </td>
</tr>
<?php endif; ?>
<tr>
<th scope="row"><?php _e('Delete'); ?>:</th>
<td><p><a class="delete" href="post.php?action=confirmdeletecomment&amp;noredir=true&amp;comment=<?php echo $commentdata['comment_ID']; ?>&amp;p=<?php echo $commentdata['comment_post_ID']; ?>"><?php _e('Delete comment') ?></a></p></td>
<th scope="row" valign="top"><?php _e('Delete'); $delete_nonce = wp_create_nonce( 'delete-comment_' . $comment->comment_ID ); ?>:</th>
<td><input name="deletecomment" class="button delete" type="submit" id="deletecomment" tabindex="10" value="<?php _e('Delete this comment') ?>" <?php echo "onclick=\"if ( confirm('" . js_escape(__("You are about to delete this comment. \n 'Cancel' to stop, 'OK' to delete.")) . "') ) { document.forms.post._wpnonce.value = '$delete_nonce'; return true; } return false;\""; ?> />
<input type="hidden" name="c" value="<?php echo $comment->comment_ID ?>" />
<input type="hidden" name="p" value="<?php echo $comment->comment_post_ID ?>" />
<input type="hidden" name="noredir" value="1" />
</td>
</tr>
</table>

View File

@@ -6,28 +6,27 @@
<?php if (isset($mode) && 'bookmarklet' == $mode) : ?>
<input type="hidden" name="mode" value="bookmarklet" />
<?php endif; ?>
<input type="hidden" name="user_ID" value="<?php echo $user_ID ?>" />
<input type="hidden" name="user_ID" value="<?php echo (int) $user_ID ?>" />
<input type="hidden" name="action" value='post' />
<script type="text/javascript">
<!--
function focusit() {
// focus on first input field
function focusit() { // focus on first input field
document.getElementById('title').focus();
}
window.onload = focusit;
addLoadEvent(focusit);
//-->
</script>
<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 $edited_post_title; ?>" id="title" /></div>
<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($default_post_cat); ?></div>
<div><?php dropdown_categories($post->post_category); ?></div>
</fieldset>
<br />
@@ -35,12 +34,12 @@ window.onload = focusit;
<legend><a href="http://wordpress.org/docs/reference/post/#post" title="<?php _e('Help with post field') ?>"><?php _e('Post') ?></a></legend>
<?php the_quicktags(); ?>
<?php
$rows = get_settings('default_post_edit_rows');
$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 $content ?></textarea></div>
<div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content"><?php echo $post->post_content ?></textarea></div>
</fieldset>
@@ -50,22 +49,22 @@ edCanvas = document.getElementById('content');
//-->
</script>
<input type="hidden" name="post_pingback" value="<?php echo get_option('default_pingback_flag') ?>" id="post_pingback" />
<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 Identifier">URI</abbr></a>:</label> (Separate multiple <abbr title="Universal Resource Identifier">URI</abbr>s with spaces.)<br />'), 'http://wordpress.org/docs/reference/post/#trackback') ?>
<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') ?>" />
<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 ( user_can_create_post($user_ID) ) : ?>
<input name="publish" type="submit" id="publish" tabindex="6" style="font-weight: bold;" value="<?php _e('Publish') ?>" />
<?php if ( current_user_can('edit_posts') ) : ?>
<input name="publish" type="submit" id="publish" tabindex="6" style="font-weight: bold;" value="<?php _e('Publish') ?>" />
<?php endif; ?>
<?php if ('bookmarklet' != $mode) {
echo '<input name="advanced" type="submit" id="advancededit" tabindex="7" value="' . __('Advanced Editing &raquo;') . '" />';
} ?>
<input name="referredby" type="hidden" id="referredby" value="<?php if (isset($_SERVER['HTTP_REFERER'])) echo urlencode($_SERVER['HTTP_REFERER']); ?>" />
echo '<input name="advanced" type="submit" id="advancededit" tabindex="7" value="' . __('Advanced Editing &raquo;') . '" />';
} ?>
<input name="referredby" type="hidden" id="referredby" value="<?php if ( $refby = wp_get_referer() ) echo urlencode($refby); ?>" />
</p>
<?php do_action('simple_edit_form', ''); ?>

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

@@ -0,0 +1,257 @@
<?php
if ( ! empty($link_id) ) {
$heading = __('Edit Link');
$submit_text = __('Save Changes &raquo;');
$form = '<form name="editlink" id="editlink" method="post" action="link.php">';
$nonce_action = 'update-bookmark_' . $link_id;
} else {
$heading = __('Add Link');
$submit_text = __('Add Link &raquo;');
$form = '<form name="addlink" id="addlink" method="post" action="link.php">';
$nonce_action = 'add-bookmark';
}
function xfn_check($class, $value = '', $type = 'check') {
global $link;
$link_rel = $link->link_rel;
$rels = preg_split('/\s+/', $link_rel);
if ('' != $value && in_array($value, $rels) ) {
echo ' checked="checked"';
}
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"';
}
}
?>
<div class="wrap">
<h2><?php echo $heading ?></h2>
<?php echo $form ?>
<?php wp_nonce_field($nonce_action); ?>
<div id="poststuff">
<div id="moremeta">
<div id="grabit" class="dbx-group">
<fieldset id="categorydiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Categories') ?></h3>
<div class="dbx-content">
<p id="jaxcat"></p>
<ul id="categorychecklist"><?php dropdown_link_categories(get_option('default_link_category')); ?></ul>
</div>
</fieldset>
<fieldset class="dbx-box">
<h3 class="dbx-handle"><?php _e('Target') ?></h3>
<div class="dbx-content">
<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>
<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>
<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>
</div>
</fieldset>
<fieldset class="dbx-box">
<h3 class="dbx-handle"><?php _e('Visible') ?></h3>
<div class="dbx-content">
<label for="link_visible_yes" class="selectit">
<input id="link_visible_yes" type="radio" name="link_visible" <?php if ($link->link_visible == 'Y') echo "checked='checked'"; ?> value="Y" />
<?php _e('Yes') ?></label>
<label for="link_visible_no" class="selectit">
<input id="link_visible_no" type="radio" name="link_visible" <?php if ($link->link_visible == 'N') echo "checked='checked'"; ?> value="N" />
<?php _e('No') ?></label>
</div>
</fieldset>
</div>
</div>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th scope="row" valign="top"><label for="link_name"><?php _e('Name:') ?></label></th>
<td><input type="text" name="link_name" value="<?php echo $link->link_name; ?>" style="width: 95%" /></td>
</tr>
<tr>
<th width="20%" scope="row" valign="top"><label for="link_url"><?php _e('Address:') ?></label></th>
<td width="80%"><input type="text" name="link_url" value="<?php echo $link->link_url; if ( empty( $link->link_url ) ) echo 'http://'; ?>" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row" valign="top"><label for="link_description"><?php _e('Description:') ?></label></th>
<td><input type="text" name="link_description" value="<?php echo $link->link_description; ?>" style="width: 95%" /></td>
</tr>
</table>
<p class="submit">
<input type="submit" name="submit" value="<?php echo $submit_text ?>" />
</p>
<div id="advancedstuff" class="dbx-group" >
<fieldset id="xfn" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Link Relationship (XFN)') ?></h3>
<div class="dbx-content">
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="20%" scope="row"><?php _e('rel:') ?></th>
<td width="80%"><input type="text" name="link_rel" id="link_rel" size="50" value="<?php echo $link->link_rel; ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('<a href="http://gmpg.org/xfn/">XFN</a> Creator:') ?></th>
<td>
<table cellpadding="3" cellspacing="5">
<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>
</div>
</fieldset>
<fieldset id="advanced" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Advanced') ?></h3>
<div class="dbx-content">
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="20%" scope="row"><?php _e('Image Address:') ?></th>
<td width="80%"><input type="text" name="link_image" size="50" value="<?php echo $link->link_image; ?>" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('RSS Address:') ?> </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>
<th scope="row"><?php _e('Notes:') ?></th>
<td><textarea name="link_notes" cols="50" rows="10" style="width: 95%"><?php echo $link->link_notes; ?></textarea></td>
</tr>
<tr>
<th scope="row"><?php _e('Rating:') ?></th>
<td><select name="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>
</fieldset>
</div>
<?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" />
<?php endif; ?>
</div>
</form>
</div>

View File

@@ -1,159 +1,209 @@
<div class="wrap">
<h2><?php _e('Write Page'); ?></h2>
<h2 id="write-post"><?php _e('Write Page'); ?></h2>
<?php
if (0 == $post_ID) {
$form_action = 'post';
$form_extra = '';
$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';
$form_extra = "<input type='hidden' name='post_ID' value='$post_ID' />";
$nonce_action = 'update-page_' . $post_ID;
$form_extra = "<input type='hidden' id='post_ID' name='post_ID' value='$post_ID' />";
}
$sendto = $_SERVER['HTTP_REFERER'];
$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';
$sendto = wp_specialchars( $sendto );
$sendto = 'redo';
?>
<form name="post" action="post.php" method="post" id="post">
<form name="post" action="page.php" method="post" id="post">
<?php
wp_nonce_field($nonce_action);
if (isset($mode) && 'bookmarklet' == $mode) {
echo '<input type="hidden" name="mode" value="bookmarklet" />';
echo '<input type="hidden" name="mode" value="bookmarklet" />';
}
?>
<input type="hidden" name="user_ID" value="<?php echo $user_ID ?>" />
<input type="hidden" name="action" value='<?php echo $form_action ?>' />
<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" name="post_status" value="static" />
<input type="hidden" id="post_type" name="post_type" value="page" />
<script type="text/javascript">
<!--
function focusit() {
// focus on first input field
// <![CDATA[
function focusit() { // focus on first input field
document.post.title.focus();
}
window.onload = focusit;
//-->
addLoadEvent(focusit);
// ]]>
</script>
<fieldset id="titlediv">
<legend><?php _e('Page Title') ?></legend>
<div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $edited_post_title; ?>" id="title" /></div>
</fieldset>
<fieldset id="commentstatusdiv">
<legend><?php _e('Discussion') ?></legend>
<div>
<input name="advanced_view" type="hidden" value="1" />
<label for="comment_status" class="selectit">
<input name="comment_status" type="checkbox" id="comment_status" value="open" <?php checked($comment_status, 'open'); ?> />
<?php _e('Allow Comments') ?></label>
<label for="ping_status" class="selectit"><input name="ping_status" type="checkbox" id="ping_status" value="open" <?php checked($ping_status, 'open'); ?> /> <?php _e('Allow Pings') ?></label>
</div>
<div id="poststuff">
<div id="moremeta">
<div id="grabit" class="dbx-group">
<fieldset id="commentstatusdiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Discussion') ?></h3>
<div class="dbx-content">
<input name="advanced_view" type="hidden" value="1" />
<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>
<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>
</div>
</fieldset>
<fieldset id="postpassworddiv">
<legend><?php _e('Page Password') ?></legend>
<div><input name="post_password" type="text" size="13" id="post_password" value="<?php echo $post_password ?>" /></div>
</fieldset>
<fieldset id="pageparent">
<legend><?php _e('Page Parent') ?></legend>
<div><select name="parent_id">
<option value='0'><?php _e('Main Page (no parent)'); ?></option>
<?php parent_dropdown($post_parent); ?>
</select>
</div>
</fieldset>
<fieldset id="postdiv">
<legend><?php _e('Page Content') ?></legend>
<?php the_quicktags(); ?>
<fieldset class="dbx-box">
<h3 class="dbx-handle"><?php _e('Page Status') ?></h3>
<div class="dbx-content"><?php if ( current_user_can('publish_pages') ) : ?>
<label for="post_status_publish" class="selectit"><input id="post_status_publish" name="post_status" type="radio" value="publish" <?php checked($post->post_status, 'publish'); checked($post->post_status, 'future'); ?> /> <?php _e('Published') ?></label>
<?php endif; ?>
<label for="post_status_draft" class="selectit"><input id="post_status_draft" name="post_status" type="radio" value="draft" <?php checked($post->post_status, 'draft'); ?> /> <?php _e('Draft') ?></label>
<label for="post_status_private" class="selectit"><input id="post_status_private" name="post_status" type="radio" value="private" <?php checked($post->post_status, 'private'); ?> /> <?php _e('Private') ?></label></div>
</fieldset>
<fieldset id="passworddiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Page Password') ?></h3>
<div class="dbx-content"><input name="post_password" type="text" size="13" id="post_password" value="<?php echo attribute_escape( $post->post_password ); ?>" /></div>
</fieldset>
<fieldset id="pageparent" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Page Parent') ?></h3>
<div class="dbx-content"><p><select name="parent_id">
<option value='0'><?php _e('Main Page (no parent)'); ?></option>
<?php parent_dropdown($post->post_parent); ?>
</select></p>
</div>
</fieldset>
<?php if ( 0 != count( get_page_templates() ) ) { ?>
<fieldset id="pagetemplate" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Page Template') ?></h3>
<div class="dbx-content"><p><select name="page_template">
<option value='default'><?php _e('Default Template'); ?></option>
<?php page_template_dropdown($post->page_template); ?>
</select></p>
</div>
</fieldset>
<?php } ?>
<fieldset id="slugdiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Page Slug') ?></h3>
<div class="dbx-content"><input name="post_name" type="text" size="13" id="post_name" value="<?php echo attribute_escape( $post->post_name ); ?>" /></div>
</fieldset>
<?php if ( $authors = get_editable_authors( $current_user->id ) ) : // TODO: ROLE SYSTEM ?>
<fieldset id="authordiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Page Author'); ?></h3>
<div class="dbx-content">
<select name="post_author_override" id="post_author_override">
<?php
$rows = get_settings('default_post_edit_rows');
if (($rows < 3) || ($rows > 100)) {
$rows = 10;
}
foreach ($authors as $o) :
$o = get_userdata( $o->ID );
if ( $post->post_author == $o->ID || ( empty($post_ID) && $user_ID == $o->ID ) ) $selected = 'selected="selected"';
else $selected = '';
$o->ID = (int) $o->ID;
$o->display_name = wp_specialchars( $o->display_name );
echo "<option value='$o->ID' $selected>$o->display_name</option>";
endforeach;
?>
<div><textarea rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content"><?php echo $content ?></textarea></div>
</select>
</div>
</fieldset>
<?php endif; ?>
<fieldset id="pageorder" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Page Order') ?></h3>
<div class="dbx-content"><p><input name="menu_order" type="text" size="4" id="menu_order" value="<?php echo $post->menu_order ?>" /></p></div>
</fieldset>
<?php do_action('dbx_page_sidebar'); ?>
</div>
</div>
<fieldset id="titlediv">
<legend><?php _e('Page Title') ?></legend>
<div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo attribute_escape( $post->post_title ); ?>" id="title" /></div>
</fieldset>
<script type="text/javascript">
<!--
edCanvas = document.getElementById('content');
//-->
</script>
<fieldset id="<?php echo user_can_richedit() ? 'postdivrich' : 'postdiv'; ?>">
<legend><?php _e('Page Content') ?>
<?php if ( 'publish' == $post->post_status ) { ?>
<a href="<?php echo clean_url(get_permalink($post->ID)); ?>" style="position: absolute; right: 2em; margin-right: 19em; text-decoration: underline;" target="_blank"><?php _e('View &raquo;'); ?></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)))); ?>" style="position: absolute; right: 2em; margin-right: 19em; text-decoration: underline;" target="_blank"><?php _e('Preview &raquo;'); ?></a>
<?php } ?>
</legend>
<?php the_editor($post->post_content); ?>
</fieldset>
<p class="submit">
<input name="savepage" type="submit" id="savepage" tabindex="6" value="<?php $post_ID ? _e('Edit Page') :_e('Create New Page') ?> &raquo;" />
<input name="referredby" type="hidden" id="referredby" value="<?php echo $sendto; ?>" />
<span id="autosave"></span>
<input name="save" type="submit" id="save" tabindex="3" value="<?php _e('Save and Continue Editing'); ?>" />
<input type="submit" name="submit" value="<?php _e('Save') ?>" style="font-weight: bold;" tabindex="4" />
<?php
if ('publish' != $post->post_status || 0 == $post_ID):
?>
<?php if ( current_user_can('publish_pages') ) : ?>
<input name="publish" type="submit" id="publish" tabindex="5" accesskey="p" value="<?php _e('Publish') ?>" />
<?php endif; endif;?>
<input name="referredby" type="hidden" id="referredby" value="<?php echo $sendto; ?>" />
</p>
<fieldset id="pageoptions">
<legend><?php _e('Page Options') ?></legend>
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<?php if ( 0 != count( get_page_templates() ) ) { ?>
<tr valign="top">
<th scope="row" width="30%"><?php _e('Page Template:') ?></th>
<td><div><select name="page_template">
<option value='default'><?php _e('Default Template'); ?></option>
<?php page_template_dropdown($page_template); ?>
</select>
</div>
</td>
</tr>
<?php } ?>
<tr valign="top">
<th scope="row" width="30%"><?php _e('Page slug') ?>:</th>
<td><input name="post_name" type="text" size="25" id="post_name" value="<?php echo $post_name ?>" /></td>
</tr>
<?php if ($user_level > 7 && $users = $wpdb->get_results("SELECT ID, user_login, user_firstname, user_lastname FROM $wpdb->users WHERE user_level <= $user_level AND user_level > 0") ) : ?>
<tr>
<th scope="row" width="30%"><?php _e('Page owner'); ?>:</th>
<td>
<select name="post_author" id="post_author">
<?php
foreach ($users as $o) :
if ( $post_author == $o->ID ) $selected = 'selected="selected"';
else $selected = '';
echo "<option value='$o->ID' $selected>$o->user_login ($o->user_firstname $o->user_lastname)</option>";
endforeach;
?>
</select>
</td>
</tr>
<?php endif; ?>
<tr>
<th scope="row" width="25%"><?php _e('Page Order') ?>:</th>
<td><input name="menu_order" type="text" size="4" id="menu_order" value="<?php echo $menu_order ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Delete'); ?>:</th>
<td><?php if ('edit' == $action) : ?>
<input name="deletepost" class="delete" type="submit" id="deletepost" tabindex="10" value="<?php _e('Delete this page') ?>" <?php echo "onclick=\"return confirm('" . sprintf(__("You are about to delete this page \'%s\'\\n \'Cancel\' to stop, \'OK\' to delete."), addslashes($edited_post_title) ) . "')\""; ?> />
<?php endif; ?></td>
</tr>
</table>
</fieldset>
<?php do_action('edit_page_form'); ?>
<fieldset id="postcustom">
<legend><?php _e('Custom Fields') ?> <script type="text/javascript">customToggleLink();</script></legend>
<div id="postcustomstuff">
<?php
if($metadata = has_meta($post_ID)) {
?>
<?php
list_meta($metadata);
?>
<?php
if (current_user_can('upload_files')) {
$uploading_iframe_ID = (0 == $post_ID ? $temp_ID : $post_ID);
$uploading_iframe_src = wp_nonce_url("upload.php?style=inline&amp;tab=upload&amp;post_id=$uploading_iframe_ID", 'inlineuploading');
$uploading_iframe_src = apply_filters('uploading_iframe_src', $uploading_iframe_src);
if ( false != $uploading_iframe_src )
echo '<iframe id="uploading" frameborder="0" src="' . $uploading_iframe_src . '">' . __('This feature requires iframe support.') . '</iframe>';
}
?>
<div id="advancedstuff" class="dbx-group">
<fieldset id="postcustom" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Custom Fields') ?></h3>
<div id="postcustomstuff" class="dbx-content">
<table cellpadding="3">
<?php
$metadata = has_meta($post_ID);
list_meta($metadata);
?>
</table>
<?php
meta_form();
?>
</div>
<div id="ajax-response"></div>
</fieldset>
<?php do_action('edit_page_form', ''); ?>
<?php do_action('dbx_page_advanced'); ?>
</div>
<?php if ('edit' == $action) :
$delete_nonce = wp_create_nonce( 'delete-page_' . $post_ID );
if ( current_user_can('delete_page', $post->ID) ) ?>
<input name="deletepost" class="button delete" type="submit" id="deletepost" tabindex="10" value="<?php _e('Delete this page') ?>" <?php echo "onclick=\"if ( confirm('" . js_escape(sprintf(__("You are about to delete this page '%s'\n 'Cancel' to stop, 'OK' to delete."), $post->post_title )) . "') ) { document.forms.post._wpnonce.value = '$delete_nonce'; return true;}return false;\""; ?> />
<?php endif; ?>
</div>
</form>
</div>

View File

@@ -2,50 +2,61 @@
require_once('admin.php');
$title = __('Pages');
$parent_file = 'edit.php';
wp_enqueue_script( 'listman' );
require_once('admin-header.php');
get_currentuserinfo();
?>
<div class="wrap">
<h2><?php _e('Page Management'); ?></h2>
<p><?php _e('Pages are like posts except they live outside of the normal blog chronology and can be hierarchical. You can use pages to organize and manage any amount of content.'); ?> <a href="page-new.php"><?php _e('Create a new page &raquo;'); ?></a></p>
<form name="searchform" action="" method="get">
<fieldset>
<legend><?php _e('Search Pages&hellip;') ?></legend>
<input type="text" name="s" value="<?php if (isset($_GET['s'])) echo attribute_escape($_GET['s']); ?>" size="17" />
<input type="submit" name="submit" value="<?php _e('Search') ?>" />
</fieldset>
</form>
<?php
if (isset($user_ID) && ('' != intval($user_ID))) {
$posts = $wpdb->get_results("
SELECT $wpdb->posts.*, $wpdb->users.user_level FROM $wpdb->posts
INNER JOIN $wpdb->users ON ($wpdb->posts.post_author = $wpdb->users.ID)
WHERE $wpdb->posts.post_status = 'static'
AND ($wpdb->users.user_level < $user_level OR $wpdb->posts.post_author = $user_ID)
");
} else {
$posts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_status = 'static'");
}
wp('post_type=page&orderby=menu_order&what_to_show=posts&posts_per_page=-1&posts_per_archive_page=-1&order=asc');
if ( $_GET['s'] )
$all = false;
else
$all = true;
if ($posts) {
?>
<table width="100%" cellpadding="3" cellspacing="3">
<tr>
<th scope="col"><?php _e('ID') ?></th>
<th scope="col"><?php _e('Title') ?></th>
<table class="widefat">
<thead>
<tr>
<th scope="col" style="text-align: center"><?php _e('ID') ?></th>
<th scope="col"><?php _e('Title') ?></th>
<th scope="col"><?php _e('Owner') ?></th>
<th scope="col"><?php _e('Updated') ?></th>
<th scope="col"></th>
<th scope="col"></th>
<th scope="col"></th>
</tr>
<?php page_rows(); ?>
</table>
<th scope="col" colspan="3" style="text-align: center"><?php _e('Action'); ?></th>
</tr>
</thead>
<tbody id="the-list">
<?php
page_rows(0, 0, $posts, $all);
?>
</tbody>
</table>
<div id="ajax-response"></div>
<?php
} else {
?>
<p><?php _e('No pages yet.') ?></p>
<?php
} // end if ($posts)
?>
<p><?php _e('Pages are like posts except they live outside of the normal blog chronology. You can use pages to organize and manage any amount of content.'); ?></p>
<h3><a href="page-new.php"><?php _e('Create New Page'); ?> &raquo;</a></h3>
</div>
?>
<h3><a href="page-new.php"><?php _e('Create New Page &raquo;'); ?></a></h3>
<?php include('admin-footer.php'); ?>
</div>
<?php include('admin-footer.php'); ?>

View File

@@ -3,60 +3,49 @@ require_once('admin.php');
$title = __('Posts');
$parent_file = 'edit.php';
wp_enqueue_script( 1 == $_GET['c'] ? 'admin-comments' : 'listman' );
require_once('admin-header.php');
$_GET['m'] = (int) $_GET['m'];
get_currentuserinfo();
$drafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'draft' AND post_author = $user_ID");
if (1 < $user_level) {
$editable = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE user_level <= '$user_level' AND ID != $user_ID");
if( is_array( $editable ) == false )
$other_drafts = '';
else {
$editable = join(',', $editable);
$other_drafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'draft' AND post_author IN ($editable) ");
}
} else {
$other_drafts = false;
}
$drafts = get_users_drafts( $user_ID );
$other_drafts = get_others_drafts( $user_ID);
if ($drafts || $other_drafts) {
?>
?>
<div class="wrap">
<?php if ($drafts) { ?>
<p><strong><?php _e('Your Drafts:') ?></strong>
<?php
<p><strong><?php _e('Your Drafts:') ?></strong>
<?php
$i = 0;
foreach ($drafts as $draft) {
if (0 != $i)
echo ', ';
$draft->post_title = stripslashes($draft->post_title);
$draft->post_title = apply_filters('the_title', stripslashes($draft->post_title));
if ($draft->post_title == '')
$draft->post_title = sprintf(__('Post #%s'), $draft->ID);
echo "<a href='post.php?action=edit&amp;post=$draft->ID' title='" . __('Edit this draft') . "'>$draft->post_title</a>";
++$i;
}
?>
.</p>
?>
.</p>
<?php } ?>
<?php if ($other_drafts) { ?>
<p><strong><?php _e('Other&#8217;s Drafts:') ?></strong>
<?php
<?php if ($other_drafts) { ?>
<p><strong><?php _e('Other&#8217;s Drafts:') ?></strong>
<?php
$i = 0;
foreach ($other_drafts as $draft) {
if (0 != $i)
echo ', ';
$draft->post_title = stripslashes($draft->post_title);
$draft->post_title = apply_filters('the_title', stripslashes($draft->post_title));
if ($draft->post_title == '')
$draft->post_title = sprintf(__('Post #%s'), $draft->ID);
echo "<a href='post.php?action=edit&amp;post=$draft->ID' title='" . __('Edit this draft') . "'>$draft->post_title</a>";
++$i;
}
?>
.</p>
?>
.</p>
<?php } ?>
@@ -66,18 +55,17 @@ if ($drafts || $other_drafts) {
<div class="wrap">
<h2>
<?php
$what_to_show = 'posts';
$posts_per_page = 15;
$posts_per_archive_page = -1;
include(ABSPATH.'wp-blog-header.php');
wp('what_to_show=posts&posts_per_page=15&posts_per_archive_page=-1');
if ( is_month() ) {
single_month_title(' ');
} elseif ( is_search() ) {
printf(__('Search for &#8220;%s&#8221;'), wp_specialchars($_GET['s']) );
} else {
if ( ! is_paged() || get_query_var('paged') == 1 )
if ( is_single() )
printf(__('Comments on %s'), apply_filters( "the_title", $post->post_title));
elseif ( ! is_paged() || get_query_var('paged') == 1 )
_e('Last 15 Posts');
else
_e('Previous Posts');
@@ -85,51 +73,66 @@ if ( is_month() ) {
?>
</h2>
<form name="searchform" action="" method="get" style="float: left; width: 16em; margin-right: 3em;">
<form name="searchform" id="searchform" action="" method="get">
<fieldset>
<legend><?php _e('Search Posts&hellip;') ?></legend>
<input type="text" name="s" value="<?php if (isset($s)) echo wp_specialchars($s, 1); ?>" size="17" />
<input type="submit" name="submit" value="<?php _e('Search') ?>" />
<input type="text" name="s" value="<?php if (isset($s)) echo attribute_escape($s); ?>" size="17" />
<input type="submit" name="submit" value="<?php _e('Search') ?>" class="button" />
</fieldset>
</form>
<form name="viewarc" action="" method="get" style="float: left; width: 20em; margin-bottom: 1em;">
<?php $arc_result = $wpdb->get_results("SELECT DISTINCT YEAR(post_date) AS yyear, MONTH(post_date) AS mmonth FROM $wpdb->posts WHERE post_type = 'post' ORDER BY post_date DESC");
if ( count($arc_result) ) { ?>
<form name="viewarc" id="viewarc" action="" method="get">
<fieldset>
<legend><?php _e('Browse Month&hellip;') ?></legend>
<select name='m'>
<select name='m'>
<?php
$arc_result=$wpdb->get_results("SELECT DISTINCT YEAR(post_date) AS yyear, MONTH(post_date) AS mmonth FROM $wpdb->posts ORDER BY post_date DESC");
foreach ($arc_result as $arc_row) {
$arc_year = $arc_row->yyear;
$arc_month = $arc_row->mmonth;
if( isset($_GET['m']) && $arc_year . zeroise($arc_month, 2) == (int) $_GET['m'] )
foreach ($arc_result as $arc_row) {
if ( $arc_row->yyear == 0 )
continue;
$arc_row->mmonth = zeroise($arc_row->mmonth, 2);
if( isset($_GET['m']) && $arc_row->yyear . $arc_row->mmonth == (int) $_GET['m'] )
$default = 'selected="selected"';
else
$default = null;
echo "<option $default value=\"" . $arc_year.zeroise($arc_month, 2) . '">';
echo $month[zeroise($arc_month, 2)] . " $arc_year";
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>
<input type="submit" name="submit" value="<?php _e('Show Month') ?>" />
<input type="submit" name="submit" value="<?php _e('Show Month') ?>" class="button" />
</fieldset>
</form>
<?php } ?>
<form name="viewcat" id="viewcat" action="" method="get">
<fieldset>
<legend><?php _e('Browse Category&hellip;') ?></legend>
<?php wp_dropdown_categories('show_option_all='.__('All').'&hide_empty=1&hierarchical=1&show_count=1&selected='.$cat);?>
<input type="submit" name="submit" value="<?php _e('Show Category') ?>" class="button" />
</fieldset>
</form>
<?php do_action('restrict_manage_posts'); ?>
<br style="clear:both;" />
<?php
// define the columns to display, the syntax is 'internal name' => 'display name'
$posts_columns = array(
'id' => __('ID'),
'date' => __('When'),
'title' => __('Title'),
'categories' => __('Categories'),
'comments' => __('Comments'),
'author' => __('Author')
'id' => '<div style="text-align: center">' . __('ID') . '</div>',
'date' => __('When'),
'title' => __('Title'),
'categories' => __('Categories'),
'comments' => '<div style="text-align: center">' . __('Comments') . '</div>',
'author' => __('Author')
);
$posts_columns = apply_filters('manage_posts_columns', $posts_columns);
@@ -140,7 +143,8 @@ $posts_columns['control_delete'] = '';
?>
<table width="100%" cellpadding="3" cellspacing="3">
<table class="widefat">
<thead>
<tr>
<?php foreach($posts_columns as $column_display_name) { ?>
@@ -148,29 +152,32 @@ $posts_columns['control_delete'] = '';
<?php } ?>
</tr>
</thead>
<tbody id="the-list">
<?php
if ($posts) {
$bgcolor = '';
foreach ($posts as $post) { start_wp();
while (have_posts()) : the_post();
add_filter('the_title','wp_specialchars');
$class = ('alternate' == $class) ? '' : 'alternate';
?>
<tr class='<?php echo $class; ?>'>
?>
<tr id='post-<?php echo $id; ?>' class='<?php echo $class; ?>'>
<?php
foreach($posts_columns as $column_name=>$column_display_name) {
switch($column_name) {
case 'id':
?>
<th scope="row"><?php echo $id ?></th>
<th scope="row" style="text-align: center"><?php echo $id ?></th>
<?php
break;
case 'date':
?>
<td><?php the_time('Y-m-d \<\b\r \/\> g:i:s a'); ?></td>
<td><?php if ( '0000-00-00 00:00:00' ==$post->post_modified ) _e('Unpublished'); else the_time(__('Y-m-d \<\b\r \/\> g:i:s a')); ?></td>
<?php
break;
case 'title':
@@ -188,9 +195,9 @@ foreach($posts_columns as $column_name=>$column_display_name) {
case 'comments':
?>
<td><a href="edit.php?p=<?php echo $id ?>&amp;c=1">
<?php comments_number(__('0'), __('1'), __('%')) ?>
</a></td>
<td style="text-align: center">
<?php comments_number(__('0'), "<a href='edit.php?p=$id&amp;c=1'>" . __('1') . '</a>', "<a href='edit.php?p=$id&amp;c=1'>" . __('%') . '</a>') ?>
</td>
<?php
break;
@@ -208,13 +215,13 @@ foreach($posts_columns as $column_name=>$column_display_name) {
case 'control_edit':
?>
<td><?php if ( user_can_edit_post($user_ID,$post->ID) ) { echo "<a href='post.php?action=edit&amp;post=$id' class='edit'>" . __('Edit') . "</a>"; } ?></td>
<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 ( user_can_edit_post($user_ID,$post->ID) ) { echo "<a href='post.php?action=delete&amp;post=$id' class='delete' onclick=\"return confirm('" . sprintf(__("You are about to delete this post \'%s\'\\n \'OK\' to delete, \'Cancel\' to stop."), wp_specialchars(get_the_title('', ''), 1) ) . "')\">" . __('Delete') . "</a>"; } ?></td>
<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' onclick=\"return deleteSomething( 'post', " . $id . ", '" . js_escape(sprintf(__("You are about to delete this post '%s'.\n'OK' to delete, 'Cancel' to stop."), get_the_title())) . "' );\">" . __('Delete') . "</a>"; } ?></td>
<?php
break;
@@ -228,7 +235,7 @@ foreach($posts_columns as $column_name=>$column_display_name) {
?>
</tr>
<?php
}
endwhile;
} else {
?>
<tr style='background-color: <?php echo $bgcolor; ?>'>
@@ -236,8 +243,11 @@ foreach($posts_columns as $column_name=>$column_display_name) {
</tr>
<?php
} // end if ($posts)
?>
</table>
?>
</tbody>
</table>
<div id="ajax-response"></div>
<div class="navigation">
<div class="alignleft"><?php next_posts_link(__('&laquo; Previous Entries')) ?></div>
@@ -249,53 +259,48 @@ if ( 1 == count($posts) ) {
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $id AND comment_approved != 'spam' ORDER BY comment_date");
if ($comments) {
?>
<h3><?php _e('Comments') ?></h3>
<ol id="comments">
?>
<h3 id="comments"><?php _e('Comments') ?></h3>
<ol id="the-comment-list" class="commentlist">
<?php
$i = 0;
foreach ($comments as $comment) {
$comment_status = wp_get_comment_status($comment->comment_ID);
?>
<li <?php if ("unapproved" == $comment_status) echo "class='unapproved'"; ?> >
<?php comment_date('Y-n-j') ?>
@
<?php comment_time('g:m:s a') ?>
<?php
if (($user_level > $authordata->user_level) or ($user_login == $authordata->user_login)) {
echo "[ <a href=\"post.php?action=editcomment&amp;comment=".$comment->comment_ID."\">" . __('Edit') . "</a>";
echo " - <a href=\"post.php?action=deletecomment&amp;p=".$post->ID."&amp;comment=".$comment->comment_ID."\" onclick=\"return confirm('" . sprintf(__("You are about to delete this comment by \'%s\'\\n \'OK\' to delete, \'Cancel\' to stop."), $comment->comment_author) . "')\">" . __('Delete') . "</a> ";
if ( ('none' != $comment_status) && ($user_level >= 3) ) {
if ('approved' == wp_get_comment_status($comment->comment_ID)) {
echo " - <a href=\"post.php?action=unapprovecomment&amp;p=".$post->ID."&amp;comment=".$comment->comment_ID."\">" . __('Unapprove') . "</a> ";
} else {
echo " - <a href=\"post.php?action=approvecomment&amp;p=".$post->ID."&amp;comment=".$comment->comment_ID."\">" . __('Approve') . "</a> ";
}
}
echo "]";
} // end if any comments to show
?>
<br />
<strong>
<?php comment_author() ?>
(
<?php comment_author_email_link() ?>
/
<?php comment_author_url_link() ?>
)</strong> (IP:
<?php comment_author_IP() ?>
)
<?php comment_text() ?>
++$i; $class = '';
$authordata = get_userdata($wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $comment->comment_post_ID"));
$comment_status = wp_get_comment_status($comment->comment_ID);
if ('unapproved' == $comment_status)
$class .= ' unapproved';
if ($i % 2)
$class .= ' alternate';
echo "<li id='comment-$comment->comment_ID' class='$class'>";
?>
<p><strong><?php comment_author() ?></strong> <?php if ($comment->comment_author_email) { ?>| <?php comment_author_email_link() ?> <?php } if ($comment->comment_author_url && 'http://' != $comment->comment_author_url) { ?> | <?php comment_author_url_link() ?> <?php } ?>| <?php _e('IP:') ?> <a href="http://ws.arin.net/cgi-bin/whois.pl?queryinput=<?php comment_author_IP() ?>"><?php comment_author_IP() ?></a></p>
<?php comment_text() ?>
<p><?php comment_date(__('M j, g:i A')); ?> &#8212; [
<?php
if ( current_user_can('edit_post', $comment->comment_post_ID) ) {
echo " <a href='comment.php?action=editcomment&amp;c=".$comment->comment_ID."'>" . __('Edit') . '</a>';
echo ' | <a href="' . wp_nonce_url('comment.php?action=deletecomment&amp;p=' . $comment->comment_post_ID . '&amp;c=' . $comment->comment_ID, 'delete-comment_' . $comment->comment_ID) . '" onclick="return deleteSomething( \'comment\', ' . $comment->comment_ID . ', \'' . js_escape(sprintf(__("You are about to delete this comment by '%s'.\n'Cancel' to stop, 'OK' to delete."), $comment->comment_author)) . "', theCommentList );\">" . __('Delete') . '</a> ';
if ( ('none' != $comment_status) && ( current_user_can('moderate_comments') ) ) {
echo '<span class="unapprove"> | <a href="' . wp_nonce_url('comment.php?action=unapprovecomment&amp;p=' . $comment->comment_post_ID . '&amp;c=' . $comment->comment_ID, 'unapprove-comment_' . $comment->comment_ID) . '" onclick="return dimSomething( \'comment\', ' . $comment->comment_ID . ', \'unapproved\', theCommentList );">' . __('Unapprove') . '</a> </span>';
echo '<span class="approve"> | <a href="' . wp_nonce_url('comment.php?action=approvecomment&amp;p=' . $comment->comment_post_ID . '&amp;c=' . $comment->comment_ID, 'approve-comment_' . $comment->comment_ID) . '" onclick="return dimSomething( \'comment\', ' . $comment->comment_ID . ', \'unapproved\', theCommentList );">' . __('Approve') . '</a> </span>';
}
echo " | <a href=\"" . wp_nonce_url("comment.php?action=deletecomment&amp;dt=spam&amp;p=" . $comment->comment_post_ID . "&amp;c=" . $comment->comment_ID, 'delete-comment_' . $comment->comment_ID) . "\" onclick=\"return deleteSomething( 'comment-as-spam', $comment->comment_ID, '" . js_escape(sprintf(__("You are about to mark as spam this comment by '%s'.\n'Cancel' to stop, 'OK' to mark as spam."), $comment->comment_author)) . "', theCommentList );\">" . __('Spam') . "</a> ";
}
?>
</p>
</li>
</li>
<!-- /comment -->
<?php //end of the loop, don't delete
} // end foreach
echo '</ol>';
}//end if comments
?>
<?php } ?>
</div>
<?php
<?php } ?>
</div>
<?php
include('admin-footer.php');
?>
?>

227
wp-admin/export.php Normal file
View File

@@ -0,0 +1,227 @@
<?php
require_once ('admin.php');
$title = __('Export');
$parent_file = 'edit.php';
if ( isset( $_GET['download'] ) )
export_wp();
require_once ('admin-header.php');
?>
<div class="wrap">
<h2><?php _e('Export'); ?></h2>
<div class="narrow">
<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, comments, custom fields, and categories.'); ?></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('Optional options'); ?></h3>
<table>
<tr>
<th><?php _e('Restrict Author:'); ?></th>
<td>
<select name="author">
<option value="all" selected="selected"><?php _e('All'); ?></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'); ?> &raquo;" />
<input type="hidden" name="download" value="true" />
</p>
</form>
</div>
</div>
<?php
function export_wp() {
global $wpdb, $posts, $post;
$filename = 'wordpress.' . date('Y-m-d') . '.xml';
header('Content-Description: File Transfer');
header("Content-Disposition: attachment; filename=$filename");
header('Content-type: text/xml; charset=' . get_option('blog_charset'), true);
$where = '';
if ( isset( $_GET['author'] ) && $_GET['author'] != 'all' ) {
$author_id = (int) $_GET['author'];
$where = " WHERE post_author = '$author_id' ";
}
$posts = $wpdb->get_results("SELECT * FROM $wpdb->posts $where ORDER BY post_date_gmt ASC");
$categories = (array) $wpdb->get_results("SELECT cat_ID, cat_name, category_nicename, category_description, category_parent, posts_private, links_private FROM $wpdb->categories LEFT JOIN $wpdb->post2cat ON (category_id = cat_id) LEFT JOIN $wpdb->posts ON (post_id <=> id) $where GROUP BY cat_id");
function wxr_missing_parents($categories) {
if ( !is_array($categories) || empty($categories) )
return array();
foreach ( $categories as $category )
$parents[$category->cat_ID] = $category->category_parent;
$parents = array_unique(array_diff($parents, array_keys($parents)));
if ( $zero = array_search('0', $parents) )
unset($parents[$zero]);
return $parents;
}
while ( $parents = wxr_missing_parents($categories) ) {
$found_parents = $wpdb->get_results("SELECT cat_ID, cat_name, category_nicename, category_description, category_parent, posts_private, links_private FROM $wpdb->categories WHERE cat_ID IN (" . join(', ', $parents) . ")");
if ( is_array($found_parents) && count($found_parents) )
$categories = array_merge($categories, $found_parents);
else
break;
}
// Put them in order to be inserted with no child going before its parent
$pass = 0;
$passes = 1000 + count($categories);
while ( ( $cat = array_shift($categories) ) && ++$pass < $passes ) {
if ( $cat->category_parent == 0 || isset($cats[$cat->category_parent]) ) {
$cats[$cat->cat_ID] = $cat;
} else {
$categories[] = $cat;
}
}
unset($categories);
function wxr_cdata($str) {
if ( seems_utf8($str) == false )
$str = utf8_encode($str);
// $str = ent2ncr(wp_specialchars($str));
$str = "<![CDATA[$str" . ( ( substr($str, -1) == ']' ) ? ' ' : '') . "]]>";
return $str;
}
function wxr_cat_name($c) {
if ( empty($c->cat_name) )
return;
echo '<wp:cat_name>' . wxr_cdata($c->cat_name) . '</wp:cat_name>';
}
function wxr_category_description($c) {
if ( empty($c->category_description) )
return;
echo '<wp:category_description>' . wxr_cdata($c->category_description) . '</wp:category_description>';
}
print '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n";
?>
<!--
This is a WordPress eXtended RSS file generated by WordPress as an export of
your blog. It contains information about your blog's posts, comments, and
categories. You may use this file to transfer that content from one site to
another. This file is not intended to serve as a complete backup of your
blog.
To import this information into a WordPress blog follow these steps:
1. Log into that blog as an administrator.
2. Go to Manage > Import in the blog's admin.
3. Choose "WordPress" from the list of importers.
4. Upload this file using the form provided on that page.
5. You will first be asked to map the authors in this export file to users
on the blog. For each author, you may choose to map an existing user on
the blog or to create a new user.
6. WordPress will then import each of the posts, comments, and categories
contained in this file onto your blog.
-->
<!-- generator="wordpress/<?php bloginfo_rss('version') ?>" created="<?php echo date('Y-m-d H:i'); ?>"-->
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.0/"
>
<channel>
<title><?php bloginfo_rss('name'); ?></title>
<link><?php bloginfo_rss('url') ?></link>
<description><?php bloginfo_rss("description") ?></description>
<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></pubDate>
<generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?></generator>
<language><?php echo get_option('rss_language'); ?></language>
<?php if ( $cats ) : foreach ( $cats as $c ) : ?>
<wp:category><wp:category_nicename><?php echo $c->category_nicename; ?></wp:category_nicename><wp:category_parent><?php echo $c->category_parent ? $cats[$c->category_parent]->cat_name : ''; ?></wp:category_parent><wp:posts_private><?php echo $c->posts_private ? '1' : '0'; ?></wp:posts_private><wp:links_private><?php echo $c->links_private ? '1' : '0'; ?></wp:links_private><?php wxr_cat_name($c); ?><?php wxr_category_description($c); ?></wp:category>
<?php endforeach; endif; ?>
<?php do_action('rss2_head'); ?>
<?php if ($posts) { foreach ($posts as $post) { start_wp(); ?>
<item>
<title><?php the_title_rss() ?></title>
<link><?php permalink_single_rss() ?></link>
<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
<dc:creator><?php the_author() ?></dc:creator>
<?php the_category_rss() ?>
<guid isPermaLink="false"><?php the_guid(); ?></guid>
<description></description>
<content:encoded><![CDATA[<?php echo $post->post_content ?>]]></content:encoded>
<wp:post_id><?php echo $post->ID; ?></wp:post_id>
<wp:post_date><?php echo $post->post_date; ?></wp:post_date>
<wp:post_date_gmt><?php echo $post->post_date_gmt; ?></wp:post_date_gmt>
<wp:comment_status><?php echo $post->comment_status; ?></wp:comment_status>
<wp:ping_status><?php echo $post->ping_status; ?></wp:ping_status>
<wp:post_name><?php echo $post->post_name; ?></wp:post_name>
<wp:status><?php echo $post->post_status; ?></wp:status>
<wp:post_parent><?php echo $post->post_parent; ?></wp:post_parent>
<wp:menu_order><?php echo $post->menu_order; ?></wp:menu_order>
<wp:post_type><?php echo $post->post_type; ?></wp:post_type>
<?php
$postmeta = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE post_id = $post->ID");
if ( $postmeta ) {
?>
<?php foreach( $postmeta as $meta ) { ?>
<wp:postmeta>
<wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key>
<wp:meta_value><?Php echo $meta->meta_value; ?></wp:meta_value>
</wp:postmeta>
<?php } ?>
<?php } ?>
<?php
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID");
if ( $comments ) { foreach ( $comments as $c ) { ?>
<wp:comment>
<wp:comment_id><?php echo $c->comment_ID; ?></wp:comment_id>
<wp:comment_author><?php echo $c->comment_author; ?></wp:comment_author>
<wp:comment_author_email><?php echo $c->comment_author_email; ?></wp:comment_author_email>
<wp:comment_author_url><?php echo $c->comment_author_url; ?></wp:comment_author_url>
<wp:comment_author_IP><?php echo $c->comment_author_IP; ?></wp:comment_author_IP>
<wp:comment_date><?php echo $c->comment_date; ?></wp:comment_date>
<wp:comment_date_gmt><?php echo $c->comment_date_gmt; ?></wp:comment_date_gmt>
<wp:comment_content><?php echo $c->comment_content; ?></wp:comment_content>
<wp:comment_approved><?php echo $c->comment_approved; ?></wp:comment_approved>
<wp:comment_type><?php echo $c->comment_type; ?></wp:comment_type>
<wp:comment_parent><?php echo $c->comment_parent; ?></wp:comment_parent>
</wp:comment>
<?php } } ?>
</item>
<?php } } ?>
</channel>
</rss>
<?php
die();
}
include ('admin-footer.php');
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

BIN
wp-admin/images/box-bg.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

Before

Width:  |  Height:  |  Size: 785 B

After

Width:  |  Height:  |  Size: 785 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
wp-admin/images/notice.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

BIN
wp-admin/images/toggle.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,247 +0,0 @@
<?php
if (!file_exists('../wp-config.php')) die("There doesn't seem to be a wp-config.php file. Double check that you updated wp-config-sample.php with the proper database connection information and renamed it to wp-config.php.");
require_once('../wp-config.php');
require('upgrade-functions.php');
$step = $_GET['step'];
if (!$step) $step = 0;
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!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">
<title>WordPress &#8212; b2 Conversion</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style media="screen" type="text/css">
body {
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 15%;
margin-right: 15%;
}
#logo {
margin: 0;
padding: 0;
background-image: url(http://wordpress.org/images/wordpress.gif);
background-repeat: no-repeat;
height: 60px;
border-bottom: 4px solid #333;
}
#logo a {
display: block;
height: 60px;
}
#logo a span {
display: none;
}
p, li {
line-height: 140%;
}
</style>
</head>
<body>
<h1 id="logo"><a href="http://wordpress.org"><span>WordPress</span></a></h1>
<?php
switch($step) {
case 0:
?>
<p>Welcome to WordPress. Since you&#8217;re upgrading from b2 everything should be relatively
familiar to you. Here are some notes on upgrading:</p>
<ul>
<li>If you&#8217;re using an older version of b2, it's probably a good idea to upgrade
to at least .61 before making the leap to WordPress.</li>
<li>The templates are so much better, and there is so much more going on than
before it&#8217;s probably worth it to start from scratch and work back to your
design.</li>
<li>You need to transfer some of your settings from your old <code>b2config.php</code>
to <code>wp-config.php</code> file.</li>
<li>WordPress issues should be discussed in our <a href="http://wordpress.org/support/">support
forums</a>.</li>
<li><strong>Back up</strong> your database before you do anything. Yes, you.</li>
</ul>
<p>Have you looked at the <a href="../readme.html">readme</a>? If
you&#8217;re all ready, <a href="import-b2.php?step=1">let&#8217;s go</a>!</p>
<?php
break;
case 1:
?>
<h1>Step 1</h1>
<p>Okay first we&#8217;re going to set up the links database. This will allow you to host your own blogroll, complete with Weblogs.com updates.</p>
<?php
$got_links = false;
$got_cats = false;
$got_row = false;
?>
<p>Installing WP-Links.</p>
<p>Checking for tables...</p>
<?php
$result = mysql_list_tables(DB_NAME);
if (!$result) {
print "DB Error, could not list tables\n";
print 'MySQL Error: ' . mysql_error();
exit;
}
while ($row = mysql_fetch_row($result)) {
if ($row[0] == $wpdb->links)
$got_links = true;
if ($row[0] == $wpdb->linkcategories)
$got_cats = true;
//print "Table: $row[0]<br />\n";
}
if (!$got_cats) {
echo "<p>Can't find table '$wpdb->linkcategories', gonna create it...</p>\n";
$sql = "CREATE TABLE $wpdb->linkcategories ( " .
" cat_id int(11) NOT NULL auto_increment, " .
" cat_name tinytext NOT NULL, ".
" auto_toggle enum ('Y','N') NOT NULL default 'N', ".
" PRIMARY KEY (cat_id) ".
") ";
$result = mysql_query($sql) or print ("Can't create the table '$wpdb->linkcategories' in the database.<br />" . $sql . "<br />" . mysql_error());
if ($result != false) {
echo "<p>Table '$wpdb->linkcategories' created OK</p>\n";
$got_cats = true;
}
} else {
echo "<p>Found table '$wpdb->linkcategories', don't need to create it...</p>\n";
$got_cats = true;
}
if (!$got_links) {
echo "<p>Can't find '$wpdb->links', gonna create it...</p>\n";
$sql = "CREATE TABLE $wpdb->links ( " .
" link_id int(11) NOT NULL auto_increment, " .
" link_url varchar(255) NOT NULL default '', " .
" link_name varchar(255) NOT NULL default '', " .
" link_image varchar(255) NOT NULL default '', " .
" link_target varchar(25) NOT NULL default '', " .
" link_category int(11) NOT NULL default 0, " .
" link_description varchar(255) NOT NULL default '', " .
" link_visible enum ('Y','N') NOT NULL default 'Y', " .
" link_owner int NOT NULL DEFAULT '1', " .
" link_rating int NOT NULL DEFAULT '0', " .
" link_updated DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', " .
" link_rel varchar(255) NOT NULL default '', " .
" link_notes MEDIUMTEXT NOT NULL default '', " .
" PRIMARY KEY (link_id) " .
") ";
$result = mysql_query($sql) or print ("Can't create the table '$wpdb->links' in the database.<br />" . $sql . "<br />" . mysql_error());
$links = mysql_query("INSERT INTO $wpdb->links VALUES ('', 'http://wordpress.org/', 'WordPress', '', '', 1, '', 'Y', 1, 0, '0000-00-00 00:00:00', '');");
$links = mysql_query("INSERT INTO $wpdb->links VALUES ('', 'http://photomatt.net/', 'Matt', '', '', 1, '', 'Y', 1, 0, '0000-00-00 00:00:00', '');");
$links = mysql_query("INSERT INTO $wpdb->links VALUES ('', 'http://zed1.com/b2/', 'Mike', '', '', 1, '', 'Y', 1, 0, '0000-00-00 00:00:00', '');");
if ($result != false) {
echo "<p>Table '$wpdb->links' created OK</p>\n";
$got_links = true;
}
} else {
echo "<p>Found table '$wpdb->links', don't need to create it...</p>\n";
echo "<p>... may need to update it though. Looking for column link_updated...</p>\n";
$query = "SELECT link_updated FROM $wpdb->links LIMIT 1";
$q = @mysql_query($query);
if ($q != false) {
if ($row = mysql_fetch_object($q)) {
echo "<p>You have column link_updated. Good!</p>\n";
}
} else {
$query = "ALTER TABLE $wpdb->links ADD COLUMN link_updated DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'";
$q = mysql_query($query) or mysql_doh("Doh, couldn't add column.", $query, mysql_error());
echo "<p>Added column link_updated...</p>\n";
}
echo "<p>Looking for column link_rel...</p>\n";
$query = "SELECT link_rel FROM $wpdb->links LIMIT 1";
$q = @mysql_query($query);
if ($q != false) {
if ($row = mysql_fetch_object($q)) {
echo "<p>You have column link_rel. Good!</p>\n";
}
} else {
$query = "ALTER TABLE $wpdb->links ADD COLUMN link_rel varchar(255) NOT NULL DEFAULT '' ";
$q = mysql_query($query) or mysql_doh("Doh, couldn't add column.", $query, mysql_error());
echo "<p>Added column link_rel...</p>\n";
}
$got_links = true;
}
if ($got_links && $got_cats) {
echo "<p>Looking for category 1...</p>\n";
$sql = "SELECT * FROM $wpdb->linkcategories WHERE cat_id=1 ";
$result = mysql_query($sql) or print ("Can't query '$wpdb->linkcategories'.<br />" . $sql . "<br />" . mysql_error());
if ($result != false) {
if ($row = mysql_fetch_object($result)) {
echo "<p>You have at least 1 category. Good!</p>\n";
$got_row = true;
} else {
echo "<p>Gonna insert category 1...</p>\n";
$sql = "INSERT INTO $wpdb->linkcategories (cat_id, cat_name) VALUES (1, 'General')";
$result = mysql_query($sql) or print ("Can't query insert category.<br />" . $sql . "<br />" . mysql_error());
if ($result != false) {
echo "<p>Inserted category Ok</p>\n";
$got_row = true;
}
}
}
}
if ($got_row) {
echo "<p>All done!</p>\n";
}
?>
<p>Did you defeat the boss monster at the end? Good, then you&#8217;re ready for
<a href="import-b2.php?step=2">Step 2</a>.</p>
<?php
break;
case 2:
?>
<h1>Step 2</h1>
<p>First we&#8217;re going to add excerpt, post, and password functionality...</p>
<?php
$query = "ALTER TABLE $wpdb->posts ADD COLUMN post_excerpt text NOT NULL;";
$q = $wpdb->query($query);
// 0.71 mods
$query = "ALTER TABLE $wpdb->posts ADD post_status ENUM('publish','draft','private') NOT NULL,
ADD comment_status ENUM('open','closed') NOT NULL,
ADD ping_status ENUM('open','closed') NOT NULL,
ADD post_password varchar(20) NOT NULL;";
$q = $wpdb->query($query);
?>
<p>That went well! Now let's clean up the b2 database structure a bit...</p>
<?php
$query = "ALTER TABLE $wpdb->posts DROP INDEX ID";
$q = $wpdb->query($query);
?>
<p>One down, two to go...</p>
<p>So far so good.</p>
<?php
$query="ALTER TABLE $wpdb->posts DROP post_karma";
$q = $wpdb->query($query);
flush();
?>
<p>Almost there...</p>
<?php
$query = "ALTER TABLE $wpdb->users DROP INDEX ID";
$q = $wpdb->query($query);
upgrade_all();
?>
<p>Welcome to the family. <a href="../">Have fun</a>!</p>
<?php
break;
}
?>
</body>
</html>

View File

@@ -1,221 +0,0 @@
<?php
$wpvarstoreset = array('action');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
require_once('../wp-config.php');
require('upgrade-functions.php');
header( 'Content-Type: text/html; charset=utf-8' );
switch ($action) {
case "step1":
?>
<!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" xml:lang="en">
<title>Blogger to WordPress - Converting...</title>
<link rel="stylesheet" href="wp-admin.css" type="text/css">
</head>
<body>
<div class="wrap">
<h1>Blogger to <img src="../wp-images/wpminilogo.png" width="50" height="50" border="0" alt="WordPress" align="top" /></h1>
<p>The importer is running...</p>
<ul>
<li>Importing posts and users
<ul><?php
for($bgy=1999; $bgy<=(date('Y')); $bgy++) {
for($bgm=1; $bgm<13; $bgm++) {
$bgmm = zeroise($bgm,2);
$archivefile = "../$bgy"."_"."$bgmm"."_01_wordpress.php";
if (file_exists($archivefile)) {
$f = fopen($archivefile,"r");
$archive = fread($f, filesize($archivefile));
fclose($f);
echo "<li>$bgy/$bgmm ";
$posts = explode('<wordpresspost>', $archive);
for ($i = 1; $i < count($posts); $i = $i + 1) {
$postinfo = explode('|||', $posts[$i]);
$post_date = $postinfo[0];
$post_content = $postinfo[2];
// Don't try to re-use the original numbers
// because the new, longer numbers are too
// big to handle as ints.
//$post_number = $postinfo[3];
$post_title = $postinfo[4];
$post_author = trim(addslashes($postinfo[1]));
// we'll check the author is registered already
$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE user_login = '$post_author'");
if (!$user) { // seems s/he's not, so let's register
$user_ip = '127.0.0.1';
$user_domain = 'localhost';
$user_browser = 'server';
$user_joindate = '1979-06-06 00:41:00'; // that's my birthdate (gmt+1) - I could choose any other date. You could change the date too. Just remember the year must be >=1970 or the world would just randomly fall on your head (everything might look fine, and then blam! major headache!)
$user_login = addslashes($post_author);
$pass1 = addslashes('password');
$user_nickname = addslashes($post_author);
$user_email = addslashes('user@wordpress.org');
$user_url = addslashes('');
$user_joindate = addslashes($user_joindate);
$result = $wpdb->query("
INSERT INTO $wpdb->users (
user_login,
user_pass,
user_nickname,
user_email,
user_url,
user_ip,
user_domain,
user_browser,
user_registered,
user_level,
user_idmode
) VALUES (
'$user_login',
'$pass1',
'$user_nickname',
'$user_email',
'$user_url',
'$user_ip',
'$user_domain',
'$user_browser',
'$user_joindate',
'1',
'nickname'
)");
echo ": Registered user <strong>$user_login</strong>";
}
$post_author_ID = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$post_author'");
$post_date = explode(' ', $post_date);
$post_date_Ymd = explode('/', $post_date[0]);
$postyear = $post_date_Ymd[2];
$postmonth = zeroise($post_date_Ymd[0], 2);
$postday = zeroise($post_date_Ymd[1], 2);
$post_date_His = explode(':', $post_date[1]);
$posthour = zeroise($post_date_His[0], 2);
$postminute = zeroise($post_date_His[1], 2);
$postsecond = zeroise($post_date_His[2], 2);
if (($post_date[2] == 'PM') && ($posthour != '12'))
$posthour = $posthour + 12;
else if (($post_date[2] == 'AM') && ($posthour == '12'))
$posthour = '00';
$post_date = "$postyear-$postmonth-$postday $posthour:$postminute:$postsecond";
$post_content = addslashes($post_content);
$post_content = str_replace('<br>', '<br />', $post_content); // the XHTML touch... ;)
$post_title = addslashes($post_title);
// Quick-n-dirty check for dups:
$dupcheck = $wpdb->get_results("SELECT ID,post_date,post_title FROM $wpdb->posts WHERE post_date='$post_date' AND post_title='$post_title' LIMIT 1",ARRAY_A);
if ($dupcheck[0]['ID']) {
print "<br />\nSkipping duplicate post, ID = '" . $dupcheck[0]['ID'] . "'<br />\n";
print "Timestamp: " . $post_date . "<br />\n";
print "Post Title: '" . stripslashes($post_title) . "'<br />\n";
continue;
}
$result = $wpdb->query("
INSERT INTO $wpdb->posts
(post_author,post_date,post_content,post_title,post_category)
VALUES
('$post_author_ID','$post_date','$post_content','$post_title','1')
");
} echo '... <strong>Done</strong></li>';
}}
}
upgrade_all();
?>
</ul>
<strong>Done</strong>
</li>
</ul>
<p>&nbsp;</p>
<p>Completed Blogger to WordPress import!</p>
<p>Now you can go and <a href="../wp-login.php">log in</a>, have fun!</p>
</div>
</body>
</html>
<?php
break;
default:
?>
<!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" xml:lang="en">
<title>Blogger to WordPress Import Utility</title>
<link rel="stylesheet" href="wp-admin.css" type="text/css">
</head>
<body>
<div class="wrap">
<h1>Blogger to <img src="../wp-images/wpminilogo.png" width="50" height="50" border="0" alt="WordPress" align="top" /></h1>
<p>This is a basic Blogger to WordPress import script.</p>
<p>What it does:</p>
<ul>
<li>Parses your archives to retrieve your blogger posts.</li>
<li>Adds an author whenever it sees a new nickname, all authors are imported at level 1, with a default profile and the password 'password'</li>
</ul>
<p>What it does not:</p>
<ul>
<li>It sucks at making coffee.</li>
<li>It always forgets to call back.</li>
</ul>
<h2>First step: Install WordPress</h2>
<p>Install the WordPress blog as explained in the <a href="../readme.html">read me</a>, then immediately come back here.</p>
<h3>Second step: let's play with Blogger</h3>
<p>Log into your Blogger account.<br />
Go to the Settings, and make Blogger publish your files in the directory where your WordPress resides. Change the Date/Time format to be mm/dd/yyyy hh:mm:ss AM/PM (the first choice in the dropdown menu). In Archives: set the frequency to 'monthly' and the archive filename to 'wordpress.php' (without the quotes), set the ftp archive path to make Blogger publish the archives in your WordPress directory. Click 'save changes'.<br />
Go to the Templates. Replace your existing template with this line (copy and paste):
<blockquote>&lt;Blogger>&lt;wordpresspost>&lt;$BlogItemDateTime$>|||&lt;$BlogItemAuthorNickname$>|||&lt;$BlogItemBody$>|||&lt;$BlogItemNumber$>|||&lt;$BlogItemSubject$>&lt;/Blogger></blockquote>
Go to the Archives, and click 'republish all'.<br />
Check in your FTP that you've got the archive files published. They should look like this example: <code>2001_10_01_wordpress.php</code>. If they aren't there, redo the republish process.</p>
<p>You're done with the hard part. :)</p>
<form name="stepOne" method="get">
<input type="hidden" name="action" value="step1" />
<h3>Third step: w00t, let's click OK:</h3>
<p>When you're ready, click OK to start importing: <input type="submit" name="submit" value="OK" /><br /><br />
<i>Note: the script might take some time, like 1 second for 100 entries
imported. DO NOT STOP IT or else you won't have a complete import.</i></p>
</form>
</div>
</body>
</html>
<?php
break;
}
?>

View File

@@ -1,322 +0,0 @@
<?php
if (!file_exists('../wp-config.php')) die("There doesn't seem to be a wp-config.php file. You must install WordPress before you import any entries.");
require_once('../wp-config.php');
require('upgrade-functions.php');
$wpvarstoreset = array('action', 'gmpath', 'archivespath', 'lastentry');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!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">
<title>WordPress &rsaquo; Import from GreyMatter</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style media="screen" type="text/css">
body {
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 20%;
margin-right: 20%;
}
#logo {
margin: 0;
padding: 0;
background-image: url(http://wordpress.org/images/logo.png);
background-repeat: no-repeat;
height: 60px;
border-bottom: 4px solid #333;
}
#logo a {
display: block;
text-decoration: none;
text-indent: -100em;
height: 60px;
}
p {
line-height: 140%;
}
#authors li {
padding:3px;
border: 1px solid #ccc;
width: 40%;
margin-bottom:2px;
}
</style>
</head><body>
<h1 id="logo"><a href="http://wordpress.org">WordPress</a></h1>
<?php
switch ($action) {
case "step1":
function gm2autobr($string) { // transforms GM's |*| into wp's <br />\n
$string = str_replace("|*|","<br />\n",$string);
return($string);
}
if (!@chdir($archivespath))
die("Wrong path, $archivespath\ndoesn't exist\non the server");
if (!@chdir($gmpath))
die("Wrong path, $gmpath\ndoesn't exist\non the server");
?>
<p>The importer is running...</p>
<ul>
<li>importing users... <ul><?php
chdir($gmpath);
$userbase = file("gm-authors.cgi");
foreach($userbase as $user) {
$userdata=explode("|", $user);
$user_ip="127.0.0.1";
$user_domain="localhost";
$user_browser="server";
$s=$userdata[4];
$user_joindate=substr($s,6,4)."-".substr($s,0,2)."-".substr($s,3,2)." 00:00:00";
$user_login=addslashes($userdata[0]);
$pass1=addslashes($userdata[1]);
$user_nickname=addslashes($userdata[0]);
$user_email=addslashes($userdata[2]);
$user_url=addslashes($userdata[3]);
$user_joindate=addslashes($user_joindate);
$loginthere = $wpdb->get_var("SELECT user_login FROM $wpdb->users WHERE user_login = '$user_login'");
if ($loginthere) {
echo "<li>user <i>$user_login</i>... <b>Already exists</b></li>";
continue;
}
$query = "INSERT INTO $wpdb->users (user_login,user_pass,user_nickname,user_email,user_url,user_ip,user_domain,user_browser,user_registered,user_level,user_idmode) VALUES ('$user_login','$pass1','$user_nickname','$user_email','$user_url','$user_ip','$user_domain','$user_browser','$user_joindate','1','nickname')";
$result = $wpdb->query($query);
if ($result==false) {
die ("<strong>ERROR</strong>: couldn't register an user!");
}
echo "<li>user <i>$user_login</i>... <b>Done</b></li>";
}
?></ul><b>Done</b></li>
<li>importing posts, comments, and karma...<br /><ul><?php
chdir($archivespath);
for($i = 0; $i <= $lastentry; $i = $i + 1) {
$entryfile = "";
if ($i<10000000) {
$entryfile .= "0";
if ($i<1000000) {
$entryfile .= "0";
if ($i<100000) {
$entryfile .= "0";
if ($i<10000) {
$entryfile .= "0";
if ($i<1000) {
$entryfile .= "0";
if ($i<100) {
$entryfile .= "0";
if ($i<10) {
$entryfile .= "0";
}}}}}}}
$entryfile .= "$i";
if (is_file($entryfile.".cgi")) {
$entry=file($entryfile.".cgi");
echo "<li>entry # $entryfile ";
$postinfo=explode("|",$entry[0]);
$postmaincontent=gm2autobr($entry[2]);
$postmorecontent=gm2autobr($entry[3]);
$post_author=trim(addslashes($postinfo[1]));
// we'll check the author is registered, or if it's a deleted author
$sql = "SELECT * FROM $wpdb->users WHERE user_login = '$post_author'";
$result = $wpdb->query($sql);
if (! $result) { // if deleted from GM, we register the author as a level 0 user in wp
$user_ip="127.0.0.1";
$user_domain="localhost";
$user_browser="server";
$user_joindate="1979-06-06 00:41:00";
$user_login=addslashes($post_author);
$pass1=addslashes("password");
$user_nickname=addslashes($post_author);
$user_email=addslashes("user@deleted.com");
$user_url=addslashes("");
$user_joindate=addslashes($user_joindate);
$query = "INSERT INTO $wpdb->users (user_login,user_pass,user_nickname,user_email,user_url,user_ip,user_domain,user_browser,user_registered,user_level,user_idmode) VALUES ('$user_login','$pass1','$user_nickname','$user_email','$user_url','$user_ip','$user_domain','$user_browser','$user_joindate','0','nickname')";
$result = $wpdb->query($query);
if ($result==false) {
die ("<strong>ERROR</strong>: couldn't register an user!");
}
echo ": registered deleted user <i>$user_login</i> at level 0 ";
}
$sql = "SELECT ID FROM $wpdb->users WHERE user_login = '$post_author'";
$post_author_ID = $wpdb->get_var($sql);
$post_title=gm2autobr($postinfo[2]);
$post_title=addslashes($post_title);
$postyear=$postinfo[6];
$postmonth=zeroise($postinfo[4],2);
$postday=zeroise($postinfo[5],2);
$posthour=zeroise($postinfo[7],2);
$postminute=zeroise($postinfo[8],2);
$postsecond=zeroise($postinfo[9],2);
if (($postinfo[10]=="PM") && ($posthour!="12"))
$posthour=$posthour+12;
$post_date="$postyear-$postmonth-$postday $posthour:$postminute:$postsecond";
$post_content=$postmaincontent;
if (strlen($postmorecontent)>3)
$post_content .= "<!--more--><br /><br />".$postmorecontent;
$post_content=addslashes($post_content);
$post_karma=$postinfo[12];
$query = "INSERT INTO $wpdb->posts (post_author,post_date,post_content,post_title) VALUES ('$post_author_ID','$post_date','$post_content','$post_title')";
$result = $wpdb->query($query);
if (!$result)
die ("Error in posting...");
$query = "SELECT ID FROM $wpdb->posts ORDER BY ID DESC LIMIT 1";
$post_ID = $wpdb->get_var($query);
// Grab a default category.
$post_category = $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories LIMIT 1");
// Update the post2cat table.
$exists = $wpdb->get_row("SELECT * FROM $wpdb->post2cat WHERE post_id = $post_ID AND category_id = $post_category");
if (!$exists) {
$wpdb->query("
INSERT INTO $wpdb->post2cat
(post_id, category_id)
VALUES
($post_ID, $post_category)
");
}
$c=count($entry);
if ($c>4) {
for ($j=4;$j<$c;$j++) {
$entry[$j]=gm2autobr($entry[$j]);
$commentinfo=explode("|",$entry[$j]);
$comment_post_ID=$post_ID;
$comment_author=addslashes($commentinfo[0]);
$comment_author_email=addslashes($commentinfo[2]);
$comment_author_url=addslashes($commentinfo[3]);
$comment_author_IP=addslashes($commentinfo[1]);
$commentyear=$commentinfo[7];
$commentmonth=zeroise($commentinfo[5],2);
$commentday=zeroise($commentinfo[6],2);
$commenthour=zeroise($commentinfo[8],2);
$commentminute=zeroise($commentinfo[9],2);
$commentsecond=zeroise($commentinfo[10],2);
if (($commentinfo[11]=="PM") && ($commenthour!="12"))
$commenthour=$commenthour+12;
$comment_date="$commentyear-$commentmonth-$commentday $commenthour:$commentminute:$commentsecond";
$comment_content=addslashes($commentinfo[12]);
$sql3 = "INSERT INTO $wpdb->comments (comment_post_ID,comment_author,comment_author_email,comment_author_url,comment_author_IP,comment_date,comment_content) VALUES ('$comment_post_ID','$comment_author','$comment_author_email','$comment_author_url','$comment_author_IP','$comment_date','$comment_content')";
$result3 = $wpdb->query($sql3);
if (!$result3)
die ("There is an error with the database, it can't store your comment..");
}
$comments=$c-4;
echo ": imported $comments comment";
if ($comments>1)
echo "s";
}
echo "... <b>Done</b></li>";
}
}
upgrade_all();
?>
</ul><b>Done</b></li></ul>
<p>&nbsp;</p>
<p>Completed GM 2 WordPress import !</p>
<p>Now you can go and <a href="wp-login.php">log in</a>, have fun !</p>
<?php
break;
default:
?>
<p>This is a basic GreyMatter to WordPress import script.</p>
<p>What it does:</p>
<ul>
<li>parses gm-authors.cgi to import authors: everyone is imported at level 1</li>
<li>parses the entries cgi files to import posts, comments, and karma on posts (although karma is not used on WordPress); if authors are found not to be in gm-authors.cgi, imports them at level 0</li>
</ul>
<p>What it does not:</p>
<ul>
<li>parse gm-counter.cgi (what's the use of that file ?), gm-banlist.cgi, gm-cplog.cgi (you can make a CP log hack if you really feel like it, but I question the need of a CP log)</li>
<li>import gm-templates. you'll start with the basic template wp.php</li>
<li>doesn't keep entries on top</li>
</ul>
<h3>First step: Install WordPress</h3>
<p>Install the WordPress blog as explained in the <a href="../readme.html" target="_blank">ReadMe</a>, then immediately come back here.</p>
<form name="stepOne" method="get">
<input type="hidden" name="action" value="step1" />
<h3>Second step: Provide GreyMatter details</h3>
<table cellpadding="0">
<tr>
<td>Path to GM files:</td>
<td><input type="text" style="width:300px" name="gmpath" value="/home/my/site/cgi-bin/greymatter/" /></td>
</tr>
<tr>
<td>Path to GM entries:</td>
<td><input type="text" style="width:300px" name="archivespath" value="/home/my/site/cgi-bin/greymatter/archives/" /></td>
</tr>
</table>
<p>This importer will search for files 00000001.cgi to 000-whatever.cgi, so you need to enter the number of the last GM post here. (If you don't know that number, just log into your FTP and look it up in the entries' folder)</p>
<table>
<tr>
<td>Last entry's number:</td>
<td><input type="text" name="lastentry" value="00000001" /></td>
</tr>
</table>
<p>When you're ready, click OK to start importing: <input type="submit" name="submit" value="OK" class="search" /></p>
</form>
</body>
</html>
<?php
break;
}
?>

View File

@@ -1,124 +0,0 @@
<?php
define('XMLFILE', '');
// Example:
// define('XMLFILE', '/home/example/public_html/rss.xml');
// or if it's in the same directory as import-rss.php
// define('XMLFILE', 'rss.xml');
$post_author = 1; // Author to import posts as author ID
$timezone_offset = 0; // GMT offset of posts your importing
$add_hours = intval($timezone_offset);
$add_minutes = intval(60 * ($timezone_offset - $add_hours));
if (!file_exists('../wp-config.php')) die("There doesn't seem to be a wp-config.php file. You must install WordPress before you import any entries.");
require('../wp-config.php');
$step = $_GET['step'];
if (!$step) $step = 0;
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!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">
<title>WordPress &rsaquo; Import from RSS</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style media="screen" type="text/css">
body {
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 20%;
margin-right: 20%;
}
#logo {
margin: 0;
padding: 0;
background-image: url(http://wordpress.org/images/logo.png);
background-repeat: no-repeat;
height: 60px;
border-bottom: 4px solid #333;
}
#logo a {
display: block;
text-decoration: none;
text-indent: -100em;
height: 60px;
}
p {
line-height: 140%;
}
</style>
</head><body>
<h1 id="logo"><a href="http://wordpress.org/">WordPress</a></h1>
<?php
switch($step) {
case 0:
?>
<p>Howdy! This importer allows you to extract posts from a LiveJournal XML export file. To get started you must edit the following line in this file (<code>import-livejournal.php</code>) </p>
<p><code>define('XMLFILE', '');</code></p>
<p>You want to define where the XML file we'll be working with is, for example: </p>
<p><code>define('XMLFILE', '2002-04.xml');</code></p>
<p>You have to do this manually for security reasons.</p>
<p>If you've done that and you&#8217;re all ready, <a href="import-livejournal.php?step=1">let's go</a>!</p>
<?php
break;
case 1:
if ('' != XMLFILE && !file_exists(XMLFILE)) die("The file you specified does not seem to exist. Please check the path you've given.");
if ('' == XMLFILE) die("You must edit the XMLFILE line as described on the <a href='import-rss.php'>previous page</a> to continue.");
// Bring in the data
set_magic_quotes_runtime(0);
$datalines = file(XMLFILE); // Read the file into an array
$importdata = implode('', $datalines); // squish it
$importdata = str_replace(array("\r\n", "\r"), "\n", $importdata);
preg_match_all('|<entry>(.*?)</entry>|is', $importdata, $posts);
$posts = $posts[1];
echo '<ol>';
foreach ($posts as $post) :
$title = $date = $categories = $content = $post_id = '';
echo "<li>Importing post... ";
preg_match('|<subject>(.*?)</subject>|is', $post, $title);
$title = addslashes( trim($title[1]) );
$post_name = sanitize_title($title);
preg_match('|<eventtime>(.*?)</eventtime>|is', $post, $date);
$date = strtotime($date[1]);
$post_date = date('Y-m-d H:i:s', $date);
preg_match('|<event>(.*?)</event>|is', $post, $content);
$content = str_replace( array('<![CDATA[', ']]>'), '', addslashes( trim($content[1]) ) );
// Now lets put it in the DB
if ($wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$title' AND post_date = '$post_date'")) :
echo 'Post already imported';
else :
$wpdb->query("INSERT INTO $wpdb->posts
(post_author, post_date, post_date_gmt, post_content, post_title,post_status, comment_status, ping_status, post_name)
VALUES
('$post_author', '$post_date', DATE_ADD('$post_date', INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE), '$content', '$title', 'publish', '$comment_status', '$ping_status', '$post_name')");
$post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$title' AND post_date = '$post_date'");
if (!$post_id) die("couldn't get post ID");
$exists = $wpdb->get_row("SELECT * FROM $wpdb->post2cat WHERE post_id = $post_id AND category_id = 1");
if (!$exists) $wpdb->query("INSERT INTO $wpdb->post2cat (post_id, category_id) VALUES ($post_id, 1) ");
echo 'Done!</li>';
endif;
endforeach;
?>
</ol>
<h3>All done. <a href="../">Have fun!</a></h3>
<?php
break;
}
?>
</body>
</html>

View File

@@ -1,418 +0,0 @@
<?php
define('MTEXPORT', '');
// enter the relative path of the import.txt file containing the mt entries. If the file is called import.txt and it is /wp-admin, then this line
//should be define('MTEXPORT', 'import.txt');
if (!file_exists('../wp-config.php')) die("There doesn't seem to be a wp-config.php file. You must install WordPress before you import any entries.");
require('../wp-config.php');
require ('upgrade-functions.php');
$step = $_GET['step'];
if (!$step) $step = 0;
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!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">
<title>WordPress &rsaquo; Import from Movable Type</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style media="screen" type="text/css">
body {
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 20%;
margin-right: 20%;
}
#logo {
margin: 0;
padding: 0;
background-image: url(http://wordpress.org/images/logo.png);
background-repeat: no-repeat;
height: 60px;
border-bottom: 4px solid #333;
}
#logo a {
display: block;
text-decoration: none;
text-indent: -100em;
height: 60px;
}
p {
line-height: 140%;
}
#authors li {
padding:3px;
border: 1px solid #ccc;
width: 40%;
margin-bottom:2px;
}
</style>
</head><body>
<h1 id="logo"><a href="http://wordpress.org">WordPress</a></h1>
<?php
switch($step) {
case 0:
?>
<p>Howdy! We&#8217;re about to begin the process to import all of your Movable Type entries into WordPress. Before we get started, you need to edit this file (<code>import-mt.php</code>) and change one line so we know where to find your MT export file. To make this easy put the import file into the <code>wp-admin</code> directory. Look for the line that says:</p>
<p><code>define('MTEXPORT', '');</code></p>
<p>and change it to</p>
<p><code>define('MTEXPORT', 'import.txt');</code></p>
<p>You have to do this manually for security reasons.</p>
<p>If you've done that and you&#8217;re all ready, <a href="import-mt.php?step=1">let's go</a>! Remember that the import process may take a minute or so if you have a large number of entries and comments. Think of all the rebuilding time you'll be saving once it's done. :)</p>
<p>The importer is smart enough not to import duplicates, so you can run this multiple times without worry if&#8212;for whatever reason&#8212;it doesn't finish. If you get an <strong>out of memory</strong> error try splitting up the import file into pieces. </p>
<?php
break;
case 1:
if ('' != MTEXPORT && !file_exists(MTEXPORT)) die("The file you specified does not seem to exist. Please check the path you've given.");
if ('' == MTEXPORT) die("You must edit the MTEXPORT line as described on the <a href='import-mt.php'>previous page</a> to continue.");
// Bring in the data
set_magic_quotes_runtime(0);
$importdata = file(MTEXPORT); // Read the file into an array
$importdata = implode('', $importdata); // squish it
$importdata = preg_replace("/(\r\n|\n|\r)/", "\n", $importdata);
$importdata = preg_replace("/\n--------\n/", "--MT-ENTRY--\n", $importdata);
$authors = array();
$temp = array();
$posts = explode("--MT-ENTRY--", $importdata);
unset( $importdata ); // Free up memory
function users_form($n) {
global $wpdb, $testing;
$users = $wpdb->get_results("SELECT * FROM $wpdb->users ORDER BY ID");
?><select name="userselect[<?php echo $n; ?>]">
<option value="#NONE#">- Select -</option>
<?php foreach($users as $user) {
echo '<option value="'.$user->user_login.'">'.$user->user_login.'</option>';
} ?>
</select>
<?php }
$i = -1;
foreach ($posts as $post) {
if ('' != trim($post)) {
++$i;
unset($post_categories);
preg_match("|AUTHOR:(.*)|", $post, $thematch);
$thematch = trim($thematch[1]);
array_push($temp,"$thematch"); //store the extracted author names in a temporary array
}
}//end of foreach
//we need to find unique values of author names, while preserving the order, so this function emulates the unique_value(); php function, without the sorting.
$authors[0] = array_shift($temp);
$y = count($temp) + 1;
for ($x = 1; $x < $y; $x++) {
$next = array_shift($temp);
if (!(in_array($next,$authors))) array_push($authors, "$next");
}
//by this point, we have all unique authors in the array $authors
?><p><?php _e('To make it easier for you to edit and save the imported posts and drafts, you may want to change the name of the author of the posts. For example, you may want to import all the entries as <code>admin</code>s entries.'); ?></p>
<p><?php _e('Below, you can see the names of the authors of the MovableType posts in <i>italics</i>. For each of these names, you can either pick an author in your WordPress installation from the menu, or enter a name for the author in the textbox.'); ?></p>
<p><?php _e('If a new user is created by WordPress, the password will be set, by default, to "changeme". Quite suggestive, eh? ;)'); ?></p>
<?php
echo '<ol id="authors">';
echo '<form action="?step=2" method="post">';
$j = -1;
foreach ($authors as $author) {
++$j;
echo '<li><i>'.$author.'</i><br />'.'<input type="text" value="'.$author.'" name="'.'user[]'.'" maxlength="30">';
users_form($j);
echo '</li>';
}
echo '<input type="submit" value="Submit">'.'<br/>';
echo '</form>';
echo '</ol>';
flush();
break;
case 2:
$newauthornames = array();
$formnames = array();
$selectnames = array();
$mtnames = array();
foreach($_POST['user'] as $key => $line) {
$newname = trim(stripslashes($line));
if ($newname == '') $newname = 'left_blank';//passing author names from step 1 to step 2 is accomplished by using POST. left_blank denotes an empty entry in the form.
array_push($formnames,"$newname");
}// $formnames is the array with the form entered names
foreach ($_POST['userselect'] as $user => $key) {
$selected = trim(stripslashes($key));
array_push($selectnames,"$selected");
}
$count = count($formnames);
for ($i = 0; $i < $count; $i++) {
if ( $selectnames[$i] != '#NONE#') {//if no name was selected from the select menu, use the name entered in the form
array_push($newauthornames,"$selectnames[$i]");
}
else {
array_push($newauthornames,"$formnames[$i]");
}
}
$j = -1;
//function to check the authorname and do the mapping
function checkauthor($author) {
global $wpdb, $mtnames, $newauthornames, $j;//mtnames is an array with the names in the mt import file
$md5pass = md5(changeme);
if (!(in_array($author, $mtnames))) { //a new mt author name is found
++$j;
$mtnames[$j] = $author; //add that new mt author name to an array
$user_id = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$newauthornames[$j]'"); //check if the new author name defined by the user is a pre-existing wp user
if (!$user_id) { //banging my head against the desk now.
if ($newauthornames[$j] == 'left_blank') { //check if the user does not want to change the authorname
$wpdb->query("INSERT INTO $wpdb->users (user_level, user_login, user_pass, user_nickname) VALUES ('1', '$author', '$md5pass', '$author')"); // if user does not want to change, insert the authorname $author
$user_id = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$author'");
$newauthornames[$j] = $author; //now we have a name, in the place of left_blank.
} else {
$wpdb->query("INSERT INTO $wpdb->users (user_level, user_login, user_pass, user_nickname) VALUES ('1', '$newauthornames[$j]', '$md5pass', '$newauthornames[$j]')"); //if not left_blank, insert the user specified name
$user_id = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$newauthornames[$j]'");
}
} else return $user_id; // return pre-existing wp username if it exists
} else {
$key = array_search($author, $mtnames); //find the array key for $author in the $mtnames array
$user_id = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$newauthornames[$key]'");//use that key to get the value of the author's name from $newauthornames
}
return $user_id;
}//function checkauthor ends here
//bring in the posts now
set_magic_quotes_runtime(0);
$importdata = file(MTEXPORT); // Read the file into an array
$importdata = implode('', $importdata); // squish it
$importdata = preg_replace("/(\r\n|\n|\r)/", "\n", $importdata);
$importdata = preg_replace("/\n--------\n/", "--MT-ENTRY--", $importdata);
$authors = array();
$temp = array();
$posts = explode("--MT-ENTRY--", $importdata);
unset( $importdata ); // Free up memory
$i = -1;
echo "<ol>";
foreach ($posts as $post) { if ('' != trim($post)) {
++$i;
unset($post_categories);
echo "<li>Processing post... ";
// Take the pings out first
preg_match("|(-----\n\nPING:.*)|s", $post, $pings);
$post = preg_replace("|(-----\n\nPING:.*)|s", '', $post);
// Then take the comments out
preg_match("|(-----\nCOMMENT:.*)|s", $post, $comments);
$post = preg_replace("|(-----\nCOMMENT:.*)|s", '', $post);
// We ignore the keywords
$post = preg_replace("|(-----\nKEYWORDS:.*)|s", '', $post);
// We want the excerpt
preg_match("|-----\nEXCERPT:(.*)|s", $post, $excerpt);
$excerpt = addslashes(trim($excerpt[1]));
$post = preg_replace("|(-----\nEXCERPT:.*)|s", '', $post);
// We're going to put extended body into main body with a more tag
preg_match("|-----\nEXTENDED BODY:(.*)|s", $post, $extended);
$extended = trim($extended[1]);
if ('' != $extended) $extended = "\n<!--more-->\n$extended";
$post = preg_replace("|(-----\nEXTENDED BODY:.*)|s", '', $post);
// Now for the main body
preg_match("|-----\nBODY:(.*)|s", $post, $body);
$body = trim($body[1]);
$post_content = addslashes($body . $extended);
$post = preg_replace("|(-----\nBODY:.*)|s", '', $post);
// Grab the metadata from what's left
$metadata = explode("\n", $post);
foreach ($metadata as $line) {
preg_match("/^(.*?):(.*)/", $line, $token);
$key = trim($token[1]);
$value = trim($token[2]);
// Now we decide what it is and what to do with it
switch($key) {
case '':
break;
case 'AUTHOR':
$post_author = $value;
break;
case 'TITLE':
$post_title = addslashes($value);
echo '<i>'.stripslashes($post_title).'</i>... ';
$post_name = sanitize_title($post_title);
break;
case 'STATUS':
// "publish" and "draft" enumeration items match up; no change required
$post_status = $value;
if (empty($post_status)) $post_status = 'publish';
break;
case 'ALLOW COMMENTS':
$post_allow_comments = $value;
if ($post_allow_comments == 1) {
$comment_status = 'open';
} else {
$comment_status = 'closed';
}
break;
case 'CONVERT BREAKS':
$post_convert_breaks = $value;
break;
case 'ALLOW PINGS':
$post_allow_pings = trim($meta[2][0]);
if ($post_allow_pings == 1) {
$post_allow_pings = 'open';
} else {
$post_allow_pings = 'closed';
}
break;
case 'PRIMARY CATEGORY':
$post_categories[] = addslashes($value);
break;
case 'CATEGORY':
$post_categories[] = addslashes($value);
break;
case 'DATE':
$post_date = strtotime($value);
$post_date = date('Y-m-d H:i:s', $post_date);
$post_date_gmt = get_gmt_from_date("$post_date");
break;
default:
// echo "\n$key: $value";
break;
} // end switch
} // End foreach
// Let's check to see if it's in already
if ($wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$post_title' AND post_date = '$post_date'")) {
echo "Post already imported.";
} else {
$post_author = checkauthor($post_author);//just so that if a post already exists, new users are not created by checkauthor
$wpdb->query("INSERT INTO $wpdb->posts (
post_author, post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_name, post_modified, post_modified_gmt)
VALUES
('$post_author', '$post_date', '$post_date_gmt', '$post_content', '$post_title', '$excerpt', '$post_status', '$comment_status', '$ping_status', '$post_name','$post_date', '$post_date_gmt')");
$post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$post_title' AND post_date = '$post_date'");
if (0 != count($post_categories)) {
foreach ($post_categories as $post_category) {
// See if the category exists yet
$cat_id = $wpdb->get_var("SELECT cat_ID from $wpdb->categories WHERE cat_name = '$post_category'");
if (!$cat_id && '' != trim($post_category)) {
$cat_nicename = sanitize_title($post_category);
$wpdb->query("INSERT INTO $wpdb->categories (cat_name, category_nicename) VALUES ('$post_category', '$cat_nicename')");
$cat_id = $wpdb->get_var("SELECT cat_ID from $wpdb->categories WHERE cat_name = '$post_category'");
}
if ('' == trim($post_category)) $cat_id = 1;
// Double check it's not there already
$exists = $wpdb->get_row("SELECT * FROM $wpdb->post2cat WHERE post_id = $post_id AND category_id = $cat_id");
if (!$exists) {
$wpdb->query("
INSERT INTO $wpdb->post2cat
(post_id, category_id)
VALUES
($post_id, $cat_id)
");
}
} // end category loop
} else {
$exists = $wpdb->get_row("SELECT * FROM $wpdb->post2cat WHERE post_id = $post_id AND category_id = 1");
if (!$exists) $wpdb->query("INSERT INTO $wpdb->post2cat (post_id, category_id) VALUES ($post_id, 1) ");
}
echo " Post imported successfully...";
// Now for comments
$comments = explode("-----\nCOMMENT:", $comments[0]);
foreach ($comments as $comment) {
if ('' != trim($comment)) {
// Author
preg_match("|AUTHOR:(.*)|", $comment, $comment_author);
$comment_author = addslashes(trim($comment_author[1]));
$comment = preg_replace('|(\n?AUTHOR:.*)|', '', $comment);
preg_match("|EMAIL:(.*)|", $comment, $comment_email);
$comment_email = addslashes(trim($comment_email[1]));
$comment = preg_replace('|(\n?EMAIL:.*)|', '', $comment);
preg_match("|IP:(.*)|", $comment, $comment_ip);
$comment_ip = trim($comment_ip[1]);
$comment = preg_replace('|(\n?IP:.*)|', '', $comment);
preg_match("|URL:(.*)|", $comment, $comment_url);
$comment_url = addslashes(trim($comment_url[1]));
$comment = preg_replace('|(\n?URL:.*)|', '', $comment);
preg_match("|DATE:(.*)|", $comment, $comment_date);
$comment_date = trim($comment_date[1]);
$comment_date = date('Y-m-d H:i:s', strtotime($comment_date));
$comment = preg_replace('|(\n?DATE:.*)|', '', $comment);
$comment_content = addslashes(trim($comment));
$comment_content = str_replace('-----', '', $comment_content);
// Check if it's already there
if (!$wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_date = '$comment_date' AND comment_content = '$comment_content'")) {
$wpdb->query("INSERT INTO $wpdb->comments (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_content, comment_approved)
VALUES
($post_id, '$comment_author', '$comment_email', '$comment_url', '$comment_ip', '$comment_date', '$comment_content', '1')");
echo " Comment added.";
}
}
}
// Finally the pings
// fix the double newline on the first one
$pings[0] = str_replace("-----\n\n", "-----\n", $pings[0]);
$pings = explode("-----\nPING:", $pings[0]);
foreach ($pings as $ping) {
if ('' != trim($ping)) {
// 'Author'
preg_match("|BLOG NAME:(.*)|", $ping, $comment_author);
$comment_author = addslashes(trim($comment_author[1]));
$ping = preg_replace('|(\n?BLOG NAME:.*)|', '', $ping);
$comment_email = '';
preg_match("|IP:(.*)|", $ping, $comment_ip);
$comment_ip = trim($comment_ip[1]);
$ping = preg_replace('|(\n?IP:.*)|', '', $ping);
preg_match("|URL:(.*)|", $ping, $comment_url);
$comment_url = addslashes(trim($comment_url[1]));
$ping = preg_replace('|(\n?URL:.*)|', '', $ping);
preg_match("|DATE:(.*)|", $ping, $comment_date);
$comment_date = trim($comment_date[1]);
$comment_date = date('Y-m-d H:i:s', strtotime($comment_date));
$ping = preg_replace('|(\n?DATE:.*)|', '', $ping);
preg_match("|TITLE:(.*)|", $ping, $ping_title);
$ping_title = addslashes(trim($ping_title[1]));
$ping = preg_replace('|(\n?TITLE:.*)|', '', $ping);
$comment_content = addslashes(trim($ping));
$comment_content = str_replace('-----', '', $comment_content);
$comment_content = "<strong>$ping_title</strong>\n\n$comment_content";
// Check if it's already there
if (!$wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_date = '$comment_date' AND comment_content = '$comment_content'")) {
$wpdb->query("INSERT INTO $wpdb->comments (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_content, comment_approved, comment_type)
VALUES
($post_id, '$comment_author', '$comment_email', '$comment_url', '$comment_ip', '$comment_date', '$comment_content', '1', 'trackback')");
echo " Comment added.";
}
}
}
}
echo "</li>";
flush();
} }
upgrade_all();
?>
</ol>
<h3>All done. <a href="../">Have fun!</a></h3>
<?php
break;
}
?>
</body>
</html>

View File

@@ -1,191 +0,0 @@
<?php
define('RSSFILE', '');
// Example:
// define('RSSFILE', '/home/example/public_html/rss.xml');
// or if it's in the same directory as import-rss.php
// define('RSSFILE', 'rss.xml');
$post_author = 1; // Author to import posts as author ID
$timezone_offset = 0; // GMT offset of posts your importing
function unhtmlentities($string) { // From php.net for < 4.3 compat
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
$add_hours = intval($timezone_offset);
$add_minutes = intval(60 * ($timezone_offset - $add_hours));
if (!file_exists('../wp-config.php')) die("There doesn't seem to be a wp-config.php file. You must install WordPress before you import any entries.");
require('../wp-config.php');
$step = $_GET['step'];
if (!$step) $step = 0;
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!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">
<title>WordPress &rsaquo; Import from RSS</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style media="screen" type="text/css">
body {
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 20%;
margin-right: 20%;
}
#logo {
margin: 0;
padding: 0;
background-image: url(http://wordpress.org/images/logo.png);
background-repeat: no-repeat;
height: 60px;
border-bottom: 4px solid #333;
}
#logo a {
display: block;
text-decoration: none;
text-indent: -100em;
height: 60px;
}
p {
line-height: 140%;
}
</style>
</head><body>
<h1 id="logo"><a href="http://wordpress.org/">WordPress</a></h1>
<?php
switch($step) {
case 0:
?>
<p>Howdy! This importer allows you to extract posts from any RSS 2.0 file into your blog. This is useful if you want to import your posts from a system that is not handled by a custom import tool. To get started you must edit the following line in this file (<code>import-rss.php</code>) </p>
<p><code>define('RSSFILE', '');</code></p>
<p>You want to define where the RSS file we'll be working with is, for example: </p>
<p><code>define('RSSFILE', 'rss.xml');</code></p>
<p>You have to do this manually for security reasons. When you're done reload this page and we'll take you to the next step.</p>
<?php if ('' != RSSFILE) : ?>
<h2 style="text-align: right;"><a href="import-rss.php?step=1">Begin RSS Import &raquo;</a></h2>
<?php endif; ?>
<?php
break;
case 1:
// Bring in the data
set_magic_quotes_runtime(0);
$datalines = file(RSSFILE); // Read the file into an array
$importdata = implode('', $datalines); // squish it
$importdata = str_replace(array("\r\n", "\r"), "\n", $importdata);
preg_match_all('|<item>(.*?)</item>|is', $importdata, $posts);
$posts = $posts[1];
echo '<ol>';
foreach ($posts as $post) :
$title = $date = $categories = $content = $post_id = '';
echo "<li>Importing post... ";
preg_match('|<title>(.*?)</title>|is', $post, $title);
$title = addslashes( trim($title[1]) );
$post_name = sanitize_title($title);
preg_match('|<pubdate>(.*?)</pubdate>|is', $post, $date);
if ($date) :
$date = strtotime($date[1]);
else : // if we don't already have something from pubDate
preg_match('|<dc:date>(.*?)</dc:date>|is', $post, $date);
$date = preg_replace('|([-+])([0-9]+):([0-9]+)$|', '\1\2\3', $date[1]);
$date = str_replace('T', ' ', $date);
$date = strtotime($date);
endif;
$post_date = gmdate('Y-m-d H:i:s', $date);
preg_match_all('|<category>(.*?)</category>|is', $post, $categories);
$categories = $categories[1];
if (!$categories) :
preg_match_all('|<dc:subject>(.*?)</dc:subject>|is', $post, $categories);
$categories = $categories[1];
endif;
preg_match('|<guid.+?>(.*?)</guid>|is', $post, $guid);
if ($guid) $guid = addslashes( trim($guid[1]) );
else $guid = '';
preg_match('|<content:encoded>(.*?)</content:encoded>|is', $post, $content);
$content = str_replace( array('<![CDATA[', ']]>'), '', addslashes( trim($content[1]) ) );
if (!$content) : // This is for feeds that put content in description
preg_match('|<description>(.*?)</description>|is', $post, $content);
$content = $wpdb->escape( unhtmlentities( trim($content[1]) ) );
endif;
// Clean up content
$content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $content);
$content = str_replace('<br>', '<br />', $content);
$content = str_replace('<hr>', '<hr />', $content);
// This can mess up on posts with no titles, but checking content is much slower
// So we do it as a last resort
if ('' == $title) :
$dupe = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_content = '$content' AND post_date = '$post_date'");
else :
$dupe = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$title' AND post_date = '$post_date'");
endif;
// Now lets put it in the DB
if ($dupe) :
echo 'Post already imported';
else :
$wpdb->query("INSERT INTO $wpdb->posts
(post_author, post_date, post_date_gmt, post_content, post_title,post_status, comment_status, ping_status, post_name, guid)
VALUES
('$post_author', '$post_date', DATE_ADD('$post_date', INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE), '$content', '$title', 'publish', '$comment_status', '$ping_status', '$post_name', '$guid')");
$post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$title' AND post_date = '$post_date'");
if (!$post_id) die("couldn't get post ID");
if (0 != count($categories)) :
foreach ($categories as $post_category) :
$post_category = unhtmlentities($post_category);
// See if the category exists yet
$cat_id = $wpdb->get_var("SELECT cat_ID from $wpdb->categories WHERE cat_name = '$post_category'");
if (!$cat_id && '' != trim($post_category)) {
$cat_nicename = sanitize_title($post_category);
$wpdb->query("INSERT INTO $wpdb->categories (cat_name, category_nicename) VALUES ('$post_category', '$cat_nicename')");
$cat_id = $wpdb->get_var("SELECT cat_ID from $wpdb->categories WHERE cat_name = '$post_category'");
}
if ('' == trim($post_category)) $cat_id = 1;
// Double check it's not there already
$exists = $wpdb->get_row("SELECT * FROM $wpdb->post2cat WHERE post_id = $post_id AND category_id = $cat_id");
if (!$exists) {
$wpdb->query("
INSERT INTO $wpdb->post2cat
(post_id, category_id)
VALUES
($post_id, $cat_id)
");
}
endforeach;
else:
$exists = $wpdb->get_row("SELECT * FROM $wpdb->post2cat WHERE post_id = $post_id AND category_id = 1");
if (!$exists) $wpdb->query("INSERT INTO $wpdb->post2cat (post_id, category_id) VALUES ($post_id, 1) ");
endif;
echo 'Done!</li>';
endif;
endforeach;
?>
</ol>
<h3>All done. <a href="../">Have fun!</a></h3>
<?php
break;
}
?>
</body>
</html>

View File

@@ -1,138 +0,0 @@
<?php
// For security reasons, fill in the connection details to your Textpattern database below:
$tp_database_name = 'textpattern';
$tp_database_username = 'username';
$tp_database_password = 'password';
$tp_database_host = 'localhost';
if (!file_exists('../wp-config.php')) die("There doesn't seem to be a wp-config.php file. Double check that you updated wp-config-sample.php with the proper database connection information and renamed it to wp-config.php.");
require('../wp-config.php');
require('upgrade-functions.php');
$step = $_GET['step'];
if (!$step) $step = 0;
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!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">
<title>WordPress &rsaquo; Textpattern Import</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style media="screen" type="text/css">
body {
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 15%;
margin-right: 15%;
}
#logo {
margin: 0;
padding: 0;
background-image: url(http://wordpress.org/images/wordpress.gif);
background-repeat: no-repeat;
height: 60px;
border-bottom: 4px solid #333;
}
#logo a {
display: block;
text-decoration: none;
text-indent: -100em;
height: 60px;
}
p {
line-height: 140%;
}
</style>
</head><body>
<h1 id="logo"><a href="http://wordpress.org">WordPress</a></h1>
<?php
switch($step) {
case 0:
?>
<p>This script imports your entries from Textpattern into WordPress. It should be relatively painless, and we hope you're happy with the result.</p>
<p>To run this, you first need to edit this file (<code>import-textpattern.php</code>) and enter your Textpattern database connection details. Let's check if the database connection information works...</p>
<?php
$connection = @mysql_connect($tp_database_host, $tp_database_username, $tp_database_password);
$database = @mysql_select_db($tp_database_name);
if ($connection && $database) {
?>
<p>Everything seems dandy so far, <a href="?step=1">let's get started</a>!</p>
<?php
} else {
?>
<p><em>It looks like your database information is incorrect. Please re-edit this file and double-check all the settings.</em></p>
<?php
}
break;
case 1:
?>
<h1>Step 1</h1>
<p>First let's get posts and comments.</p>
<?php
// For people running this on .72
$query = "ALTER TABLE `$wpdb->posts` ADD `post_name` VARCHAR(200) NOT NULL";
maybe_add_column($wpdb->posts, 'post_name', $query);
// Create post_name field
$connection = @mysql_connect($tp_database_host, $tp_database_username, $tp_database_password);
$database = @mysql_select_db($tp_database_name);
// For now we're going to give everything the same author and same category
$author = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_level = 10 LIMIT 1");
$category = $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories LIMIT 1");
$posts = mysql_query('SELECT * FROM textpattern', $connection);
while ($post = mysql_fetch_array($posts)) {
// ID, AuthorID, LastMod, LastModID, Posted, Title, Body, Body_html, Abstract, Category1, Category2, Annotate, AnnotateInvite, Status, Listing1, Listing2, Section
$posted = $post['Posted'];
// 20030216162119
$year = substr($posted,0,4);
$month = substr($posted,4,2);
$day = substr($posted,6,2);
$hour = substr($posted,8,2);
$minute = substr($posted,10,2);
$second = substr($posted,12,2);
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
$posted = date('Y-m-d H:i:s', $timestamp);
$content = addslashes($post['Body_html']);
$title = addslashes($post['Title']);
$post_name = sanitize_title($title);
$wpdb->query("INSERT INTO $wpdb->posts
(post_author, post_date, post_content, post_title, post_category, post_name, post_status)
VALUES
('$author', '$posted', '$content', '$title', '$category', '$post_name', 'publish')");
// Get wordpress post id
$wp_post_ID = $wpdb->get_var("SELECT ID FROM $wpdb->posts ORDER BY ID DESC LIMIT 1");
// Now let's insert comments if there are any for the TP post
$tp_id = $post['ID'];
$comments = mysql_query("SELECT * FROM txp_Discuss WHERE parentid = $tp_id");
if ($comments) {
while($comment = mysql_fetch_object($comments)) {
// discussid, parentid, name, email, web, ip, posted, message
// For some reason here "posted" is a real MySQL date, so we don't have to do anything about it
// comment_post_ID comment_author comment_author_email comment_author_url comment_author_IP comment_date comment_content comment_karma
$wpdb->query("INSERT INTO $wpdb->comments
(comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_content)
VALUES
($wp_post_ID, '$comment->name', '$comment->email', '$comment->web', '$comment->ip', '$comment->posted', '$comment->message')");
}
}
}
upgrade_all();
?>
<p><strong>All done.</strong> Wasn&#8217;t that fun? <a href="../">Have fun</a>.</p>
<?php
break;
}
?>
</body>
</html>

63
wp-admin/import.php Normal file
View File

@@ -0,0 +1,63 @@
<?php
require_once ('admin.php');
$title = __('Import');
$parent_file = 'edit.php';
require_once ('admin-header.php');
?>
<div class="wrap">
<h2><?php _e('Import'); ?></h2>
<p><?php _e('If you have posts or comments in another system, WordPress can import those into this blog. To get started, choose a system to import from below:'); ?></p>
<?php
// Load all importers so that they can register.
$import_loc = 'wp-admin/import';
$import_root = ABSPATH.$import_loc;
$imports_dir = @ dir($import_root);
if ($imports_dir) {
while (($file = $imports_dir->read()) !== false) {
if ($file{0} == '.') {
continue;
} elseif (substr($file, -4) == '.php') {
require_once($import_root . '/' . $file);
}
}
}
$importers = get_importers();
if (empty ($importers)) {
echo '<p>'.__('No importers are available.').'</p>'; // TODO: make more helpful
} else {
?>
<table class="widefat">
<?php
$style = '';
foreach ($importers as $id => $data) {
$style = ('class="alternate"' == $style || 'class="alternate active"' == $style) ? '' : 'alternate';
$action = "<a href='admin.php?import=$id' title='".wptexturize(strip_tags($data[1]))."'>{$data[0]}</a>";
if ($style != '')
$style = 'class="'.$style.'"';
echo "
<tr $style>
<td class='import-system'>$action</td>
<td class='desc'>{$data[1]}</td>
</tr>";
}
?>
</table>
<?php
}
?>
</div>
<?php
include ('admin-footer.php');
?>

1013
wp-admin/import/blogger.php Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,194 @@
<?php
/* By Shayne Sweeney - http://www.theshayne.com/ */
class BW_Import {
var $file;
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import Blogware').'</h2>';
}
function footer() {
echo '</div>';
}
function unhtmlentities($string) { // From php.net for < 4.3 compat
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
function greet() {
echo '<div class="narrow">';
echo '<p>'.__('Howdy! This importer allows you to extract posts from Blogware XML export file into your blog. Pick a Blogware file to upload and click Import.').'</p>';
wp_import_upload_form("admin.php?import=blogware&amp;step=1");
echo '</div>';
}
function import_posts() {
global $wpdb, $current_user;
set_magic_quotes_runtime(0);
$importdata = file($this->file); // Read the file into an array
$importdata = implode('', $importdata); // squish it
$importdata = str_replace(array ("\r\n", "\r"), "\n", $importdata);
preg_match_all('|(<item[^>]+>(.*?)</item>)|is', $importdata, $posts);
$posts = $posts[1];
unset($importdata);
echo '<ol>';
foreach ($posts as $post) {
flush();
preg_match('|<item type=\"(.*?)\">|is', $post, $post_type);
$post_type = $post_type[1];
if($post_type == "photo") {
preg_match('|<photoFilename>(.*?)</photoFilename>|is', $post, $post_title);
} else {
preg_match('|<title>(.*?)</title>|is', $post, $post_title);
}
$post_title = $wpdb->escape(trim($post_title[1]));
preg_match('|<pubDate>(.*?)</pubDate>|is', $post, $post_date);
$post_date = strtotime($post_date[1]);
$post_date = gmdate('Y-m-d H:i:s', $post_date);
preg_match_all('|<category>(.*?)</category>|is', $post, $categories);
$categories = $categories[1];
$cat_index = 0;
foreach ($categories as $category) {
$categories[$cat_index] = $wpdb->escape($this->unhtmlentities($category));
$cat_index++;
}
if(strcasecmp($post_type, "photo") === 0) {
preg_match('|<sizedPhotoUrl>(.*?)</sizedPhotoUrl>|is', $post, $post_content);
$post_content = '<img src="'.trim($post_content[1]).'" />';
$post_content = $this->unhtmlentities($post_content);
} else {
preg_match('|<body>(.*?)</body>|is', $post, $post_content);
$post_content = str_replace(array ('<![CDATA[', ']]>'), '', trim($post_content[1]));
$post_content = $this->unhtmlentities($post_content);
}
// Clean up content
$post_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_content);
$post_content = str_replace('<br>', '<br />', $post_content);
$post_content = str_replace('<hr>', '<hr />', $post_content);
$post_content = $wpdb->escape($post_content);
$post_author = $current_user->ID;
preg_match('|<postStatus>(.*?)</postStatus>|is', $post, $post_status);
$post_status = trim($post_status[1]);
echo '<li>';
if ($post_id = post_exists($post_title, $post_content, $post_date)) {
printf(__('Post <i>%s</i> already exists.'), stripslashes($post_title));
} else {
printf(__('Importing post <i>%s</i>...'), stripslashes($post_title));
$postdata = compact('post_author', 'post_date', 'post_content', 'post_title', 'post_status');
$post_id = wp_insert_post($postdata);
if (!$post_id) {
_e("Couldn't get post ID");
echo '</li>';
break;
}
if(0 != count($categories))
wp_create_categories($categories, $post_id);
}
preg_match_all('|<comment>(.*?)</comment>|is', $post, $comments);
$comments = $comments[1];
if ( $comments ) {
$comment_post_ID = (int) $post_id;
$num_comments = 0;
foreach ($comments as $comment) {
preg_match('|<body>(.*?)</body>|is', $comment, $comment_content);
$comment_content = str_replace(array ('<![CDATA[', ']]>'), '', trim($comment_content[1]));
$comment_content = $this->unhtmlentities($comment_content);
// Clean up content
$comment_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $comment_content);
$comment_content = str_replace('<br>', '<br />', $comment_content);
$comment_content = str_replace('<hr>', '<hr />', $comment_content);
$comment_content = $wpdb->escape($comment_content);
preg_match('|<pubDate>(.*?)</pubDate>|is', $comment, $comment_date);
$comment_date = trim($comment_date[1]);
$comment_date = date('Y-m-d H:i:s', strtotime($comment_date));
preg_match('|<author>(.*?)</author>|is', $comment, $comment_author);
$comment_author = $wpdb->escape(trim($comment_author[1]));
$comment_author_email = NULL;
$comment_approved = 1;
// Check if it's already there
if (!comment_exists($comment_author, $comment_date)) {
$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_date', 'comment_content', 'comment_approved');
$commentdata = wp_filter_comment($commentdata);
wp_insert_comment($commentdata);
$num_comments++;
}
}
}
if ( $num_comments ) {
echo ' ';
printf(__('(%s comments)'), $num_comments);
}
echo '</li>';
flush();
ob_flush();
}
echo '</ol>';
}
function import() {
$file = wp_import_handle_upload();
if ( isset($file['error']) ) {
echo $file['error'];
return;
}
$this->file = $file['file'];
$this->import_posts();
wp_import_cleanup($file['id']);
echo '<h3>';
printf(__('All done. <a href="%s">Have fun!</a>'), get_option('home'));
echo '</h3>';
}
function dispatch() {
if (empty ($_GET['step']))
$step = 0;
else
$step = (int) $_GET['step'];
$this->header();
switch ($step) {
case 0 :
$this->greet();
break;
case 1 :
$this->import();
break;
}
$this->footer();
}
function BW_Import() {
// Nothing.
}
}
$blogware_import = new BW_Import();
register_importer('blogware', __('Blogware'), __('Import posts from Blogware'), array ($blogware_import, 'dispatch'));
?>

View File

@@ -0,0 +1,756 @@
<?php
/*
* DotClear import plugin
* by Thomas Quinot - http://thomas.quinot.org/
*/
/**
Add These Functions to make our lives easier
**/
if(!function_exists('get_catbynicename'))
{
function get_catbynicename($category_nicename)
{
global $wpdb;
$cat_id -= 0; // force numeric
$name = $wpdb->get_var('SELECT cat_ID FROM '.$wpdb->categories.' WHERE category_nicename="'.$category_nicename.'"');
return $name;
}
}
if(!function_exists('get_comment_count'))
{
function get_comment_count($post_ID)
{
global $wpdb;
return $wpdb->get_var('SELECT count(*) FROM '.$wpdb->comments.' WHERE comment_post_ID = '.$post_ID);
}
}
if(!function_exists('link_cat_exists'))
{
function link_cat_exists($catname)
{
global $wpdb;
return $wpdb->get_var('SELECT cat_id FROM '.$wpdb->linkcategories.' WHERE cat_name = "'.$wpdb->escape($catname).'"');
}
}
if(!function_exists('link_exists'))
{
function link_exists($linkname)
{
global $wpdb;
return $wpdb->get_var('SELECT link_id FROM '.$wpdb->links.' WHERE link_name = "'.$linkname.'"');
}
}
/*
Identify UTF-8 text
Taken from http://www.php.net/manual/fr/function.mb-detect-encoding.php#50087
*/
//
// utf8 encoding validation developed based on Wikipedia entry at:
// http://en.wikipedia.org/wiki/UTF-8
//
// Implemented as a recursive descent parser based on a simple state machine
// copyright 2005 Maarten Meijer
//
// This cries out for a C-implementation to be included in PHP core
//
function valid_1byte($char) {
if(!is_int($char)) return false;
return ($char & 0x80) == 0x00;
}
function valid_2byte($char) {
if(!is_int($char)) return false;
return ($char & 0xE0) == 0xC0;
}
function valid_3byte($char) {
if(!is_int($char)) return false;
return ($char & 0xF0) == 0xE0;
}
function valid_4byte($char) {
if(!is_int($char)) return false;
return ($char & 0xF8) == 0xF0;
}
function valid_nextbyte($char) {
if(!is_int($char)) return false;
return ($char & 0xC0) == 0x80;
}
function valid_utf8($string) {
$len = strlen($string);
$i = 0;
while( $i < $len ) {
$char = ord(substr($string, $i++, 1));
if(valid_1byte($char)) { // continue
continue;
} else if(valid_2byte($char)) { // check 1 byte
if(!valid_nextbyte(ord(substr($string, $i++, 1))))
return false;
} else if(valid_3byte($char)) { // check 2 bytes
if(!valid_nextbyte(ord(substr($string, $i++, 1))))
return false;
if(!valid_nextbyte(ord(substr($string, $i++, 1))))
return false;
} else if(valid_4byte($char)) { // check 3 bytes
if(!valid_nextbyte(ord(substr($string, $i++, 1))))
return false;
if(!valid_nextbyte(ord(substr($string, $i++, 1))))
return false;
if(!valid_nextbyte(ord(substr($string, $i++, 1))))
return false;
} // goto next char
}
return true; // done
}
function csc ($s) {
if (valid_utf8 ($s)) {
return $s;
} else {
return iconv(get_option ("dccharset"),"UTF-8",$s);
}
}
function textconv ($s) {
return csc (preg_replace ('|(?<!<br />)\s*\n|', ' ', $s));
}
/**
The Main Importer Class
**/
class Dotclear_Import {
function header()
{
echo '<div class="wrap">';
echo '<h2>'.__('Import DotClear').'</h2>';
echo '<p>'.__('Steps may take a few minutes depending on the size of your database. Please be patient.').'</p>';
}
function footer()
{
echo '</div>';
}
function greet()
{
echo '<div class="narrow"><p>'.__('Howdy! This importer allows you to extract posts from a DotClear database into your blog. Mileage may vary.').'</p>';
echo '<p>'.__('Your DotClear Configuration settings are as follows:').'</p>';
echo '<form action="admin.php?import=dotclear&amp;step=1" method="post">';
wp_nonce_field('import-dotclear');
$this->db_form();
echo '<p class="submit"><input type="submit" name="submit" value="'.attribute_escape(__('Import Categories &raquo;')).'" /></p>';
echo '</form></div>';
}
function get_dc_cats()
{
global $wpdb;
// General Housekeeping
$dcdb = new wpdb(get_option('dcuser'), get_option('dcpass'), get_option('dcname'), get_option('dchost'));
set_magic_quotes_runtime(0);
$dbprefix = get_option('dcdbprefix');
// Get Categories
return $dcdb->get_results('SELECT * FROM '.$dbprefix.'categorie', ARRAY_A);
}
function get_dc_users()
{
global $wpdb;
// General Housekeeping
$dcdb = new wpdb(get_option('dcuser'), get_option('dcpass'), get_option('dcname'), get_option('dchost'));
set_magic_quotes_runtime(0);
$dbprefix = get_option('dcdbprefix');
// Get Users
return $dcdb->get_results('SELECT * FROM '.$dbprefix.'user', ARRAY_A);
}
function get_dc_posts()
{
// General Housekeeping
$dcdb = new wpdb(get_option('dcuser'), get_option('dcpass'), get_option('dcname'), get_option('dchost'));
set_magic_quotes_runtime(0);
$dbprefix = get_option('dcdbprefix');
// Get Posts
return $dcdb->get_results('SELECT '.$dbprefix.'post.*, '.$dbprefix.'categorie.cat_libelle_url AS post_cat_name
FROM '.$dbprefix.'post INNER JOIN '.$dbprefix.'categorie
ON '.$dbprefix.'post.cat_id = '.$dbprefix.'categorie.cat_id', ARRAY_A);
}
function get_dc_comments()
{
global $wpdb;
// General Housekeeping
$dcdb = new wpdb(get_option('dcuser'), get_option('dcpass'), get_option('dcname'), get_option('dchost'));
set_magic_quotes_runtime(0);
$dbprefix = get_option('dcdbprefix');
// Get Comments
return $dcdb->get_results('SELECT * FROM '.$dbprefix.'comment', ARRAY_A);
}
function get_dc_links()
{
//General Housekeeping
$dcdb = new wpdb(get_option('dcuser'), get_option('dcpass'), get_option('dcname'), get_option('dchost'));
set_magic_quotes_runtime(0);
$dbprefix = get_option('dcdbprefix');
return $dcdb->get_results('SELECT * FROM '.$dbprefix.'link ORDER BY position', ARRAY_A);
}
function cat2wp($categories='')
{
// General Housekeeping
global $wpdb;
$count = 0;
$dccat2wpcat = array();
// Do the Magic
if(is_array($categories))
{
echo '<p>'.__('Importing Categories...').'<br /><br /></p>';
foreach ($categories as $category)
{
$count++;
extract($category);
// Make Nice Variables
$name = $wpdb->escape($cat_libelle_url);
$title = $wpdb->escape(csc ($cat_libelle));
$desc = $wpdb->escape(csc ($cat_desc));
if($cinfo = category_exists($name))
{
$ret_id = wp_insert_category(array('cat_ID' => $cinfo, 'category_nicename' => $name, 'cat_name' => $title, 'category_description' => $desc));
}
else
{
$ret_id = wp_insert_category(array('category_nicename' => $name, 'cat_name' => $title, 'category_description' => $desc));
}
$dccat2wpcat[$id] = $ret_id;
}
// Store category translation for future use
add_option('dccat2wpcat',$dccat2wpcat);
echo '<p>'.sprintf(__('Done! <strong>%1$s</strong> categories imported.'), $count).'<br /><br /></p>';
return true;
}
echo __('No Categories to Import!');
return false;
}
function users2wp($users='')
{
// General Housekeeping
global $wpdb;
$count = 0;
$dcid2wpid = array();
// Midnight Mojo
if(is_array($users))
{
echo '<p>'.__('Importing Users...').'<br /><br /></p>';
foreach($users as $user)
{
$count++;
extract($user);
// Make Nice Variables
$name = $wpdb->escape(csc ($name));
$RealName = $wpdb->escape(csc ($user_pseudo));
if($uinfo = get_userdatabylogin($name))
{
$ret_id = wp_insert_user(array(
'ID' => $uinfo->ID,
'user_login' => $user_id,
'user_nicename' => $Realname,
'user_email' => $user_email,
'user_url' => 'http://',
'display_name' => $Realname)
);
}
else
{
$ret_id = wp_insert_user(array(
'user_login' => $user_id,
'user_nicename' => csc ($user_pseudo),
'user_email' => $user_email,
'user_url' => 'http://',
'display_name' => $Realname)
);
}
$dcid2wpid[$user_id] = $ret_id;
// Set DotClear-to-WordPress permissions translation
// Update Usermeta Data
$user = new WP_User($ret_id);
$wp_perms = $user_level + 1;
if(10 == $wp_perms) { $user->set_role('administrator'); }
else if(9 == $wp_perms) { $user->set_role('editor'); }
else if(5 <= $wp_perms) { $user->set_role('editor'); }
else if(4 <= $wp_perms) { $user->set_role('author'); }
else if(3 <= $wp_perms) { $user->set_role('contributor'); }
else if(2 <= $wp_perms) { $user->set_role('contributor'); }
else { $user->set_role('subscriber'); }
update_usermeta( $ret_id, 'wp_user_level', $wp_perms);
update_usermeta( $ret_id, 'rich_editing', 'false');
update_usermeta( $ret_id, 'first_name', csc ($user_prenom));
update_usermeta( $ret_id, 'last_name', csc ($user_nom));
}// End foreach($users as $user)
// Store id translation array for future use
add_option('dcid2wpid',$dcid2wpid);
echo '<p>'.sprintf(__('Done! <strong>%1$s</strong> users imported.'), $count).'<br /><br /></p>';
return true;
}// End if(is_array($users)
echo __('No Users to Import!');
return false;
}// End function user2wp()
function posts2wp($posts='')
{
// General Housekeeping
global $wpdb;
$count = 0;
$dcposts2wpposts = array();
$cats = array();
// Do the Magic
if(is_array($posts))
{
echo '<p>'.__('Importing Posts...').'<br /><br /></p>';
foreach($posts as $post)
{
$count++;
extract($post);
// Set DotClear-to-WordPress status translation
$stattrans = array(0 => 'draft', 1 => 'publish');
$comment_status_map = array (0 => 'closed', 1 => 'open');
//Can we do this more efficiently?
$uinfo = ( get_userdatabylogin( $user_id ) ) ? get_userdatabylogin( $user_id ) : 1;
$authorid = ( is_object( $uinfo ) ) ? $uinfo->ID : $uinfo ;
$Title = $wpdb->escape(csc ($post_titre));
$post_content = textconv ($post_content);
$post_excerpt = "";
if ($post_chapo != "") {
$post_excerpt = textconv ($post_chapo);
$post_content = $post_excerpt ."\n<!--more-->\n".$post_content;
}
$post_excerpt = $wpdb->escape ($post_excerpt);
$post_content = $wpdb->escape ($post_content);
$post_status = $stattrans[$post_pub];
// Import Post data into WordPress
if($pinfo = post_exists($Title,$post_content))
{
$ret_id = wp_insert_post(array(
'ID' => $pinfo,
'post_author' => $authorid,
'post_date' => $post_dt,
'post_date_gmt' => $post_dt,
'post_modified' => $post_upddt,
'post_modified_gmt' => $post_upddt,
'post_title' => $Title,
'post_content' => $post_content,
'post_excerpt' => $post_excerpt,
'post_status' => $post_status,
'post_name' => $post_titre_url,
'comment_status' => $comment_status_map[$post_open_comment],
'ping_status' => $comment_status_map[$post_open_tb],
'comment_count' => $post_nb_comment + $post_nb_trackback)
);
}
else
{
$ret_id = wp_insert_post(array(
'post_author' => $authorid,
'post_date' => $post_dt,
'post_date_gmt' => $post_dt,
'post_modified' => $post_modified_gmt,
'post_modified_gmt' => $post_modified_gmt,
'post_title' => $Title,
'post_content' => $post_content,
'post_excerpt' => $post_excerpt,
'post_status' => $post_status,
'post_name' => $post_titre_url,
'comment_status' => $comment_status_map[$post_open_comment],
'ping_status' => $comment_status_map[$post_open_tb],
'comment_count' => $post_nb_comment + $post_nb_trackback)
);
}
$dcposts2wpposts[$post_id] = $ret_id;
// Make Post-to-Category associations
$cats = array();
if($cat1 = get_catbynicename($post_cat_name)) { $cats[1] = $cat1; }
if(!empty($cats)) { wp_set_post_categories($ret_id, $cats); }
}
}
// Store ID translation for later use
add_option('dcposts2wpposts',$dcposts2wpposts);
echo '<p>'.sprintf(__('Done! <strong>%1$s</strong> posts imported.'), $count).'<br /><br /></p>';
return true;
}
function comments2wp($comments='')
{
// General Housekeeping
global $wpdb;
$count = 0;
$dccm2wpcm = array();
$postarr = get_option('dcposts2wpposts');
// Magic Mojo
if(is_array($comments))
{
echo '<p>'.__('Importing Comments...').'<br /><br /></p>';
foreach($comments as $comment)
{
$count++;
extract($comment);
// WordPressify Data
$comment_ID = (int) ltrim($comment_id, '0');
$comment_post_ID = (int) $postarr[$post_id];
$comment_approved = "$comment_pub";
$name = $wpdb->escape(csc ($comment_auteur));
$email = $wpdb->escape($comment_email);
$web = "http://".$wpdb->escape($comment_site);
$message = $wpdb->escape(textconv ($comment_content));
if($cinfo = comment_exists($name, $comment_dt))
{
// Update comments
$ret_id = wp_update_comment(array(
'comment_ID' => $cinfo,
'comment_post_ID' => $comment_post_ID,
'comment_author' => $name,
'comment_author_email' => $email,
'comment_author_url' => $web,
'comment_author_IP' => $comment_ip,
'comment_date' => $comment_dt,
'comment_date_gmt' => $comment_dt,
'comment_content' => $message,
'comment_approved' => $comment_approved)
);
}
else
{
// Insert comments
$ret_id = wp_insert_comment(array(
'comment_post_ID' => $comment_post_ID,
'comment_author' => $name,
'comment_author_email' => $email,
'comment_author_url' => $web,
'comment_author_IP' => $comment_ip,
'comment_date' => $comment_dt,
'comment_date_gmt' => $comment_dt,
'comment_content' => $message,
'comment_approved' => $comment_approved)
);
}
$dccm2wpcm[$comment_ID] = $ret_id;
}
// Store Comment ID translation for future use
add_option('dccm2wpcm', $dccm2wpcm);
// Associate newly formed categories with posts
get_comment_count($ret_id);
echo '<p>'.sprintf(__('Done! <strong>%1$s</strong> comments imported.'), $count).'<br /><br /></p>';
return true;
}
echo __('No Comments to Import!');
return false;
}
function links2wp($links='')
{
// General Housekeeping
global $wpdb;
$count = 0;
// Deal with the links
if(is_array($links))
{
echo '<p>'.__('Importing Links...').'<br /><br /></p>';
foreach($links as $link)
{
$count++;
extract($link);
if ($title != "") {
if ($cinfo = link_cat_exists (csc ($title))) {
$category = $cinfo;
} else {
$wpdb->query ("INSERT INTO $wpdb->linkcategories (cat_name) VALUES ('".
$wpdb->escape (csc ($title))."')");
$category = $wpdb->insert_id;
}
} else {
$linkname = $wpdb->escape(csc ($label));
$description = $wpdb->escape(csc ($title));
if($linfo = link_exists($linkname)) {
$ret_id = wp_insert_link(array(
'link_id' => $linfo,
'link_url' => $href,
'link_name' => $linkname,
'link_category' => $category,
'link_description' => $description)
);
} else {
$ret_id = wp_insert_link(array(
'link_url' => $url,
'link_name' => $linkname,
'link_category' => $category,
'link_description' => $description)
);
}
$dclinks2wplinks[$link_id] = $ret_id;
}
}
add_option('dclinks2wplinks',$dclinks2wplinks);
echo '<p>';
printf(__('Done! <strong>%s</strong> links or link categories imported'), $count);
echo '<br /><br /></p>';
return true;
}
echo __('No Links to Import!');
return false;
}
function import_categories()
{
// Category Import
$cats = $this->get_dc_cats();
$this->cat2wp($cats);
add_option('dc_cats', $cats);
echo '<form action="admin.php?import=dotclear&amp;step=2" method="post">';
wp_nonce_field('import-dotclear');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Import Users')));
echo '</form>';
}
function import_users()
{
// User Import
$users = $this->get_dc_users();
$this->users2wp($users);
echo '<form action="admin.php?import=dotclear&amp;step=3" method="post">';
wp_nonce_field('import-dotclear');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Import Posts')));
echo '</form>';
}
function import_posts()
{
// Post Import
$posts = $this->get_dc_posts();
$this->posts2wp($posts);
echo '<form action="admin.php?import=dotclear&amp;step=4" method="post">';
wp_nonce_field('import-dotclear');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Import Comments')));
echo '</form>';
}
function import_comments()
{
// Comment Import
$comments = $this->get_dc_comments();
$this->comments2wp($comments);
echo '<form action="admin.php?import=dotclear&amp;step=5" method="post">';
wp_nonce_field('import-dotclear');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Import Links')));
echo '</form>';
}
function import_links()
{
//Link Import
$links = $this->get_dc_links();
$this->links2wp($links);
add_option('dc_links', $links);
echo '<form action="admin.php?import=dotclear&amp;step=6" method="post">';
wp_nonce_field('import-dotclear');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Finish')));
echo '</form>';
}
function cleanup_dcimport()
{
delete_option('dcdbprefix');
delete_option('dc_cats');
delete_option('dcid2wpid');
delete_option('dccat2wpcat');
delete_option('dcposts2wpposts');
delete_option('dccm2wpcm');
delete_option('dclinks2wplinks');
delete_option('dcuser');
delete_option('dcpass');
delete_option('dcname');
delete_option('dchost');
delete_option('dccharset');
$this->tips();
}
function tips()
{
echo '<p>'.__('Welcome to WordPress. We hope (and expect!) that you will find this platform incredibly rewarding! As a new WordPress user coming from DotClear, there are some things that we would like to point out. Hopefully, they will help your transition go as smoothly as possible.').'</p>';
echo '<h3>'.__('Users').'</h3>';
echo '<p>'.sprintf(__('You have already setup WordPress and have been assigned an administrative login and password. Forget it. You didn\'t have that login in DotClear, why should you have it here? Instead we have taken care to import all of your users into our system. Unfortunately there is one downside. Because both WordPress and DotClear uses a strong encryption hash with passwords, it is impossible to decrypt it and we are forced to assign temporary passwords to all your users. <strong>Every user has the same username, but their passwords are reset to password123.</strong> So <a href="%1$s">Login</a> and change it.'), '/wp-login.php').'</p>';
echo '<h3>'.__('Preserving Authors').'</h3>';
echo '<p>'.__('Secondly, we have attempted to preserve post authors. If you are the only author or contributor to your blog, then you are safe. In most cases, we are successful in this preservation endeavor. However, if we cannot ascertain the name of the writer due to discrepancies between database tables, we assign it to you, the administrative user.').'</p>';
echo '<h3>'.__('Textile').'</h3>';
echo '<p>'.__('Also, since you\'re coming from DotClear, you probably have been using Textile to format your comments and posts. If this is the case, we recommend downloading and installing <a href="http://www.huddledmasses.org/category/development/wordpress/textile/">Textile for WordPress</a>. Trust me... You\'ll want it.').'</p>';
echo '<h3>'.__('WordPress Resources').'</h3>';
echo '<p>'.__('Finally, there are numerous WordPress resources around the internet. Some of them are:').'</p>';
echo '<ul>';
echo '<li>'.__('<a href="http://www.wordpress.org">The official WordPress site</a>').'</li>';
echo '<li>'.__('<a href="http://wordpress.org/support/">The WordPress support forums</a>').'</li>';
echo '<li>'.__('<a href="http://codex.wordpress.org">The Codex (In other words, the WordPress Bible)</a>').'</li>';
echo '</ul>';
echo '<p>'.sprintf(__('That\'s it! What are you waiting for? Go <a href="%1$s">login</a>!'), '../wp-login.php').'</p>';
}
function db_form()
{
echo '<table class="editform">';
printf('<tr><th><label for="dbuser">%s</label></th><td><input type="text" name="dbuser" id="dbuser" /></td></tr>', __('DotClear Database User:'));
printf('<tr><th><label for="dbpass">%s</label></th><td><input type="password" name="dbpass" id="dbpass" /></td></tr>', __('DotClear Database Password:'));
printf('<tr><th><label for="dbname">%s</label></th><td><input type="text" name="dbname" id="dbname" /></td></tr>', __('DotClear Database Name:'));
printf('<tr><th><label for="dbhost">%s</label></th><td><input type="text" name="dbhost" nameid="dbhost" value="localhost" /></td></tr>', __('DotClear Database Host:'));
printf('<tr><th><label for="dbprefix">%s</label></th><td><input type="text" name="dbprefix" id="dbprefix" value="dc_"/></td></tr>', __('DotClear Table prefix:'));
printf('<tr><th><label for="dccharset">%s</label></th><td><input type="text" name="dccharset" id="dccharset" value="ISO-8859-15"/></td></tr>', __('Originating character set:'));
echo '</table>';
}
function dispatch()
{
if (empty ($_GET['step']))
$step = 0;
else
$step = (int) $_GET['step'];
$this->header();
if ( $step > 0 )
{
check_admin_referer('import-dotclear');
if($_POST['dbuser'])
{
if(get_option('dcuser'))
delete_option('dcuser');
add_option('dcuser', sanitize_user($_POST['dbuser'], true));
}
if($_POST['dbpass'])
{
if(get_option('dcpass'))
delete_option('dcpass');
add_option('dcpass', sanitize_user($_POST['dbpass'], true));
}
if($_POST['dbname'])
{
if(get_option('dcname'))
delete_option('dcname');
add_option('dcname', sanitize_user($_POST['dbname'], true));
}
if($_POST['dbhost'])
{
if(get_option('dchost'))
delete_option('dchost');
add_option('dchost', sanitize_user($_POST['dbhost'], true));
}
if($_POST['dccharset'])
{
if(get_option('dccharset'))
delete_option('dccharset');
add_option('dccharset', sanitize_user($_POST['dccharset'], true));
}
if($_POST['dbprefix'])
{
if(get_option('dcdbprefix'))
delete_option('dcdbprefix');
add_option('dcdbprefix', sanitize_user($_POST['dbprefix'], true));
}
}
switch ($step)
{
default:
case 0 :
$this->greet();
break;
case 1 :
$this->import_categories();
break;
case 2 :
$this->import_users();
break;
case 3 :
$this->import_posts();
break;
case 4 :
$this->import_comments();
break;
case 5 :
$this->import_links();
break;
case 6 :
$this->cleanup_dcimport();
break;
}
$this->footer();
}
function Dotclear_Import()
{
// Nothing.
}
}
$dc_import = new Dotclear_Import();
register_importer('dotclear', __('DotClear'), __('Import categories, users, posts, comments, and links from a DotClear blog'), array ($dc_import, 'dispatch'));
?>

View File

@@ -0,0 +1,317 @@
<?php
class GM_Import {
var $gmnames = array ();
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import GreyMatter').'</h2>';
}
function footer() {
echo '</div>';
}
function greet() {
$this->header();
?>
<p><?php _e('This is a basic GreyMatter to WordPress import script.') ?></p>
<p><?php _e('What it does:') ?></p>
<ul>
<li><?php _e('Parses gm-authors.cgi to import (new) authors. Everyone is imported at level 1.') ?></li>
<li><?php _e('Parses the entries cgi files to import posts, comments, and karma on posts (although karma is not used on WordPress yet).<br />If authors are found not to be in gm-authors.cgi, imports them at level 0.') ?></li>
<li><?php _e("Detects duplicate entries or comments. If you don't import everything the first time, or this import should fail in the middle, duplicate entries will not be made when you try again.") ?></li>
</ul>
<p><?php _e('What it does not:') ?></p>
<ul>
<li><?php _e('Parse gm-counter.cgi, gm-banlist.cgi, gm-cplog.cgi (you can make a CP log hack if you really feel like it, but I question the need of a CP log).') ?></li>
<li><?php _e('Import gm-templates.') ?></li>
<li><?php _e("Doesn't keep entries on top.")?></li>
</ul>
<p>&nbsp;</p>
<form name="stepOne" method="get">
<input type="hidden" name="import" value="greymatter" />
<input type="hidden" name="step" value="1" />
<?php wp_nonce_field('import-greymatter'); ?>
<h3><?php _e('Second step: GreyMatter details:') ?></h3>
<p><table cellpadding="0">
<tr>
<td><?php _e('Path to GM files:') ?></td>
<td><input type="text" style="width:300px" name="gmpath" value="/home/my/site/cgi-bin/greymatter/" /></td>
</tr>
<tr>
<td><?php _e('Path to GM entries:') ?></td>
<td><input type="text" style="width:300px" name="archivespath" value="/home/my/site/cgi-bin/greymatter/archives/" /></td>
</tr>
<tr>
<td colspan="2"><br /><?php _e("This importer will search for files 00000001.cgi to 000-whatever.cgi,<br />so you need to enter the number of the last GM post here.<br />(if you don't know that number, just log into your FTP and look it out<br />in the entries' folder)") ?></td>
</tr>
<tr>
<td><?php _e("Last entry's number:") ?></td>
<td><input type="text" name="lastentry" value="00000001" /></td>
</tr>
</table>
</p>
<p><?php _e("When you're ready, click OK to start importing: ") ?><input type="submit" name="submit" value="<?php _e('OK') ?>" class="search" /></p>
</form>
<p>&nbsp</p>
<?php
$this->footer();
}
function gm2autobr($string) { // transforms GM's |*| into b2's <br />\n
$string = str_replace("|*|","<br />\n",$string);
return($string);
}
function import() {
global $wpdb;
$wpvarstoreset = array('gmpath', 'archivespath', 'lastentry');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
if (!chdir($archivespath))
wp_die(__("Wrong path, the path to the GM entries does not exist on the server"));
if (!chdir($gmpath))
wp_die(__("Wrong path, the path to the GM files does not exist on the server"));
$lastentry = (int) $lastentry;
$this->header();
?>
<p><?php _e('The importer is running...') ?></p>
<ul>
<li><?php _e('importing users...') ?><ul><?php
chdir($gmpath);
$userbase = file("gm-authors.cgi");
foreach($userbase as $user) {
$userdata=explode("|", $user);
$user_ip="127.0.0.1";
$user_domain="localhost";
$user_browser="server";
$s=$userdata[4];
$user_joindate=substr($s,6,4)."-".substr($s,0,2)."-".substr($s,3,2)." 00:00:00";
$user_login=$wpdb->escape($userdata[0]);
$pass1=$wpdb->escape($userdata[1]);
$user_nickname=$wpdb->escape($userdata[0]);
$user_email=$wpdb->escape($userdata[2]);
$user_url=$wpdb->escape($userdata[3]);
$user_joindate=$wpdb->escape($user_joindate);
$user_id = username_exists($user_login);
if ($user_id) {
printf('<li>'.__('user %s').'<strong>'.__('Already exists').'</strong></li>', "<em>$user_login</em>");
$this->gmnames[$userdata[0]] = $user_id;
continue;
}
$user_info = array("user_login"=>"$user_login", "user_pass"=>"$pass1", "user_nickname"=>"$user_nickname", "user_email"=>"$user_email", "user_url"=>"$user_url", "user_ip"=>"$user_ip", "user_domain"=>"$user_domain", "user_browser"=>"$user_browser", "dateYMDhour"=>"$user_joindate", "user_level"=>"1", "user_idmode"=>"nickname");
$user_id = wp_insert_user($user_info);
$this->gmnames[$userdata[0]] = $user_id;
printf('<li>'.__('user %s...').' <strong>'.__('Done').'</strong></li>', "<em>$user_login</em>");
}
?></ul><strong><?php _e('Done') ?></strong></li>
<li><?php _e('importing posts, comments, and karma...') ?><br /><ul><?php
chdir($archivespath);
for($i = 0; $i <= $lastentry; $i = $i + 1) {
$entryfile = "";
if ($i<10000000) {
$entryfile .= "0";
if ($i<1000000) {
$entryfile .= "0";
if ($i<100000) {
$entryfile .= "0";
if ($i<10000) {
$entryfile .= "0";
if ($i<1000) {
$entryfile .= "0";
if ($i<100) {
$entryfile .= "0";
if ($i<10) {
$entryfile .= "0";
}}}}}}}
$entryfile .= "$i";
if (is_file($entryfile.".cgi")) {
$entry=file($entryfile.".cgi");
$postinfo=explode("|",$entry[0]);
$postmaincontent=$this->gm2autobr($entry[2]);
$postmorecontent=$this->gm2autobr($entry[3]);
$post_author=trim($wpdb->escape($postinfo[1]));
$post_title=$this->gm2autobr($postinfo[2]);
printf('<li>'.__('entry # %s : %s : by %s'), $entryfile, $post_title, $postinfo[1]);
$post_title=$wpdb->escape($post_title);
$postyear=$postinfo[6];
$postmonth=zeroise($postinfo[4],2);
$postday=zeroise($postinfo[5],2);
$posthour=zeroise($postinfo[7],2);
$postminute=zeroise($postinfo[8],2);
$postsecond=zeroise($postinfo[9],2);
if (($postinfo[10]=="PM") && ($posthour!="12"))
$posthour=$posthour+12;
$post_date="$postyear-$postmonth-$postday $posthour:$postminute:$postsecond";
$post_content=$postmaincontent;
if (strlen($postmorecontent)>3)
$post_content .= "<!--more--><br /><br />".$postmorecontent;
$post_content=$wpdb->escape($post_content);
$post_karma=$postinfo[12];
$post_status = 'publish'; //in greymatter, there are no drafts
$comment_status = 'open';
$ping_status = 'closed';
if ($post_ID = post_exists($post_title, '', $post_date)) {
echo ' ';
_e('(already exists)');
} else {
//just so that if a post already exists, new users are not created by checkauthor
// we'll check the author is registered, or if it's a deleted author
$user_id = username_exists($post_author);
if (!$user_id) { // if deleted from GM, we register the author as a level 0 user
$user_ip="127.0.0.1";
$user_domain="localhost";
$user_browser="server";
$user_joindate="1979-06-06 00:41:00";
$user_login=$wpdb->escape($post_author);
$pass1=$wpdb->escape("password");
$user_nickname=$wpdb->escape($post_author);
$user_email=$wpdb->escape("user@deleted.com");
$user_url=$wpdb->escape("");
$user_joindate=$wpdb->escape($user_joindate);
$user_info = array("user_login"=>$user_login, "user_pass"=>$pass1, "user_nickname"=>$user_nickname, "user_email"=>$user_email, "user_url"=>$user_url, "user_ip"=>$user_ip, "user_domain"=>$user_domain, "user_browser"=>$user_browser, "dateYMDhour"=>$user_joindate, "user_level"=>0, "user_idmode"=>"nickname");
$user_id = wp_insert_user($user_info);
$this->gmnames[$postinfo[1]] = $user_id;
echo ': ';
printf(__('registered deleted user %s at level 0 '), "<em>$user_login</em>");
}
if (array_key_exists($postinfo[1], $this->gmnames)) {
$post_author = $this->gmnames[$postinfo[1]];
} else {
$post_author = $user_id;
}
$postdata = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_excerpt', 'post_status', 'comment_status', 'ping_status', 'post_modified', 'post_modified_gmt');
$post_ID = wp_insert_post($postdata);
}
$c=count($entry);
if ($c>4) {
$numAddedComments = 0;
$numComments = 0;
for ($j=4;$j<$c;$j++) {
$entry[$j]=$this->gm2autobr($entry[$j]);
$commentinfo=explode("|",$entry[$j]);
$comment_post_ID=$post_ID;
$comment_author=$wpdb->escape($commentinfo[0]);
$comment_author_email=$wpdb->escape($commentinfo[2]);
$comment_author_url=$wpdb->escape($commentinfo[3]);
$comment_author_IP=$wpdb->escape($commentinfo[1]);
$commentyear=$commentinfo[7];
$commentmonth=zeroise($commentinfo[5],2);
$commentday=zeroise($commentinfo[6],2);
$commenthour=zeroise($commentinfo[8],2);
$commentminute=zeroise($commentinfo[9],2);
$commentsecond=zeroise($commentinfo[10],2);
if (($commentinfo[11]=="PM") && ($commenthour!="12"))
$commenthour=$commenthour+12;
$comment_date="$commentyear-$commentmonth-$commentday $commenthour:$commentminute:$commentsecond";
$comment_content=$wpdb->escape($commentinfo[12]);
if (!comment_exists($comment_author, $comment_date)) {
$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_url', 'comment_author_email', 'comment_author_IP', 'comment_date', 'comment_content', 'comment_approved');
$commentdata = wp_filter_comment($commentdata);
wp_insert_comment($commentdata);
$numAddedComments++;
}
$numComments++;
}
if ($numAddedComments > 0) {
echo ': ';
printf(__('imported %d comment(s)'), $numAddedComments);
}
$preExisting = $numComments - numAddedComments;
if ($preExisting > 0) {
echo ' ';
printf(__('ignored %d pre-existing comments'), $preExisting);
}
}
echo '... <strong>'.__('Done').'</strong></li>';
}
}
?>
</ul><strong><?php _e('Done') ?></strong></li></ul>
<p>&nbsp;</p>
<p><?php _e('Completed GreyMatter import!') ?></p>
<?php
$this->footer();
}
function dispatch() {
if (empty ($_GET['step']))
$step = 0;
else
$step = (int) $_GET['step'];
switch ($step) {
case 0 :
$this->greet();
break;
case 1:
check_admin_referer('import-greymatter');
$this->import();
break;
}
}
function GM_Import() {
// Nothing.
}
}
$gm_import = new GM_Import();
register_importer('greymatter', __('GreyMatter'), __('Import users, posts, and comments from a Greymatter blog'), array ($gm_import, 'dispatch'));
?>

View File

@@ -0,0 +1,172 @@
<?php
class LJ_Import {
var $file;
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import LiveJournal').'</h2>';
}
function footer() {
echo '</div>';
}
function unhtmlentities($string) { // From php.net for < 4.3 compat
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
function greet() {
echo '<div class="narrow">';
echo '<p>'.__('Howdy! Upload your LiveJournal XML export file and we&#8217;ll import the posts into this blog.').'</p>';
echo '<p>'.__('Choose a LiveJournal XML file to upload, then click Upload file and import.').'</p>';
wp_import_upload_form("admin.php?import=livejournal&amp;step=1");
echo '</div>';
}
function import_posts() {
global $wpdb, $current_user;
set_magic_quotes_runtime(0);
$importdata = file($this->file); // Read the file into an array
$importdata = implode('', $importdata); // squish it
$importdata = str_replace(array ("\r\n", "\r"), "\n", $importdata);
preg_match_all('|<entry>(.*?)</entry>|is', $importdata, $posts);
$posts = $posts[1];
unset($importdata);
echo '<ol>';
foreach ($posts as $post) {
preg_match('|<subject>(.*?)</subject>|is', $post, $post_title);
$post_title = $wpdb->escape(trim($post_title[1]));
if ( empty($post_title) ) {
preg_match('|<itemid>(.*?)</itemid>|is', $post, $post_title);
$post_title = $wpdb->escape(trim($post_title[1]));
}
preg_match('|<eventtime>(.*?)</eventtime>|is', $post, $post_date);
$post_date = strtotime($post_date[1]);
$post_date = gmdate('Y-m-d H:i:s', $post_date);
preg_match('|<event>(.*?)</event>|is', $post, $post_content);
$post_content = str_replace(array ('<![CDATA[', ']]>'), '', trim($post_content[1]));
$post_content = $this->unhtmlentities($post_content);
// Clean up content
$post_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_content);
$post_content = str_replace('<br>', '<br />', $post_content);
$post_content = str_replace('<hr>', '<hr />', $post_content);
$post_content = $wpdb->escape($post_content);
$post_author = $current_user->ID;
$post_status = 'publish';
echo '<li>';
if ($post_id = post_exists($post_title, $post_content, $post_date)) {
printf(__('Post <i>%s</i> already exists.'), stripslashes($post_title));
} else {
printf(__('Importing post <i>%s</i>...'), stripslashes($post_title));
$postdata = compact('post_author', 'post_date', 'post_content', 'post_title', 'post_status');
$post_id = wp_insert_post($postdata);
if (!$post_id) {
_e("Couldn't get post ID");
echo '</li>';
break;
}
}
preg_match_all('|<comment>(.*?)</comment>|is', $post, $comments);
$comments = $comments[1];
if ( $comments ) {
$comment_post_ID = (int) $post_id;
$num_comments = 0;
foreach ($comments as $comment) {
preg_match('|<event>(.*?)</event>|is', $comment, $comment_content);
$comment_content = str_replace(array ('<![CDATA[', ']]>'), '', trim($comment_content[1]));
$comment_content = $this->unhtmlentities($comment_content);
// Clean up content
$comment_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $comment_content);
$comment_content = str_replace('<br>', '<br />', $comment_content);
$comment_content = str_replace('<hr>', '<hr />', $comment_content);
$comment_content = $wpdb->escape($comment_content);
preg_match('|<eventtime>(.*?)</eventtime>|is', $comment, $comment_date);
$comment_date = trim($comment_date[1]);
$comment_date = date('Y-m-d H:i:s', strtotime($comment_date));
preg_match('|<name>(.*?)</name>|is', $comment, $comment_author);
$comment_author = $wpdb->escape(trim($comment_author[1]));
preg_match('|<email>(.*?)</email>|is', $comment, $comment_author_email);
$comment_author_email = $wpdb->escape(trim($comment_author_email[1]));
$comment_approved = 1;
// Check if it's already there
if (!comment_exists($comment_author, $comment_date)) {
$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_date', 'comment_content', 'comment_approved');
$commentdata = wp_filter_comment($commentdata);
wp_insert_comment($commentdata);
$num_comments++;
}
}
}
if ( $num_comments ) {
echo ' ';
printf(__('(%s comments)'), $num_comments);
}
echo '</li>';
}
echo '</ol>';
}
function import() {
$file = wp_import_handle_upload();
if ( isset($file['error']) ) {
echo $file['error'];
return;
}
$this->file = $file['file'];
$this->import_posts();
wp_import_cleanup($file['id']);
echo '<h3>';
printf(__('All done. <a href="%s">Have fun!</a>'), get_option('home'));
echo '</h3>';
}
function dispatch() {
if (empty ($_GET['step']))
$step = 0;
else
$step = (int) $_GET['step'];
$this->header();
switch ($step) {
case 0 :
$this->greet();
break;
case 1 :
check_admin_referer('import-upload');
$this->import();
break;
}
$this->footer();
}
function LJ_Import() {
// Nothing.
}
}
$livejournal_import = new LJ_Import();
register_importer('livejournal', __('LiveJournal'), __('Import posts from a LiveJournal XML export file'), array ($livejournal_import, 'dispatch'));
?>

439
wp-admin/import/mt.php Normal file
View File

@@ -0,0 +1,439 @@
<?php
class MT_Import {
var $posts = array ();
var $file;
var $id;
var $mtnames = array ();
var $newauthornames = array ();
var $j = -1;
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import Movable Type or TypePad').'</h2>';
}
function footer() {
echo '</div>';
}
function greet() {
$this->header();
?>
<div class="narrow">
<p><?php _e('Howdy! We&#8217;re about to begin importing all of your Movable Type or Typepad entries into WordPress. To begin, choose a file to upload and click Upload file and import.'); ?></p>
<?php wp_import_upload_form( add_query_arg('step', 1) ); ?>
<p><?php _e('The importer is smart enough not to import duplicates, so you can run this multiple times without worry if&#8212;for whatever reason&#8212;it doesn\'t finish. If you get an <strong>out of memory</strong> error try splitting up the import file into pieces.'); ?> </p>
</div>
<?php
$this->footer();
}
function users_form($n) {
global $wpdb, $testing;
$users = $wpdb->get_results("SELECT * FROM $wpdb->users ORDER BY ID");
?><select name="userselect[<?php echo $n; ?>]">
<option value="#NONE#"><?php _e('- Select -') ?></option>
<?php
foreach ($users as $user) {
echo '<option value="'.$user->user_login.'">'.$user->user_login.'</option>';
}
?>
</select>
<?php
}
//function to check the authorname and do the mapping
function checkauthor($author) {
global $wpdb;
//mtnames is an array with the names in the mt import file
$pass = 'changeme';
if (!(in_array($author, $this->mtnames))) { //a new mt author name is found
++ $this->j;
$this->mtnames[$this->j] = $author; //add that new mt author name to an array
$user_id = username_exists($this->newauthornames[$this->j]); //check if the new author name defined by the user is a pre-existing wp user
if (!$user_id) { //banging my head against the desk now.
if ($newauthornames[$this->j] == 'left_blank') { //check if the user does not want to change the authorname
$user_id = wp_create_user($author, $pass);
$this->newauthornames[$this->j] = $author; //now we have a name, in the place of left_blank.
} else {
$user_id = wp_create_user($this->newauthornames[$this->j], $pass);
}
} else {
return $user_id; // return pre-existing wp username if it exists
}
} else {
$key = array_search($author, $this->mtnames); //find the array key for $author in the $mtnames array
$user_id = username_exists($this->newauthornames[$key]); //use that key to get the value of the author's name from $newauthornames
}
return $user_id;
}
function get_entries() {
set_magic_quotes_runtime(0);
$importdata = file($this->file); // Read the file into an array
$importdata = implode('', $importdata); // squish it
$importdata = preg_replace("/(\r\n|\n|\r)/", "\n", $importdata);
$importdata = preg_replace("/\n--------\n/", "--MT-ENTRY--\n", $importdata);
$this->posts = explode("--MT-ENTRY--", $importdata);
}
function get_mt_authors() {
$temp = array ();
$i = -1;
foreach ($this->posts as $post) {
if ('' != trim($post)) {
++ $i;
preg_match("|AUTHOR:(.*)|", $post, $thematch);
$thematch = trim($thematch[1]);
array_push($temp, "$thematch"); //store the extracted author names in a temporary array
}
}
//we need to find unique values of author names, while preserving the order, so this function emulates the unique_value(); php function, without the sorting.
$authors[0] = array_shift($temp);
$y = count($temp) + 1;
for ($x = 1; $x < $y; $x ++) {
$next = array_shift($temp);
if (!(in_array($next, $authors)))
array_push($authors, "$next");
}
return $authors;
}
function get_authors_from_post() {
$formnames = array ();
$selectnames = array ();
foreach ($_POST['user'] as $key => $line) {
$newname = trim(stripslashes($line));
if ($newname == '')
$newname = 'left_blank'; //passing author names from step 1 to step 2 is accomplished by using POST. left_blank denotes an empty entry in the form.
array_push($formnames, "$newname");
} // $formnames is the array with the form entered names
foreach ($_POST['userselect'] as $user => $key) {
$selected = trim(stripslashes($key));
array_push($selectnames, "$selected");
}
$count = count($formnames);
for ($i = 0; $i < $count; $i ++) {
if ($selectnames[$i] != '#NONE#') { //if no name was selected from the select menu, use the name entered in the form
array_push($this->newauthornames, "$selectnames[$i]");
} else {
array_push($this->newauthornames, "$formnames[$i]");
}
}
}
function mt_authors_form() {
?>
<div class="wrap">
<h2><?php _e('Assign Authors'); ?></h2>
<p><?php _e('To make it easier for you to edit and save the imported posts and drafts, you may want to change the name of the author of the posts. For example, you may want to import all the entries as <code>admin</code>s entries.'); ?></p>
<p><?php _e('Below, you can see the names of the authors of the MovableType posts in <i>italics</i>. For each of these names, you can either pick an author in your WordPress installation from the menu, or enter a name for the author in the textbox.'); ?></p>
<p><?php _e('If a new user is created by WordPress, the password will be set, by default, to "changeme". Quite suggestive, eh? ;)'); ?></p>
<?php
$authors = $this->get_mt_authors();
echo '<ol id="authors">';
echo '<form action="?import=mt&amp;step=2&amp;id=' . $this->id . '" method="post">';
wp_nonce_field('import-mt');
$j = -1;
foreach ($authors as $author) {
++ $j;
echo '<li>'.__('Current author:').' <strong>'.$author.'</strong><br />'.sprintf(__('Create user %1$s or map to existing'), ' <input type="text" value="'.$author.'" name="'.'user[]'.'" maxlength="30"> <br />');
$this->users_form($j);
echo '</li>';
}
echo '<input type="submit" value="'.__('Submit').'">'.'<br/>';
echo '</form>';
echo '</ol></div>';
}
function select_authors() {
$file = wp_import_handle_upload();
if ( isset($file['error']) ) {
$this->header();
echo '<p>'.__('Sorry, there has been an error').'.</p>';
echo '<p><strong>' . $file['error'] . '</strong></p>';
$this->footer();
return;
}
$this->file = $file['file'];
$this->id = (int) $file['id'];
$this->get_entries();
$this->mt_authors_form();
}
function process_posts() {
global $wpdb;
$i = -1;
echo "<div class='wrap'><ol>";
foreach ($this->posts as $post) {
if ('' != trim($post)) {
++ $i;
unset ($post_categories);
// Take the pings out first
preg_match("|(-----\n\nPING:.*)|s", $post, $pings);
$post = preg_replace("|(-----\n\nPING:.*)|s", '', $post);
// Then take the comments out
preg_match("|(-----\nCOMMENT:.*)|s", $post, $comments);
$post = preg_replace("|(-----\nCOMMENT:.*)|s", '', $post);
// We ignore the keywords
$post = preg_replace("|(-----\nKEYWORDS:.*)|s", '', $post);
// We want the excerpt
preg_match("|-----\nEXCERPT:(.*)|s", $post, $excerpt);
$post_excerpt = $wpdb->escape(trim($excerpt[1]));
$post = preg_replace("|(-----\nEXCERPT:.*)|s", '', $post);
// We're going to put extended body into main body with a more tag
preg_match("|-----\nEXTENDED BODY:(.*)|s", $post, $extended);
$extended = trim($extended[1]);
if ('' != $extended)
$extended = "\n<!--more-->\n$extended";
$post = preg_replace("|(-----\nEXTENDED BODY:.*)|s", '', $post);
// Now for the main body
preg_match("|-----\nBODY:(.*)|s", $post, $body);
$body = trim($body[1]);
$post_content = $wpdb->escape($body.$extended);
$post = preg_replace("|(-----\nBODY:.*)|s", '', $post);
// Grab the metadata from what's left
$metadata = explode("\n", $post);
foreach ($metadata as $line) {
preg_match("/^(.*?):(.*)/", $line, $token);
$key = trim($token[1]);
$value = trim($token[2]);
// Now we decide what it is and what to do with it
switch ($key) {
case '' :
break;
case 'AUTHOR' :
$post_author = $value;
break;
case 'TITLE' :
$post_title = $wpdb->escape($value);
break;
case 'STATUS' :
// "publish" and "draft" enumeration items match up; no change required
$post_status = $value;
if (empty ($post_status))
$post_status = 'publish';
break;
case 'ALLOW COMMENTS' :
$post_allow_comments = $value;
if ($post_allow_comments == 1) {
$comment_status = 'open';
} else {
$comment_status = 'closed';
}
break;
case 'CONVERT BREAKS' :
$post_convert_breaks = $value;
break;
case 'ALLOW PINGS' :
$ping_status = trim($meta[2][0]);
if ($ping_status == 1) {
$ping_status = 'open';
} else {
$ping_status = 'closed';
}
break;
case 'PRIMARY CATEGORY' :
if (! empty ($value) )
$post_categories[] = $wpdb->escape($value);
break;
case 'CATEGORY' :
if (! empty ($value) )
$post_categories[] = $wpdb->escape($value);
break;
case 'DATE' :
$post_modified = strtotime($value);
$post_modified = date('Y-m-d H:i:s', $post_modified);
$post_modified_gmt = get_gmt_from_date("$post_modified");
$post_date = $post_modified;
$post_date_gmt = $post_modified_gmt;
break;
default :
// echo "\n$key: $value";
break;
} // end switch
} // End foreach
// Let's check to see if it's in already
if ($post_id = post_exists($post_title, '', $post_date)) {
echo '<li>';
printf(__('Post <i>%s</i> already exists.'), stripslashes($post_title));
} else {
echo '<li>';
printf(__('Importing post <i>%s</i>...'), stripslashes($post_title));
$post_author = $this->checkauthor($post_author); //just so that if a post already exists, new users are not created by checkauthor
$postdata = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_excerpt', 'post_status', 'comment_status', 'ping_status', 'post_modified', 'post_modified_gmt');
$post_id = wp_insert_post($postdata);
// Add categories.
if (0 != count($post_categories)) {
wp_create_categories($post_categories, $post_id);
}
}
$comment_post_ID = (int) $post_id;
$comment_approved = 1;
// Now for comments
$comments = explode("-----\nCOMMENT:", $comments[0]);
$num_comments = 0;
foreach ($comments as $comment) {
if ('' != trim($comment)) {
// Author
preg_match("|AUTHOR:(.*)|", $comment, $comment_author);
$comment_author = $wpdb->escape(trim($comment_author[1]));
$comment = preg_replace('|(\n?AUTHOR:.*)|', '', $comment);
preg_match("|EMAIL:(.*)|", $comment, $comment_author_email);
$comment_author_email = $wpdb->escape(trim($comment_author_email[1]));
$comment = preg_replace('|(\n?EMAIL:.*)|', '', $comment);
preg_match("|IP:(.*)|", $comment, $comment_author_IP);
$comment_author_IP = trim($comment_author_IP[1]);
$comment = preg_replace('|(\n?IP:.*)|', '', $comment);
preg_match("|URL:(.*)|", $comment, $comment_author_url);
$comment_author_url = $wpdb->escape(trim($comment_author_url[1]));
$comment = preg_replace('|(\n?URL:.*)|', '', $comment);
preg_match("|DATE:(.*)|", $comment, $comment_date);
$comment_date = trim($comment_date[1]);
$comment_date = date('Y-m-d H:i:s', strtotime($comment_date));
$comment = preg_replace('|(\n?DATE:.*)|', '', $comment);
$comment_content = $wpdb->escape(trim($comment));
$comment_content = str_replace('-----', '', $comment_content);
// Check if it's already there
if (!comment_exists($comment_author, $comment_date)) {
$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_url', 'comment_author_email', 'comment_author_IP', 'comment_date', 'comment_content', 'comment_approved');
$commentdata = wp_filter_comment($commentdata);
wp_insert_comment($commentdata);
$num_comments++;
}
}
}
if ( $num_comments )
printf(' '.__('(%s comments)'), $num_comments);
// Finally the pings
// fix the double newline on the first one
$pings[0] = str_replace("-----\n\n", "-----\n", $pings[0]);
$pings = explode("-----\nPING:", $pings[0]);
$num_pings = 0;
foreach ($pings as $ping) {
if ('' != trim($ping)) {
// 'Author'
preg_match("|BLOG NAME:(.*)|", $ping, $comment_author);
$comment_author = $wpdb->escape(trim($comment_author[1]));
$ping = preg_replace('|(\n?BLOG NAME:.*)|', '', $ping);
preg_match("|IP:(.*)|", $ping, $comment_author_IP);
$comment_author_IP = trim($comment_author_IP[1]);
$ping = preg_replace('|(\n?IP:.*)|', '', $ping);
preg_match("|URL:(.*)|", $ping, $comment_author_url);
$comment_author_url = $wpdb->escape(trim($comment_author_url[1]));
$ping = preg_replace('|(\n?URL:.*)|', '', $ping);
preg_match("|DATE:(.*)|", $ping, $comment_date);
$comment_date = trim($comment_date[1]);
$comment_date = date('Y-m-d H:i:s', strtotime($comment_date));
$ping = preg_replace('|(\n?DATE:.*)|', '', $ping);
preg_match("|TITLE:(.*)|", $ping, $ping_title);
$ping_title = $wpdb->escape(trim($ping_title[1]));
$ping = preg_replace('|(\n?TITLE:.*)|', '', $ping);
$comment_content = $wpdb->escape(trim($ping));
$comment_content = str_replace('-----', '', $comment_content);
$comment_content = "<strong>$ping_title</strong>\n\n$comment_content";
$comment_type = 'trackback';
// Check if it's already there
if (!comment_exists($comment_author, $comment_date)) {
$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_url', 'comment_author_email', 'comment_author_IP', 'comment_date', 'comment_content', 'comment_type', 'comment_approved');
$commentdata = wp_filter_comment($commentdata);
wp_insert_comment($commentdata);
$num_pings++;
}
}
}
if ( $num_pings )
printf(' '.__('(%s pings)'), $num_pings);
echo "</li>";
}
}
echo '</ol>';
wp_import_cleanup($this->id);
echo '<h3>'.sprintf(__('All done. <a href="%s">Have fun!</a>'), get_option('home')).'</h3></div>';
}
function import() {
$this->id = (int) $_GET['id'];
$this->file = get_attached_file($this->id);
$this->get_authors_from_post();
$this->get_entries();
$this->process_posts();
}
function dispatch() {
if (empty ($_GET['step']))
$step = 0;
else
$step = (int) $_GET['step'];
switch ($step) {
case 0 :
$this->greet();
break;
case 1 :
check_admin_referer('import-upload');
$this->select_authors();
break;
case 2:
check_admin_referer('import-mt');
$this->import();
break;
}
}
function MT_Import() {
// Nothing.
}
}
$mt_import = new MT_Import();
register_importer('mt', __('Movable Type and TypePad'), __('Import posts and comments from a Movable Type or Typepad blog'), array ($mt_import, 'dispatch'));
?>

175
wp-admin/import/rss.php Normal file
View File

@@ -0,0 +1,175 @@
<?php
class RSS_Import {
var $posts = array ();
var $file;
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import RSS').'</h2>';
}
function footer() {
echo '</div>';
}
function unhtmlentities($string) { // From php.net for < 4.3 compat
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
function greet() {
echo '<div class="narrow">';
echo '<p>'.__('Howdy! This importer allows you to extract posts from an RSS 2.0 file into your blog. This is useful if you want to import your posts from a system that is not handled by a custom import tool. Pick an RSS file to upload and click Import.').'</p>';
wp_import_upload_form("admin.php?import=rss&amp;step=1");
echo '</div>';
}
function get_posts() {
global $wpdb;
set_magic_quotes_runtime(0);
$datalines = file($this->file); // Read the file into an array
$importdata = implode('', $datalines); // squish it
$importdata = str_replace(array ("\r\n", "\r"), "\n", $importdata);
preg_match_all('|<item>(.*?)</item>|is', $importdata, $this->posts);
$this->posts = $this->posts[1];
$index = 0;
foreach ($this->posts as $post) {
preg_match('|<title>(.*?)</title>|is', $post, $post_title);
$post_title = str_replace(array('<![CDATA[', ']]>'), '', $wpdb->escape( trim($post_title[1]) ));
preg_match('|<pubdate>(.*?)</pubdate>|is', $post, $post_date_gmt);
if ($post_date_gmt) {
$post_date_gmt = strtotime($post_date_gmt[1]);
} else {
// if we don't already have something from pubDate
preg_match('|<dc:date>(.*?)</dc:date>|is', $post, $post_date_gmt);
$post_date_gmt = preg_replace('|([-+])([0-9]+):([0-9]+)$|', '\1\2\3', $post_date_gmt[1]);
$post_date_gmt = str_replace('T', ' ', $post_date_gmt);
$post_date_gmt = strtotime($post_date_gmt);
}
$post_date_gmt = gmdate('Y-m-d H:i:s', $post_date_gmt);
$post_date = get_date_from_gmt( $post_date_gmt );
preg_match_all('|<category>(.*?)</category>|is', $post, $categories);
$categories = $categories[1];
if (!$categories) {
preg_match_all('|<dc:subject>(.*?)</dc:subject>|is', $post, $categories);
$categories = $categories[1];
}
$cat_index = 0;
foreach ($categories as $category) {
$categories[$cat_index] = $wpdb->escape($this->unhtmlentities($category));
$cat_index++;
}
preg_match('|<guid.+?>(.*?)</guid>|is', $post, $guid);
if ($guid)
$guid = $wpdb->escape(trim($guid[1]));
else
$guid = '';
preg_match('|<content:encoded>(.*?)</content:encoded>|is', $post, $post_content);
$post_content = str_replace(array ('<![CDATA[', ']]>'), '', $wpdb->escape(trim($post_content[1])));
if (!$post_content) {
// This is for feeds that put content in description
preg_match('|<description>(.*?)</description>|is', $post, $post_content);
$post_content = $wpdb->escape($this->unhtmlentities(trim($post_content[1])));
}
// Clean up content
$post_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_content);
$post_content = str_replace('<br>', '<br />', $post_content);
$post_content = str_replace('<hr>', '<hr />', $post_content);
$post_author = 1;
$post_status = 'publish';
$this->posts[$index] = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_status', 'guid', 'categories');
$index++;
}
}
function import_posts() {
echo '<ol>';
foreach ($this->posts as $post) {
echo "<li>".__('Importing post...');
extract($post);
if ($post_id = post_exists($post_title, $post_content, $post_date)) {
_e('Post already imported');
} else {
$post_id = wp_insert_post($post);
if (!$post_id) {
_e("Couldn't get post ID");
return;
}
if (0 != count($categories))
wp_create_categories($categories, $post_id);
_e('Done !');
}
echo '</li>';
}
echo '</ol>';
}
function import() {
$file = wp_import_handle_upload();
if ( isset($file['error']) ) {
echo $file['error'];
return;
}
$this->file = $file['file'];
$this->get_posts();
$this->import_posts();
wp_import_cleanup($file['id']);
echo '<h3>';
printf(__('All done. <a href="%s">Have fun!</a>'), get_option('home'));
echo '</h3>';
}
function dispatch() {
if (empty ($_GET['step']))
$step = 0;
else
$step = (int) $_GET['step'];
$this->header();
switch ($step) {
case 0 :
$this->greet();
break;
case 1 :
check_admin_referer('import-upload');
$this->import();
break;
}
$this->footer();
}
function RSS_Import() {
// Nothing.
}
}
$rss_import = new RSS_Import();
register_importer('rss', __('RSS'), __('Import posts from an RSS feed'), array ($rss_import, 'dispatch'));
?>

View File

@@ -0,0 +1,673 @@
<?php
/**
Add These Functions to make our lives easier
**/
if(!function_exists('get_catbynicename'))
{
function get_catbynicename($category_nicename)
{
global $wpdb;
$cat_id -= 0; // force numeric
$name = $wpdb->get_var('SELECT cat_ID FROM '.$wpdb->categories.' WHERE category_nicename="'.$category_nicename.'"');
return $name;
}
}
if(!function_exists('get_comment_count'))
{
function get_comment_count($post_ID)
{
global $wpdb;
return $wpdb->get_var('SELECT count(*) FROM '.$wpdb->comments.' WHERE comment_post_ID = '.$post_ID);
}
}
if(!function_exists('link_exists'))
{
function link_exists($linkname)
{
global $wpdb;
return $wpdb->get_var('SELECT link_id FROM '.$wpdb->links.' WHERE link_name = "'.$wpdb->escape($linkname).'"');
}
}
/**
The Main Importer Class
**/
class Textpattern_Import {
function header()
{
echo '<div class="wrap">';
echo '<h2>'.__('Import Textpattern').'</h2>';
echo '<p>'.__('Steps may take a few minutes depending on the size of your database. Please be patient.').'</p>';
}
function footer()
{
echo '</div>';
}
function greet() {
echo '<div class="narrow">';
echo '<p>'.__('Howdy! This imports categories, users, posts, comments, and links from any Textpattern 4.0.2+ into this blog.').'</p>';
echo '<p>'.__('This has not been tested on previous versions of Textpattern. Mileage may vary.').'</p>';
echo '<p>'.__('Your Textpattern Configuration settings are as follows:').'</p>';
echo '<form action="admin.php?import=textpattern&amp;step=1" method="post">';
wp_nonce_field('import-textpattern');
$this->db_form();
echo '<p class="submit"><input type="submit" name="submit" value="'.attribute_escape(__('Import Categories &raquo;')).'" /></p>';
echo '</form>';
echo '</div>';
}
function get_txp_cats()
{
global $wpdb;
// General Housekeeping
$txpdb = new wpdb(get_option('txpuser'), get_option('txppass'), get_option('txpname'), get_option('txphost'));
set_magic_quotes_runtime(0);
$prefix = get_option('tpre');
// Get Categories
return $txpdb->get_results('SELECT
id,
name,
title
FROM '.$prefix.'txp_category
WHERE type = "article"',
ARRAY_A);
}
function get_txp_users()
{
global $wpdb;
// General Housekeeping
$txpdb = new wpdb(get_option('txpuser'), get_option('txppass'), get_option('txpname'), get_option('txphost'));
set_magic_quotes_runtime(0);
$prefix = get_option('tpre');
// Get Users
return $txpdb->get_results('SELECT
user_id,
name,
RealName,
email,
privs
FROM '.$prefix.'txp_users', ARRAY_A);
}
function get_txp_posts()
{
// General Housekeeping
$txpdb = new wpdb(get_option('txpuser'), get_option('txppass'), get_option('txpname'), get_option('txphost'));
set_magic_quotes_runtime(0);
$prefix = get_option('tpre');
// Get Posts
return $txpdb->get_results('SELECT
ID,
Posted,
AuthorID,
LastMod,
Title,
Body,
Excerpt,
Category1,
Category2,
Status,
Keywords,
url_title,
comments_count
FROM '.$prefix.'textpattern
', ARRAY_A);
}
function get_txp_comments()
{
global $wpdb;
// General Housekeeping
$txpdb = new wpdb(get_option('txpuser'), get_option('txppass'), get_option('txpname'), get_option('txphost'));
set_magic_quotes_runtime(0);
$prefix = get_option('tpre');
// Get Comments
return $txpdb->get_results('SELECT * FROM '.$prefix.'txp_discuss', ARRAY_A);
}
function get_txp_links()
{
//General Housekeeping
$txpdb = new wpdb(get_option('txpuser'), get_option('txppass'), get_option('txpname'), get_option('txphost'));
set_magic_quotes_runtime(0);
$prefix = get_option('tpre');
return $txpdb->get_results('SELECT
id,
date,
category,
url,
linkname,
description
FROM '.$prefix.'txp_link',
ARRAY_A);
}
function cat2wp($categories='')
{
// General Housekeeping
global $wpdb;
$count = 0;
$txpcat2wpcat = array();
// Do the Magic
if(is_array($categories))
{
echo '<p>'.__('Importing Categories...').'<br /><br /></p>';
foreach ($categories as $category)
{
$count++;
extract($category);
// Make Nice Variables
$name = $wpdb->escape($name);
$title = $wpdb->escape($title);
if($cinfo = category_exists($name))
{
$ret_id = wp_insert_category(array('cat_ID' => $cinfo, 'category_nicename' => $name, 'cat_name' => $title));
}
else
{
$ret_id = wp_insert_category(array('category_nicename' => $name, 'cat_name' => $title));
}
$txpcat2wpcat[$id] = $ret_id;
}
// Store category translation for future use
add_option('txpcat2wpcat',$txpcat2wpcat);
echo '<p>'.sprintf(__('Done! <strong>%1$s</strong> categories imported.'), $count).'<br /><br /></p>';
return true;
}
echo __('No Categories to Import!');
return false;
}
function users2wp($users='')
{
// General Housekeeping
global $wpdb;
$count = 0;
$txpid2wpid = array();
// Midnight Mojo
if(is_array($users))
{
echo '<p>'.__('Importing Users...').'<br /><br /></p>';
foreach($users as $user)
{
$count++;
extract($user);
// Make Nice Variables
$name = $wpdb->escape($name);
$RealName = $wpdb->escape($RealName);
if($uinfo = get_userdatabylogin($name))
{
$ret_id = wp_insert_user(array(
'ID' => $uinfo->ID,
'user_login' => $name,
'user_nicename' => $RealName,
'user_email' => $email,
'user_url' => 'http://',
'display_name' => $name)
);
}
else
{
$ret_id = wp_insert_user(array(
'user_login' => $name,
'user_nicename' => $RealName,
'user_email' => $email,
'user_url' => 'http://',
'display_name' => $name)
);
}
$txpid2wpid[$user_id] = $ret_id;
// Set Textpattern-to-WordPress permissions translation
$transperms = array(1 => '10', 2 => '9', 3 => '5', 4 => '4', 5 => '3', 6 => '2', 7 => '0');
// Update Usermeta Data
$user = new WP_User($ret_id);
if('10' == $transperms[$privs]) { $user->set_role('administrator'); }
if('9' == $transperms[$privs]) { $user->set_role('editor'); }
if('5' == $transperms[$privs]) { $user->set_role('editor'); }
if('4' == $transperms[$privs]) { $user->set_role('author'); }
if('3' == $transperms[$privs]) { $user->set_role('contributor'); }
if('2' == $transperms[$privs]) { $user->set_role('contributor'); }
if('0' == $transperms[$privs]) { $user->set_role('subscriber'); }
update_usermeta( $ret_id, 'wp_user_level', $transperms[$privs] );
update_usermeta( $ret_id, 'rich_editing', 'false');
}// End foreach($users as $user)
// Store id translation array for future use
add_option('txpid2wpid',$txpid2wpid);
echo '<p>'.sprintf(__('Done! <strong>%1$s</strong> users imported.'), $count).'<br /><br /></p>';
return true;
}// End if(is_array($users)
echo __('No Users to Import!');
return false;
}// End function user2wp()
function posts2wp($posts='')
{
// General Housekeeping
global $wpdb;
$count = 0;
$txpposts2wpposts = array();
$cats = array();
// Do the Magic
if(is_array($posts))
{
echo '<p>'.__('Importing Posts...').'<br /><br /></p>';
foreach($posts as $post)
{
$count++;
extract($post);
// Set Textpattern-to-WordPress status translation
$stattrans = array(1 => 'draft', 2 => 'private', 3 => 'draft', 4 => 'publish', 5 => 'publish');
//Can we do this more efficiently?
$uinfo = ( get_userdatabylogin( $AuthorID ) ) ? get_userdatabylogin( $AuthorID ) : 1;
$authorid = ( is_object( $uinfo ) ) ? $uinfo->ID : $uinfo ;
$Title = $wpdb->escape($Title);
$Body = $wpdb->escape($Body);
$Excerpt = $wpdb->escape($Excerpt);
$post_status = $stattrans[$Status];
// Import Post data into WordPress
if($pinfo = post_exists($Title,$Body))
{
$ret_id = wp_insert_post(array(
'ID' => $pinfo,
'post_date' => $Posted,
'post_date_gmt' => $post_date_gmt,
'post_author' => $authorid,
'post_modified' => $LastMod,
'post_modified_gmt' => $post_modified_gmt,
'post_title' => $Title,
'post_content' => $Body,
'post_excerpt' => $Excerpt,
'post_status' => $post_status,
'post_name' => $url_title,
'comment_count' => $comments_count)
);
}
else
{
$ret_id = wp_insert_post(array(
'post_date' => $Posted,
'post_date_gmt' => $post_date_gmt,
'post_author' => $authorid,
'post_modified' => $LastMod,
'post_modified_gmt' => $post_modified_gmt,
'post_title' => $Title,
'post_content' => $Body,
'post_excerpt' => $Excerpt,
'post_status' => $post_status,
'post_name' => $url_title,
'comment_count' => $comments_count)
);
}
$txpposts2wpposts[$ID] = $ret_id;
// Make Post-to-Category associations
$cats = array();
if($cat1 = get_catbynicename($Category1)) { $cats[1] = $cat1; }
if($cat2 = get_catbynicename($Category2)) { $cats[2] = $cat2; }
if(!empty($cats)) { wp_set_post_categories($ret_id, $cats); }
}
}
// Store ID translation for later use
add_option('txpposts2wpposts',$txpposts2wpposts);
echo '<p>'.sprintf(__('Done! <strong>%1$s</strong> posts imported.'), $count).'<br /><br /></p>';
return true;
}
function comments2wp($comments='')
{
// General Housekeeping
global $wpdb;
$count = 0;
$txpcm2wpcm = array();
$postarr = get_option('txpposts2wpposts');
// Magic Mojo
if(is_array($comments))
{
echo '<p>'.__('Importing Comments...').'<br /><br /></p>';
foreach($comments as $comment)
{
$count++;
extract($comment);
// WordPressify Data
$comment_ID = ltrim($discussid, '0');
$comment_post_ID = $postarr[$parentid];
$comment_approved = (1 == $visible) ? 1 : 0;
$name = $wpdb->escape($name);
$email = $wpdb->escape($email);
$web = $wpdb->escape($web);
$message = $wpdb->escape($message);
if($cinfo = comment_exists($name, $posted))
{
// Update comments
$ret_id = wp_update_comment(array(
'comment_ID' => $cinfo,
'comment_post_ID' => $comment_post_ID,
'comment_author' => $name,
'comment_author_email' => $email,
'comment_author_url' => $web,
'comment_date' => $posted,
'comment_content' => $message,
'comment_approved' => $comment_approved)
);
}
else
{
// Insert comments
$ret_id = wp_insert_comment(array(
'comment_post_ID' => $comment_post_ID,
'comment_author' => $name,
'comment_author_email' => $email,
'comment_author_url' => $web,
'comment_author_IP' => $ip,
'comment_date' => $posted,
'comment_content' => $message,
'comment_approved' => $comment_approved)
);
}
$txpcm2wpcm[$comment_ID] = $ret_id;
}
// Store Comment ID translation for future use
add_option('txpcm2wpcm', $txpcm2wpcm);
// Associate newly formed categories with posts
get_comment_count($ret_id);
echo '<p>'.sprintf(__('Done! <strong>%1$s</strong> comments imported.'), $count).'<br /><br /></p>';
return true;
}
echo __('No Comments to Import!');
return false;
}
function links2wp($links='')
{
// General Housekeeping
global $wpdb;
$count = 0;
// Deal with the links
if(is_array($links))
{
echo '<p>'.__('Importing Links...').'<br /><br /></p>';
foreach($links as $link)
{
$count++;
extract($link);
// Make nice vars
$category = $wpdb->escape($category);
$linkname = $wpdb->escape($linkname);
$description = $wpdb->escape($description);
if($linfo = link_exists($linkname))
{
$ret_id = wp_insert_link(array(
'link_id' => $linfo,
'link_url' => $url,
'link_name' => $linkname,
'link_category' => $category,
'link_description' => $description,
'link_updated' => $date)
);
}
else
{
$ret_id = wp_insert_link(array(
'link_url' => $url,
'link_name' => $linkname,
'link_category' => $category,
'link_description' => $description,
'link_updated' => $date)
);
}
$txplinks2wplinks[$link_id] = $ret_id;
}
add_option('txplinks2wplinks',$txplinks2wplinks);
echo '<p>';
printf(__('Done! <strong>%s</strong> Links imported'), $count);
echo '<br /><br /></p>';
return true;
}
echo __('No Links to Import!');
return false;
}
function import_categories()
{
// Category Import
$cats = $this->get_txp_cats();
$this->cat2wp($cats);
add_option('txp_cats', $cats);
echo '<form action="admin.php?import=textpattern&amp;step=2" method="post">';
wp_nonce_field('import-textpattern');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Import Users')));
echo '</form>';
}
function import_users()
{
// User Import
$users = $this->get_txp_users();
$this->users2wp($users);
echo '<form action="admin.php?import=textpattern&amp;step=3" method="post">';
wp_nonce_field('import-textpattern');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Import Posts')));
echo '</form>';
}
function import_posts()
{
// Post Import
$posts = $this->get_txp_posts();
$this->posts2wp($posts);
echo '<form action="admin.php?import=textpattern&amp;step=4" method="post">';
wp_nonce_field('import-textpattern');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Import Comments')));
echo '</form>';
}
function import_comments()
{
// Comment Import
$comments = $this->get_txp_comments();
$this->comments2wp($comments);
echo '<form action="admin.php?import=textpattern&amp;step=5" method="post">';
wp_nonce_field('import-textpattern');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Import Links')));
echo '</form>';
}
function import_links()
{
//Link Import
$links = $this->get_txp_links();
$this->links2wp($links);
add_option('txp_links', $links);
echo '<form action="admin.php?import=textpattern&amp;step=6" method="post">';
wp_nonce_field('import-textpattern');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Finish')));
echo '</form>';
}
function cleanup_txpimport()
{
delete_option('tpre');
delete_option('txp_cats');
delete_option('txpid2wpid');
delete_option('txpcat2wpcat');
delete_option('txpposts2wpposts');
delete_option('txpcm2wpcm');
delete_option('txplinks2wplinks');
delete_option('txpuser');
delete_option('txppass');
delete_option('txpname');
delete_option('txphost');
$this->tips();
}
function tips()
{
echo '<p>'.__('Welcome to WordPress. We hope (and expect!) that you will find this platform incredibly rewarding! As a new WordPress user coming from Textpattern, there are some things that we would like to point out. Hopefully, they will help your transition go as smoothly as possible.').'</p>';
echo '<h3>'.__('Users').'</h3>';
echo '<p>'.sprintf(__('You have already setup WordPress and have been assigned an administrative login and password. Forget it. You didn\'t have that login in Textpattern, why should you have it here? Instead we have taken care to import all of your users into our system. Unfortunately there is one downside. Because both WordPress and Textpattern uses a strong encryption hash with passwords, it is impossible to decrypt it and we are forced to assign temporary passwords to all your users. <strong>Every user has the same username, but their passwords are reset to password123.</strong> So <a href="%1$s">Login</a> and change it.'), '/wp-login.php').'</p>';
echo '<h3>'.__('Preserving Authors').'</h3>';
echo '<p>'.__('Secondly, we have attempted to preserve post authors. If you are the only author or contributor to your blog, then you are safe. In most cases, we are successful in this preservation endeavor. However, if we cannot ascertain the name of the writer due to discrepancies between database tables, we assign it to you, the administrative user.').'</p>';
echo '<h3>'.__('Textile').'</h3>';
echo '<p>'.__('Also, since you\'re coming from Textpattern, you probably have been using Textile to format your comments and posts. If this is the case, we recommend downloading and installing <a href="http://www.huddledmasses.org/category/development/wordpress/textile/">Textile for WordPress</a>. Trust me... You\'ll want it.').'</p>';
echo '<h3>'.__('WordPress Resources').'</h3>';
echo '<p>'.__('Finally, there are numerous WordPress resources around the internet. Some of them are:').'</p>';
echo '<ul>';
echo '<li>'.__('<a href="http://www.wordpress.org">The official WordPress site</a>').'</li>';
echo '<li>'.__('<a href="http://wordpress.org/support/">The WordPress support forums</a>').'</li>';
echo '<li>'.__('<a href="http://codex.wordpress.org">The Codex (In other words, the WordPress Bible)</a>').'</li>';
echo '</ul>';
echo '<p>'.sprintf(__('That\'s it! What are you waiting for? Go <a href="%1$s">login</a>!'), '/wp-login.php').'</p>';
}
function db_form()
{
echo '<table class="editform">';
printf('<tr><th scope="row"><label for="dbuser">%s</label></th><td><input type="text" name="dbuser" id="dbuser" /></td></tr>', __('Textpattern Database User:'));
printf('<tr><th scope="row"><label for="dbpass">%s</label></th><td><input type="password" name="dbpass" id="dbpass" /></td></tr>', __('Textpattern Database Password:'));
printf('<tr><th scope="row"><label for="dbname">%s</label></th><td><input type="text" id="dbname" name="dbname" /></td></tr>', __('Textpattern Database Name:'));
printf('<tr><th scope="row"><label for="dbhost">%s</label></th><td><input type="text" id="dbhost" name="dbhost" value="localhost" /></td></tr>', __('Textpattern Database Host:'));
printf('<tr><th scope="row"><label for="dbprefix">%s</label></th><td><input type="text" name="dbprefix" id="dbprefix" /></td></tr>', __('Textpattern Table prefix (if any):'));
echo '</table>';
}
function dispatch()
{
if (empty ($_GET['step']))
$step = 0;
else
$step = (int) $_GET['step'];
$this->header();
if ( $step > 0 )
{
check_admin_referer('import-textpattern');
if($_POST['dbuser'])
{
if(get_option('txpuser'))
delete_option('txpuser');
add_option('txpuser', sanitize_user($_POST['dbuser'], true));
}
if($_POST['dbpass'])
{
if(get_option('txppass'))
delete_option('txppass');
add_option('txppass', sanitize_user($_POST['dbpass'], true));
}
if($_POST['dbname'])
{
if(get_option('txpname'))
delete_option('txpname');
add_option('txpname', sanitize_user($_POST['dbname'], true));
}
if($_POST['dbhost'])
{
if(get_option('txphost'))
delete_option('txphost');
add_option('txphost', sanitize_user($_POST['dbhost'], true));
}
if($_POST['dbprefix'])
{
if(get_option('tpre'))
delete_option('tpre');
add_option('tpre', sanitize_user($_POST['dbprefix']));
}
}
switch ($step)
{
default:
case 0 :
$this->greet();
break;
case 1 :
$this->import_categories();
break;
case 2 :
$this->import_users();
break;
case 3 :
$this->import_posts();
break;
case 4 :
$this->import_comments();
break;
case 5 :
$this->import_links();
break;
case 6 :
$this->cleanup_txpimport();
break;
}
$this->footer();
}
function Textpattern_Import()
{
// Nothing.
}
}
$txp_import = new Textpattern_Import();
register_importer('textpattern', __('Textpattern'), __('Import categories, users, posts, comments, and links from a Textpattern blog'), array ($txp_import, 'dispatch'));
?>

View File

@@ -0,0 +1,408 @@
<?php
class WP_Import {
var $posts = array ();
var $posts_processed = array ();
// Array of arrays. [[0] => XML fragment, [1] => New post ID]
var $file;
var $id;
var $mtnames = array ();
var $newauthornames = array ();
var $j = -1;
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import WordPress').'</h2>';
}
function footer() {
echo '</div>';
}
function unhtmlentities($string) { // From php.net for < 4.3 compat
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
function greet() {
echo '<div class="narrow">';
echo '<p>'.__('Howdy! Upload your WordPress eXtended RSS (WXR) file and we&#8217;ll import the posts, comments, custom fields, and categories into this blog.').'</p>';
echo '<p>'.__('Choose a WordPress WXR file to upload, then click Upload file and import.').'</p>';
wp_import_upload_form("admin.php?import=wordpress&amp;step=1");
echo '</div>';
}
function get_tag( $string, $tag ) {
global $wpdb;
preg_match("|<$tag.*?>(.*?)</$tag>|is", $string, $return);
$return = preg_replace('|^<!\[CDATA\[(.*)\]\]>$|s', '$1', $return[1]);
$return = $wpdb->escape( trim( $return ) );
return $return;
}
function users_form($n) {
global $wpdb, $testing;
$users = $wpdb->get_results("SELECT * FROM $wpdb->users ORDER BY ID");
?><select name="userselect[<?php echo $n; ?>]">
<option value="#NONE#">- Select -</option>
<?php
foreach ($users as $user) {
echo '<option value="'.$user->user_login.'">'.$user->user_login.'</option>';
}
?>
</select>
<?php
}
//function to check the authorname and do the mapping
function checkauthor($author) {
global $wpdb;
//mtnames is an array with the names in the mt import file
$pass = 'changeme';
if (!(in_array($author, $this->mtnames))) { //a new mt author name is found
++ $this->j;
$this->mtnames[$this->j] = $author; //add that new mt author name to an array
$user_id = username_exists($this->newauthornames[$this->j]); //check if the new author name defined by the user is a pre-existing wp user
if (!$user_id) { //banging my head against the desk now.
if ($this->newauthornames[$this->j] == 'left_blank') { //check if the user does not want to change the authorname
$user_id = wp_create_user($author, $pass);
$this->newauthornames[$this->j] = $author; //now we have a name, in the place of left_blank.
} else {
$user_id = wp_create_user($this->newauthornames[$this->j], $pass);
}
} else {
return $user_id; // return pre-existing wp username if it exists
}
} else {
$key = array_search($author, $this->mtnames); //find the array key for $author in the $mtnames array
$user_id = username_exists($this->newauthornames[$key]); //use that key to get the value of the author's name from $newauthornames
}
return $user_id;
}
function get_entries() {
set_magic_quotes_runtime(0);
$importdata = array_map('rtrim', file($this->file)); // Read the file into an array
$this->posts = array();
$this->categories = array();
$num = 0;
$doing_entry = false;
foreach ($importdata as $importline) {
if ( false !== strpos($importline, '<wp:category>') ) {
preg_match('|<wp:category>(.*?)</wp:category>|is', $importline, $category);
$this->categories[] = $category[1];
continue;
}
if ( false !== strpos($importline, '<item>') ) {
$this->posts[$num] = '';
$doing_entry = true;
continue;
}
if ( false !== strpos($importline, '</item>') ) {
$num++;
$doing_entry = false;
continue;
}
if ( $doing_entry ) {
$this->posts[$num] .= $importline . "\n";
}
}
foreach ($this->posts as $post) {
$post_ID = (int) $this->get_tag( $post, 'wp:post_id' );
if ($post_ID) {
$this->posts_processed[$post_ID][0] = &$post;
$this->posts_processed[$post_ID][1] = 0;
}
}
}
function get_wp_authors() {
$temp = array ();
$i = -1;
foreach ($this->posts as $post) {
if ('' != trim($post)) {
++ $i;
$author = $this->get_tag( $post, 'dc:creator' );
array_push($temp, "$author"); //store the extracted author names in a temporary array
}
}
// We need to find unique values of author names, while preserving the order, so this function emulates the unique_value(); php function, without the sorting.
$authors[0] = array_shift($temp);
$y = count($temp) + 1;
for ($x = 1; $x < $y; $x ++) {
$next = array_shift($temp);
if (!(in_array($next, $authors)))
array_push($authors, "$next");
}
return $authors;
}
function get_authors_from_post() {
$formnames = array ();
$selectnames = array ();
foreach ($_POST['user'] as $key => $line) {
$newname = trim(stripslashes($line));
if ($newname == '')
$newname = 'left_blank'; //passing author names from step 1 to step 2 is accomplished by using POST. left_blank denotes an empty entry in the form.
array_push($formnames, "$newname");
} // $formnames is the array with the form entered names
foreach ($_POST['userselect'] as $user => $key) {
$selected = trim(stripslashes($key));
array_push($selectnames, "$selected");
}
$count = count($formnames);
for ($i = 0; $i < $count; $i ++) {
if ($selectnames[$i] != '#NONE#') { //if no name was selected from the select menu, use the name entered in the form
array_push($this->newauthornames, "$selectnames[$i]");
} else {
array_push($this->newauthornames, "$formnames[$i]");
}
}
}
function wp_authors_form() {
?>
<h2><?php _e('Assign Authors'); ?></h2>
<p><?php _e('To make it easier for you to edit and save the imported posts and drafts, you may want to change the name of the author of the posts. For example, you may want to import all the entries as <code>admin</code>s entries.'); ?></p>
<p><?php _e('If a new user is created by WordPress, the password will be set, by default, to "changeme". Quite suggestive, eh? ;)'); ?></p>
<?php
$authors = $this->get_wp_authors();
echo '<ol id="authors">';
echo '<form action="?import=wordpress&amp;step=2&amp;id=' . $this->id . '" method="post">';
wp_nonce_field('import-wordpress');
$j = -1;
foreach ($authors as $author) {
++ $j;
echo '<li>'.__('Current author:').' <strong>'.$author.'</strong><br />'.sprintf(__('Create user %1$s or map to existing'), ' <input type="text" value="'.$author.'" name="'.'user[]'.'" maxlength="30"> <br />');
$this->users_form($j);
echo '</li>';
}
echo '<input type="submit" value="Submit">'.'<br/>';
echo '</form>';
echo '</ol>';
}
function select_authors() {
$file = wp_import_handle_upload();
if ( isset($file['error']) ) {
echo '<p>'.__('Sorry, there has been an error.').'</p>';
echo '<p><strong>' . $file['error'] . '</strong></p>';
return;
}
$this->file = $file['file'];
$this->id = (int) $file['id'];
$this->get_entries();
$this->wp_authors_form();
}
function process_categories() {
global $wpdb;
$cat_names = (array) $wpdb->get_col("SELECT cat_name FROM $wpdb->categories");
while ( $c = array_shift($this->categories) ) {
$cat_name = trim($this->get_tag( $c, 'wp:cat_name' ));
// If the category exists we leave it alone
if ( in_array($cat_name, $cat_names) )
continue;
$category_nicename = $this->get_tag( $c, 'wp:category_nicename' );
$posts_private = (int) $this->get_tag( $c, 'wp:posts_private' );
$links_private = (int) $this->get_tag( $c, 'wp:links_private' );
$parent = $this->get_tag( $c, 'wp:category_parent' );
if ( empty($parent) )
$category_parent = '0';
else
$category_parent = category_exists($parent);
$catarr = compact('category_nicename', 'category_parent', 'posts_private', 'links_private', 'posts_private', 'cat_name');
$cat_ID = wp_insert_category($catarr);
}
}
function process_posts() {
$i = -1;
echo '<ol>';
foreach ($this->posts as $post)
$this->process_post($post);
echo '</ol>';
wp_import_cleanup($this->id);
echo '<h3>'.sprintf(__('All done.').' <a href="%s">'.__('Have fun!').'</a>', get_option('home')).'</h3>';
}
function process_post($post) {
global $wpdb;
$post_ID = (int) $this->get_tag( $post, 'wp:post_id' );
if ( $post_ID && !empty($this->posts_processed[$post_ID][1]) ) // Processed already
return 0;
// There are only ever one of these
$post_title = $this->get_tag( $post, 'title' );
$post_date = $this->get_tag( $post, 'wp:post_date' );
$post_date_gmt = $this->get_tag( $post, 'wp:post_date_gmt' );
$comment_status = $this->get_tag( $post, 'wp:comment_status' );
$ping_status = $this->get_tag( $post, 'wp:ping_status' );
$post_status = $this->get_tag( $post, 'wp:status' );
$post_name = $this->get_tag( $post, 'wp:post_name' );
$post_parent = $this->get_tag( $post, 'wp:post_parent' );
$menu_order = $this->get_tag( $post, 'wp:menu_order' );
$post_type = $this->get_tag( $post, 'wp:post_type' );
$guid = $this->get_tag( $post, 'guid' );
$post_author = $this->get_tag( $post, 'dc:creator' );
$post_content = $this->get_tag( $post, 'content:encoded' );
$post_content = preg_replace('|<(/?[A-Z]+)|e', "'<' . strtolower('$1')", $post_content);
$post_content = str_replace('<br>', '<br />', $post_content);
$post_content = str_replace('<hr>', '<hr />', $post_content);
preg_match_all('|<category>(.*?)</category>|is', $post, $categories);
$categories = $categories[1];
$cat_index = 0;
foreach ($categories as $category) {
$categories[$cat_index] = $wpdb->escape($this->unhtmlentities(str_replace(array ('<![CDATA[', ']]>'), '', $category)));
$cat_index++;
}
if ($post_id = post_exists($post_title, '', $post_date)) {
echo '<li>';
printf(__('Post <i>%s</i> already exists.'), stripslashes($post_title));
} else {
// If it has parent, process parent first.
$post_parent = (int) $post_parent;
if ($parent = $this->posts_processed[$post_parent]) {
if (!$parent[1]) $this->process_post($parent[0]); // If not yet, process the parent first.
$post_parent = $parent[1]; // New ID of the parent;
}
echo '<li>';
printf(__('Importing post <i>%s</i>...'), stripslashes($post_title));
$post_author = $this->checkauthor($post_author); //just so that if a post already exists, new users are not created by checkauthor
$postdata = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_excerpt', 'post_status', 'post_name', 'comment_status', 'ping_status', 'post_modified', 'post_modified_gmt', 'guid', 'post_parent', 'menu_order', 'post_type');
$comment_post_ID = $post_id = wp_insert_post($postdata);
// Memorize old and new ID.
if ( $post_id && $post_ID && $this->posts_processed[$post_ID] )
$this->posts_processed[$post_ID][1] = $post_id; // New ID.
// Add categories.
if (count($categories) > 0) {
$post_cats = array();
foreach ($categories as $category) {
$cat_ID = (int) $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE cat_name = '$category'");
if ($cat_ID == 0) {
$cat_ID = wp_insert_category(array('cat_name' => $category));
}
$post_cats[] = $cat_ID;
}
wp_set_post_categories($post_id, $post_cats);
}
}
// Now for comments
preg_match_all('|<wp:comment>(.*?)</wp:comment>|is', $post, $comments);
$comments = $comments[1];
$num_comments = 0;
if ( $comments) { foreach ($comments as $comment) {
$comment_author = $this->get_tag( $comment, 'wp:comment_author');
$comment_author_email = $this->get_tag( $comment, 'wp:comment_author_email');
$comment_author_IP = $this->get_tag( $comment, 'wp:comment_author_IP');
$comment_author_url = $this->get_tag( $comment, 'wp:comment_author_url');
$comment_date = $this->get_tag( $comment, 'wp:comment_date');
$comment_date_gmt = $this->get_tag( $comment, 'wp:comment_date_gmt');
$comment_content = $this->get_tag( $comment, 'wp:comment_content');
$comment_approved = $this->get_tag( $comment, 'wp:comment_approved');
$comment_type = $this->get_tag( $comment, 'wp:comment_type');
$comment_parent = $this->get_tag( $comment, 'wp:comment_parent');
if ( !comment_exists($comment_author, $comment_date) ) {
$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_url', 'comment_author_email', 'comment_author_IP', 'comment_date', 'comment_date_gmt', 'comment_content', 'comment_approved', 'comment_type', 'comment_parent');
wp_insert_comment($commentdata);
$num_comments++;
}
} }
if ( $num_comments )
printf(' '.__('(%s comments)'), $num_comments);
// Now for post meta
preg_match_all('|<wp:postmeta>(.*?)</wp:postmeta>|is', $post, $postmeta);
$postmeta = $postmeta[1];
if ( $postmeta) { foreach ($postmeta as $p) {
$key = $this->get_tag( $p, 'wp:meta_key' );
$value = $this->get_tag( $p, 'wp:meta_value' );
$value = stripslashes($value); // add_post_meta() will escape.
add_post_meta( $post_id, $key, $value );
} }
}
function import() {
$this->id = (int) $_GET['id'];
$this->file = get_attached_file($this->id);
$this->get_authors_from_post();
$this->get_entries();
$this->process_categories();
$this->process_posts();
}
function dispatch() {
if (empty ($_GET['step']))
$step = 0;
else
$step = (int) $_GET['step'];
$this->header();
switch ($step) {
case 0 :
$this->greet();
break;
case 1 :
check_admin_referer('import-upload');
$this->select_authors();
break;
case 2:
check_admin_referer('import-wordpress');
$this->import();
break;
}
$this->footer();
}
function WP_Import() {
// Nothing.
}
}
$wp_import = new WP_Import();
register_importer('wordpress', 'WordPress', __('Import <strong>posts, comments, custom fields, pages, and categories</strong> from a WordPress export file'), array ($wp_import, 'dispatch'));
?>

69
wp-admin/index-extra.php Normal file
View File

@@ -0,0 +1,69 @@
<?php
require_once('admin.php');
require_once (ABSPATH . WPINC . '/rss.php');
@header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
switch ( $_GET['jax'] ) {
case 'incominglinks' :
$rss = @fetch_rss('http://feeds.technorati.com/cosmos/rss/?url='. trailingslashit(get_option('home')) .'&partner=wordpress');
if ( isset($rss->items) && 1 < count($rss->items) ) { // Technorati returns a 1-item feed when it has no results
?>
<h3><?php _e('Incoming Links'); ?> <cite><a href="http://www.technorati.com/search/<?php echo trailingslashit(get_option('home')); ?>?partner=wordpress"><?php _e('More &raquo;'); ?></a></cite></h3>
<ul>
<?php
$rss->items = array_slice($rss->items, 0, 10);
foreach ($rss->items as $item ) {
?>
<li><a href="<?php echo wp_filter_kses($item['link']); ?>"><?php echo wptexturize(wp_specialchars($item['title'])); ?></a></li>
<?php } ?>
</ul>
<?php
}
break;
case 'devnews' :
$rss = @fetch_rss('http://wordpress.org/development/feed/');
if ( isset($rss->items) && 0 != count($rss->items) ) {
?>
<h3><?php _e('WordPress Development Blog'); ?></h3>
<?php
$rss->items = array_slice($rss->items, 0, 3);
foreach ($rss->items as $item ) {
?>
<h4><a href='<?php echo wp_filter_kses($item['link']); ?>'><?php echo wp_specialchars($item['title']); ?></a> &#8212; <?php printf(__('%s ago'), human_time_diff(strtotime($item['pubdate'], time() ) ) ); ?></h4>
<p><?php echo $item['description']; ?></p>
<?php
}
}
?>
<?php
break;
case 'planetnews' :
$rss = @fetch_rss('http://planet.wordpress.org/feed/');
if ( isset($rss->items) && 0 != count($rss->items) ) {
?>
<h3><?php _e('Other WordPress News'); ?></h3>
<ul>
<?php
$rss->items = array_slice($rss->items, 0, 20);
foreach ($rss->items as $item ) {
$title = wp_specialchars($item['title']);
$author = preg_replace( '|(.+?):.+|s', '$1', $item['title'] );
$post = preg_replace( '|.+?:(.+)|s', '$1', $item['title'] );
?>
<li><a href='<?php echo wp_filter_kses($item['link']); ?>'><span class="post"><?php echo $post; ?></span><span class="hidden"> - </span><cite><?php echo $author; ?></cite></a></li>
<?php
}
?>
</ul>
<p class="readmore"><a href="http://planet.wordpress.org/"><?php _e('Read more'); ?> &raquo;</a></p>
<?php
}
break;
}
?>

View File

@@ -1,17 +1,67 @@
<?php
require_once('admin.php');
function index_js() {
?>
<script type="text/javascript">
Event.observe( window, 'load', dashboard_init, false );
function dashboard_init() {
var update1 = new Ajax.Updater( 'incominglinks', 'index-extra.php?jax=incominglinks' );
var update2 = new Ajax.Updater( 'devnews', 'index-extra.php?jax=devnews' );
var update3 = new Ajax.Updater( 'planetnews', 'index-extra.php?jax=planetnews' );
}
</script>
<?php
}
add_action( 'admin_head', 'index_js' );
wp_enqueue_script('prototype');
wp_enqueue_script('interface');
$title = __('Dashboard');
$parent_file = 'index.php';
require_once('admin-header.php');
require_once (ABSPATH . WPINC . '/rss-functions.php');
$today = current_time('mysql', 1);
?>
<div class="wrap">
<h2><?php _e('Welcome to WordPress'); ?></h2>
<div id="zeitgeist">
<h2><?php _e('Latest Activity'); ?></h2>
<div id="incominglinks"></div>
<?php
if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_date_gmt < '$today' ORDER BY post_date DESC LIMIT 5") ) :
$comments = $wpdb->get_results("SELECT comment_author, comment_author_url, comment_ID, comment_post_ID FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 5");
$numcomments = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'");
if ( $comments || $numcomments ) :
?>
<div>
<h3><?php _e('Comments'); ?> <a href="edit-comments.php" title="<?php _e('More comments...'); ?>">&raquo;</a></h3>
<?php if ( $numcomments ) : ?>
<p><strong><a href="moderation.php"><?php echo sprintf(__('Comments in moderation (%s)'), number_format($numcomments) ); ?> &raquo;</a></strong></p>
<?php endif; ?>
<ul>
<?php
if ( $comments ) {
foreach ($comments as $comment) {
echo '<li>' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a href="'. get_permalink($comment->comment_post_ID) . '#comment-' . $comment->comment_ID . '">' . apply_filters('the_title', get_the_title($comment->comment_post_ID)) . '</a>');
edit_comment_link(__("Edit"), ' <small>(', ')</small>');
echo '</li>';
}
}
?>
</ul>
</div>
<?php endif; ?>
<?php
if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_type = 'post' AND " . get_private_posts_cap_sql('post') . " AND post_date_gmt < '$today' ORDER BY post_date DESC LIMIT 5") ) :
?>
<div>
<h3><?php _e('Posts'); ?> <a href="edit.php" title="<?php _e('More posts...'); ?>">&raquo;</a></h3>
@@ -30,8 +80,8 @@ foreach ($recentposts as $post) {
<?php endif; ?>
<?php
if ( $scheduled = $wpdb->get_results("SELECT ID, post_title, post_date_gmt FROM $wpdb->posts WHERE post_status = 'publish' AND post_date_gmt > '$today'") ) :
?>
if ( $scheduled = $wpdb->get_results("SELECT ID, post_title, post_date_gmt FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'future' ORDER BY post_date ASC") ) :
?>
<div>
<h3><?php _e('Scheduled Entries:') ?></h3>
<ul>
@@ -41,133 +91,54 @@ foreach ($scheduled as $post) {
$post->post_title = sprintf(__('Post #%s'), $post->ID);
echo "<li>" . sprintf(__('%1$s in %2$s'), "<a href='post.php?action=edit&amp;post=$post->ID' title='" . __('Edit this post') . "'>$post->post_title</a>", human_time_diff( current_time('timestamp', 1), strtotime($post->post_date_gmt. ' GMT') )) . "</li>";
}
?>
</ul>
</div>
<?php endif; ?>
<?php
if ( $comments = $wpdb->get_results("SELECT comment_author, comment_author_url, comment_ID, comment_post_ID FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 5") ) :
?>
<div>
<h3><?php _e('Comments'); ?> <a href="edit-comments.php" title="<?php _e('More comments...'); ?>">&raquo;</a></h3>
<ul>
<?php
foreach ($comments as $comment) {
echo '<li>' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a href="'. get_permalink($comment->comment_post_ID) . '#comment-' . $comment->comment_ID . '">' . get_the_title($comment->comment_post_ID) . '</a>');
edit_comment_link(__("Edit"), ' <small>(', ')</small>');
echo '</li>';
}
?>
</ul>
<?php
if ( $numcomments = $wpdb->get_var("SELECT COUNT(*) FROM $tablecomments WHERE comment_approved = '0'") ) :
?>
<p><strong><a href="moderation.php"><?php echo sprintf(__('There are comments in moderation (%s)'), number_format($numcomments) ); ?> &raquo;</a></strong></p>
<?php endif; ?>
</div>
<?php endif; ?>
<div>
<h3><?php _e('Blog Stats'); ?></h3>
<?php
$numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'");
if (0 < $numposts) $numposts = number_format($numposts);
$numposts = (int) $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish'");
$numcomms = (int) $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");
$numcats = (int) $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->categories");
$numcomms = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");
if (0 < $numcomms) $numcomms = number_format($numcomms);
$numcats = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->categories");
if (0 < $numcats) $numcats = number_format($numcats);
$post_str = sprintf(__ngettext('%1$s <a href="%2$s" title="Posts">post</a>', '%1$s <a href="%2$s" title="Posts">posts</a>', $numposts), number_format($numposts), 'edit.php');
$comm_str = sprintf(__ngettext('%1$s <a href="%2$s" title="Comments">comment</a>', '%1$s <a href="%2$s" title="Comments">comments</a>', $numcomms), number_format($numcomms), 'edit-comments.php');
$cat_str = sprintf(__ngettext('%1$s <a href="%2$s" title="Categories">category</a>', '%1$s <a href="%2$s" title="Categories">categories</a>', $numcats), number_format($numcats), 'categories.php');
?>
<p><?php printf(__('There are currently %1$s <a href="%2$s" title="Posts">posts</a> and %3$s <a href="%4$s" title="Comments">comments</a>, contained within %5$s <a href="%6$s" title="categories">categories</a>.'), $numposts, 'edit.php', $numcomms, 'edit-comments.php', $numcats, 'categories.php'); ?></p>
<p><?php printf(__('There are currently %1$s and %2$s, contained within %3$s.'), $post_str, $comm_str, $cat_str); ?></p>
</div>
<?php
$rss = @fetch_rss('http://feeds.technorati.com/cosmos/rss/?url='. trailingslashit(get_option('home')) .'&partner=wordpress');
if ( isset($rss->items) && 0 != count($rss->items) ) {
?>
<div id="incominglinks">
<h3><?php _e('Incoming Links'); ?> <cite><a href="http://www.technorati.com/cosmos/search.html?url=<?php echo trailingslashit(get_option('home')); ?>&amp;partner=wordpress"><?php _e('More'); ?> &raquo;</a></cite></h3>
<?php do_action('activity_box_end'); ?>
</div>
<p><?php _e('Use these links to get started:'); ?></p>
<ul>
<?php
$rss->items = array_slice($rss->items, 0, 10);
foreach ($rss->items as $item ) {
?>
<li><a href="<?php echo wp_filter_kses($item['link']); ?>"><?php echo wp_specialchars($item['title']); ?></a></li>
<?php } ?>
<?php if ( current_user_can('edit_posts') ) : ?>
<li><a href="post-new.php"><?php _e('Write a post'); ?></a></li>
<?php endif; ?>
<li><a href="profile.php"><?php _e('Update your profile or change your password'); ?></a></li>
<?php if ( current_user_can('manage_links') ) : ?>
<li><a href="link-add.php"><?php _e('Add a link to your blogroll'); ?></a></li>
<?php endif; ?>
<?php if ( current_user_can('switch_themes') ) : ?>
<li><a href="themes.php"><?php _e('Change your site&#8217;s look or theme'); ?></a></li>
<?php endif; ?>
</ul>
</div>
<?php } ?>
<p><?php _e("Need help with WordPress? Please see our <a href='http://codex.wordpress.org/'>documentation</a> or visit the <a href='http://wordpress.org/support/'>support forums</a>."); ?></p>
</div>
<div id="devnews"></div>
<h2><?php _e('Dashboard'); ?></h2>
<p><?php _e('Below is the latest news from the official WordPress development blog, click on a title to read the full entry.'); ?></p>
<?php
$rss = @fetch_rss('http://wordpress.org/development/feed/');
if ( isset($rss->items) && 0 != count($rss->items) ) {
?>
<h3>WordPress Development Blog</h3>
<?php
$rss->items = array_slice($rss->items, 0, 3);
foreach ($rss->items as $item ) {
?>
<h4><a href='<?php echo wp_filter_kses($item['link']); ?>'><?php echo wp_specialchars($item['title']); ?></a> &#8212; <?php echo human_time_diff( strtotime($item['pubdate'], time() ) ); ?> <?php _e('ago'); ?></h4>
<p><?php echo $item['description']; ?></p>
<?php
}
}
?>
<div id="planetnews"></div>
<?php
$rss = @fetch_rss('http://planet.wordpress.org/feed/');
if ( isset($rss->items) && 0 != count($rss->items) ) {
?>
<div id="planetnews">
<h3><?php _e('Other WordPress News'); ?> <a href="http://planet.wordpress.org/"><?php _e('more'); ?> &raquo;</a></h3>
<ul>
<?php
$rss->items = array_slice($rss->items, 0, 20);
foreach ($rss->items as $item ) {
?>
<li><a href='<?php echo wp_filter_kses($item['link']); ?>'><?php echo wp_specialchars($item['title']); ?></a></li>
<?php
}
?>
</ul>
</div>
<?php
}
?>
<div style="clear: both">&nbsp;
<br clear="all" />
</div>
</div>
<?php
$drafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'draft' AND post_author = $user_ID");
if ($drafts) {
?>
<div class="wrap">
<p><strong><?php _e('Your Drafts:') ?></strong>
<?php
$i = 0;
foreach ($drafts as $draft) {
if (0 != $i)
echo ', ';
$draft->post_title = stripslashes($draft->post_title);
if ($draft->post_title == '')
$draft->post_title = sprintf(__('Post #%s'), $draft->ID);
echo "<a href='post.php?action=edit&amp;post=$draft->ID' title='" . __('Edit this draft') . "'>$draft->post_title</a>";
++$i;
}
?>
.</p>
</div>
<?php } ?>
<?php
require('./admin-footer.php');
?>
?>

View File

@@ -9,21 +9,21 @@ $debug = 0;
** false on error
*/
function maybe_create_table($table_name, $create_ddl) {
global $wpdb;
foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
if ($table == $table_name) {
return true;
}
}
//didn't find it try to create it.
$q = $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
if ($table == $table_name) {
return true;
}
}
return false;
global $wpdb;
foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
if ($table == $table_name) {
return true;
}
}
//didn't find it try to create it.
$q = $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
if ($table == $table_name) {
return true;
}
}
return false;
}
/**
@@ -33,22 +33,22 @@ function maybe_create_table($table_name, $create_ddl) {
** false on error
*/
function maybe_add_column($table_name, $column_name, $create_ddl) {
global $wpdb, $debug;
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($debug) echo("checking $column == $column_name<br />");
if ($column == $column_name) {
return true;
}
}
//didn't find it try to create it.
$q = $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($column == $column_name) {
return true;
}
}
return false;
global $wpdb, $debug;
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($debug) echo("checking $column == $column_name<br />");
if ($column == $column_name) {
return true;
}
}
//didn't find it try to create it.
$q = $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($column == $column_name) {
return true;
}
}
return false;
}
@@ -59,21 +59,21 @@ function maybe_add_column($table_name, $column_name, $create_ddl) {
** false on error
*/
function maybe_drop_column($table_name, $column_name, $drop_ddl) {
global $wpdb;
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($column == $column_name) {
//found it try to drop it.
$q = $wpdb->query($drop_ddl);
// we cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($column == $column_name) {
return false;
}
}
}
}
// else didn't find it
return true;
global $wpdb;
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($column == $column_name) {
//found it try to drop it.
$q = $wpdb->query($drop_ddl);
// we cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($column == $column_name) {
return false;
}
}
}
}
// else didn't find it
return true;
}
@@ -92,45 +92,45 @@ function maybe_drop_column($table_name, $column_name, $drop_ddl) {
** Extra
*/
function check_column($table_name, $col_name, $col_type, $is_null = null, $key = null, $default = null, $extra = null) {
global $wpdb, $debug;
$diffs = 0;
$results = $wpdb->get_results("DESC $table_name");
foreach ($results as $row ) {
if ($debug > 1) print_r($row);
if ($row->Field == $col_name) {
// got our column, check the params
if ($debug) echo ("checking $row->Type against $col_type\n");
if (($col_type != null) && ($row->Type != $col_type)) {
++$diffs;
}
if (($is_null != null) && ($row->Null != $is_null)) {
++$diffs;
}
if (($key != null) && ($row->Key != $key)) {
++$diffs;
}
if (($default != null) && ($row->Default != $default)) {
++$diffs;
}
if (($extra != null) && ($row->Extra != $extra)) {
++$diffs;
}
if ($diffs > 0) {
if ($debug) echo ("diffs = $diffs returning false\n");
return false;
}
return true;
} // end if found our column
}
return false;
global $wpdb, $debug;
$diffs = 0;
$results = $wpdb->get_results("DESC $table_name");
foreach ($results as $row ) {
if ($debug > 1) print_r($row);
if ($row->Field == $col_name) {
// got our column, check the params
if ($debug) echo ("checking $row->Type against $col_type\n");
if (($col_type != null) && ($row->Type != $col_type)) {
++$diffs;
}
if (($is_null != null) && ($row->Null != $is_null)) {
++$diffs;
}
if (($key != null) && ($row->Key != $key)) {
++$diffs;
}
if (($default != null) && ($row->Default != $default)) {
++$diffs;
}
if (($extra != null) && ($row->Extra != $extra)) {
++$diffs;
}
if ($diffs > 0) {
if ($debug) echo ("diffs = $diffs returning false\n");
return false;
}
return true;
} // end if found our column
}
return false;
}
/*
echo "<p>testing</p>";
echo "<pre>";
//check_column('wp_links', 'link_description', 'mediumtext');
//check_column('wp_links', 'link_description', 'mediumtext');
//if (check_column($wpdb->comments, 'comment_author', 'tinytext'))
// echo "ok\n";
$error_count = 0;
@@ -138,14 +138,14 @@ $tablename = $wpdb->links;
// check the column
if (!check_column($wpdb->links, 'link_description', 'varchar(255)'))
{
$ddl = "ALTER TABLE $wpdb->links MODIFY COLUMN link_description varchar(255) NOT NULL DEFAULT '' ";
$q = $wpdb->query($ddl);
$ddl = "ALTER TABLE $wpdb->links MODIFY COLUMN link_description varchar(255) NOT NULL DEFAULT '' ";
$q = $wpdb->query($ddl);
}
if (check_column($wpdb->links, 'link_description', 'varchar(255)')) {
$res .= $tablename . ' - ok <br />';
$res .= $tablename . ' - ok <br />';
} else {
$res .= 'There was a problem with ' . $tablename . '<br />';
++$error_count;
$res .= 'There was a problem with ' . $tablename . '<br />';
++$error_count;
}
echo "</pre>";
*/

15
wp-admin/install-rtl.css Normal file
View File

@@ -0,0 +1,15 @@
body { font: 13px Tahoma, Georgia, "Times New Roman", Times, serif; }
ul, ol { padding: 5px 20px 5px 5px; }
h1, h2, h3 { font-family: "Times New Roman", Times, serif; font-weight: 700 }
.step, th { text-align: left }
input { font-family: "Times New Roman", Times, serif; padding: 1px }
#logo { background: url(../wp-content/plugins/WP-Jalali/wp-fa-logo.png) center right no-repeat; text-align: left; }
#admin_email {direction: ltr; text-align: left; }
#footer { font-style: normal; }

40
wp-admin/install.css Normal file
View File

@@ -0,0 +1,40 @@
html { background: #eee; }
body {
background: #fff;
color: #000;
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 20%;
margin-right: 20%;
padding: .2em 2em;
}
h1 {
color: #006;
font-size: 18px;
font-weight: lighter;
}
h2 { font-size: 16px; }
p, li, dt {
line-height: 140%;
padding-bottom: 2px;
}
ul, ol { padding: 5px 5px 5px 20px; }
#logo { margin-bottom: 2em; }
.step a, .step input { font-size: 2em; }
td input { font-size: 1.5em; }
.step, th { text-align: right; }
#footer {
text-align: center;
border-top: 1px solid #ccc;
padding-top: 1em;
font-style: italic;
}

View File

@@ -1,13 +1,13 @@
<?php
define('WP_INSTALLING', true);
if (!file_exists('../wp-config.php'))
die("There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started. Need more help? <a href='http://wordpress.org/docs/faq/#wp-config'>We got it</a>. You can <a href='setup-config.php'>create a <code>wp-config.php</code> file through a web interface</a>, but this doesn't work for all server setups. The safest way is to manually create the file.");
if (!file_exists('../wp-config.php')) {
require_once('../wp-includes/functions.php');
wp_die("There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started. Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>. You can <a href='setup-config.php'>create a <code>wp-config.php</code> file through a web interface</a>, but this doesn't work for all server setups. The safest way is to manually create the file.", "WordPress &rsaquo; Error");
}
require_once('../wp-config.php');
require_once('./upgrade-functions.php');
$guessurl = str_replace('/wp-admin/install.php?step=2', '', 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) );
if (isset($_GET['step']))
$step = $_GET['step'];
else
@@ -15,200 +15,96 @@ else
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!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">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
<head>
<title><?php _e('WordPress &rsaquo; Installation'); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style media="screen" type="text/css">
<!--
html {
background: #eee;
}
body {
background: #fff;
color: #000;
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 20%;
margin-right: 20%;
padding: .2em 2em;
}
h1 {
color: #006;
font-size: 18px;
font-weight: lighter;
}
h2 {
font-size: 16px;
}
p, li, dt {
line-height: 140%;
padding-bottom: 2px;
}
ul, ol {
padding: 5px 5px 5px 20px;
}
#logo {
margin-bottom: 2em;
}
.step a, .step input {
font-size: 2em;
}
td input {
font-size: 1.5em;
}
.step, th {
text-align: right;
}
#footer {
text-align: center;
border-top: 1px solid #ccc;
padding-top: 1em;
font-style: italic;
}
-->
</style>
<title><?php _e('WordPress &rsaquo; Installation'); ?></title>
<link rel="stylesheet" href="install.css?version=<?php bloginfo('version'); ?>" type="text/css" />
<?php if ( ('rtl' == $wp_locale->text_direction) ) : ?>
<link rel="stylesheet" href="install-rtl.css?version=<?php bloginfo('version'); ?>" type="text/css" />
<?php endif; ?>
</head>
<body>
<h1 id="logo"><img alt="WordPress" src="http://static.wordpress.org/logo.png" /></h1>
<h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png" /></h1>
<?php
// Let's check to make sure WP isn't already installed.
$wpdb->hide_errors();
$installed = $wpdb->get_results("SELECT * FROM $wpdb->users");
if ($installed) die(__('<h1>Already Installed</h1><p>You appear to have already installed WordPress. To reinstall please clear your old database tables first.</p>') . '</body></html>');
$wpdb->show_errors();
if ( is_blog_installed() ) die('<h1>'.__('Already Installed').'</h1><p>'.__('You appear to have already installed WordPress. To reinstall please clear your old database tables first.').'</p></body></html>');
switch($step) {
case 0:
?>
<p><?php printf(__('Welcome to WordPress installation. We&#8217;re now going to go through a few steps to get you up and running with the latest in personal publishing platforms. You may want to peruse the <a href="%s">ReadMe documentation</a> at your leisure.'), '../readme.html'); ?></p>
<h2 class="step"><a href="install.php?step=1"><?php _e('First Step &raquo;'); ?></a></h2>
<h2 class="step"><a href="install.php?step=1"><?php _e('First Step &raquo;'); ?></a></h2>
<?php
break;
break;
case 1:
?>
<h1><?php _e('First Step'); ?></h1>
<p><?php _e("Before we begin we need a little bit of information. Don't worry, you can always change these later."); ?></p>
<form id="setup" method="post" action="install.php?step=2">
<table width="100%">
<tr>
<th width="33%"><?php _e('Weblog title:'); ?></th>
<td><input name="weblog_title" type="text" id="weblog_title" size="25" /></td>
</tr>
<tr>
<th><?php _e('Your e-mail:'); ?></th>
<td><input name="admin_email" type="text" id="admin_email" size="25" /></td>
</tr>
</table>
<p><em><?php _e('Double-check that email address before continuing.'); ?></em></p>
<h2 class="step">
<input type="submit" name="Submit" value="<?php _e('Continue to Second Step &raquo;'); ?>" />
</h2>
<table width="100%">
<tr>
<th width="33%"><?php _e('Weblog title:'); ?></th>
<td><input name="weblog_title" type="text" id="weblog_title" size="25" /></td>
</tr>
<tr>
<th><?php _e('Your e-mail:'); ?></th>
<td><input name="admin_email" type="text" id="admin_email" size="25" /></td>
</tr>
<tr>
<th scope="row" valign="top"> <?php __('Privacy:'); ?></th>
<td><label><input type="checkbox" name="blog_public" value="1" checked="checked" /> <?php _e('I would like my blog to appear in search engines like Google and Technorati.'); ?></label></td>
</tr>
</table>
<p><em><?php _e('Double-check that email address before continuing.'); ?></em></p>
<h2 class="step"><input type="submit" name="Submit" value="<?php _e('Continue to Second Step &raquo;'); ?>" /></h2>
</form>
<?php
break;
break;
case 2:
// Fill in the data we gathered
$weblog_title = stripslashes($_POST['weblog_title']);
$admin_email = stripslashes($_POST['admin_email']);
$public = (int) $_POST['blog_public'];
// check e-mail address
if (empty($admin_email)) {
die(__("<strong>ERROR</strong>: please type your e-mail address"));
} else if (!is_email($admin_email)) {
die(__("<strong>ERROR</strong>: the e-mail address isn't correct"));
}
// Fill in the data we gathered
$weblog_title = $_POST['weblog_title'];
$admin_email = $_POST['admin_email'];
// check e-mail address
if (empty($admin_email)) {
die (__("<strong>ERROR</strong>: please type your e-mail address"));
} else if (!is_email($admin_email)) {
die (__("<strong>ERROR</strong>: the e-mail address isn't correct"));
}
?>
<h1><?php _e('Second Step'); ?></h1>
<p><?php _e('Now we&#8217;re going to create the database tables and fill them with some default data.'); ?></p>
<?php
flush();
// Set everything up
make_db_current_silent();
populate_options();
$wpdb->query("UPDATE $wpdb->options SET option_value = '$weblog_title' WHERE option_name = 'blogname'");
$wpdb->query("UPDATE $wpdb->options SET option_value = '$admin_email' WHERE option_name = 'admin_email'");
// Now drop in some default links
$wpdb->query("INSERT INTO $wpdb->linkcategories (cat_id, cat_name) VALUES (1, '".addslashes(__('Blogroll'))."')");
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss) VALUES ('http://blog.carthik.net/index.php', 'Carthik', 1, 'http://blog.carthik.net/feed/');");
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss) VALUES ('http://blogs.linux.ie/xeer/', 'Donncha', 1, 'http://blogs.linux.ie/xeer/feed/');");
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss) VALUES ('http://zengun.org/weblog/', 'Michel', 1, 'http://zengun.org/weblog/feed/');");
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss) VALUES ('http://boren.nu/', 'Ryan', 1, 'http://boren.nu/feed/');");
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss) VALUES ('http://photomatt.net/', 'Matt', 1, 'http://xml.photomatt.net/feed/');");
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss) VALUES ('http://zed1.com/journalized/', 'Mike', 1, 'http://zed1.com/journalized/feed/');");
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss) VALUES ('http://www.alexking.org/', 'Alex', 1, 'http://www.alexking.org/blog/wp-rss2.php');");
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss) VALUES ('http://dougal.gunters.org/', 'Dougal', 1, 'http://dougal.gunters.org/feed/');");
// Default category
$wpdb->query("INSERT INTO $wpdb->categories (cat_ID, cat_name, category_nicename) VALUES ('0', '".addslashes(__('Uncategorized'))."', '".sanitize_title(__('Uncategorized'))."')");
// First post
$now = date('Y-m-d H:i:s');
$now_gmt = gmdate('Y-m-d H:i:s');
$wpdb->query("INSERT INTO $wpdb->posts (post_author, post_date, post_date_gmt, post_content, post_title, post_category, post_name, post_modified, post_modified_gmt) VALUES ('1', '$now', '$now_gmt', '".addslashes(__('Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!'))."', '".addslashes(__('Hello world!'))."', '0', '".addslashes(__('hello-world'))."', '$now', '$now_gmt')");
$wpdb->query( "INSERT INTO $wpdb->post2cat (`rel_id`, `post_id`, `category_id`) VALUES (1, 1, 1)" );
// Default comment
$wpdb->query("INSERT INTO $wpdb->comments (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_date_gmt, comment_content) VALUES ('1', '".addslashes(__('Mr WordPress'))."', '', 'http://wordpress.org', '127.0.0.1', '$now', '$now_gmt', '".addslashes(__('Hi, this is a comment.<br />To delete a comment, just log in, and view the posts\' comments, there you will have the option to edit or delete them.'))."')");
// Set up admin user
$random_password = substr(md5(uniqid(microtime())), 0, 6);
$wpdb->query("INSERT INTO $wpdb->users (ID, user_login, user_pass, user_nickname, user_email, user_level, user_idmode, user_registered) VALUES ( '1', 'admin', MD5('$random_password'), '".addslashes(__('Administrator'))."', '$admin_email', '10', 'nickname', NOW() )");
$message_headers = 'From: ' . stripslashes($_POST['weblog_title']) . ' <wordpress@' . $_SERVER['SERVER_NAME'] . '>';
$message = sprintf(__("Your new WordPress blog has been successfully set up at:
%1\$s
You can log in to the administrator account with the following information:
Username: admin
Password: %2\$s
We hope you enjoy your new weblog. Thanks!
--The WordPress Team
http://wordpress.org/
"), $guessurl, $random_password);
@mail($admin_email, __('New WordPress Blog'), $message, $message_headers);
upgrade_all();
$result = wp_install($weblog_title, 'admin', $admin_email, $public);
extract($result, EXTR_SKIP);
?>
<p><em><?php _e('Finished!'); ?></em></p>
<p><?php printf(__('Now you can <a href="%1$s">log in</a> with the <strong>username</strong> "<code>admin</code>" and <strong>password</strong> "<code>%2$s</code>".'), '../wp-login.php', $random_password); ?></p>
<p><?php _e('<strong><em>Note that password</em></strong> carefully! It is a <em>random</em> password that was generated just for you. If you lose it, you will have to delete the tables from the database yourself, and re-install WordPress. So to review:'); ?>
</p>
<p><?php printf(__('Now you can <a href="%1$s">log in</a> with the <strong>username</strong> "<code>admin</code>" and <strong>password</strong> "<code>%2$s</code>".'), '../wp-login.php', $password); ?></p>
<p><?php _e('<strong><em>Note that password</em></strong> carefully! It is a <em>random</em> password that was generated just for you. If you lose it, you will have to delete the tables from the database yourself, and re-install WordPress. So to review:'); ?></p>
<dl>
<dt><?php _e('Username'); ?></dt>
<dd><code>admin</code></dd>
<dt><?php _e('Password'); ?></dt>
<dd><code><?php echo $random_password; ?></code></dd>
<dt><?php _e('Username'); ?></dt>
<dd><code>admin</code></dd>
<dt><?php _e('Password'); ?></dt>
<dd><code><?php echo $password; ?></code></dd>
<dt><?php _e('Login address'); ?></dt>
<dd><a href="../wp-login.php">wp-login.php</a></dd>
<dd><a href="../wp-login.php">wp-login.php</a></dd>
</dl>
<p><?php _e('Were you expecting more steps? Sorry to disappoint. All done! :)'); ?></p>
<?php
break;
break;
}
?>
<p id="footer"><?php _e('<a href="http://wordpress.org/">WordPress</a>, personal publishing platform.'); ?></p>
</body>
</html>
</html>

View File

@@ -5,266 +5,31 @@ $title = __('Add Link');
$this_file = 'link-manager.php';
$parent_file = 'link-manager.php';
function category_dropdown($fieldname, $selected = 0) {
global $wpdb;
$results = $wpdb->get_results("SELECT cat_id, cat_name, auto_toggle FROM $wpdb->linkcategories ORDER BY cat_id");
echo "\n<select name='$fieldname' size='1'>\n";
foreach ($results as $row) {
echo "\n\t<option value='$row->cat_id'";
if ($row->cat_id == $selected)
echo " selected='selected'";
echo ">$row->cat_id : " . wp_specialchars($row->cat_name);
if ($row->auto_toggle == 'Y')
echo ' (auto toggle)';
echo "</option>";
}
echo "\n</select>\n";
}
function xfn_check($class, $value = '', $type = 'check') {
global $link_rel;
$rels = preg_split('/\s+/', $link_rel);
wp_reset_vars(array('action', 'cat_id', 'linkurl', 'name', 'image',
'description', 'visible', 'target', 'category', 'link_id',
'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel',
'notes', 'linkcheck[]'));
if ('' != $value && in_array($value, $rels) ) {
echo ' checked="checked"';
}
if ('' == $value) {
if ('family' == $class && !strstr($link_rel, 'child') && !strstr($link_rel, 'parent') && !strstr($link_rel, 'sibling') && !strstr($link_rel, 'spouse') && !strstr($link_rel, 'kin')) echo ' checked="checked"';
if ('friendship' == $class && !strstr($link_rel, 'friend') && !strstr($link_rel, 'acquaintance') && !strstr($link_rel, 'contact') ) echo ' checked="checked"';
if ('geographical' == $class && !strstr($link_rel, 'co-resident') && !strstr($link_rel, 'neighbor') ) echo ' checked="checked"';
if ('identity' == $class && in_array('me', $rels) ) echo ' checked="checked"';
}
}
$wpvarstoreset = array('action', 'cat_id', 'linkurl', 'name', 'image',
'description', 'visible', 'target', 'category', 'link_id',
'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel',
'notes', 'linkcheck[]');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
$link_url = stripslashes($_GET['linkurl']);
$link_name = htmlentities(stripslashes(urldecode($_GET['name'])));
$xfn = true;
wp_enqueue_script( array('xfn', 'dbx-admin-key?pagenow=link.php') );
if ( current_user_can( 'manage_categories' ) )
wp_enqueue_script( 'ajaxcat' );
require('admin-header.php');
?>
<?php if ($_GET['added']) : ?>
<div class="updated"><p><?php _e('Link added.'); ?></p></div>
<?php if ($_GET['added'] && '' != $_POST['link_name']) : ?>
<div id="message" class="updated fade"><p><?php _e('Link added.'); ?></p></div>
<?php endif; ?>
<div class="wrap">
<h2><?php _e('<strong>Add</strong> a link:') ?></h2>
<form name="addlink" method="post" action="link-manager.php">
<fieldset class="options">
<legend><?php _e('Basics') ?></legend>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('URI:') ?></th>
<td width="67%"><input type="text" name="linkurl" value="<?php echo wp_specialchars($_GET['linkurl'], 1); ?>" style="width: 95%;" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Link Name:') ?></th>
<td><input type="text" name="name" value="<?php echo wp_specialchars( urldecode($_GET['name']), 1 ); ?>" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Short description:') ?></th>
<td><input type="text" name="description" value="" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Category:') ?></th>
<td><?php category_dropdown('category'); ?></td>
</tr>
</table>
</fieldset>
<p class="submit">
<input type="submit" name="submit" value="<?php _e('Add Link &raquo;') ?>" />
</p>
<fieldset class="options">
<legend><?php _e('Link Relationship (XFN)') ?></legend>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('rel:') ?></th>
<td width="67%"><input type="text" name="rel" id="rel" size="50" value="<?php echo $link_rel; ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('<a href="http://gmpg.org/xfn/">XFN</a> Creator:') ?></th>
<td>
<table cellpadding="3" cellspacing="5">
<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 id="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>
</fieldset>
<p class="submit">
<input type="submit" name="submit" value="<?php _e('Add Link &raquo;') ?>" />
</p>
<fieldset class="options">
<legend><?php _e('Advanced') ?></legend>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('Image URI:') ?></th>
<td width="67%"><input type="text" name="image" size="50" value="" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('RSS URI:') ?> </th>
<td><input name="rss_uri" type="text" id="rss_uri" value="" size="50" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Notes:') ?></th>
<td><textarea name="notes" cols="50" rows="10" style="width: 95%"></textarea></td>
</tr>
<tr>
<th scope="row"><?php _e('Rating:') ?></th>
<td><select name="rating" size="1">
<?php
for ($r = 0; $r < 10; $r++) {
echo(' <option value="'.$r.'">'.$r.'</option>');
}
<?php
$link = get_default_link_to_edit();
include('edit-link-form.php');
?>
</select>
&nbsp;<?php _e('(Leave at 0 for no rating.)') ?> </td>
</tr>
<tr>
<th scope="row"><?php _e('Target') ?></th>
<td><label>
<input type="radio" name="target" value="_blank" />
<code>_blank</code></label>
<br />
<label><input type="radio" name="target" value="_top" />
<code>_top</code></label>
<br />
<label><input type="radio" name="target" value="" checked="checked" />
<?php _e('none') ?></label>
<?php _e('(Note that the <code>target</code> attribute is illegal in XHTML 1.1 and 1.0 Strict.)') ?></td>
</tr>
<tr>
<th scope="row"><?php _e('Visible:') ?></th>
<td><label>
<input type="radio" name="visible" checked="checked" value="Y" />
<?php _e('Yes') ?></label><br />
<label><input type="radio" name="visible" value="N" /> <input type="hidden" name="action" value="Add" />
<?php _e('No') ?></label></td>
</tr>
</table>
</fieldset>
<p class="submit">
<input type="submit" name="submit" value="<?php _e('Add Link &raquo;') ?>" />
</p>
</form>
</div>
<div class="wrap">
<?php printf(__('<p>You can drag <a href="%s" title="Link add bookmarklet">Link This</a> to your toolbar and when you click it a window will pop up that will allow you to add whatever site you&#8217;re on to your links! Right now this only works on Mozilla or Netscape, but we&#8217;re working on it.</p>'), "javascript:void(linkmanpopup=window.open('" . get_settings('siteurl') . "/wp-admin/link-add.php?action=popup&amp;linkurl='+escape(location.href)+'&amp;name='+escape(document.title),'LinkManager','scrollbars=yes,width=750,height=550,left=15,top=15,status=yes,resizable=yes'));linkmanpopup.focus();window.focus();linkmanpopup.focus();") ?>
<div id="wp-link-bookmarklet" class="wrap">
<h3><?php _e('Add Link Bookmarklet'); ?></h3>
<p><?php _e('Right click on the following link and choose &#0147;Bookmark This Link...&#0148; or &#0147;Add to Favorites...&#0148; to create a Link This shortcut.'); ?></p>
<?php printf('<p><a href="%s" title="'.__('Link add bookmarklet').'">'.__('Link This').'</a></p>', "javascript:void(linkmanpopup=window.open('" . get_option('siteurl') . "/wp-admin/link-add.php?action=popup&amp;linkurl='+escape(location.href)+'&amp;name='+escape(document.title),'LinkManager','scrollbars=yes,width=750,height=550,left=15,top=15,status=yes,resizable=yes'));linkmanpopup.focus();window.focus();linkmanpopup.focus();") ?>
</div>
<?php

View File

@@ -1,453 +0,0 @@
<?php
// Links
// Copyright (C) 2002, 2003 Mike Little -- mike@zed1.com
require_once('admin.php');
$title = __('Link Categories');
$this_file='link-categories.php';
$parent_file = 'link-manager.php';
$wpvarstoreset = array('action', 'cat', 'auto_toggle');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
switch ($action) {
case 'addcat':
{
if ($user_level < 5)
die (__("Cheatin' uh ?"));
$cat_name = wp_specialchars($_POST['cat_name']);
$auto_toggle = $_POST['auto_toggle'];
if ($auto_toggle != 'Y') {
$auto_toggle = 'N';
}
$show_images = $_POST['show_images'];
if ($show_images != 'Y') {
$show_images = 'N';
}
$show_description = $_POST['show_description'];
if ($show_description != 'Y') {
$show_description = 'N';
}
$show_rating = $_POST['show_rating'];
if ($show_rating != 'Y') {
$show_rating = 'N';
}
$show_updated = $_POST['show_updated'];
if ($show_updated != 'Y') {
$show_updated = 'N';
}
$sort_order = $_POST['sort_order'];
$sort_desc = $_POST['sort_desc'];
if ($sort_desc != 'Y') {
$sort_desc = 'N';
}
$text_before_link = addslashes($_POST['text_before_link']);
$text_after_link = addslashes($_POST['text_after_link']);
$text_after_all = addslashes($_POST['text_after_all']);
$list_limit = $_POST['list_limit'];
if ($list_limit == '')
$list_limit = -1;
$wpdb->query("INSERT INTO $wpdb->linkcategories (cat_id, cat_name, auto_toggle, show_images, show_description, \n" .
" show_rating, show_updated, sort_order, sort_desc, text_before_link, text_after_link, text_after_all, list_limit) \n" .
" VALUES ('0', '$cat_name', '$auto_toggle', '$show_images', '$show_description', \n" .
" '$show_rating', '$show_updated', '$sort_order', '$sort_desc', '$text_before_link', '$text_after_link', \n" .
" '$text_after_all', $list_limit)");
header('Location: link-categories.php');
break;
} // end addcat
case 'Delete':
{
$cat_id = (int) $_GET['cat_id'];
$cat_name=get_linkcatname($cat_id);
if ($cat_id=="1")
die(sprintf(__("Can't delete the <strong>%s</strong> link category: this is the default one"), $cat_name));
if ($user_level < 5)
die (__("Cheatin' uh ?"));
$wpdb->query("DELETE FROM $wpdb->linkcategories WHERE cat_id='$cat_id'");
$wpdb->query("UPDATE $wpdb->links SET link_category=1 WHERE link_category='$cat_id'");
header('Location: link-categories.php');
break;
} // end delete
case 'Edit':
{
include_once ('admin-header.php');
$cat_id = (int) $_GET['cat_id'];
$row = $wpdb->get_row("SELECT cat_id, cat_name, auto_toggle, show_images, show_description, "
. " show_rating, show_updated, sort_order, sort_desc, text_before_link, text_after_link, "
. " text_after_all, list_limit FROM $wpdb->linkcategories WHERE cat_id=$cat_id");
if ($row) {
if ($row->list_limit == -1) {
$row->list_limit = '';
}
?>
<div class="wrap">
<h2><?php printf(__('Edit &#8220%s&#8221; Category'), wp_specialchars($row->cat_name)); ?></h2>
<form name="editcat" method="post">
<input type="hidden" name="action" value="editedcat" />
<input type="hidden" name="cat_id" value="<?php echo $row->cat_id ?>" />
<fieldset class="options">
<legend><?php _e('Category Options') ?></legend>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('Name:') ?></th>
<td width="67%"><input name="cat_name" type="text" value="<?php echo wp_specialchars($row->cat_name)?>" size="30" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Show:') ?></th>
<td>
<label>
<input type="checkbox" name="show_images" value="Y" <?php checked('Y', $row->show_images); ?> />
<?php _e('Image') ?></label> <br />
<label>
<input type="checkbox" name="show_description" value="Y" <?php checked('Y', $row->show_description); ?> />
<?php _e('Description') ?></label>
<?php _e('(shown in <code>title</code> regardless)') ?><br />
<label>
<input type="checkbox" name="show_rating" value="Y" <?php checked('Y', $row->show_rating); ?> />
<?php _e('Rating') ?></label> <br />
<label>
<input type="checkbox" name="show_updated" value="Y" <?php checked('Y', $row->show_updated); ?> />
<?php _e('Updated') ?></label>
<?php _e('(shown in <code>title</code> regardless)') ?></td>
</tr>
<tr>
<th scope="row"><?php _e('Sort order:') ?></th>
<td>
<select name="sort_order" size="1">
<option value="name" <?php echo ($row->sort_order == 'name') ? 'selected="selected"' : ''?>><?php _e('Name') ?></option>
<option value="id" <?php echo ($row->sort_order == 'id') ? 'selected' : ''?>><?php _e('Id') ?></option>
<option value="url" <?php echo ($row->sort_order == 'url') ? 'selected' : ''?>><?php _e('URL') ?></option>
<option value="rating" <?php echo ($row->sort_order == 'rating') ? 'selected' : ''?>><?php _e('Rating') ?></option>
<option value="updated" <?php echo ($row->sort_order == 'updated') ? 'selected' : ''?>><?php _e('Updated') ?></option>
<option value="rand" <?php echo ($row->sort_order == 'rand') ? 'selected' : ''?>><?php _e('Random') ?></option>
<option value="length" <?php echo ($row->sort_order == 'length') ? 'selected' : ''?>><?php _e('Name Length') ?></option>
</select>
<label>
<input type="checkbox" name="sort_desc" value="Y" <?php checked('Y', $row->sort_desc); ?> />
<?php _e('Descending') ?></label>
</td>
</tr>
<tr>
<th scope="row"><?php _e('Limit:') ?></th>
<td>
<input type="text" name="list_limit" size="5" value="<?php echo $row->list_limit ?>" />
<?php _e('(Leave empty for no limit to number of links shown)') ?>
</td>
</tr>
<tr>
<th scope="row"><?php _e('Toggle:') ?></th>
<td><label>
<input type="checkbox" name="auto_toggle" value="Y" <?php checked('Y', $row->auto_toggle); ?> />
<?php _e('When new link is added toggle all others to be invisible') ?></label></td>
</tr>
</table>
</fieldset>
<fieldset class="options">
<legend><?php _e('Formatting') ?></legend>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('Before Link:') ?></th>
<td width="67%"><input type="text" name="text_before_link" size="45" value="<?php echo wp_specialchars($row->text_before_link)?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Between Link and Description:') ?></th>
<td><input type="text" name="text_after_link" size="45" value="<?php echo wp_specialchars($row->text_after_link)?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('After Link:') ?></th>
<td><input type="text" name="text_after_all" size="45" value="<?php echo wp_specialchars($row->text_after_all)?>"/></td>
</tr>
</table>
</fieldset>
<p class="submit"><input type="submit" name="submit" value="<?php _e('Save Category Settings &raquo;') ?>" /></p>
</form>
</div>
<?php
} // end if row
break;
} // end Edit
case "editedcat":
{
if ($user_level < 5)
die (__("Cheatin' uh ?"));
$submit=$_POST["submit"];
if (isset($submit)) {
$cat_id = (int)$_POST["cat_id"];
$cat_name= wp_specialchars($_POST["cat_name"]);
$auto_toggle = $_POST["auto_toggle"];
if ($auto_toggle != 'Y') {
$auto_toggle = 'N';
}
$show_images = $_POST["show_images"];
if ($show_images != 'Y') {
$show_images = 'N';
}
$show_description = $_POST["show_description"];
if ($show_description != 'Y') {
$show_description = 'N';
}
$show_rating = $_POST["show_rating"];
if ($show_rating != 'Y') {
$show_rating = 'N';
}
$show_updated = $_POST["show_updated"];
if ($show_updated != 'Y') {
$show_updated = 'N';
}
$sort_order = $_POST["sort_order"];
$sort_desc = $_POST["sort_desc"];
if ($sort_desc != 'Y') {
$sort_desc = 'N';
}
$text_before_link = addslashes($_POST["text_before_link"]);
$text_after_link = addslashes($_POST["text_after_link"]);
$text_after_all = addslashes($_POST["text_after_all"]);
$list_limit = $_POST["list_limit"];
if ($list_limit == '')
$list_limit = -1;
$wpdb->query("UPDATE $wpdb->linkcategories set
cat_name='$cat_name',
auto_toggle='$auto_toggle',
show_images='$show_images',
show_description='$show_description',
show_rating='$show_rating',
show_updated='$show_updated',
sort_order='$sort_order',
sort_desc='$sort_desc',
text_before_link='$text_before_link',
text_after_link='$text_after_link',
text_after_all='$text_after_all',
list_limit=$list_limit
WHERE cat_id=$cat_id
");
} // end if save
header("Location: link-categories.php");
break;
} // end editcat
default:
{
include_once ("admin-header.php");
if ($user_level < 5) {
die(__("You have do not have sufficient permissions to edit the link categories for this blog. :)"));
}
?>
<div class="wrap">
<h2><?php _e('Link Categories:') ?></h2>
<table width="100%" cellpadding="5" cellspacing="0" border="0">
<tr>
<th rowspan="2" valign="bottom"><?php _e('Name') ?></th>
<th rowspan="2" valign="bottom"><?php _e('ID') ?></th>
<th rowspan="2" valign="bottom"><?php _e('Toggle?') ?></th>
<th colspan="4" valign="bottom" class="alternate"><?php _e('Show') ?></th>
<th rowspan="2" valign="bottom"><?php _e('Sort Order') ?></th>
<th rowspan="2" valign="bottom"><?php _e('Desc?') ?></th>
<th colspan="3" valign="bottom" class="alternate"><?php _e('Formatting') ?></th>
<th rowspan="2" valign="bottom"><?php _e('Limit') ?></th>
<th rowspan="2" colspan="2">&nbsp;</th>
</tr>
<tr>
<th valign="top"><?php _e('Images') ?></th>
<th valign="top"><?php _e('Description') ?></th>
<th valign="top"><?php _e('Rating') ?></th>
<th valign="top"><?php _e('Updated') ?></th>
<th valign="top"><?php _e('Before') ?></th>
<th valign="top"><?php _e('Between') ?></th>
<th valign="top"><?php _e('After') ?></th>
</tr>
<?php
$results = $wpdb->get_results("SELECT cat_id, cat_name, auto_toggle, show_images, show_description, "
. " show_rating, show_updated, sort_order, sort_desc, text_before_link, text_after_link, "
. " text_after_all, list_limit FROM $wpdb->linkcategories ORDER BY cat_id");
$i = 1;
foreach ($results as $row) {
if ($row->list_limit == -1) {
$row->list_limit = __('none');
}
$style = ($i % 2) ? ' class="alternate"' : '';
/*
Manually internationalize every sort order option.
*/
switch ($row->sort_order) {
case 'name':
$row->sort_order = __('name');
break;
case 'id':
$row->sort_order = __('id');
break;
case 'url':
$row->sort_order = __('url');
break;
case 'rating':
$row->sort_order = __('rating');
break;
case 'updated':
$row->sort_order = __('updated');
break;
case 'rand':
$row->sort_order = __('rand');
break;
case 'length':
$row->sort_order = __('length');
break;
}
?>
<tr valign="middle" align="center" <?php echo $style ?> style="border-bottom: 1px dotted #9C9A9C;">
<td><?php echo wp_specialchars($row->cat_name)?></td>
<td ><?php echo $row->cat_id?></td>
<td><?php echo $row->auto_toggle == 'Y' ? __('Yes') : __('No') ?></td>
<td><?php echo $row->show_images == 'Y' ? __('Yes') : __('No') ?></td>
<td><?php echo $row->show_description == 'Y' ? __('Yes') : __('No') ?></td>
<td><?php echo $row->show_rating == 'Y' ? __('Yes') : __('No') ?></td>
<td><?php echo $row->show_updated == 'Y' ? __('Yes') : __('No') ?></td>
<td><?php echo $row->sort_order ?></td>
<td><?php echo $row->sort_desc == 'Y' ? __('Yes') : __('No') ?></td>
<td nowrap="nowrap"><?php echo htmlentities($row->text_before_link)?>&nbsp;</td>
<td nowrap="nowrap"><?php echo htmlentities($row->text_after_link)?>&nbsp;</td>
<td nowrap="nowrap"><?php echo htmlentities($row->text_after_all)?></td>
<td><?php echo $row->list_limit ?></td>
<td><a href="link-categories.php?cat_id=<?php echo $row->cat_id?>&amp;action=Edit" class="edit"><?php _e('Edit') ?></a></td>
<td><a href="link-categories.php?cat_id=<?php echo $row->cat_id?>&amp;action=Delete" onclick="return confirm('<?php _e("You are about to delete this category.\\n \'Cancel\' to stop, \'OK\' to delete.") ?>');" class="delete"><?php _e('Delete') ?></a></td>
</tr>
<?php
++$i;
}
?>
</table>
<p><?php _e('These are the defaults for when you call a link category with no additional arguments. All of these settings may be overwritten.') ?></p>
</div>
<div class="wrap">
<form name="addcat" method="post">
<input type="hidden" name="action" value="addcat" />
<h2><?php _e('Add a Link Category:') ?></h2>
<fieldset class="options">
<legend><?php _e('Category Options') ?></legend>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('Name:') ?></th>
<td width="67%"><input type="text" name="cat_name" size="30" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Show:') ?></th>
<td>
<label>
<input type="checkbox" name="show_images" value="Y" />
<?php _e('Image') ?></label> <br />
<label>
<input type="checkbox" name="show_description" value="Y" />
<?php _e('Description') ?></label>
<?php _e('(shown in <code>title</code> regardless)') ?><br />
<label>
<input type="checkbox" name="show_rating" value="Y" />
<?php _e('Rating') ?></label> <br />
<label>
<input type="checkbox" name="show_updated" value="Y" />
<?php _e('Updated') ?></label>
<?php _e('(shown in <code>title</code> regardless)') ?></td>
</tr>
<tr>
<th scope="row"><?php _e('Sort order:') ?></th>
<td>
<select name="sort_order" size="1">
<option value="name"><?php _e('Name') ?></option>
<option value="id"><?php _e('Id') ?></option>
<option value="url"><?php _e('URL') ?></option>
<option value="rating"><?php _e('Rating') ?></option>
<option value="updated"><?php _e('Updated') ?></option>
<option value="rand"><?php _e('Random') ?></option>
</select>
<label>
<input type="checkbox" name="sort_desc" value="Y" />
<?php _e('Descending') ?></label>
</td>
</tr>
<tr>
<th scope="row"><?php _e('Limit:') ?></th>
<td>
<input type="text" name="list_limit" size="5" value="" /> <?php _e('(Leave empty for no limit to number of links shown)') ?>
</td>
</tr>
<tr>
<th scope="row"><?php _e('Toggle:') ?></th>
<td><label>
<input type="checkbox" name="auto_toggle" value="Y" />
<?php _e('When new link is added toggle all others to be invisible') ?></label></td>
</tr>
</table>
</fieldset>
<fieldset class="options">
<legend><?php _e('Formatting') ?></legend>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('Before Link:') ?></th>
<td width="67%"><input type="text" name="text_before_link" size="45" value="&lt;li&gt;" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Between Link and Description:') ?></th>
<td><input type="text" name="text_after_link" size="45" value="&lt;br /&gt;" /></td>
</tr>
<tr>
<th scope="row"><?php _e('After Link:') ?></th>
<td><input type="text" name="text_after_all" size="45" value="&lt;/li&gt;"/></td>
</tr>
</table>
</fieldset>
<p class="submit"><input type="submit" name="submit" value="<?php _e('Add Category &raquo;') ?>" /></p>
</form>
</div>
<div class="wrap">
<h3><?php _e('Note:') ?></h3>
<?php printf(__('<p>Deleting a link category does not delete links from that category.<br />It will just set them back to the default category <b>%s</b>.'), get_linkcatname(1)) ?></p>
</div>
<?php
break;
} // end default
} // end case
?>
<?php include('admin-footer.php'); ?>

View File

@@ -12,120 +12,126 @@ if (!$step) $step = 0;
?>
<?php
switch ($step) {
case 0:
{
include_once('admin-header.php');
if ($user_level < 5)
die (__("Cheatin&#8217; uh?"));
case 0: {
include_once('admin-header.php');
if ( !current_user_can('manage_links') )
wp_die(__('Cheatin&#8217; uh?'));
$opmltype = 'blogrolling'; // default.
$opmltype = 'blogrolling'; // default.
?>
<div class="wrap">
<h2><?php _e('Import your blogroll from another system') ?> </h2>
<!-- <form name="blogroll" action="link-import.php" method="get"> -->
<form enctype="multipart/form-data" action="link-import.php" method="post" name="blogroll">
<h2><?php _e('Import your blogroll from another system') ?> </h2>
<form enctype="multipart/form-data" action="link-import.php" method="post" name="blogroll">
<?php wp_nonce_field('import-bookmarks') ?>
<ol>
<li><?php _e('Go to <a href="http://www.blogrolling.com">Blogrolling.com</a> and sign in. Once you&#8217;ve done that, click on <strong>Get Code</strong>, and then look for the <strong><abbr title="Outline Processor Markup Language">OPML</abbr> code</strong>') ?>.</li>
<li><?php _e('Or go to <a href="http://blo.gs">Blo.gs</a> and sign in. Once you&#8217;ve done that in the \'Welcome Back\' box on the right, click on <strong>share</strong>, and then look for the <strong><abbr title="Outline Processor Markup Language">OPML</abbr> link</strong> (favorites.opml).') ?></li>
<li><?php _e('Select that text and copy it or copy the link/shortcut into the box below.') ?><br />
<input type="hidden" name="step" value="1" />
<?php _e('Your OPML URL:') ?> <input type="text" name="opml_url" size="65" />
</li>
<li>
<?php _e('<strong>or</strong> you can upload an OPML file from your desktop aggregator:') ?><br />
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<label><?php _e('Upload this file:') ?> <input name="userfile" type="file" /></label>
</li>
<p><?php _e('If a program or website you use allows you to export your links or subscriptions as OPML you may import them here.'); ?></p>
<div style="width: 70%; margin: auto; height: 8em;">
<input type="hidden" name="step" value="1" />
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<div style="width: 48%; float: left;">
<h3><?php _e('Specify an OPML URL:'); ?></h3>
<input type="text" name="opml_url" size="50" style="width: 90%;" value="http://" />
</div>
<li><?php _e('Now select a category you want to put these links in.') ?><br />
<?php _e('Category:') ?> <select name="cat_id">
<div style="width: 48%; float: left;">
<h3><?php _e('Or choose from your local disk:'); ?></h3>
<input id="userfile" name="userfile" type="file" size="30" />
</div>
</div>
<p style="clear: both; margin-top: 1em;"><?php _e('Now select a category you want to put these links in.') ?><br />
<?php _e('Category:') ?> <select name="cat_id">
<?php
$categories = $wpdb->get_results("SELECT cat_id, cat_name, auto_toggle FROM $wpdb->linkcategories ORDER BY cat_id");
foreach ($categories as $category) {
$categories = get_categories('hide_empty=0');
foreach ($categories as $category) {
?>
<option value="<?php echo $category->cat_id; ?>"><?php echo $category->cat_id.': '.$category->cat_name; ?></option>
<option value="<?php echo $category->cat_ID; ?>"><?php echo wp_specialchars(apply_filters('link_category', $category->cat_name)); ?></option>
<?php
} // end foreach
} // end foreach
?>
</select>
</select></p>
</li>
<li><input type="submit" name="submit" value="<?php _e('Import!') ?>" /></li>
</ol>
</form>
<p class="submit"><input type="submit" name="submit" value="<?php _e('Import OPML File &raquo;') ?>" /></p>
</form>
</div>
<?php
break;
} // end case 0
break;
} // end case 0
case 1: {
include_once('admin-header.php');
if ($user_level < 5)
die (__("Cheatin' uh ?"));
case 1: {
check_admin_referer('import-bookmarks');
include_once('admin-header.php');
if ( !current_user_can('manage_links') )
wp_die(__('Cheatin&#8217; uh?'));
?>
<div class="wrap">
<h2><?php _e('Importing...') ?></h2>
<h2><?php _e('Importing...') ?></h2>
<?php
$cat_id = $_POST['cat_id'];
if (($cat_id == '') || ($cat_id == 0)) {
$cat_id = 1;
}
$cat_id = abs( (int) $_POST['cat_id'] );
if ( $cat_id < 1 )
$cat_id = 1;
$opml_url = $_POST['opml_url'];
if (isset($opml_url) && $opml_url != '') {
$blogrolling = true;
}
else // try to get the upload file.
{
$uploaddir = get_settings('fileupload_realpath');
$uploadfile = $uploaddir.'/'.$_FILES['userfile']['name'];
$opml_url = $_POST['opml_url'];
if ( isset($opml_url) && $opml_url != '' && $opml_url != 'http://' ) {
$blogrolling = true;
} else { // try to get the upload file.
$overrides = array('test_form' => false, 'test_type' => false);
$file = wp_handle_upload($_FILES['userfile'], $overrides);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
{
//echo "Upload successful.";
$blogrolling = false;
$opml_url = $uploadfile;
} else {
echo __("Upload error");
}
}
if ( isset($file['error']) )
wp_die($file['error']);
if (isset($opml_url) && $opml_url != '') {
$opml = implode('', file($opml_url));
include_once('link-parse-opml.php');
$url = $file['url'];
$opml_url = $file['file'];
$blogrolling = false;
}
$link_count = count($names);
for ($i = 0; $i < $link_count; $i++) {
if ('Last' == substr($titles[$i], 0, 4))
$titles[$i] = '';
if ('http' == substr($titles[$i], 0, 4))
$titles[$i] = '';
$query = "INSERT INTO $wpdb->links (link_url, link_name, link_target, link_category, link_description, link_owner, link_rss)
VALUES('{$urls[$i]}', '".addslashes($names[$i])."', '', $cat_id, '".addslashes($descriptions[$i])."', $user_ID, '{$feeds[$i]}')\n";
$result = $wpdb->query($query);
echo sprintf(__("<p>Inserted <strong>%s</strong></p>"), $names[$i]);
}
if ( isset($opml_url) && $opml_url != '' ) {
if ( $blogrolling === true ) {
$opml = wp_remote_fopen($opml_url);
} else {
$opml = file_get_contents($opml_url);
}
include_once('link-parse-opml.php');
$link_count = count($names);
for ( $i = 0; $i < $link_count; $i++ ) {
if ('Last' == substr($titles[$i], 0, 4))
$titles[$i] = '';
if ( 'http' == substr($titles[$i], 0, 4) )
$titles[$i] = '';
$link = array( 'link_url' => $urls[$i], 'link_name' => $wpdb->escape($names[$i]), 'link_category' => array($cat_id), 'link_description' => $wpdb->escape($descriptions[$i]), 'link_owner' => $user_ID, 'link_rss' => $feeds[$i]);
wp_insert_link($link);
echo sprintf('<p>'.__('Inserted <strong>%s</strong>').'</p>', $names[$i]);
}
?>
<p><?php printf(__('Inserted %1$d links into category %2$s. All done! Go <a href="%3$s">manage those links</a>.'), $link_count, $cat_id, 'link-manager.php') ?></p>
<?php
} // end if got url
else
{
echo "<p>" . __("You need to supply your OPML url. Press back on your browser and try again") . "</p>\n";
} // end else
<p><?php printf(__('Inserted %1$d links into category %2$s. All done! Go <a href="%3$s">manage those links</a>.'), $link_count, $cat_id, 'link-manager.php') ?></p>
<?php
} // end if got url
else
{
echo "<p>" . __("You need to supply your OPML url. Press back on your browser and try again") . "</p>\n";
} // end else
if ( ! $blogrolling )
apply_filters( 'wp_delete_file', $opml_url);
@unlink($opml_url);
?>
</div>
<?php
break;
} // end case 1
break;
} // end case 1
} // end switch
?>
</body>
</html>
include('admin-footer.php');
?>

View File

@@ -1,561 +1,49 @@
<?php
// Links
// Copyright (C) 2002, 2003 Mike Little -- mike@zed1.com
require_once('admin.php');
require_once ('admin.php');
$title = __('Manage Links');
wp_enqueue_script( 'listman' );
wp_reset_vars(array('action', 'cat_id', 'linkurl', 'name', 'image', 'description', 'visible', 'target', 'category', 'link_id', 'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel', 'notes', 'linkcheck[]'));
if (empty ($cat_id))
$cat_id = 'all';
if (empty ($order_by))
$order_by = 'order_name';
$title = __('Manage Blogroll');
$this_file = $parent_file = 'link-manager.php';
include_once ("./admin-header.php");
function xfn_check($class, $value = '', $type = 'check') {
global $link_rel;
$rels = preg_split('/\s+/', $link_rel);
if (!current_user_can('manage_links'))
wp_die(__("You do not have sufficient permissions to edit the links for this blog."));
if ('' != $value && in_array($value, $rels) ) {
echo ' checked="checked"';
}
if ('' == $value) {
if ('family' == $class && !strstr($link_rel, 'child') && !strstr($link_rel, 'parent') && !strstr($link_rel, 'sibling') && !strstr($link_rel, 'spouse') && !strstr($link_rel, 'kin')) echo ' checked="checked"';
if ('friendship' == $class && !strstr($link_rel, 'friend') && !strstr($link_rel, 'acquaintance') && !strstr($link_rel, 'contact') ) echo ' checked="checked"';
if ('geographical' == $class && !strstr($link_rel, 'co-resident') && !strstr($link_rel, 'neighbor') ) echo ' checked="checked"';
if ('identity' == $class && in_array('me', $rels) ) echo ' checked="checked"';
}
switch ($order_by) {
case 'order_id' :
$sqlorderby = 'id';
break;
case 'order_url' :
$sqlorderby = 'url';
break;
case 'order_desc' :
$sqlorderby = 'description';
break;
case 'order_owner' :
$sqlorderby = 'owner';
break;
case 'order_rating' :
$sqlorderby = 'rating';
break;
case 'order_name' :
default :
$sqlorderby = 'name';
break;
}
function category_dropdown($fieldname, $selected = 0) {
global $wpdb;
$results = $wpdb->get_results("SELECT cat_id, cat_name, auto_toggle FROM $wpdb->linkcategories ORDER BY cat_id");
echo "\n<select name='$fieldname' size='1'>";
foreach ($results as $row) {
echo "\n\t<option value='$row->cat_id'";
if ($row->cat_id == $selected)
echo " selected='selected'";
echo ">$row->cat_id: ".wp_specialchars($row->cat_name);
if ('Y' == $row->auto_toggle)
echo ' (auto toggle)';
echo "</option>\n";
}
echo "\n</select>\n";
}
$wpvarstoreset = array('action','cat_id', 'linkurl', 'name', 'image',
'description', 'visible', 'target', 'category', 'link_id',
'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel',
'notes', 'linkcheck[]');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
$links_show_cat_id = $_COOKIE['links_show_cat_id_' . COOKIEHASH];
$links_show_order = $_COOKIE['links_show_order_' . COOKIEHASH];
if ('' != $_POST['assign']) $action = 'assign';
if ('' != $_POST['visibility']) $action = 'visibility';
if ('' != $_POST['move']) $action = 'move';
if ('' != $_POST['linkcheck']) $linkcheck = $_POST[linkcheck];
switch ($action) {
case 'assign':
{
check_admin_referer();
// check the current user's level first.
if ($user_level < 5)
die (__("Cheatin' uh ?"));
//for each link id (in $linkcheck[]): if the current user level >= the
//userlevel of the owner of the link then we can proceed.
if (count($linkcheck) == 0) {
header('Location: ' . $this_file);
exit;
}
$all_links = join(',', $linkcheck);
$results = $wpdb->get_results("SELECT link_id, link_owner, user_level FROM $wpdb->links LEFT JOIN $wpdb->users ON link_owner = ID WHERE link_id in ($all_links)");
foreach ($results as $row) {
if (($user_level >= $row->user_level)) { // ok to proceed
$ids_to_change[] = $row->link_id;
}
}
// should now have an array of links we can change
$all_links = join(',', $ids_to_change);
$q = $wpdb->query("update $wpdb->links SET link_owner='$newowner' WHERE link_id IN ($all_links)");
header('Location: ' . $this_file);
break;
}
case 'visibility':
{
check_admin_referer();
// check the current user's level first.
if ($user_level < 5)
die (__("Cheatin' uh ?"));
//for each link id (in $linkcheck[]): toggle the visibility
if (count($linkcheck) == 0) {
header('Location: ' . $this_file);
exit;
}
$all_links = join(',', $linkcheck);
$results = $wpdb->get_results("SELECT link_id, link_visible FROM $wpdb->links WHERE link_id in ($all_links)");
foreach ($results as $row) {
if ($row->link_visible == 'Y') { // ok to proceed
$ids_to_turnoff[] = $row->link_id;
} else {
$ids_to_turnon[] = $row->link_id;
}
}
// should now have two arrays of links to change
if (count($ids_to_turnoff)) {
$all_linksoff = join(',', $ids_to_turnoff);
$q = $wpdb->query("update $wpdb->links SET link_visible='N' WHERE link_id IN ($all_linksoff)");
}
if (count($ids_to_turnon)) {
$all_linkson = join(',', $ids_to_turnon);
$q = $wpdb->query("update $wpdb->links SET link_visible='Y' WHERE link_id IN ($all_linkson)");
}
header('Location: ' . $this_file);
break;
}
case 'move':
{
check_admin_referer();
// check the current user's level first.
if ($user_level < 5)
die (__("Cheatin' uh ?"));
//for each link id (in $linkcheck[]) change category to selected value
if (count($linkcheck) == 0) {
header('Location: ' . $this_file);
exit;
}
$all_links = join(',', $linkcheck);
// should now have an array of links we can change
$q = $wpdb->query("update $wpdb->links SET link_category='$category' WHERE link_id IN ($all_links)");
header('Location: ' . $this_file);
break;
}
case 'Add':
{
check_admin_referer();
$link_url = wp_specialchars($_POST['linkurl']);
$link_url = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $link_url) ? $link_url : 'http://' . $link_url;
$link_name = wp_specialchars($_POST['name']);
$link_image = wp_specialchars($_POST['image']);
$link_target = $_POST['target'];
$link_category = $_POST['category'];
$link_description = $_POST['description'];
$link_visible = $_POST['visible'];
$link_rating = $_POST['rating'];
$link_rel = $_POST['rel'];
$link_notes = $_POST['notes'];
$link_rss_uri = wp_specialchars($_POST['rss_uri']);
$auto_toggle = get_autotoggle($link_category);
if ($user_level < 5)
die (__("Cheatin' uh ?"));
// if we are in an auto toggle category and this one is visible then we
// need to make the others invisible before we add this new one.
if (($auto_toggle == 'Y') && ($link_visible == 'Y')) {
$wpdb->query("UPDATE $wpdb->links set link_visible = 'N' WHERE link_category = $link_category");
}
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_image, link_target, link_category, link_description, link_visible, link_owner, link_rating, link_rel, link_notes, link_rss) " .
" VALUES('" . $link_url . "','"
. $link_name . "', '"
. $link_image . "', '$link_target', $link_category, '"
. $link_description . "', '$link_visible', $user_ID, $link_rating, '" . $link_rel . "', '" . $link_notes . "', '$link_rss_uri')");
header('Location: ' . $_SERVER['HTTP_REFERER'] . '?added=true');
break;
} // end Add
case 'editlink':
{
if (isset($submit)) {
if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
$cat_id = $links_show_cat_id;
if (!isset($cat_id) || ($cat_id == '')) {
if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
$cat_id = 'All';
}
$links_show_cat_id = $cat_id;
check_admin_referer();
$link_id = (int) $_POST['link_id'];
$link_url = wp_specialchars($_POST['linkurl']);
$link_url = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $link_url) ? $link_url : 'http://' . $link_url;
$link_name = wp_specialchars($_POST['name']);
$link_image = wp_specialchars($_POST['image']);
$link_target = wp_specialchars($_POST['target']);
$link_category = $_POST['category'];
$link_description = $_POST['description'];
$link_visible = $_POST['visible'];
$link_rating = $_POST['rating'];
$link_rel = $_POST['rel'];
$link_notes = $_POST['notes'];
$link_rss_uri = $_POST['rss_uri'];
$auto_toggle = get_autotoggle($link_category);
if ($user_level < 5)
die (__("Cheatin' uh ?"));
// if we are in an auto toggle category and this one is visible then we
// need to make the others invisible before we update this one.
if (($auto_toggle == 'Y') && ($link_visible == 'Y')) {
$wpdb->query("UPDATE $wpdb->links set link_visible = 'N' WHERE link_category = $link_category");
}
$wpdb->query("UPDATE $wpdb->links SET link_url='" . $link_url . "',
link_name='" . $link_name . "',\n link_image='" . $link_image . "',
link_target='$link_target',\n link_category=$link_category,
link_visible='$link_visible',\n link_description='" . $link_description . "',
link_rating=$link_rating,
link_rel='" . $link_rel . "',
link_notes='" . $link_notes . "',
link_rss = '$link_rss_uri'
WHERE link_id=$link_id");
} // end if save
setcookie('links_show_cat_id_' . COOKIEHASH, $links_show_cat_id, time()+600);
wp_redirect($this_file);
break;
} // end Save
case 'Delete':
{
check_admin_referer();
$link_id = (int) $_GET['link_id'];
if ($user_level < 5)
die (__("Cheatin' uh ?"));
$wpdb->query("DELETE FROM $wpdb->links WHERE link_id = $link_id");
if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
$cat_id = $links_show_cat_id;
if (!isset($cat_id) || ($cat_id == '')) {
if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
$cat_id = 'All';
}
$links_show_cat_id = $cat_id;
setcookie('links_show_cat_id_' . COOKIEHASH, $links_show_cat_id, time()+600);
wp_redirect($this_file);
break;
} // end Delete
case 'linkedit': {
$xfn = true;
include_once ('admin-header.php');
if ($user_level < 5)
die(__('You do not have sufficient permissions to edit the links for this blog.'));
$link_id = (int) $_GET['link_id'];
$row = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = $link_id");
if ($row) {
$link_url = wp_specialchars($row->link_url, 1);
$link_name = wp_specialchars($row->link_name, 1);
$link_image = $row->link_image;
$link_target = $row->link_target;
$link_category = $row->link_category;
$link_description = wp_specialchars($row->link_description);
$link_visible = $row->link_visible;
$link_rating = $row->link_rating;
$link_rel = $row->link_rel;
$link_notes = wp_specialchars($row->link_notes);
$link_rss_uri = wp_specialchars($row->link_rss);
} else {
die( __('Link not found.') );
}
?>
<div class="wrap">
<form action="" method="post" name="editlink" id="editlink">
<h2><?php _e('Edit a link:') ?></h2>
<fieldset class="options">
<legend><?php _e('Basics') ?></legend>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('URI:') ?></th>
<td width="67%"><input type="text" name="linkurl" value="<?php echo $link_url; ?>" style="width: 95%;" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Link Name:') ?></th>
<td><input type="text" name="name" value="<?php echo $link_name; ?>" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Short description:') ?></th>
<td><input type="text" name="description" value="<?php echo $link_description; ?>" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Category:') ?></th>
<td><?php category_dropdown('category', $link_category); ?></td>
</tr>
</table>
</fieldset>
<p class="submit">
<input type="submit" name="submit" value="<?php _e('Save Changes &raquo;') ?>" />
</p>
<fieldset class="options">
<legend><?php _e('Link Relationship (XFN)') ?></legend>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('rel:') ?></th>
<td width="67%"><input type="text" name="rel" id="rel" size="50" value="<?php echo $link_rel; ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('<a href="http://gmpg.org/xfn/">XFN</a> Creator:') ?></th>
<td>
<table cellpadding="3" cellspacing="5">
<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 id="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>
</fieldset>
<p class="submit">
<input type="submit" name="submit" value="<?php _e('Save Changes &raquo;') ?>" />
</p>
<fieldset class="options">
<legend><?php _e('Advanced') ?></legend>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row"><?php _e('Image URI:') ?></th>
<td width="67%"><input type="text" name="image" size="50" value="<?php echo $link_image; ?>" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('RSS URI:') ?> </th>
<td><input name="rss_uri" type="text" id="rss_uri" value="<?php echo $link_rss_uri; ?>" size="50" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Notes:') ?></th>
<td><textarea name="notes" cols="50" rows="10" style="width: 95%"><?php echo $link_notes; ?></textarea></td>
</tr>
<tr>
<th scope="row"><?php _e('Rating:') ?></th>
<td><select name="rating" size="1">
<?php
for ($r = 0; $r < 10; $r++) {
echo(' <option value="'.$r.'" ');
if ($link_rating == $r)
echo 'selected="selected"';
echo('>'.$r.'</option>');
}
?>
</select>
&nbsp;<?php _e('(Leave at 0 for no rating.)') ?> </td>
</tr>
<tr>
<th scope="row"><?php _e('Target') ?></th>
<td><label>
<input type="radio" name="target" value="_blank" <?php echo(($link_target == '_blank') ? 'checked="checked"' : ''); ?> />
<code>_blank</code></label><br />
<label>
<input type="radio" name="target" value="_top" <?php echo(($link_target == '_top') ? 'checked="checked"' : ''); ?> />
<code>_top</code></label><br />
<label>
<input type="radio" name="target" value="" <?php echo(($link_target == '') ? 'checked="checked"' : ''); ?> />
<?php _e('none') ?></label><br />
<?php _e('(Note that the <code>target</code> attribute is illegal in XHTML 1.1 and 1.0 Strict.)') ?></td>
</tr>
<tr>
<th scope="row"><?php _e('Visible:') ?></th>
<td><label>
<input type="radio" name="visible" <?php if ($link_visible == 'Y') echo "checked='checked'"; ?> value="Y" />
<?php _e('Yes') ?></label><br /><label>
<input type="radio" name="visible" <?php if ($link_visible == 'N') echo "checked='checked'"; ?> value="N" />
<?php _e('No') ?></label></td>
</tr>
</table>
</fieldset>
<p class="submit"><input type="submit" name="submit" value="<?php _e('Save Changes &raquo;') ?>" />
<input type="hidden" name="action" value="editlink" />
<input type="hidden" name="link_id" value="<?php echo (int) $link_id; ?>" />
<input type="hidden" name="order_by" value="<?php echo wp_specialchars($order_by, 1); ?>" />
<input type="hidden" name="cat_id" value="<?php echo (int) $cat_id ?>" /></p>
</form>
</div>
<?php
break;
} // end linkedit
case __("Show"):
{
if (!isset($cat_id) || ($cat_id == '')) {
if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
$cat_id = 'All';
}
$links_show_cat_id = $cat_id;
if (!isset($order_by) || ($order_by == '')) {
if (!isset($links_show_order) || ($links_show_order == ''))
$order_by = 'order_name';
}
$links_show_order = $order_by;
//break; fall through
} // end Show
case "popup":
{
$link_url = stripslashes($_GET["linkurl"]);
$link_name = stripslashes($_GET["name"]);
//break; fall through
}
default:
{
if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
$cat_id = $links_show_cat_id;
if (!isset($cat_id) || ($cat_id == '')) {
if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
$cat_id = 'All';
}
$links_show_cat_id = $cat_id;
if (isset($links_show_order) && ($links_show_order != ''))
$order_by = $links_show_order;
if (!isset($order_by) || ($order_by == ''))
$order_by = 'order_name';
$links_show_order = $order_by;
setcookie('links_show_cat_id_' . COOKIEHASH, $links_show_cat_id, time()+600);
setcookie('links_show_order_' . COOKIEHASH, $links_show_order, time()+600);
include_once ("./admin-header.php");
if ($user_level < 5) {
die(__("You do not have sufficient permissions to edit the links for this blog."));
}
switch ($order_by)
{
case 'order_id': $sqlorderby = 'id'; break;
case 'order_url': $sqlorderby = 'url'; break;
case 'order_desc': $sqlorderby = 'description'; break;
case 'order_owner': $sqlorderby = 'owner'; break;
case 'order_rating': $sqlorderby = 'rating'; break;
case 'order_name':
default: $sqlorderby = 'name'; break;
}
if ($action != "popup") {
?>
<script type="text/javascript">
<!--
@@ -573,183 +61,145 @@ function checkAll(form)
//-->
</script>
<div class="wrap">
<form name="cats" method="post" action="">
<table width="75%" cellpadding="3" cellspacing="3">
<tr>
<td>
<?php _e('<strong>Show</strong> links in category:'); ?><br />
</td>
<td>
<?php _e('<strong>Order</strong> by:');?>
</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>
<?php
$results = $wpdb->get_results("SELECT cat_id, cat_name, auto_toggle FROM $wpdb->linkcategories ORDER BY cat_id");
echo " <select name=\"cat_id\">\n";
echo " <option value=\"All\"";
if ($cat_id == 'All')
echo " selected='selected'";
echo "> " . __('All') . "</option>\n";
foreach ($results as $row) {
echo " <option value=\"".$row->cat_id."\"";
if ($row->cat_id == $cat_id)
echo " selected='selected'";
echo ">".$row->cat_id.": ".wp_specialchars($row->cat_name);
if ($row->auto_toggle == 'Y')
echo ' (auto toggle)';
echo "</option>\n";
}
echo " </select>\n";
if ( isset($_GET['deleted']) ) {
echo '<div style="background-color: rgb(207, 235, 247);" id="message" class="updated fade"><p>';
$deleted = (int) $_GET['deleted'];
printf(__ngettext('%s link deleted.', '%s links deleted', $deleted), $deleted);
echo '</p></div>';
}
?>
</td>
<td>
<select name="order_by">
<option value="order_id" <?php if ($order_by == 'order_id') echo " selected='selected'";?>><?php _e('Link ID') ?></option>
<option value="order_name" <?php if ($order_by == 'order_name') echo " selected='selected'";?>><?php _e('Name') ?></option>
<option value="order_url" <?php if ($order_by == 'order_url') echo " selected='selected'";?>><?php _e('URI') ?></option>
<option value="order_desc" <?php if ($order_by == 'order_desc') echo " selected='selected'";?>><?php _e('Description') ?></option>
<option value="order_owner" <?php if ($order_by == 'order_owner') echo " selected='selected'";?>><?php _e('Owner') ?></option>
<option value="order_rating" <?php if ($order_by == 'order_rating') echo " selected='selected'";?>><?php _e('Rating') ?></option>
</select>
</td>
<td>
<input type="submit" name="action" value="<?php _e('Show') ?>" />
</td>
</tr>
</table>
</form>
</div>
<form name="links" id="links" method="post" action="">
<div class="wrap">
<input type="hidden" name="link_id" value="" />
<input type="hidden" name="action" value="" />
<input type="hidden" name="order_by" value="<?php echo wp_specialchars($order_by, 1); ?>" />
<input type="hidden" name="cat_id" value="<?php echo (int) $cat_id ?>" />
<table width="100%" cellpadding="3" cellspacing="3">
<tr>
<th width="15%"><?php _e('Name') ?></th>
<th><?php _e('URI') ?></th>
<th><?php _e('Category') ?></th>
<th><?php _e('rel') ?></th>
<th><?php _e('Image') ?></th>
<th><?php _e('Visible') ?></th>
<th colspan="2"><?php _e('Action') ?></th>
<th>&nbsp;</th>
</tr>
<h2><?php _e('Blogroll Management'); ?></h2>
<p><?php _e('Here you <a href="link-add.php">add links</a> to sites that you visit often and share them on your blog. When you have a list of links in your sidebar to other blogs, it&#8217;s called a &#8220;blogroll.&#8221;'); ?></p>
<form id="cats" method="get" action="">
<p><?php
$categories = get_categories("hide_empty=1&type=link");
$select_cat = "<select name=\"cat_id\">\n";
$select_cat .= '<option value="all"' . (($cat_id == 'all') ? " selected='selected'" : '') . '>' . __('All') . "</option>\n";
foreach ((array) $categories as $cat)
$select_cat .= '<option value="' . $cat->cat_ID . '"' . (($cat->cat_ID == $cat_id) ? " selected='selected'" : '') . '>' . wp_specialchars(apply_filters('link_category', $cat->cat_name)) . "</option>\n";
$select_cat .= "</select>\n";
$select_order = "<select name=\"order_by\">\n";
$select_order .= '<option value="order_id"' . (($order_by == 'order_id') ? " selected='selected'" : '') . '>' . __('Link ID') . "</option>\n";
$select_order .= '<option value="order_name"' . (($order_by == 'order_name') ? " selected='selected'" : '') . '>' . __('Name') . "</option>\n";
$select_order .= '<option value="order_url"' . (($order_by == 'order_url') ? " selected='selected'" : '') . '>' . __('Address') . "</option>\n";
$select_order .= '<option value="order_rating"' . (($order_by == 'order_rating') ? " selected='selected'" : '') . '>' . __('Rating') . "</option>\n";
$select_order .= "</select>\n";
printf(__('Currently showing %1$s links ordered by %2$s'), $select_cat, $select_order);
?>
<input type="submit" name="action" value="<?php _e('Update &raquo;') ?>" /></p>
</form>
<?php
$sql = "SELECT link_url, link_name, link_image, link_description, link_visible,
link_category AS cat_id, cat_name AS category, $wpdb->users.user_login, link_id,
link_rating, link_rel, $wpdb->users.user_level
FROM $wpdb->links
LEFT JOIN $wpdb->linkcategories ON $wpdb->links.link_category = $wpdb->linkcategories.cat_id
LEFT JOIN $wpdb->users ON $wpdb->users.ID = $wpdb->links.link_owner ";
if (isset($cat_id) && ($cat_id != 'All')) {
$sql .= " WHERE link_category = $cat_id ";
}
$sql .= ' ORDER BY link_' . $sqlorderby;
// echo "$sql";
$links = $wpdb->get_results($sql);
if ($links) {
foreach ($links as $link) {
$link->link_name = wp_specialchars($link->link_name);
$link->link_category = wp_specialchars($link->link_category);
$link->link_description = wp_specialchars($link->link_description);
$link->link_url = wp_specialchars($link->link_url);
$short_url = str_replace('http://', '', $link->link_url);
$short_url = str_replace('www.', '', $short_url);
if ('/' == substr($short_url, -1))
$short_url = substr($short_url, 0, -1);
if (strlen($short_url) > 35)
$short_url = substr($short_url, 0, 32).'...';
$image = ($link->link_image != null) ? __('Yes') : __('No');
$visible = ($link->link_visible == 'Y') ? __('Yes') : __('No');
++$i;
$style = ($i % 2) ? ' class="alternate"' : '';
$link_columns = array(
'name' => '<th width="15%">' . __('Name') . '</th>',
'url' => '<th>' . __('URL') . '</th>',
'categories' => '<th>' . __('Categories') . '</th>',
'rel' => '<th style="text-align: center">' . __('rel') . '</th>',
'visible' => '<th style="text-align: center">' . __('Visible') . '</th>',
'action' => '<th colspan="2" style="text-align: center">' . __('Action') . '</th>',
);
$link_columns = apply_filters('manage_link_columns', $link_columns);
?>
<tr valign="middle" <?php echo $style; ?>>
<td><strong><?php echo $link->link_name; ?></strong><br />
<?php
echo sprintf(__('Description: %s'), $link->link_description) . "</td>";
echo "<td><a href=\"$link->link_url\" title=\"" . sprintf(__('Visit %s'), $link->link_name) . "\">$short_url</a></td>";
echo <<<LINKS
<td>$link->category</td>
<td>$link->link_rel</td>
<td align='center'>$image</td>
<td align='center'>$visible</td>
LINKS;
$show_buttons = 1; // default
if ($link->user_level > $user_level) {
$show_buttons = 0;
}
if ($show_buttons) {
echo '<td><a href="link-manager.php?link_id=' . $link->link_id . '&amp;action=linkedit" class="edit">' . __('Edit') . '</a></td>';
echo '<td><a href="link-manager.php?link_id=' . $link->link_id . '&amp;action=Delete"' . " onclick=\"return confirm('" . __("You are about to delete this link.\\n \'Cancel\' to stop, \'OK\' to delete.") . "');" . '" class="delete">' . __('Delete') . '</a></td>';
echo '<td><input type="checkbox" name="linkcheck[]" value="' . $link->link_id . '" /></td>';
} else {
echo "<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\n";
}
echo "\n\t</tr>";
}
}
<?php
if ( 'all' == $cat_id )
$cat_id = '';
$links = get_bookmarks( "category=$cat_id&hide_invisible=0&orderby=$sqlorderby&hide_empty=0" );
if ( $links ) {
?>
<form id="links" method="post" action="link.php">
<?php wp_nonce_field('bulk-bookmarks') ?>
<input type="hidden" name="link_id" value="" />
<input type="hidden" name="action" value="" />
<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 ?>" />
<table class="widefat">
<thead>
<tr>
<?php foreach($link_columns as $column_display_name) {
echo $column_display_name;
} ?>
<th style="text-align: center"><input type="checkbox" onclick="checkAll(document.getElementById('links'));" /></th>
</tr>
</thead>
<tbody id="the-list">
<?php
foreach ($links as $link) {
$link->link_name = attribute_escape(apply_filters('link_title', $link->link_name));
$link->link_description = wp_specialchars(apply_filters('link_description', $link->link_description));
$link->link_url = clean_url($link->link_url);
$link->link_category = wp_get_link_cats($link->link_id);
$short_url = str_replace('http://', '', $link->link_url);
$short_url = str_replace('www.', '', $short_url);
if ('/' == substr($short_url, -1))
$short_url = substr($short_url, 0, -1);
if (strlen($short_url) > 35)
$short_url = substr($short_url, 0, 32).'...';
$visible = ($link->link_visible == 'Y') ? __('Yes') : __('No');
++ $i;
$style = ($i % 2) ? '' : ' class="alternate"';
?><tr id="link-<?php echo $link->link_id; ?>" valign="middle" <?php echo $style; ?>><?php
foreach($link_columns as $column_name=>$column_display_name) {
switch($column_name) {
case 'name':
?><td><strong><?php echo $link->link_name; ?></strong><br /><?php
echo $link->link_description . "</td>";
break;
case 'url':
echo "<td><a href='$link->link_url' title='".sprintf(__('Visit %s'), $link->link_name)."'>$short_url</a></td>";
break;
case 'categories':
?><td><?php
$cat_names = array();
foreach ($link->link_category as $category) {
$cat_name = get_the_category_by_ID($category);
$cat_name = wp_specialchars(apply_filters('link_category', $cat_name));
if ( $cat_id != $category )
$cat_name = "<a href='link-manager.php?cat_id=$category'>$cat_name</a>";
$cat_names[] = $cat_name;
}
echo implode(', ', $cat_names);
?> </td><?php
break;
case 'rel':
?><td><?php echo $link->link_rel; ?></td><?php
break;
case 'visible':
?><td align='center'><?php echo $visible; ?></td><?php
break;
case 'action':
echo '<td><a href="link.php?link_id='.$link->link_id.'&amp;action=edit" class="edit">'.__('Edit').'</a></td>';
echo '<td><a href="' . wp_nonce_url('link.php?link_id='.$link->link_id.'&amp;action=delete', 'delete-bookmark_' . $link->link_id ) . '"'." onclick=\"return deleteSomething( 'link', $link->link_id , '".js_escape(sprintf(__("You are about to delete the '%s' link to %s.\n'Cancel' to stop, 'OK' to delete."), $link->link_name, $link->link_url )).'\' );" class="delete">'.__('Delete').'</a></td>';
break;
default:
?>
<td><?php do_action('manage_link_custom_column', $column_name, $link->link_id); ?></td>
<?php
break;
}
}
echo '<td align="center"><input type="checkbox" name="linkcheck[]" value="'.$link->link_id.'" /></td>';
echo "\n </tr>\n";
}
?>
</tbody>
</table>
</div>
<div id="ajax-response"></div>
<div class="wrap">
<table width="100%" cellpadding="3" cellspacing="3">
<tr><th colspan="4"><?php _e('Manage Multiple Links:') ?></th></tr>
<tr><td colspan="4"><?php _e('Use the checkboxes on the right to select multiple links and choose an action below:') ?></td></tr>
<tr>
<td>
<?php _e('Assign ownership to:'); ?>
<?php
$results = $wpdb->get_results("SELECT ID, user_login FROM $wpdb->users WHERE user_level > 0 ORDER BY ID");
echo " <select name=\"newowner\" size=\"1\">\n";
foreach ($results as $row) {
echo " <option value=\"".$row->ID."\"";
echo ">".$row->user_login;
echo "</option>\n";
}
echo " </select>\n";
?>
<input name="assign" type="submit" id="assign" value="<?php _e('Go') ?>" />
</td>
<td>
<input name="visibility" type="submit" id="visibility" value="<?php _e('Toggle Visibility') ?>" />
</td>
<td>
<?php _e('Move to category:'); category_dropdown('category'); ?> <input name="move" type="submit" id="move" value="<?php _e('Go') ?>" />
</td>
<td align="right">
<a href="#" onclick="checkAll(document.getElementById('links')); return false; "><?php _e('Toggle Checkboxes') ?></a>
</td>
</tr>
</table>
<?php
} // end if !popup
?>
</div>
<p class="submit"><input type="submit" class="button" name="deletebookmarks" id="deletebookmarks" value="<?php _e('Delete Checked Links') ?> &raquo;" onclick="return confirm('<?php echo js_escape(__("You are about to delete these links permanently.\n'Cancel' to stop, 'OK' to delete.")); ?>')" /></p>
</form>
<?php } ?>
<?php
break;
} // end default
} // end case
?>
</div>
<?php include('admin-footer.php'); ?>

View File

@@ -4,12 +4,12 @@ require_once('../wp-config.php');
// columns we wish to find are: link_url, link_name, link_target, link_description
// we need to map XML attribute names to our columns
$opml_map = array('URL' => 'link_url',
'HTMLURL' => 'link_url',
'TEXT' => 'link_name',
'TITLE' => 'link_name',
'TARGET' => 'link_target',
'DESCRIPTION' => 'link_description',
'XMLURL' => 'link_rss'
'HTMLURL' => 'link_url',
'TEXT' => 'link_name',
'TITLE' => 'link_name',
'TARGET' => 'link_target',
'DESCRIPTION' => 'link_description',
'XMLURL' => 'link_rss'
);
$map = $opml_map;
@@ -20,24 +20,24 @@ $map = $opml_map;
**/
function startElement($parser, $tagName, $attrs) {
global $updated_timestamp, $all_links, $map;
global $names, $urls, $targets, $descriptions, $feeds;
global $names, $urls, $targets, $descriptions, $feeds;
if ($tagName == 'OUTLINE') {
foreach (array_keys($map) as $key) {
if (isset($attrs[$key])) {
$$map[$key] = $attrs[$key];
}
}
foreach (array_keys($map) as $key) {
if (isset($attrs[$key])) {
$$map[$key] = $attrs[$key];
}
}
//echo("got data: link_url = [$link_url], link_name = [$link_name], link_target = [$link_target], link_description = [$link_description]<br />\n");
//echo("got data: link_url = [$link_url], link_name = [$link_name], link_target = [$link_target], link_description = [$link_description]<br />\n");
// save the data away.
$names[] = $link_name;
$urls[] = $link_url;
$targets[] = $link_target;
// save the data away.
$names[] = $link_name;
$urls[] = $link_url;
$targets[] = $link_target;
$feeds[] = $link_rss;
$descriptions[] = $link_description;
} // end if outline
$descriptions[] = $link_description;
} // end if outline
}
/**
@@ -55,11 +55,11 @@ $xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!xml_parse($xml_parser, $opml, true)) {
echo(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
echo(sprintf(__('XML error: %1$s at line %2$s'),
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
// Free up memory used by the XML parser
xml_parser_free($xml_parser);
?>
?>

117
wp-admin/link.php Normal file
View File

@@ -0,0 +1,117 @@
<?php
require_once ('admin.php');
wp_reset_vars(array('action', 'cat_id', 'linkurl', 'name', 'image', 'description', 'visible', 'target', 'category', 'link_id', 'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel', 'notes', 'linkcheck[]'));
if ('' != $_POST['deletebookmarks'])
$action = 'deletebookmarks';
if ('' != $_POST['move'])
$action = 'move';
if ('' != $_POST['linkcheck'])
$linkcheck = $_POST[linkcheck];
$this_file = 'link-manager.php';
switch ($action) {
case 'deletebookmarks' :
check_admin_referer('bulk-bookmarks');
// check the current user's level first.
if (!current_user_can('manage_links'))
wp_die(__('Cheatin&#8217; uh?'));
//for each link id (in $linkcheck[]) change category to selected value
if (count($linkcheck) == 0) {
wp_redirect($this_file);
exit;
}
$deleted = 0;
foreach ($linkcheck as $link_id) {
$link_id = (int) $link_id;
if ( wp_delete_link($link_id) )
$deleted++;
}
wp_redirect("$this_file?deleted=$deleted");
exit;
break;
case 'move' :
check_admin_referer('bulk-bookmarks');
// check the current user's level first.
if (!current_user_can('manage_links'))
wp_die(__('Cheatin&#8217; uh?'));
//for each link id (in $linkcheck[]) change category to selected value
if (count($linkcheck) == 0) {
wp_redirect($this_file);
exit;
}
$all_links = join(',', $linkcheck);
// should now have an array of links we can change
//$q = $wpdb->query("update $wpdb->links SET link_category='$category' WHERE link_id IN ($all_links)");
wp_redirect($this_file);
exit;
break;
case 'add' :
check_admin_referer('add-bookmark');
add_link();
wp_redirect(wp_get_referer().'?added=true');
exit;
break;
case 'save' :
$link_id = (int) $_POST['link_id'];
check_admin_referer('update-bookmark_' . $link_id);
edit_link($link_id);
wp_redirect($this_file);
exit;
break;
case 'delete' :
$link_id = (int) $_GET['link_id'];
check_admin_referer('delete-bookmark_' . $link_id);
if (!current_user_can('manage_links'))
wp_die(__('Cheatin&#8217; uh?'));
wp_delete_link($link_id);
wp_redirect($this_file);
exit;
break;
case 'edit' :
wp_enqueue_script( array('xfn', 'dbx-admin-key?pagenow=link.php') );
if ( current_user_can( 'manage_categories' ) )
wp_enqueue_script( 'ajaxcat' );
$parent_file = 'link-manager.php';
$submenu_file = 'link-manager.php';
$title = __('Edit Link');
include_once ('admin-header.php');
if (!current_user_can('manage_links'))
wp_die(__('You do not have sufficient permissions to edit the links for this blog.'));
$link_id = (int) $_GET['link_id'];
if (!$link = get_link_to_edit($link_id))
wp_die(__('Link not found.'));
include ('edit-link-form.php');
break;
default :
break;
}
include ('admin-footer.php');
?>

View File

@@ -8,32 +8,36 @@ get_admin_page_parent();
foreach ($menu as $item) {
$class = '';
// 0 = name, 1 = user_level, 2 = file
// 0 = name, 1 = capability, 2 = file
if (( strcmp($self, $item[2]) == 0 && empty($parent_file)) || ($parent_file && ($item[2] == $parent_file))) $class = ' class="current"';
if ($user_level >= $item[1]) {
if ( file_exists(ABSPATH . "wp-content/plugins/{$item[2]}") )
echo "\n\t<li><a href='" . get_settings('siteurl') . "/wp-admin/admin.php?page={$item[2]}'$class>{$item[0]}</a></li>";
if ( !empty($submenu[$item[2]]) ) {
$submenu[$item[2]] = array_values($submenu[$item[2]]); // Re-index.
$menu_hook = get_plugin_page_hook($submenu[$item[2]][0][2], $item[2]);
if ( file_exists(ABSPATH . PLUGINDIR . "/{$submenu[$item[2]][0][2]}") || !empty($menu_hook))
echo "\n\t<li><a href='admin.php?page={$submenu[$item[2]][0][2]}'$class>{$item[0]}</a></li>";
else
echo "\n\t<li><a href='" . get_settings('siteurl') . "/wp-admin/{$item[2]}'$class>{$item[0]}</a></li>";
echo "\n\t<li><a href='{$submenu[$item[2]][0][2]}'$class>{$item[0]}</a></li>";
} else if ( current_user_can($item[1]) ) {
if ( file_exists(ABSPATH . PLUGINDIR . "/{$item[2]}") )
echo "\n\t<li><a href='admin.php?page={$item[2]}'$class>{$item[0]}</a></li>";
else
echo "\n\t<li><a href='{$item[2]}'$class>{$item[0]}</a></li>";
}
}
?>
<li class="last"><a href="<?php echo get_settings('siteurl')
?>/wp-login.php?action=logout" title="<?php _e('Log out of this account') ?>"><?php printf(__('Logout (%s)'), $user_nickname) ?></a></li>
</ul>
<?php
// Sub-menu
if ( isset($submenu["$parent_file"]) ) :
?>
<ul id="adminmenu2">
<?php
foreach ($submenu["$parent_file"] as $item) :
if ($user_level < $item[1]) {
<ul id="submenu">
<?php
foreach ($submenu["$parent_file"] as $item) :
if ( !current_user_can($item[1]) )
continue;
}
if ( isset($submenu_file) ) {
if ( $submenu_file == $item[2] ) $class = ' class="current"';
@@ -43,16 +47,26 @@ else $class = '';
$menu_hook = get_plugin_page_hook($item[2], $parent_file);
if (file_exists(ABSPATH . "wp-content/plugins/{$item[2]}") || ! empty($menu_hook)) {
if (file_exists(ABSPATH . PLUGINDIR . "/{$item[2]}") || ! empty($menu_hook)) {
if ( 'admin.php' == $pagenow )
echo "\n\t<li><a href='" . get_settings('siteurl') . "/wp-admin/admin.php?page={$item[2]}'$class>{$item[0]}</a></li>";
echo "\n\t<li><a href='admin.php?page={$item[2]}'$class>{$item[0]}</a></li>";
else
echo "\n\t<li><a href='" . get_settings('siteurl') . "/wp-admin/{$parent_file}?page={$item[2]}'$class>{$item[0]}</a></li>";
echo "\n\t<li><a href='{$parent_file}?page={$item[2]}'$class>{$item[0]}</a></li>";
} else {
echo "\n\t<li><a href='" . get_settings('siteurl') . "/wp-admin/{$item[2]}'$class>{$item[0]}</a></li>";
echo "\n\t<li><a href='{$item[2]}'$class>{$item[0]}</a></li>";
}
endforeach;
?>
</ul>
<?php endif; ?>
<?php
else :
?>
<div id="minisub"></div>
<?php
endif;
do_action('admin_notices');
?>

View File

@@ -4,60 +4,139 @@
// Menu item name
// The minimum level the user needs to access the item: between 0 and 10
// The URL of the item's file
$menu[0] = array(__('Dashboard'), 0, 'index.php');
$menu[5] = array(__('Write'), 1, 'post.php');
$menu[10] = array(__('Manage'), 1, 'edit.php');
$menu[20] = array(__('Links'), 5, 'link-manager.php');
$menu[25] = array(__('Presentation'), 8, 'themes.php');
$menu[30] = array(__('Plugins'), 8, 'plugins.php');
$menu[35] = array(__('Users'), 0, 'profile.php');
$menu[40] = array(__('Options'), 6, 'options-general.php');
$menu[0] = array(__('Dashboard'), 'read', 'index.php');
if ( get_option('use_fileupload') )
$menu[45] = array(__('Upload'), get_settings('fileupload_minlevel'), 'upload.php');
if (strpos($_SERVER['REQUEST_URI'], 'edit-pages.php') !== false)
$menu[5] = array(__('Write'), 'edit_pages', 'page-new.php');
else
$menu[5] = array(__('Write'), 'edit_posts', 'post-new.php');
if (strpos($_SERVER['REQUEST_URI'], 'page-new.php') !== false)
$menu[10] = array(__('Manage'), 'edit_pages', 'edit-pages.php');
else
$menu[10] = array(__('Manage'), 'edit_posts', 'edit.php');
$submenu['post.php'][5] = array(__('Write Post'), 1, 'post.php');
$submenu['post.php'][10] = array(__('Write Page'), 5, 'page-new.php');
$menu[15] = array(__('Comments'), 'edit_posts', 'edit-comments.php');
$menu[20] = array(__('Blogroll'), 'manage_links', 'link-manager.php');
$menu[25] = array(__('Presentation'), 'switch_themes', 'themes.php');
$menu[30] = array(__('Plugins'), 'activate_plugins', 'plugins.php');
if ( current_user_can('edit_users') )
$menu[35] = array(__('Users'), 'edit_users', 'users.php');
else
$menu[35] = array(__('Profile'), 'read', 'profile.php');
$menu[40] = array(__('Options'), 'manage_options', 'options-general.php');
$submenu['edit.php'][5] = array(__('Posts'), 1, 'edit.php');
$submenu['edit.php'][10] = array(__('Pages'), 5, 'edit-pages.php');
$submenu['edit.php'][15] = array(__('Categories'), 1, 'categories.php');
$submenu['edit.php'][20] = array(__('Comments'), 1, 'edit-comments.php');
$_wp_real_parent_file['post.php'] = 'post-new.php'; // Back-compat
$submenu['post-new.php'][5] = array(__('Write Post'), 'edit_posts', 'post-new.php');
$submenu['post-new.php'][10] = array(__('Write Page'), 'edit_pages', 'page-new.php');
$submenu['edit-comments.php'][5] = array(__('Comments'), 'edit_posts', 'edit-comments.php');
$awaiting_mod = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'");
$submenu['edit.php'][25] = array(sprintf(__("Awaiting Moderation (%s)"), $awaiting_mod), 1, 'moderation.php');
$submenu['edit.php'][30] = array(__('Files'), 8, 'templates.php');
$submenu['edit-comments.php'][25] = array(sprintf(__("Awaiting Moderation (%s)"), "<span id='awaitmod'>$awaiting_mod</span>"), 'edit_posts', 'moderation.php');
$submenu['link-manager.php'][5] = array(__('Manage Links'), 5, 'link-manager.php');
$submenu['link-manager.php'][10] = array(__('Add Link'), 5, 'link-add.php');
$submenu['link-manager.php'][15] = array(__('Link Categories'), 5, 'link-categories.php');
$submenu['link-manager.php'][20] = array(__('Import Links'), 5, 'link-import.php');
$submenu['profile.php'][5] = array(__('Your Profile'), 0, 'profile.php');
$submenu['profile.php'][10] = array(__('Authors &amp; Users'), 5, 'users.php');
$submenu['edit.php'][5] = array(__('Posts'), 'edit_posts', 'edit.php');
$submenu['edit.php'][10] = array(__('Pages'), 'edit_pages', 'edit-pages.php');
$submenu['edit.php'][12] = array(__('Uploads'), 'upload_files', 'upload.php');
$submenu['edit.php'][15] = array(__('Categories'), 'manage_categories', 'categories.php');
$submenu['edit.php'][30] = array(__('Files'), 'edit_files', 'templates.php');
$submenu['edit.php'][35] = array(__('Import'), 'import', 'import.php');
$submenu['edit.php'][40] = array(__('Export'), 'import', 'export.php');
$submenu['options-general.php'][5] = array(__('General'), 6, 'options-general.php');
$submenu['options-general.php'][10] = array(__('Writing'), 6, 'options-writing.php');
$submenu['options-general.php'][15] = array(__('Reading'), 6, 'options-reading.php');
$submenu['options-general.php'][20] = array(__('Discussion'), 6, 'options-discussion.php');
$submenu['options-general.php'][25] = array(__('Permalinks'), 6, 'options-permalink.php');
$submenu['options-general.php'][30] = array(__('Miscellaneous'), 6, 'options-misc.php');
$submenu['link-manager.php'][5] = array(__('Manage Blogroll'), 'manage_links', 'link-manager.php');
$submenu['link-manager.php'][10] = array(__('Add Link'), 'manage_links', 'link-add.php');
$submenu['link-manager.php'][20] = array(__('Import Links'), 'manage_links', 'link-import.php');
$submenu['plugins.php'][5] = array(__('Plugins'), 8, 'plugins.php');
$submenu['plugins.php'][10] = array(__('Plugin Editor'), 8, 'plugin-editor.php');
if ( current_user_can('edit_users') ) {
$_wp_real_parent_file['profile.php'] = 'users.php'; // Back-compat for plugins adding submenus to profile.php.
$submenu['users.php'][5] = array(__('Authors &amp; Users'), 'edit_users', 'users.php');
$submenu['users.php'][10] = array(__('Your Profile'), 'read', 'profile.php');
} else {
$submenu['profile.php'][5] = array(__('Your Profile'), 'read', 'profile.php');
}
$submenu['themes.php'][5] = array(__('Themes'), 8, 'themes.php');
$submenu['themes.php'][10] = array(__('Theme Editor'), 8, 'theme-editor.php');
$submenu['options-general.php'][10] = array(__('General'), 'manage_options', 'options-general.php');
$submenu['options-general.php'][15] = array(__('Writing'), 'manage_options', 'options-writing.php');
$submenu['options-general.php'][20] = array(__('Reading'), 'manage_options', 'options-reading.php');
$submenu['options-general.php'][25] = array(__('Discussion'), 'manage_options', 'options-discussion.php');
$submenu['options-general.php'][30] = array(__('Privacy'), 'manage_options', 'options-privacy.php');
$submenu['options-general.php'][35] = array(__('Permalinks'), 'manage_options', 'options-permalink.php');
$submenu['options-general.php'][40] = array(__('Miscellaneous'), 'manage_options', 'options-misc.php');
$submenu['plugins.php'][5] = array(__('Plugins'), 'activate_plugins', 'plugins.php');
$submenu['plugins.php'][10] = array(__('Plugin Editor'), 'edit_plugins', 'plugin-editor.php');
$submenu['themes.php'][5] = array(__('Themes'), 'switch_themes', 'themes.php');
$submenu['themes.php'][10] = array(__('Theme Editor'), 'edit_themes', 'theme-editor.php');
do_action('_admin_menu');
// Create list of page plugin hook names.
foreach ($menu as $menu_page) {
$admin_page_hooks[$menu_page[2]] = sanitize_title($menu_page[0]);
}
$_wp_submenu_nopriv = array();
$_wp_menu_nopriv = array();
// Loop over submenus and remove pages for which the user does not have privs.
foreach ($submenu as $parent => $sub) {
foreach ($sub as $index => $data) {
if ( ! current_user_can($data[1]) ) {
unset($submenu[$parent][$index]);
$_wp_submenu_nopriv[$parent][$data[2]] = true;
}
}
if ( empty($submenu[$parent]) )
unset($submenu[$parent]);
}
// Loop over the top-level menu.
// Menus for which the original parent is not acessible due to lack of privs will have the next
// submenu in line be assigned as the new menu parent.
foreach ( $menu as $id => $data ) {
if ( empty($submenu[$data[2]]) )
continue;
$subs = $submenu[$data[2]];
$first_sub = array_shift($subs);
$old_parent = $data[2];
$new_parent = $first_sub[2];
// If the first submenu is not the same as the assigned parent,
// make the first submenu the new parent.
if ( $new_parent != $old_parent ) {
$_wp_real_parent_file[$old_parent] = $new_parent;
$menu[$id][2] = $new_parent;
foreach ($submenu[$old_parent] as $index => $data) {
$submenu[$new_parent][$index] = $submenu[$old_parent][$index];
unset($submenu[$old_parent][$index]);
}
unset($submenu[$old_parent]);
$_wp_submenu_nopriv[$new_parent] = $_wp_submenu_nopriv[$old_parent];
}
}
do_action('admin_menu', '');
ksort($menu); // make it all pretty
// Remove menus that have no accessible submenus and require privs that the user does not have.
// Run re-parent loop again.
foreach ( $menu as $id => $data ) {
// If submenu is empty...
if ( empty($submenu[$data[2]]) ) {
// And user doesn't have privs, remove menu.
if ( ! current_user_can($data[1]) ) {
$_wp_menu_nopriv[$data[2]] = true;
unset($menu[$id]);
}
}
}
unset($id);
uksort($menu, "strnatcasecmp"); // make it all pretty
if (! user_can_access_admin_page()) {
die( __('You do not have sufficient permissions to access this page.') );
wp_die( __('You do not have sufficient permissions to access this page.') );
}
?>

View File

@@ -2,23 +2,10 @@
require_once('admin.php');
$title = __('Moderate comments');
$parent_file = 'edit.php';
$parent_file = 'edit-comments.php';
wp_enqueue_script( 'admin-comments' );
$wpvarstoreset = array('action', 'item_ignored', 'item_deleted', 'item_approved', 'item_spam', 'feelinglucky');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
wp_reset_vars(array('action', 'item_ignored', 'item_deleted', 'item_approved', 'item_spam', 'feelinglucky'));
$comment = array();
if (isset($_POST["comment"])) {
@@ -31,9 +18,10 @@ switch($action) {
case 'update':
if ($user_level < 3) {
die(__('<p>Your level is not high enough to moderate comments.</p>'));
}
check_admin_referer('moderate-comments');
if ( !current_user_can('moderate_comments') )
wp_die(__('Your level is not high enough to moderate comments.'));
$item_ignored = 0;
$item_deleted = 0;
@@ -43,7 +31,7 @@ case 'update':
foreach($comment as $key => $value) {
if ($feelinglucky && 'later' == $value)
$value = 'delete';
switch($value) {
switch($value) {
case 'later':
// do nothing with that comment
// wp_set_comment_status($key, "hold");
@@ -53,22 +41,22 @@ case 'update':
wp_set_comment_status($key, 'delete');
++$item_deleted;
break;
case 'spam':
wp_set_comment_status($key, 'spam');
++$item_spam;
break;
case 'spam':
wp_set_comment_status($key, 'spam');
++$item_spam;
break;
case 'approve':
wp_set_comment_status($key, 'approve');
if ( get_settings('comments_notify') == true ) {
if ( get_option('comments_notify') == true ) {
wp_notify_postauthor($key);
}
++$item_approved;
break;
}
}
}
$file = basename(__FILE__);
header("Location: $file?ignored=$item_ignored&deleted=$item_deleted&approved=$item_approved&spam=$item_spam");
wp_redirect("$file?ignored=$item_ignored&deleted=$item_deleted&approved=$item_approved&spam=$item_spam");
exit();
break;
@@ -78,48 +66,36 @@ default:
require_once('admin-header.php');
if ( isset($_GET['deleted']) || isset($_GET['approved']) || isset($_GET['ignored']) ) {
echo "<div class='updated'>\n<p>";
echo "<div id='moderated' class='updated fade'>\n<p>";
$approved = (int) $_GET['approved'];
$deleted = (int) $_GET['deleted'];
$ignored = (int) $_GET['ignored'];
$spam = (int) $_GET['spam'];
if ($approved) {
if ('1' == $approved) {
echo __("1 comment approved <br />") . "\n";
} else {
echo sprintf(__("%s comments approved <br />"), $approved) . "\n";
}
printf(__ngettext('%s comment approved', '%s comments approved', $approved), $approved);
echo "<br/>\n";
}
if ($deleted) {
if ('1' == $deleted) {
echo __("1 comment deleted <br />") . "\n";
} else {
echo sprintf(__("%s comments deleted <br />"), $deleted) . "\n";
}
printf(__ngettext('%s comment deleted', '%s comments deleted', $deleted), $deleted);
echo "<br/>\n";
}
if ($spam) {
printf(__ngettext('%s comment marked as spam', '%s comments marked as spam', $spam), $spam);
echo "<br/>\n";
}
if ($spam) {
if ('1' == $spam) {
echo __("1 comment marked as spam <br />") . "\n";
} else {
echo sprintf(__("%s comments marked as spam <br />"), $spam) . "\n";
}
}
if ($ignored) {
if ('1' == $ignored) {
echo __("1 comment unchanged <br />") . "\n";
} else {
echo sprintf(__("%s comments unchanged <br />"), $ignored) . "\n";
}
printf(__ngettext('%s comment unchanged', '%s comments unchanged', $ignored), $ignored);
echo "<br/>\n";
}
echo "</p></div>\n";
}
?>
<div class="wrap">
<?php
if ($user_level > 3)
if ( current_user_can('moderate_comments') )
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_approved = '0'");
else
$comments = '';
@@ -130,38 +106,46 @@ if ($comments) {
?>
<h2><?php _e('Moderation Queue') ?></h2>
<form name="approval" action="moderation.php" method="post">
<?php wp_nonce_field('moderate-comments') ?>
<input type="hidden" name="action" value="update" />
<ol id="comments" class="commentlist">
<ol id="the-comment-list" class="commentlist">
<?php
$i = 0;
foreach($comments as $comment) {
++$i;
$comment_date = mysql2date(get_settings("date_format") . " @ " . get_settings("time_format"), $comment->comment_date);
$comment_date = mysql2date(get_option("date_format") . " @ " . get_option("time_format"), $comment->comment_date);
$post_title = $wpdb->get_var("SELECT post_title FROM $wpdb->posts WHERE ID='$comment->comment_post_ID'");
if ($i % 2) $class = 'class="alternate"';
else $class = '';
echo "\n\t<li id='comment-$comment->comment_ID' $class>";
if ($i % 2) $class = 'js-unapproved alternate';
else $class = 'js-unapproved';
echo "\n\t<li id='comment-$comment->comment_ID' class='$class'>";
?>
<p><strong><?php _e('Name:') ?></strong> <?php comment_author_link() ?> <?php if ($comment->comment_author_email) { ?>| <strong><?php _e('E-mail:') ?></strong> <?php comment_author_email_link() ?> <?php } if ($comment->comment_author_email) { ?> | <strong><?php _e('URI:') ?></strong> <?php comment_author_url_link() ?> <?php } ?>| <strong><?php _e('IP:') ?></strong> <a href="http://ws.arin.net/cgi-bin/whois.pl?queryinput=<?php comment_author_IP() ?>"><?php comment_author_IP() ?></a></p>
<p><strong><?php comment_author() ?></strong> <?php if ($comment->comment_author_email) { ?>| <?php comment_author_email_link() ?> <?php } if ($comment->comment_author_url && 'http://' != $comment->comment_author_url) { ?> | <?php comment_author_url_link() ?> <?php } ?>| <?php _e('IP:') ?> <a href="http://ws.arin.net/cgi-bin/whois.pl?queryinput=<?php comment_author_IP() ?>"><?php comment_author_IP() ?></a></p>
<?php comment_text() ?>
<p><?php
echo '<a href="post.php?action=editcomment&amp;comment='.$comment->comment_ID.'">' . __('Edit') . '</a> | ';?>
<a href="<?php echo get_permalink($comment->comment_post_ID); ?>"><?php _e('View Post') ?></a> |
<?php
echo " <a href=\"post.php?action=deletecomment&amp;p=".$comment->comment_post_ID."&amp;comment=".$comment->comment_ID."\" onclick=\"return confirm('" . sprintf(__("You are about to delete this comment by \'%s\'\\n \'Cancel\' to stop, \'OK\' to delete."), $comment->comment_author) . "')\">" . __('Delete just this comment') . "</a> | "; ?> <?php _e('Bulk action:') ?>
<input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment[<?php echo $comment->comment_ID; ?>]-approve" value="approve" /> <label for="comment[<?php echo $comment->comment_ID; ?>]-approve"><?php _e('Approve') ?></label>
<input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment[<?php echo $comment->comment_ID; ?>]-spam" value="spam" /> <label for="comment[<?php echo $comment->comment_ID; ?>]-spam"><?php _e('Spam') ?></label>
<input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment[<?php echo $comment->comment_ID; ?>]-delete" value="delete" /> <label for="comment[<?php echo $comment->comment_ID; ?>]-delete"><?php _e('Delete') ?></label>
<input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment[<?php echo $comment->comment_ID; ?>]-nothing" value="later" checked="checked" /> <label for="comment[<?php echo $comment->comment_ID; ?>]-nothing"><?php _e('Defer until later') ?></label>
<p><?php comment_date(__('M j, g:i A')); ?> &#8212; [ <?php
echo '<a href="comment.php?action=editcomment&amp;c='.$comment->comment_ID.'">' . __('Edit') . '</a> | ';
echo " <a href=\"post.php?action=deletecomment&amp;p=".$comment->comment_post_ID."&amp;comment=".$comment->comment_ID."\" onclick=\"return deleteSomething( 'comment', $comment->comment_ID, '" . js_escape(sprintf(__("You are about to delete this comment by '%s'.\n'Cancel' to stop, 'OK' to delete."), $comment->comment_author )) . "', theCommentList );\">" . __('Delete') . "</a> | "; ?>
<?php
$post = get_post($comment->comment_post_ID);
$post_title = wp_specialchars( $post->post_title, 'double' );
$post_title = ('' == $post_title) ? "# $comment->comment_post_ID" : $post_title;
?>
<a href="<?php echo get_permalink($comment->comment_post_ID); ?>" title="<?php echo $post_title; ?>"><?php _e('View Post') ?></a> ] &#8212;
<?php _e('Bulk action:') ?>
<input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-approve" value="approve" /> <label for="comment-<?php echo $comment->comment_ID; ?>-approve"><?php _e('Approve') ?></label> &nbsp;
<input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-spam" value="spam" /> <label for="comment-<?php echo $comment->comment_ID; ?>-spam"><?php _e('Spam') ?></label> &nbsp;
<input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-delete" value="delete" /> <label for="comment-<?php echo $comment->comment_ID; ?>-delete"><?php _e('Delete') ?></label> &nbsp;
<input type="radio" name="comment[<?php echo $comment->comment_ID; ?>]" id="comment-<?php echo $comment->comment_ID; ?>-nothing" value="later" checked="checked" /> <label for="comment-<?php echo $comment->comment_ID; ?>-nothing"><?php _e('Defer until later') ?></label>
</p>
</li>
<?php
}
}
?>
</ol>
</ol>
<p class="submit"><input type="submit" name="submit" value="<?php _e('Moderate Comments &raquo;') ?>" /></p>
<div id="ajax-response"></div>
<p class="submit"><input type="submit" name="submit" value="<?php _e('Bulk Moderate Comments &raquo;') ?>" /></p>
<script type="text/javascript">
// <![CDATA[
function markAllForDelete() {
@@ -201,11 +185,11 @@ document.write('<ul><li><a href="javascript:markAllForApprove()"><?php _e('Mark
<input name="feelinglucky" type="checkbox" id="feelinglucky" value="true" /> <label for="feelinglucky"><?php _e('Delete every comment marked "defer." <strong>Warning: This can&#8217;t be undone.</strong>'); ?></label>
</p>
</noscript>
</form>
</form>
<?php
} else {
// nothing to approve
echo __("<p>Currently there are no comments for you to moderate.</p>") . "\n";
// nothing to approve
echo '<p>'.__("Currently there are no comments for you to moderate.") . "</p>\n";
}
?>
@@ -217,4 +201,6 @@ break;
}
include('admin-footer.php') ?>
include('admin-footer.php');
?>

View File

@@ -5,96 +5,82 @@ $title = __('Discussion Options');
$parent_file = 'options-general.php';
include('admin-header.php');
if ($action == 'retrospam') {
if ( $_GET['move'] == 'true' ) {
retrospam_mgr::move_spam( $_GET[ids] );
}
$retrospaminator = new retrospam_mgr();
$result = $retrospaminator->find_spam();
echo $retrospaminator->display_edit_form( $result );
include('./admin-footer.php');
exit;
}
?>
<div class="wrap">
<h2><?php _e('Discussion Options') ?></h2>
<form name="form1" method="post" action="options.php">
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="'default_pingback_flag','default_ping_status','default_comment_status','comments_notify','moderation_notify','comment_moderation','require_name_email','comment_whitelist','comment_max_links','moderation_keys','blacklist_keys','open_proxy_check'" />
<h2><?php _e('Discussion Options') ?></h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options') ?>
<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" /></p>
<fieldset class="options">
<legend><?php _e('Usual settings for an article: <em>(These settings may be overridden for individual articles.)</em>') ?></legend>
<ul>
<li>
<label for="default_pingback_flag">
<input name="default_pingback_flag" type="checkbox" id="default_pingback_flag" value="1" <?php checked('1', get_settings('default_pingback_flag')); ?> />
<?php _e('Attempt to notify any Weblogs linked to from the article (slows down posting.)') ?></label>
</li>
<li>
<label for="default_ping_status">
<input name="default_ping_status" type="checkbox" id="default_ping_status" value="open" <?php checked('open', get_settings('default_ping_status')); ?> />
<?php _e('Allow link notifications from other Weblogs (pingbacks and trackbacks.)') ?></label>
</li>
<li>
<label for="default_comment_status">
<input name="default_comment_status" type="checkbox" id="default_comment_status" value="open" <?php checked('open', get_settings('default_comment_status')); ?> />
<?php _e('Allow people to post comments on the article') ?></label>
</li>
</ul>
<legend><?php echo __('Usual settings for an article:').'<br /><small><em>('.__('These settings may be overridden for individual articles.').')</em></small>'; ?></legend>
<ul>
<li>
<label for="default_pingback_flag">
<input name="default_pingback_flag" type="checkbox" id="default_pingback_flag" value="1" <?php checked('1', get_option('default_pingback_flag')); ?> />
<?php _e('Attempt to notify any Weblogs linked to from the article (slows down posting.)') ?></label>
</li>
<li>
<label for="default_ping_status">
<input name="default_ping_status" type="checkbox" id="default_ping_status" value="open" <?php checked('open', get_option('default_ping_status')); ?> />
<?php _e('Allow link notifications from other Weblogs (pingbacks and trackbacks.)') ?></label>
</li>
<li>
<label for="default_comment_status">
<input name="default_comment_status" type="checkbox" id="default_comment_status" value="open" <?php checked('open', get_option('default_comment_status')); ?> />
<?php _e('Allow people to post comments on the article') ?></label>
</li>
</ul>
</fieldset>
<fieldset class="options">
<legend><?php _e('E-mail me whenever:') ?></legend>
<ul>
<li>
<label for="comments_notify">
<input name="comments_notify" type="checkbox" id="comments_notify" value="1" <?php checked('1', get_settings('comments_notify')); ?> />
<?php _e('Anyone posts a comment') ?> </label>
</li>
<li>
<label for="moderation_notify">
<input name="moderation_notify" type="checkbox" id="moderation_notify" value="1" <?php checked('1', get_settings('moderation_notify')); ?> />
<?php _e('A comment is held for moderation') ?> </label>
</li>
</ul>
<legend><?php _e('E-mail me whenever:') ?></legend>
<ul>
<li>
<label for="comments_notify">
<input name="comments_notify" type="checkbox" id="comments_notify" value="1" <?php checked('1', get_option('comments_notify')); ?> />
<?php _e('Anyone posts a comment') ?> </label>
</li>
<li>
<label for="moderation_notify">
<input name="moderation_notify" type="checkbox" id="moderation_notify" value="1" <?php checked('1', get_option('moderation_notify')); ?> />
<?php _e('A comment is held for moderation') ?> </label>
</li>
</ul>
</fieldset>
<fieldset class="options">
<legend><?php _e('Before a comment appears:') ?></legend>
<ul>
<li>
<label for="comment_moderation">
<input name="comment_moderation" type="checkbox" id="comment_moderation" value="1" <?php checked('1', get_settings('comment_moderation')); ?> />
<?php _e('An administrator must approve the comment (regardless of any matches below)') ?> </label>
</li>
<li><label for="require_name_email"><input type="checkbox" name="require_name_email" id="require_name_email" value="1" <?php checked('1', get_settings('require_name_email')); ?> /> <?php _e('Comment author must fill out name and e-mail') ?></label></li>
<li><label for="comment_whitelist"><input type="checkbox" name="comment_whitelist" id="comment_whitelist" value="1" <?php checked('1', get_settings('comment_whitelist')); ?> /> <?php _e('Comment author must have a previously approved comment') ?></label></li>
</ul>
<legend><?php _e('Before a comment appears:') ?></legend>
<ul>
<li>
<label for="comment_moderation">
<input name="comment_moderation" type="checkbox" id="comment_moderation" value="1" <?php checked('1', get_option('comment_moderation')); ?> />
<?php _e('An administrator must always approve the comment') ?> </label>
</li>
<li><label for="require_name_email"><input type="checkbox" name="require_name_email" id="require_name_email" value="1" <?php checked('1', get_option('require_name_email')); ?> /> <?php _e('Comment author must fill out name and e-mail') ?></label></li>
<li><label for="comment_whitelist"><input type="checkbox" name="comment_whitelist" id="comment_whitelist" value="1" <?php checked('1', get_option('comment_whitelist')); ?> /> <?php _e('Comment author must have a previously approved comment') ?></label></li>
</ul>
</fieldset>
<fieldset class="options">
<legend><?php _e('Comment Moderation') ?></legend>
<p><?php printf(__('Hold a comment in the queue if it contains more than %s links. (A common characteristic of comment spam is a large number of hyperlinks.)'), '<input name="comment_max_links" type="text" id="comment_max_links" size="3" value="' . get_settings('comment_max_links'). '" />' ) ?></p>
<legend><?php _e('Comment Moderation') ?></legend>
<p><?php printf(__('Hold a comment in the queue if it contains %s or more links. (A common characteristic of comment spam is a large number of hyperlinks.)'), '<input name="comment_max_links" type="text" id="comment_max_links" size="3" value="' . get_option('comment_max_links'). '" />' ) ?></p>
<p><?php _e('When a comment contains any of these words in its content, name, URI, e-mail, or IP, hold it in the moderation queue: (Separate multiple words with new lines.) <a href="http://codex.wordpress.org/Spam_Words">Common spam words</a>.') ?></p>
<p>
<textarea name="moderation_keys" cols="60" rows="4" id="moderation_keys" style="width: 98%; font-size: 12px;" class="code"><?php form_option('moderation_keys'); ?></textarea>
</p>
<p>
<a id="retrospambutton" href="options-discussion.php?action=retrospam"><?php _e('Check past comments against moderation list'); ?></a>
</p>
<p><?php _e('When a comment contains any of these words in its content, name, URL, e-mail, or IP, it will be held in the <a href="moderation.php">moderation queue</a>. One word or IP per line. It will match inside words, so "press" will match "WordPress".') ?></p>
<p>
<textarea name="moderation_keys" cols="60" rows="4" id="moderation_keys" style="width: 98%; font-size: 12px;" class="code"><?php form_option('moderation_keys'); ?></textarea>
</p>
</fieldset>
<fieldset class="options">
<legend><?php _e('Comment Blacklist') ?></legend>
<p><?php _e('This is a list of words that you want completely blacklisted from your blog. Be very careful what you add here, because if a comment matches something here it will be completely nuked and there will be no notification. Remember that partial words can match, so if there is any chance something here might match it would be better to put it in the moderation box above.') ?></p>
<p>
<textarea name="blacklist_keys" cols="60" rows="4" id="blacklist_keys" style="width: 98%; font-size: 12px;" class="code"><?php form_option('blacklist_keys'); ?></textarea>
</p>
<p><label for="open_proxy_check">
<input name="open_proxy_check" type="checkbox" id="open_proxy_check" value="1" <?php checked('1', get_settings('open_proxy_check')); ?> />
<?php _e('Blacklist comments from open and insecure proxies.') ?></label></p>
<legend><?php _e('Comment Blacklist') ?></legend>
<p><?php _e('When a comment contains any of these words in its content, name, URL, e-mail, or IP, it will be marked as spam. One word or IP per line. It will match inside words, so "press" will match "WordPress".') ?></p>
<p>
<textarea name="blacklist_keys" cols="60" rows="4" id="blacklist_keys" style="width: 98%; font-size: 12px;" class="code"><?php form_option('blacklist_keys'); ?></textarea>
</p>
</fieldset>
<p class="submit">
<input type="submit" name="Submit" value="<?php _e('Update Options') ?>" />
</p>
</form>
<p class="submit">
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="default_pingback_flag,default_ping_status,default_comment_status,comments_notify,moderation_notify,comment_moderation,require_name_email,comment_whitelist,comment_max_links,moderation_keys,blacklist_keys" />
<input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
</p>
</form>
</div>
<?php include('./admin-footer.php'); ?>

View File

@@ -1,99 +1,106 @@
<?php
require_once('admin.php');
require_once('./admin.php');
$title = __('General Options');
$parent_file = 'options-general.php';
include('admin-header.php');
include('./admin-header.php');
?>
<div class="wrap">
<h2><?php _e('General Options') ?></h2>
<form name="form1" method="post" action="options.php">
<input type="hidden" name="action" value="update" />
<input type="hidden" name="action" value="update" /> <input type="hidden" name="page_options" value="'blogname','blogdescription','siteurl','admin_email','users_can_register','gmt_offset','date_format','time_format','home','start_of_week','comment_registration'" />
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<tr valign="top">
<th width="33%" scope="row"><?php _e('Weblog title:') ?></th>
<td><input name="blogname" type="text" id="blogname" value="<?php form_option('blogname'); ?>" size="40" /></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Tagline:') ?></th>
<td><input name="blogdescription" type="text" id="blogdescription" style="width: 95%" value="<?php form_option('blogdescription'); ?>" size="45" />
<br />
<div class="wrap">
<h2><?php _e('General Options') ?></h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options') ?>
<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" /></p>
<table class="optiontable">
<tr valign="top">
<th scope="row"><?php _e('Weblog title:') ?></th>
<td><input name="blogname" type="text" id="blogname" value="<?php form_option('blogname'); ?>" size="40" /></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Tagline:') ?></th>
<td><input name="blogdescription" type="text" id="blogdescription" style="width: 95%" value="<?php form_option('blogdescription'); ?>" size="45" />
<br />
<?php _e('In a few words, explain what this weblog is about.') ?></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('WordPress address (URI):') ?></th>
<td><input name="siteurl" type="text" id="siteurl" value="<?php form_option('siteurl'); ?>" size="40" class="code" /></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Blog address (URI):') ?></th>
<td><input name="home" type="text" id="home" value="<?php form_option('home'); ?>" size="40" class="code" /><br /><?php _e('If you want your blog homepage to be different than the directory you installed WordPress in, enter that address here. '); ?></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('E-mail address:') ?> </th>
<td><input name="admin_email" type="text" id="admin_email" value="<?php form_option('admin_email'); ?>" size="40" class="code" />
<br />
</tr>
<tr valign="top">
<th scope="row"><?php _e('WordPress address (URL):') ?></th>
<td><input name="siteurl" type="text" id="siteurl" value="<?php form_option('siteurl'); ?>" size="40" class="code<?php if ( defined( 'WP_SITEURL' ) ) : ?> disabled" disabled="disabled"<?php else: ?>"<?php endif; ?> /></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Blog address (URL):') ?></th>
<td><input name="home" type="text" id="home" value="<?php form_option('home'); ?>" size="40" class="code<?php if ( defined( 'WP_HOME' ) ) : ?> disabled" disabled="disabled"<?php else: ?>"<?php endif; ?> /><br /><?php _e('Enter the address here if you want your blog homepage <a href="http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">to be different from the directory</a> you installed WordPress.'); ?></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('E-mail address:') ?> </th>
<td><input name="admin_email" type="text" id="admin_email" value="<?php form_option('admin_email'); ?>" size="40" class="code" />
<br />
<?php _e('This address is used only for admin purposes.') ?></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Membership:') ?></th>
<td> <label for="users_can_register">
<input name="users_can_register" type="checkbox" id="users_can_register" value="1" <?php checked('1', get_settings('users_can_register')); ?> />
<?php _e('Anyone can register') ?></label><br />
<label for="comment_registration">
<input name="comment_registration" type="checkbox" id="comment_registration" value="1" <?php checked('1', get_settings('comment_registration')); ?> />
<?php _e('Users must be registered and logged in to comment') ?>
</label>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Membership:') ?></th>
<td> <label for="users_can_register">
<input name="users_can_register" type="checkbox" id="users_can_register" value="1" <?php checked('1', get_option('users_can_register')); ?> />
<?php _e('Anyone can register') ?></label><br />
<label for="comment_registration">
<input name="comment_registration" type="checkbox" id="comment_registration" value="1" <?php checked('1', get_option('comment_registration')); ?> />
<?php _e('Users must be registered and logged in to comment') ?>
</label>
</td>
</tr>
</table>
<fieldset class="options">
<legend><?php _e('Date and Time') ?></legend>
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<tr>
<th scope="row" width="33%"><?php _e('<abbr title="Coordinated Universal Time">UTC</abbr> time is:') ?> </th>
<td><code><?php echo gmdate('Y-m-d g:i:s a'); ?></code></td>
</tr>
<tr>
<th scope="row"><?php _e('Times in the weblog should differ by:') ?> </th>
<td><input name="gmt_offset" type="text" id="gmt_offset" size="2" value="<?php form_option('gmt_offset'); ?>" />
<?php _e('hours') ?> </td>
</tr>
<tr>
<th scope="row">&nbsp;</th>
<td><?php _e('The following use the same syntax as the <a href="http://php.net/date">PHP <code>date()</code> function</a>. Save option to update sample output.') ?> </td>
</tr>
<tr>
<th scope="row"><?php _e('Default date format:') ?></th>
<td><input name="date_format" type="text" id="date_format" size="30" value="<?php form_option('date_format'); ?>" /><br />
<?php _e('Output:') ?> <strong><?php echo mysql2date(get_settings('date_format'), current_time('mysql')); ?></strong></td>
</tr>
<tr>
<th scope="row"><?php _e('Default time format:') ?></th>
<td><input name="time_format" type="text" id="time_format" size="30" value="<?php form_option('time_format'); ?>" /><br />
<?php _e('Output:') ?> <strong><?php echo gmdate(get_settings('time_format'), current_time('timestamp')); ?></strong></td>
</tr>
<tr>
<th scope="row"><?php _e('Weeks in the calendar should start on:') ?></th>
<td><select name="start_of_week" id="start_of_week">
<?php
</tr>
<tr valign="top">
<th scope="row"><?php _e('New User Default Role:') ?></th>
<td><label for="default_role">
<select name="default_role" id="default_role"><?php wp_dropdown_roles( get_option('default_role') ); ?></select></label>
</td>
</tr>
</table>
<fieldset class="options">
<legend><?php _e('Date and Time') ?></legend>
<table class="optiontable">
<tr>
<th scope="row"><?php _e('<abbr title="Coordinated Universal Time">UTC</abbr> time is:') ?> </th>
<td><code><?php echo gmdate(__('Y-m-d g:i:s a')); ?></code></td>
</tr>
<tr>
<th scope="row"><?php _e('Times in the weblog should differ by:') ?> </th>
<td><input name="gmt_offset" type="text" id="gmt_offset" size="2" value="<?php form_option('gmt_offset'); ?>" />
<?php _e('hours') ?> (<?php _e('Your timezone offset, for example <code>-6</code> for Central Time.'); ?>)</td>
</tr>
<tr>
<th scope="row"><?php _e('Default date format:') ?></th>
<td><input name="date_format" type="text" id="date_format" size="30" value="<?php form_option('date_format'); ?>" /><br />
<?php _e('Output:') ?> <strong><?php echo mysql2date(get_option('date_format'), current_time('mysql')); ?></strong></td>
</tr>
<tr>
<th scope="row"><?php _e('Default time format:') ?></th>
<td><input name="time_format" type="text" id="time_format" size="30" value="<?php form_option('time_format'); ?>" /><br />
<?php _e('Output:') ?> <strong><?php echo gmdate(get_option('time_format'), current_time('timestamp')); ?></strong></td>
</tr>
<tr>
<th scope="row">&nbsp;</th>
<td><?php _e('<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date formatting</a>. Click "Update options" to update sample output.') ?> </td>
</tr>
<tr>
<th scope="row"><?php _e('Weeks in the calendar should start on:') ?></th>
<td><select name="start_of_week" id="start_of_week">
<?php
for ($day_index = 0; $day_index <= 6; $day_index++) :
if ($day_index == get_settings('start_of_week')) $selected = " selected='selected'";
else $selected = '';
echo "\n\t<option value='$day_index' $selected>$weekday[$day_index]</option>";
$selected = (get_option('start_of_week') == $day_index) ? 'selected="selected"' : '';
echo "\n\t<option value='$day_index' $selected>" . $wp_locale->get_weekday($day_index) . '</option>';
endfor;
?>
</select></td>
</tr>
</tr>
</table>
</fieldset>
<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="<?php if ( ! defined( 'WP_SITEURL' ) ) echo 'siteurl,'; if ( ! defined( 'WP_HOME' ) ) echo 'home,'; ?>blogname,blogdescription,admin_email,users_can_register,gmt_offset,date_format,time_format,start_of_week,comment_registration,default_role" />
</p>
</form>
</fieldset>
<p class="submit">
<input type="submit" name="Submit" value="<?php _e('Update Options') ?> &raquo;" />
</p>
</form>
</div>
<?php include("admin-footer.php") ?>
<?php include('./admin-footer.php') ?>

View File

@@ -1,24 +1,5 @@
<?php
$wpvarstoreset = array('action','standalone', 'option_group_id');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
?>
<br clear="all" />
<?php wp_reset_vars(array('action', 'standalone', 'option_group_id')); ?>
<?php if (isset($_GET['updated'])) : ?>
<div class="updated"><p><strong><?php _e('Options saved.') ?></strong></p></div>
<div id="message" class="updated fade"><p><strong><?php _e('Options saved.') ?></strong></p></div>
<?php endif; ?>

View File

@@ -7,66 +7,46 @@ $parent_file = 'options-general.php';
include('admin-header.php');
?>
<div class="wrap">
<h2><?php _e('Miscellaneous Options') ?></h2>
<form name="miscoptions" method="post" action="options.php">
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="'hack_file','use_fileupload','fileupload_realpath','fileupload_url','fileupload_allowedtypes','fileupload_maxk','fileupload_maxk','fileupload_minlevel','use_geo_positions','use_linksupdate'" />
<fieldset class="options">
<legend>
<input name="use_fileupload" type="checkbox" id="use_fileupload" value="1" <?php checked('1', get_settings('use_fileupload')); ?> />
<label for="use_fileupload"><?php _e('Allow File Uploads') ?></label></legend>
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<tr>
<th width="33%" valign="top" scope="row"><?php _e('Destination directory:') ?> </th>
<td>
<input name="fileupload_realpath" type="text" id="fileupload_realpath" value="<?php form_option('fileupload_realpath'); ?>" size="50" /><br />
<?php printf(__('Recommended: <code>%s</code>'), ABSPATH . 'wp-content') ?>
</td>
</tr>
<tr>
<th valign="top" scope="row"><?php _e('URI of this directory:') ?> </th>
<td>
<input name="fileupload_url" type="text" id="fileupload_url" value="<?php form_option('fileupload_url'); ?>" size="50" /><br />
<?php printf(__('Recommended: <code>%s</code>'), get_settings('siteurl') . '/wp-content') ?>
</td>
</tr>
<tr>
<th scope="row"><?php _e('Maximum size:') ?> </th>
<td><input name="fileupload_maxk" type="text" id="fileupload_maxk" value="<?php form_option('fileupload_maxk'); ?>" size="4" />
<?php _e('Kilobytes (KB)') ?></td>
</tr>
<tr>
<th valign="top" scope="row"><?php _e('Allowed file extensions:') ?></th>
<td><input name="fileupload_allowedtypes" type="text" id="fileupload_allowedtypes" value="<?php form_option('fileupload_allowedtypes'); ?>" size="40" />
<br />
<?php _e('Recommended: <code>jpg jpeg png gif</code>') ?></td>
</tr>
<tr>
<th scope="row"><?php _e('Minimum level to upload:') ?></th>
<td><select name="fileupload_minlevel" id="fileupload_minlevel">
<?php
for ($i = 1; $i < 11; $i++) {
if ($i == get_settings('fileupload_minlevel')) $selected = " selected='selected'";
else $selected = '';
echo "\n\t<option value='$i' $selected>$i</option>";
}
?>
</select></td>
</tr>
</table>
</fieldset>
<p><input name="use_linksupdate" type="checkbox" id="use_linksupdate" value="1" <?php checked('1', get_settings('use_linksupdate')); ?> />
<label for="use_linksupdate"><?php _e('Track Links&#8217; Update Times') ?></label></p>
<p>
<label><input type="checkbox" name="hack_file" value="1" <?php checked('1', get_settings('hack_file')); ?> /> <?php _e('Use legacy <code>my-hacks.php</code> file support') ?></label>
</p>
<p class="submit">
<input type="submit" name="Submit" value="<?php _e('Update Options') ?> &raquo;" />
</p>
</form>
<div class="wrap">
<h2><?php _e('Miscellaneous Options') ?></h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options') ?>
<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" /></p>
<fieldset class="options">
<legend><?php _e('Uploading'); ?></legend>
<table class="editform optiontable">
<tr valign="top">
<th scope="row"><?php _e('Store uploads in this folder'); ?>:</th>
<td><input name="upload_path" type="text" id="upload_path" class="code" value="<?php echo attribute_escape(str_replace(ABSPATH, '', get_option('upload_path'))); ?>" size="40" />
<br />
<?php _e('Default is <code>wp-content/uploads</code>'); ?>
</td>
</tr>
<tr>
<td></td>
<td>
<label for="uploads_use_yearmonth_folders">
<input name="uploads_use_yearmonth_folders" type="checkbox" id="uploads_use_yearmonth_folders" value="1" <?php checked('1', get_option('uploads_use_yearmonth_folders')); ?> />
<?php _e('Organize my uploads into month- and year-based folders'); ?>
</label>
</td>
</tr>
</table>
</fieldset>
<p><input name="use_linksupdate" type="checkbox" id="use_linksupdate" value="1" <?php checked('1', get_option('use_linksupdate')); ?> />
<label for="use_linksupdate"><?php _e('Track Links&#8217; Update Times') ?></label></p>
<p>
<label><input type="checkbox" name="hack_file" value="1" <?php checked('1', get_option('hack_file')); ?> /> <?php _e('Use legacy <code>my-hacks.php</code> file support') ?></label>
</p>
<p class="submit">
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="hack_file,use_linksupdate,uploads_use_yearmonth_folders,upload_path" />
<input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
</p>
</form>
</div>
<?php include('./admin-footer.php'); ?>

View File

@@ -4,18 +4,69 @@ require_once('admin.php');
$title = __('Permalink Options');
$parent_file = 'options-general.php';
function add_js() {
?>
<script type="text/javascript">
//<![CDATA[
function GetElementsWithClassName(elementName, className) {
var allElements = document.getElementsByTagName(elementName);
var elemColl = new Array();
for (i = 0; i < allElements.length; i++) {
if (allElements[i].className == className) {
elemColl[elemColl.length] = allElements[i];
}
}
return elemColl;
}
function upit() {
var inputColl = GetElementsWithClassName('input', 'tog');
var structure = document.getElementById('permalink_structure');
var inputs = '';
for (i = 0; i < inputColl.length; i++) {
if ( inputColl[i].checked && inputColl[i].value != '') {
inputs += inputColl[i].value + ' ';
}
}
inputs = inputs.substr(0,inputs.length - 1);
if ( 'custom' != inputs )
structure.value = inputs;
}
function blurry() {
if (!document.getElementById) return;
var structure = document.getElementById('permalink_structure');
structure.onfocus = function () { document.getElementById('custom_selection').checked = 'checked'; }
var aInputs = document.getElementsByTagName('input');
for (var i = 0; i < aInputs.length; i++) {
aInputs[i].onclick = aInputs[i].onkeyup = upit;
}
}
window.onload = blurry;
//]]>
</script>
<?php
}
add_filter('admin_head', 'add_js');
include('admin-header.php');
$home_path = get_home_path();
if ( isset($_POST) ) {
if ( isset($_POST['permalink_structure']) || isset($_POST['category_base']) ) {
check_admin_referer('update-permalink');
if ( isset($_POST['permalink_structure']) ) {
$permalink_structure = $_POST['permalink_structure'];
if (! empty($permalink_structure) )
$permalink_structure = preg_replace('#/+#', '/', '/' . $_POST['permalink_structure']);
$wp_rewrite->set_permalink_structure($permalink_structure);
}
if ( isset($_POST['category_base']) ) {
$category_base = $_POST['category_base'];
if (! empty($category_base) )
@@ -23,11 +74,9 @@ if ( isset($_POST) ) {
$wp_rewrite->set_category_base($category_base);
}
}
$permalink_structure = get_settings('permalink_structure');
$category_base = get_settings('category_base');
generate_page_rewrite_rules();
$permalink_structure = get_option('permalink_structure');
$category_base = get_option('category_base');
if ( (!file_exists($home_path.'.htaccess') && is_writable($home_path)) || is_writable($home_path.'.htaccess') )
$writable = true;
@@ -39,11 +88,11 @@ if ($wp_rewrite->using_index_permalinks())
else
$usingpi = false;
save_mod_rewrite_rules();
$wp_rewrite->flush_rules();
?>
<?php if (isset($_POST['submit'])) : ?>
<div class="updated"><p><?php
<div id="message" class="updated fade"><p><?php
if ($writable)
_e('Permalink structure updated.');
else
@@ -52,60 +101,75 @@ else
<?php endif; ?>
<div class="wrap">
<h2><?php _e('Edit Permalink Structure') ?></h2>
<p><?php _e('By default WordPress uses web URIs which have question marks and lots of numbers in them, however WordPress offers you the ability to create a custom URI structure for your permalinks and archives. This can improve the aesthetics, usability, and longevity of your links. A <a href="http://codex.wordpress.org/Using_Permalinks">number of tags are available</a>, and here are some examples to get you started.'); ?></p>
<h2><?php _e('Customize Permalink Structure') ?></h2>
<form name="form" action="options-permalink.php" method="post">
<?php wp_nonce_field('update-permalink') ?>
<p class="submit"><input type="submit" name="submit" value="<?php _e('Update Permalink Structure &raquo;') ?>" /></p>
<p><?php _e('By default WordPress uses web <abbr title="Universal Resource Locator">URL</abbr>s which have question marks and lots of numbers in them, however WordPress offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links. A <a href="http://codex.wordpress.org/Using_Permalinks">number of tags are available</a>, and here are some examples to get you started.'); ?></p>
<?php
$prefix = '';
if ( ! got_mod_rewrite() )
$prefix = '/index.php';
$structures = array(
'',
$prefix . '/%year%/%monthnum%/%day%/%postname%/',
$prefix . '/archives/%post_id%'
);
?>
<h3><?php _e('Common options:'); ?></h3>
<p>
<label>
<input name="selection" type="radio" value="" class="tog" <?php checked('', $permalink_structure); ?> />
<?php _e('Default'); ?><br /> <span> &raquo; <code><?php echo get_option('home'); ?>/?p=123</code></span>
</label>
</p>
<p>
<label>
<input name="selection" type="radio" value="<?php echo $structures[1]; ?>" class="tog" <?php checked($structures[1], $permalink_structure); ?> />
<?php _e('Date and name based'); ?><br /> <span> &raquo; <code><?php echo get_option('home') . $prefix . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/sample-post/'; ?></code></span>
</label>
</p>
<p>
<label>
<input name="selection" type="radio" value="<?php echo $structures[2]; ?>" class="tog" <?php checked($structures[2], $permalink_structure); ?> />
<?php _e('Numeric'); ?><br /> <span> &raquo; <code><?php echo get_option('home') . $prefix ; ?>/archives/123</code></span>
</label>
</p>
<p>
<label>
<input name="selection" id="custom_selection" type="radio" value="custom" class="tog"
<?php if ( !in_array($permalink_structure, $structures) ) { ?>
checked="checked"
<?php } ?>
/>
<?php _e('Custom, specify below'); ?>
</label>
<br />
</p>
<p id="customstructure"><?php _e('Custom structure'); ?>: <input name="permalink_structure" id="permalink_structure" type="text" class="code" style="width: 60%;" value="<?php echo attribute_escape($permalink_structure); ?>" size="50" /></p>
<h3><?php _e('Optional'); ?></h3>
<?php if ($is_apache) : ?>
<dl>
<dt><?php _e('Structure'); ?>: <code>/%year%/%monthnum%/%day%/%postname%/</code></dt>
<strong>
<dd><?php _e('Result'); ?>: <code><?php echo get_settings('home') . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/sample-post/'; ?></code></dd>
</strong>
<dt><?php _e('Structure'); ?>: <code>/archives/%post_id%</code></dt>
<strong>
<dd><?php _e('Result'); ?>: <code><?php echo get_settings('home'); ?>/archives/123</code></dd>
</strong>
<dt></dt>
</dl>
<p><?php _e('For the above to work you must have something called <code>mod_rewrite</code> installed on your server. (Ask your host.) If that isn&#8217;t available, you can prefix the structure with <code>/index.php/</code> . This is the recommend method if you are on any web server but Apache.'); ?></p>
<p><?php _e('If you like, you may enter a custom prefix for your category <abbr title="Universal Resource Locator">URL</abbr>s here. For example, <code>/taxonomy/tags</code> would make your category links like <code>http://example.org/taxonomy/tags/uncategorized/</code>. If you leave this blank the default will be used.') ?></p>
<?php else : ?>
<dl>
<dt><?php _e('Structure'); ?>: <code>/index.php/%year%/%monthnum%/%day%/%postname%/</code></dt>
<strong>
<dd><?php _e('Result'); ?>: <code><?php echo get_settings('home') . '/index.php/' . date('Y') . '/' . date('m') . '/' . date('d') . '/sample-post/'; ?></code></dd>
</strong>
<dt><?php _e('Structure'); ?>: <code>/index.php/archives/%post_id%</code></dt>
<strong>
<dd><?php _e('Result'); ?>: <code><?php echo get_settings('home'); ?>/index.php/archives/123</code></dd>
</strong>
<dt></dt>
</dl>
<?php endif; ?>
<form name="form" action="options-permalink.php" method="post">
<p><?php _e('Use the template tags above to create a virtual site structure:') ?></p>
<p>
<?php _e('Structure'); ?>: <input name="permalink_structure" type="text" class="code" style="width: 60%;" value="<?php echo $permalink_structure; ?>" size="50" />
</p>
<?php if ($is_apache) : ?>
<p><?php _e('If you like, you may enter a custom prefix for your category URIs here. For example, <code>/taxonomy/categorias</code> would make your category links like <code>http://example.org/taxonomy/categorias/uncategorized/</code>. If you leave this blank the default will be used.') ?></p>
<?php else : ?>
<p><?php _e('If you like, you may enter a custom prefix for your category URIs here. For example, <code>/index.php/taxonomy/categorias</code> would make your category links like <code>http://example.org/index.php/taxonomy/categorias/uncategorized/</code>. If you leave this blank the default will be used.') ?></p>
<p><?php _e('If you like, you may enter a custom prefix for your category <abbr title="Universal Resource Locator">URL</abbr>s here. For example, <code>/index.php/taxonomy/tags</code> would make your category links like <code>http://example.org/index.php/taxonomy/tags/uncategorized/</code>. If you leave this blank the default will be used.') ?></p>
<?php endif; ?>
<p>
<?php _e('Category base'); ?>: <input name="category_base" type="text" class="code" value="<?php echo $category_base; ?>" size="30" />
<?php _e('Category base'); ?>: <input name="category_base" type="text" class="code" value="<?php echo attribute_escape($category_base); ?>" size="30" />
</p>
<p class="submit">
<input type="submit" name="submit" value="<?php _e('Update Permalink Structure &raquo;') ?>" />
</p>
</form>
<?php if ( $permalink_structure && !$usingpi && !$writable ) : ?>
<p><?php _e('If your <code>.htaccess</code> was <a href="http://codex.wordpress.org/Make_a_Directory_Writable">writable</a> we could do this automatically, but it isn&#8217;t so these are the mod_rewrite rules you should have in your <code>.htaccess</code> file. Click in the field and press <kbd>CTRL + a</kbd> to select all.') ?></p>
<p><?php _e('If your <code>.htaccess</code> file were <a href="http://codex.wordpress.org/Make_a_Directory_Writable">writable</a>, we could do this automatically, but it isn&#8217;t so these are the mod_rewrite rules you should have in your <code>.htaccess</code> file. Click in the field and press <kbd>CTRL + a</kbd> to select all.') ?></p>
<form action="options-permalink.php" method="post">
<?php wp_nonce_field('update-permalink') ?>
<p>
<textarea rows="5" style="width: 98%;" name="rules"><?php echo $wp_rewrite->mod_rewrite_rules(); ?>
<textarea rows="5" style="width: 98%;" name="rules"><?php echo wp_specialchars($wp_rewrite->mod_rewrite_rules()); ?>
</textarea>
</p>
</form>
@@ -113,4 +177,4 @@ else
</div>
<?php require('./admin-footer.php'); ?>
<?php require('./admin-footer.php'); ?>

View File

@@ -0,0 +1,35 @@
<?php
require_once('./admin.php');
$title = __('Privacy Options');
$parent_file = 'options-general.php';
include('./admin-header.php');
?>
<div class="wrap">
<h2><?php _e('Privacy Options') ?></h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options') ?>
<table class="optiontable">
<tr valign="top">
<th scope="row"><?php _e('Blog visibility:') ?> </th>
<td>
<p><input id="blog-public" type="radio" name="blog_public" value="1" <?php checked('1', get_option('blog_public')); ?> />
<label for="blog-public"><?php _e('I would like my blog to be visible to everyone, including search engines (like Google, Sphere, Technorati) and archivers');?></label></p>
<p><input id="blog-norobots" type="radio" name="blog_public" value="0" <?php checked('0', get_option('blog_public')); ?> />
<label for="blog-norobots"><?php _e('I would like to block search engines, but allow normal visitors'); ?></label></p>
<?php do_action('blog_privacy_selector'); ?>
</td>
</tr>
</table>
<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="blog_public" />
</p>
</form>
</div>
<?php include('./admin-footer.php') ?>

View File

@@ -9,55 +9,88 @@ include('admin-header.php');
<div class="wrap">
<h2><?php _e('Reading Options') ?></h2>
<form name="form1" method="post" action="options.php">
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="'posts_per_page','what_to_show','posts_per_rss','rss_use_excerpt','blog_charset','gzipcompression' " />
<fieldset class="options">
<legend><?php _e('Blog Pages') ?></legend>
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<tr valign="top">
<th width="33%" scope="row"><?php _e('Show at most:') ?></th>
<td>
<input name="posts_per_page" type="text" id="posts_per_page" value="<?php form_option('posts_per_page'); ?>" size="3" />
<select name="what_to_show" id="what_to_show" >
<option value="days" <?php selected('days', get_settings('what_to_show')); ?>><?php _e('days') ?></option>
<option value="posts" <?php selected('posts', get_settings('what_to_show')); ?>><?php _e('posts') ?></option>
</select>
</td>
</tr>
</table>
</fieldset>
<fieldset class="options">
<legend><?php _e('Syndication Feeds') ?></legend>
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<tr valign="top">
<th width="33%" scope="row"><?php _e('Show the most recent:') ?></th>
<td><input name="posts_per_rss" type="text" id="posts_per_rss" value="<?php form_option('posts_per_rss'); ?>" size="3" /> <?php _e('posts') ?></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('For each article, show:') ?> </th>
<td>
<label><input name="rss_use_excerpt" type="radio" value="0" <?php checked(0, get_settings('rss_use_excerpt')); ?> /> <?php _e('Full text') ?></label><br />
<label><input name="rss_use_excerpt" type="radio" value="1" <?php checked(1, get_settings('rss_use_excerpt')); ?> /> <?php _e('Summary') ?></label>
</td>
</tr>
</table>
</fieldset>
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<tr valign="top">
<th width="33%" scope="row"><?php _e('Encoding for pages and feeds:') ?></th>
<td><input name="blog_charset" type="text" id="blog_charset" value="<?php form_option('blog_charset'); ?>" size="20" class="code" /><br />
<?php _e('The character encoding you write your blog in (UTF-8 is <a href="http://developer.apple.com/documentation/macos8/TextIntlSvcs/TextEncodingConversionManager/TEC1.5/TEC.b0.html">recommended</a>)') ?></td>
</tr>
</table>
<p>
<label><input type="checkbox" name="gzipcompression" value="1" <?php checked('1', get_settings('gzipcompression')); ?> />
<?php _e('WordPress should compress articles (gzip) if browsers ask for them') ?></label>
<form name="form1" method="post" action="options.php">
<?php wp_nonce_field('update-options') ?>
<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" /></p>
<?php if ( get_pages() ): ?>
<fieldset class="options">
<legend><?php _e('Front Page') ?></legend>
<table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">
<tr valign="top">
<th width="33%" scope="row"><?php _e('Front page displays:')?></th>
<td>
<p><label>
<input name="show_on_front" type="radio" value="posts" class="tog" <?php checked('posts', get_option('show_on_front')); ?> />
<?php _e('Your latest posts'); ?>
</label>
</p>
<p class="submit">
<input type="submit" name="Submit" value="<?php _e('Update Options') ?> &raquo;" />
</p>
<p><label>
<input name="show_on_front" type="radio" value="page" class="tog" <?php checked('page', get_option('show_on_front')); ?> />
<?php printf(__('A <a href="%s">static page</a> (select below)'), 'edit-pages.php'); ?>
</label>
</p>
<ul>
<li><?php printf(__('Front page: %s'), wp_dropdown_pages("name=page_on_front&echo=0&show_option_none=".__('- Select -')."&selected=" . get_option('page_on_front'))); ?></li>
<li><?php printf(__('Posts page: %s'), wp_dropdown_pages("name=page_for_posts&echo=0&show_option_none=".__('- Select -')."&selected=" . get_option('page_for_posts'))); ?></li>
</ul>
<?php if ( 'page' == get_option('show_on_front') && get_option('page_for_posts') == get_option('page_on_front') ) : ?>
<div id="front-page-warning" class="updated fade-ff0000">
<p>
<?php _e('<strong>Warning:</strong> these pages should not be the same!'); ?>
</p>
</div>
<?php endif; ?>
</td>
</tr>
</table>
</fieldset>
<?php endif; ?>
<fieldset class="options">
<legend><?php _e('Blog Pages') ?></legend>
<table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">
<tr valign="top">
<th width="33%" scope="row"><?php _e('Show at most:') ?></th>
<td>
<input name="posts_per_page" type="text" id="posts_per_page" value="<?php form_option('posts_per_page'); ?>" size="3" /> <?php _e('posts') ?>
</td>
</tr>
</table>
</fieldset>
<fieldset class="options">
<legend><?php _e('Syndication Feeds') ?></legend>
<table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">
<tr valign="top">
<th width="33%" scope="row"><?php _e('Show the most recent:') ?></th>
<td><input name="posts_per_rss" type="text" id="posts_per_rss" value="<?php form_option('posts_per_rss'); ?>" size="3" /> <?php _e('posts') ?></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('For each article, show:') ?> </th>
<td>
<p><label><input name="rss_use_excerpt" type="radio" value="0" <?php checked(0, get_option('rss_use_excerpt')); ?> /> <?php _e('Full text') ?></label><br />
<label><input name="rss_use_excerpt" type="radio" value="1" <?php checked(1, get_option('rss_use_excerpt')); ?> /> <?php _e('Summary') ?></label></p>
<p><?php _e('Note: If you use the <code>&lt;!--more--&gt;</code> feature, it will cut off posts in RSS feeds.'); ?></p>
</td>
</tr>
</table>
</fieldset>
<table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">
<tr valign="top">
<th width="33%" scope="row"><?php _e('Encoding for pages and feeds:') ?></th>
<td><input name="blog_charset" type="text" id="blog_charset" value="<?php form_option('blog_charset'); ?>" size="20" class="code" /><br />
<?php _e('The character encoding you write your blog in (UTF-8 is <a href="http://developer.apple.com/documentation/macos8/TextIntlSvcs/TextEncodingConversionManager/TEC1.5/TEC.b0.html">recommended</a>)') ?></td>
</tr>
</table>
<p>
<label><input type="checkbox" name="gzipcompression" value="1" <?php checked('1', get_option('gzipcompression')); ?> />
<?php _e('WordPress should compress articles (gzip) if browsers ask for them') ?></label>
</p>
<p class="submit">
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="posts_per_page,posts_per_rss,rss_use_excerpt,blog_charset,gzipcompression,show_on_front,page_on_front,page_for_posts" />
<input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
</p>
</form>
</div>
<?php include('./admin-footer.php'); ?>

View File

@@ -8,105 +8,113 @@ include('admin-header.php');
?>
<div class="wrap">
<h2><?php _e('Writing Options') ?></h2>
<form name="form1" method="post" action="options.php">
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="'default_post_edit_rows','use_smilies','use_balanceTags','advanced_edit','ping_sites','mailserver_url', 'mailserver_port','mailserver_login','mailserver_pass','default_category','default_email_category','new_users_can_blog'" />
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<tr valign="top">
<th scope="row"> <?php _e('When starting a post, show:') ?> </th>
<td><?php get_settings('advanced_edit') ?><label>
<input name="advanced_edit" type="radio" value="0" <?php checked('0', get_settings('advanced_edit')); ?> />
<?php _e('Simple controls') ?></label>
<br />
<label for="advanced_edit">
<input name="advanced_edit" id="advanced_edit" type="radio" value="1" <?php checked('1', get_settings('advanced_edit')); ?> />
<?php _e('Advanced controls') ?></label>
</td>
</tr>
<tr valign="top">
<th width="33%" scope="row"> <?php _e('Size of the writing box:') ?></th>
<td><input name="default_post_edit_rows" type="text" id="default_post_edit_rows" value="<?php form_option('default_post_edit_rows'); ?>" size="2" style="width: 1.5em; " />
<?php _e('lines') ?></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Formatting:') ?></th>
<td> <label for="label">
<input name="use_smilies" type="checkbox" id="label" value="1" <?php checked('1', get_settings('use_smilies')); ?> />
<?php _e('Convert emoticons like <code>:-)</code> and <code>:-P</code> to graphics on display') ?></label> <br /> <label for="label2">
<input name="use_balanceTags" type="checkbox" id="label2" value="1" <?php checked('1', get_settings('use_balanceTags')); ?> />
<?php _e('WordPress should correct invalidly nested XHTML automatically') ?></label></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Default post category:') ?></th>
<td><select name="default_category" id="default_category">
<h2><?php _e('Writing Options') ?></h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options') ?>
<p class="submit"><input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" /></p>
<table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">
<tr valign="top">
<th width="33%" scope="row"> <?php _e('Size of the post box:') ?></th>
<td><input name="default_post_edit_rows" type="text" id="default_post_edit_rows" value="<?php form_option('default_post_edit_rows'); ?>" size="2" style="width: 1.5em; " />
<?php _e('lines') ?></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Formatting:') ?></th>
<td>
<label for="use_smilies">
<input name="use_smilies" type="checkbox" id="use_smilies" value="1" <?php checked('1', get_option('use_smilies')); ?> />
<?php _e('Convert emoticons like <code>:-)</code> and <code>:-P</code> to graphics on display') ?></label><br />
<label for="use_balanceTags"><input name="use_balanceTags" type="checkbox" id="use_balanceTags" value="1" <?php checked('1', get_option('use_balanceTags')); ?> /> <?php _e('WordPress should correct invalidly nested XHTML automatically') ?></label>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Default post category:') ?></th>
<td><select name="default_category" id="default_category">
<?php
$categories = $wpdb->get_results("SELECT * FROM $wpdb->categories ORDER BY cat_name");
foreach ($categories as $category) :
if ($category->cat_ID == get_settings('default_category')) $selected = " selected='selected'";
else $selected = '';
echo "\n\t<option value='$category->cat_ID' $selected>$category->cat_name</option>";
endforeach;
?>
</select></td>
</tr>
<tr>
<th scope="row"><?php _e('Newly registered members:') ?></th>
<td> <label for="new_users_can_blog0"><input name="new_users_can_blog" id="new_users_can_blog0" type="radio" value="0" <?php checked('0', get_settings('new_users_can_blog')); ?> /> <?php _e('Cannot write articles') ?></label><br />
<label for="new_users_can_blog1"><input name="new_users_can_blog" id="new_users_can_blog1" type="radio" value="1" <?php checked('1', get_settings('new_users_can_blog')); ?> /> <?php _e('May submit drafts for review') ?></label><br />
<label for="new_users_can_blog2"><input name="new_users_can_blog" id="new_users_can_blog2" type="radio" value="2" <?php checked('2', get_settings('new_users_can_blog')); ?> /> <?php _e('May publish articles') ?></label><br /></td>
</tr>
</table>
<fieldset class="options">
<legend><?php _e('Writing by e-mail') ?></legend>
<p><?php printf(__('To post to WordPress by e-mail you must set up a secret e-mail account with POP3 access. Any mail received at this address will be posted, so it&#8217;s a good idea to keep this address very secret. Here are three random strings you could use: <code>%s</code>, <code>%s</code>, <code>%s</code>.'), substr(md5(uniqid(microtime())),0,5), substr(md5(uniqid(microtime())),0,5), substr(md5(uniqid(microtime())),0,5)) ?></p>
<table width="100%" cellspacing="2" cellpadding="5" class="editform">
<tr valign="top">
<th scope="row"><?php _e('Mail server:') ?></th>
<td><input name="mailserver_url" type="text" id="mailserver_url" value="<?php form_option('mailserver_url'); ?>" size="40" />
<label for="mailserver_port"><?php _e('Port:') ?></label>
<input name="mailserver_port" type="text" id="mailserver_port" value="<?php form_option('mailserver_port'); ?>" size="6" />
</td>
</tr>
<tr valign="top">
<th width="33%" scope="row"><?php _e('Login name:') ?></th>
<td><input name="mailserver_login" type="text" id="mailserver_login" value="<?php form_option('mailserver_login'); ?>" size="40" /></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Password:') ?></th>
<td>
<input name="mailserver_pass" type="text" id="mailserver_pass" value="<?php form_option('mailserver_pass'); ?>" size="40" />
</td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Default post by mail category:') ?></th>
<td><select name="default_email_category" id="default_email_category">
<?php
//Alreay have $categories from default_category
foreach ($categories as $category) :
if ($category->cat_ID == get_settings('default_email_category')) $selected = " selected='selected'";
if ($category->cat_ID == get_option('default_category')) $selected = " selected='selected'";
else $selected = '';
echo "\n\t<option value='$category->cat_ID' $selected>$category->cat_name</option>";
endforeach;
?>
</select></td>
</tr>
</table>
</select></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Default link category:') ?></th>
<td><select name="default_link_category" id="default_link_category">
<?php
foreach ($categories as $category) :
if ($category->cat_ID == get_option('default_link_category')) $selected = " selected='selected'";
else $selected = '';
echo "\n\t<option value='$category->cat_ID' $selected>$category->cat_name</option>";
endforeach;
?>
</select></td>
</tr>
</table>
<fieldset class="options">
<legend><?php _e('Post via e-mail') ?></legend>
<p><?php printf(__('To post to WordPress by e-mail you must set up a secret e-mail account with POP3 access. Any mail received at this address will be posted, so it&#8217;s a good idea to keep this address very secret. Here are three random strings you could use: <code>%s</code>, <code>%s</code>, <code>%s</code>.'), substr(md5(uniqid(microtime())),0,5), substr(md5(uniqid(microtime())),0,5), substr(md5(uniqid(microtime())),0,5)) ?></p>
<table width="100%" cellspacing="2" cellpadding="5" class="optiontable editform">
<tr valign="top">
<th scope="row"><?php _e('Mail server:') ?></th>
<td><input name="mailserver_url" type="text" id="mailserver_url" value="<?php form_option('mailserver_url'); ?>" size="40" />
<label for="mailserver_port"><?php _e('Port:') ?></label>
<input name="mailserver_port" type="text" id="mailserver_port" value="<?php form_option('mailserver_port'); ?>" size="6" />
</td>
</tr>
<tr valign="top">
<th width="33%" scope="row"><?php _e('Login name:') ?></th>
<td><input name="mailserver_login" type="text" id="mailserver_login" value="<?php form_option('mailserver_login'); ?>" size="40" /></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Password:') ?></th>
<td>
<input name="mailserver_pass" type="text" id="mailserver_pass" value="<?php form_option('mailserver_pass'); ?>" size="40" />
</td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Default mail category:') ?></th>
<td><select name="default_email_category" id="default_email_category">
<?php
//Alreay have $categories from default_category
foreach ($categories as $category) :
if ($category->cat_ID == get_option('default_email_category')) $selected = " selected='selected'";
else $selected = '';
echo "\n\t<option value='$category->cat_ID' $selected>$category->cat_name</option>";
endforeach;
?>
</select></td>
</tr>
</table>
</fieldset>
<fieldset class="options">
<legend><?php _e('Update Services') ?></legend>
<p><?php _e('When you publish a new post, WordPress automatically notifies the following site update services. For more about this, see <a href="http://codex.wordpress.org/Update_Services">Update Services</a> on the Codex. Separate multiple service URIs with line breaks.') ?></p>
<textarea name="ping_sites" id="ping_sites" style="width: 98%;" rows="3" cols="50"><?php form_option('ping_sites'); ?></textarea>
<legend><?php _e('Update Services') ?></legend>
<?php if ( get_option('blog_public') ) : ?>
<p><?php _e('When you publish a new post, WordPress automatically notifies the following site update services. For more about this, see <a href="http://codex.wordpress.org/Update_Services">Update Services</a> on the Codex. Separate multiple service <abbr title="Universal Resource Locator">URL</abbr>s with line breaks.') ?></p>
<textarea name="ping_sites" id="ping_sites" style="width: 98%;" rows="3" cols="50"><?php form_option('ping_sites'); ?></textarea>
<?php else : ?>
<p><?php printf(__('WordPress is not notifying any <a href="http://codex.wordpress.org/Update_Services">Update Services</a> because of your blog\'s <a href="%s">privacy settings</a>.'), 'options-privacy.php'); ?>
<?php endif; ?>
</fieldset>
<p class="submit">
<input type="submit" name="Submit" value="<?php _e('Update Options') ?> &raquo;" />
<p class="submit">
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="default_post_edit_rows,use_smilies,ping_sites,mailserver_url,mailserver_port,mailserver_login,mailserver_pass,default_category,default_email_category,use_balanceTags,default_link_category" />
<input type="submit" name="Submit" value="<?php _e('Update Options &raquo;') ?>" />
</p>
</form>
</div>
</form>
</div>
<?php include('./admin-footer.php') ?>

View File

@@ -5,111 +5,91 @@ $title = __('Options');
$this_file = 'options.php';
$parent_file = 'options-general.php';
$wpvarstoreset = array('action');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
wp_reset_vars(array('action'));
if ($user_level < 6)
die ( __('Cheatin&#8217; uh?') );
if ( !current_user_can('manage_options') )
wp_die(__('Cheatin&#8217; uh?'));
switch($action) {
case 'update':
$any_changed = 0;
if (!$_POST['page_options']) {
foreach ($_POST as $key => $value) {
$option_names[] = "'$key'";
check_admin_referer('update-options');
if ( !$_POST['page_options'] ) {
foreach ( (array) $_POST as $key => $value) {
if ( !in_array($key, array('_wpnonce', '_wp_http_referer')) )
$options[] = $key;
}
$option_names = implode(',', $option_names);
} else {
$option_names = stripslashes($_POST['page_options']);
$options = explode(',', stripslashes($_POST['page_options']));
}
$options = $wpdb->get_results("SELECT $wpdb->options.option_id, option_name, option_type, option_value, option_admin_level FROM $wpdb->options WHERE option_name IN ($option_names)");
// Save for later.
$old_siteurl = get_settings('siteurl');
$old_home = get_settings('home');
// HACK
// Options that if not there have 0 value but need to be something like "closed"
$nonbools = array('default_ping_status', 'default_comment_status');
if ($options) {
foreach ($options as $option) {
// should we even bother checking?
if ($user_level >= $option->option_admin_level) {
$old_val = $option->option_value;
$new_val = trim($_POST[$option->option_name]);
if( in_array($option->option_name, $nonbools) && ( $new_val == '0' || $new_val == '') )
$new_val = 'closed';
if ($new_val !== $old_val) {
$result = $wpdb->query("UPDATE $wpdb->options SET option_value = '$new_val' WHERE option_name = '$option->option_name'");
$any_changed++;
}
}
}
unset($cache_settings); // so they will be re-read
get_settings('siteurl'); // make it happen now
} // end if options
if ($options) {
foreach ($options as $option) {
$option = trim($option);
$value = $_POST[$option];
if(!is_array($value)) $value = trim($value);
$value = stripslashes_deep($value);
update_option($option, $value);
}
}
if ($any_changed) {
// If siteurl or home changed, reset cookies.
if ( get_settings('siteurl') != $old_siteurl || get_settings('home') != $old_home ) {
// If home changed, write rewrite rules to new location.
save_mod_rewrite_rules();
// Get currently logged in user and password.
get_currentuserinfo();
// Clear cookies for old paths.
wp_clearcookie();
// Set cookies for new paths.
wp_setcookie($user_login, $user_pass_md5, true, get_settings('home'), get_settings('siteurl'));
}
//$message = sprintf(__('%d setting(s) saved... '), $any_changed);
}
$referred = remove_query_arg('updated' , $_SERVER['HTTP_REFERER']);
$goback = add_query_arg('updated', 'true', $_SERVER['HTTP_REFERER']);
$goback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $goback);
wp_redirect($goback);
$referred = remove_query_arg('updated' , wp_get_referer());
$goback = add_query_arg('updated', 'true', wp_get_referer());
$goback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $goback);
wp_redirect($goback);
break;
default:
include('admin-header.php'); ?>
<div class="wrap">
<h2><?php _e('All options'); ?></h2>
<form name="form" action="options.php" method="post">
<h2><?php _e('All Options'); ?></h2>
<form name="form" action="options.php" method="post" id="all-options">
<?php wp_nonce_field('update-options') ?>
<input type="hidden" name="action" value="update" />
<p class="submit"><input type="submit" name="Update" value="<?php _e('Update Options &raquo;') ?>" /></p>
<table width="98%">
<?php
$options = $wpdb->get_results("SELECT * FROM $wpdb->options ORDER BY option_name");
foreach ($options as $option) :
$value = wp_specialchars($option->option_value);
foreach ( (array) $options as $option) :
$disabled = '';
$option->option_name = attribute_escape($option->option_name);
if ( is_serialized($option->option_value) ) {
if ( is_serialized_string($option->option_value) ) {
// this is a serialized string, so we should display it
$value = maybe_unserialize($option->option_value);
$options_to_update[] = $option->option_name;
$class = 'all-options';
} else {
$value = 'SERIALIZED DATA';
$disabled = ' disabled="disabled"';
$class = 'all-options disabled';
}
} else {
$value = $option->option_value;
$options_to_update[] = $option->option_name;
$class = 'all-options';
}
echo "
<tr>
<th scope='row'><label for='$option->option_name'>$option->option_name</label></th>
<td><input type='text' name='$option->option_name' id='$option->option_name' size='30' value='" . $value . "' /></td>
<td>";
if (strpos($value, "\n") !== false) echo "<textarea class='$class' name='$option->option_name' id='$option->option_name' cols='30' rows='5'>" . wp_specialchars($value) . "</textarea>";
else echo "<input class='$class' type='text' name='$option->option_name' id='$option->option_name' size='30' value='" . attribute_escape($value) . "'$disabled />";
echo "</td>
<td>$option->option_description</td>
</tr>";
endforeach;
?>
</table>
<p class="submit"><input type="submit" name="Update" value="<?php _e('Update Settings &raquo;') ?>" /></p>
<?php $options_to_update = implode(',', $options_to_update); ?>
<p class="submit"><input type="hidden" name="page_options" value="<?php echo $options_to_update; ?>" /><input type="submit" name="Update" value="<?php _e('Update Options &raquo;') ?>" /></p>
</form>
</div>

View File

@@ -1,30 +1,26 @@
<?php
require_once('admin.php');
$title = __('New Page');
$parent_file = 'post.php';
$parent_file = 'post-new.php';
$editing = true;
wp_enqueue_script('prototype');
wp_enqueue_script('interface');
wp_enqueue_script('autosave');
require_once('admin-header.php');
get_currentuserinfo();
?>
<?php if ( isset($_GET['saved']) ) : ?>
<div class="updated"><p><strong><?php _e('Page saved.') ?> <a href="edit-pages.php"><?php _e('Manage pages'); ?> &raquo;</a></strong></p></div>
<?php if ( (isset($_GET['posted']) && $_GET['posted']) || isset($_GET['saved']) ) : ?>
<div id="message" class="updated fade"><p><strong><?php _e('Page saved.') ?></strong> <a href="edit-pages.php"><?php _e('Manage pages'); ?></a> | <a href="<?php echo get_page_link( isset($_GET['posted']) ? $_GET['posted'] : $_GET['saved'] ); ?>"><?php _e('View page') ; ?> &raquo;</a></p></div>
<?php endif; ?>
<?php
if ($user_level > 0) {
if ( current_user_can('edit_pages') ) {
$action = 'post';
get_currentuserinfo();
//set defaults
$post_status = 'static';
$comment_status = get_settings('default_comment_status');
$ping_status = get_settings('default_ping_status');
$post_pingback = get_settings('default_pingback_flag');
$post_parent = 0;
$page_template = 'default';
$post = get_default_post_to_edit();
$post->post_type = 'page';
include('edit-page-form.php');
}
?>
<?php include('admin-footer.php'); ?>
<?php include('admin-footer.php'); ?>

158
wp-admin/page.php Normal file
View File

@@ -0,0 +1,158 @@
<?php
require_once('admin.php');
$parent_file = 'edit.php';
$submenu_file = 'edit-pages.php';
wp_reset_vars(array('action'));
if (isset($_POST['deletepost'])) {
$action = "delete";
}
switch($action) {
case 'post':
check_admin_referer('add-page');
$page_ID = write_post();
// Redirect.
if (!empty($_POST['mode'])) {
switch($_POST['mode']) {
case 'bookmarklet':
$location = $_POST['referredby'];
break;
case 'sidebar':
$location = 'sidebar.php?a=b';
break;
default:
$location = 'page-new.php';
break;
}
} else {
$location = "page-new.php?posted=$page_ID";
}
if ( isset($_POST['save']) )
$location = "page.php?action=edit&post=$page_ID";
wp_redirect($location);
exit();
break;
case 'edit':
$title = __('Edit');
$editing = true;
$page_ID = $post_ID = $p = (int) $_GET['post'];
$post = get_post_to_edit($page_ID);
if ( 'post' == $post->post_type ) {
wp_redirect("post.php?action=edit&post=$post_ID");
exit();
}
if($post->post_status == 'draft') {
wp_enqueue_script('prototype');
wp_enqueue_script('interface');
wp_enqueue_script('autosave');
}
require_once('admin-header.php');
if ( !current_user_can('edit_page', $page_ID) )
die ( __('You are not allowed to edit this page.') );
include('edit-page-form.php');
break;
case 'editattachment':
$page_id = $post_ID = (int) $_POST['post_ID'];
check_admin_referer('update-attachment_' . $page_id);
// Don't let these be changed
unset($_POST['guid']);
$_POST['post_type'] = 'attachment';
// Update the thumbnail filename
$newmeta = wp_get_attachment_metadata( $page_id, true );
$newmeta['thumb'] = $_POST['thumb'];
wp_update_attachment_metadata( $newmeta );
case 'editpost':
$page_ID = (int) $_POST['post_ID'];
check_admin_referer('update-page_' . $page_ID);
$page_ID = edit_post();
if ( 'post' == $_POST['originalaction'] ) {
if (!empty($_POST['mode'])) {
switch($_POST['mode']) {
case 'bookmarklet':
$location = $_POST['referredby'];
break;
case 'sidebar':
$location = 'sidebar.php?a=b';
break;
default:
$location = 'page-new.php';
break;
}
} else {
$location = "page-new.php?posted=$page_ID";
}
if ( isset($_POST['save']) )
$location = "page.php?action=edit&post=$page_ID";
} else {
if ($_POST['save']) {
$location = "page.php?action=edit&post=$page_ID";
} elseif ($_POST['updatemeta']) {
$location = wp_get_referer() . '&message=2#postcustom';
} elseif ($_POST['deletemeta']) {
$location = wp_get_referer() . '&message=3#postcustom';
} elseif (!empty($_POST['referredby']) && $_POST['referredby'] != wp_get_referer()) {
$location = $_POST['referredby'];
if ( $_POST['referredby'] == 'redo' )
$location = get_permalink( $page_ID );
} elseif ($action == 'editattachment') {
$location = 'attachments.php';
} else {
$location = 'page-new.php';
}
}
wp_redirect($location); // Send user on their way while we keep working
exit();
break;
case 'delete':
$page_id = (isset($_GET['post'])) ? intval($_GET['post']) : intval($_POST['post_ID']);
check_admin_referer('delete-page_' . $page_id);
$page = & get_post($page_id);
if ( !current_user_can('delete_page', $page_id) )
wp_die( __('You are not allowed to delete this page.') );
if ( $page->post_type == 'attachment' ) {
if ( ! wp_delete_attachment($page_id) )
wp_die( __('Error in deleting...') );
} else {
if ( !wp_delete_post($page_id) )
wp_die( __('Error in deleting...') );
}
$sendback = wp_get_referer();
if (strpos($sendback, 'page.php') !== false) $sendback = get_option('siteurl') .'/wp-admin/page.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();
break;
default:
wp_redirect('edit-pages.php');
exit();
break;
} // end switch
include('admin-footer.php');
?>

View File

@@ -4,21 +4,7 @@ require_once('admin.php');
$title = __("Edit Plugins");
$parent_file = 'plugins.php';
$wpvarstoreset = array('action','redirect','profile','error','warning','a','file');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
wp_reset_vars(array('action', 'redirect', 'profile', 'error', 'warning', 'a', 'file'));
$plugins = get_plugins();
$plugin_files = array_keys($plugins);
@@ -28,24 +14,36 @@ if (empty($file)) {
}
$file = validate_file_to_edit($file, $plugin_files);
$real_file = get_real_file_to_edit("wp-content/plugins/$file");
$real_file = get_real_file_to_edit( PLUGINDIR . "/$file");
switch($action) {
case 'update':
if ($user_level < 5) {
die(__('<p>You have do not have sufficient permissions to edit templates for this blog.</p>'));
}
check_admin_referer('edit-plugin_' . $file);
if ( !current_user_can('edit_plugins') )
wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this blog.').'</p>');
$newcontent = stripslashes($_POST['newcontent']);
if (is_writeable($real_file)) {
$f = fopen($real_file, 'w+');
fwrite($f, $newcontent);
fclose($f);
header("Location: plugin-editor.php?file=$file&a=te");
// Deactivate so we can test it.
$current = get_option('active_plugins');
if ( in_array($file, $current) || isset($_POST['phperror']) ) {
if ( in_array($file, $current) ) {
array_splice($current, array_search( $file, $current), 1 ); // Array-fu!
update_option('active_plugins', $current);
}
wp_redirect(add_query_arg('_wpnonce', wp_create_nonce('edit-plugin-test_' . $file), "plugin-editor.php?file=$file&liveupdate=1"));
exit();
}
wp_redirect("plugin-editor.php?file=$file&a=te");
} else {
header("Location: plugin-editor.php?file=$file");
wp_redirect("plugin-editor.php?file=$file");
}
exit();
@@ -53,17 +51,35 @@ case 'update':
break;
default:
require_once('admin-header.php');
if ($user_level <= 5) {
die(__('<p>You have do not have sufficient permissions to edit plugins for this blog.</p>'));
if ( !current_user_can('edit_plugins') )
wp_die('<p>'.__('You do not have sufficient permissions to edit plugins for this blog.').'</p>');
if ( $_GET['liveupdate'] ) {
check_admin_referer('edit-plugin-test_' . $file);
$current = get_option('active_plugins');
$plugin = $file;
if ( validate_file($plugin) )
wp_die(__('Invalid plugin.'));
if ( ! file_exists(ABSPATH . PLUGINDIR . '/' . $plugin) )
wp_die(__('Plugin file does not exist.'));
if (!in_array($plugin, $current)) {
wp_redirect("plugin-editor.php?file=$file&phperror=1"); // we'll override this later if the plugin can be included without fatal error
@include(ABSPATH . PLUGINDIR . '/' . $plugin);
$current[] = $plugin;
sort($current);
update_option('active_plugins', $current);
}
wp_redirect("plugin-editor.php?file=$file&a=te");
}
update_recently_edited("wp-content/plugins/$file");
require_once('admin-header.php');
update_recently_edited(PLUGINDIR . "/$file");
if (!is_file($real_file))
$error = 1;
if (!$error) {
$f = fopen($real_file, 'r');
$content = fread($f, filesize($real_file));
@@ -72,14 +88,24 @@ default:
?>
<?php if (isset($_GET['a'])) : ?>
<div class="updated"><p><?php _e('File edited successfully.') ?></p></div>
<div id="message" class="updated fade"><p><?php _e('File edited successfully.') ?></p></div>
<?php elseif (isset($_GET['phperror'])) : ?>
<div id="message" class="updated fade"><p><?php _e('This plugin has been deactivated because your changes resulted in a <strong>fatal error</strong>.') ?></p></div>
<?php endif; ?>
<div class="wrap">
<?php
if (is_writeable($real_file)) {
echo '<h2>' . sprintf(__('Editing <strong>%s</strong>'), $file) . '</h2>';
<div class="wrap">
<?php
if ( in_array($file, (array) get_option('active_plugins')) ) {
if (is_writeable($real_file)) {
echo '<h2>' . sprintf(__('Editing <strong>%s</strong> (active)'), $file) . '</h2>';
} else {
echo '<h2>' . sprintf(__('Browsing <strong>%s</strong> (active)'), $file) . '</h2>';
}
} else {
echo '<h2>' . sprintf(__('Browsing <strong>%s</strong>'), $file) . '</h2>';
if (is_writeable($real_file)) {
echo '<h2>' . sprintf(__('Editing <strong>%s</strong> (inactive)'), $file) . '</h2>';
} else {
echo '<h2>' . sprintf(__('Browsing <strong>%s</strong> (inactive)'), $file) . '</h2>';
}
}
?>
<div id="templateside">
@@ -88,37 +114,45 @@ default:
<?php
if ($plugin_files) :
?>
<ul>
<?php foreach($plugin_files as $plugin_file) : ?>
<ul>
<?php foreach($plugin_files as $plugin_file) : ?>
<li><a href="plugin-editor.php?file=<?php echo "$plugin_file"; ?>"><?php echo $plugins[$plugin_file]['Name']; ?></a></li>
<?php endforeach; ?>
</ul>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
<?php if (!$error) { ?>
<form name="template" id="template" action="plugin-editor.php" method="post">
<div><textarea cols="70" rows="25" name="newcontent" id="newcontent" tabindex="1"><?php echo $content ?></textarea>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="file" value="<?php echo $file ?>" />
<?php if (!$error) { ?>
<form name="template" id="template" action="plugin-editor.php" method="post">
<?php wp_nonce_field('edit-plugin_' . $file) ?>
<div><textarea cols="70" rows="25" name="newcontent" id="newcontent" tabindex="1"><?php echo $content ?></textarea>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="file" value="<?php echo $file ?>" />
</div>
<?php if ( is_writeable($real_file) ) : ?>
<p class="submit">
<?php
echo "<input type='submit' name='submit' value=' " . __('Update File') . " &raquo;' tabindex='2' />";
?>
</p>
<?php if ( in_array($file, (array) get_option('active_plugins')) ) { ?>
<p><?php _e('<strong>Warning:</strong> Making changes to active plugins is not recommended. If your changes cause a fatal error, the plugin will be automatically deactivated.'); ?></p>
<?php } ?>
<p class="submit">
<?php
if ( isset($_GET['phperror']) )
echo "<input type='hidden' name='phperror' value='1' /><input type='submit' name='submit' value='" . __('Update File and Attempt to Reactivate &raquo;') . "' tabindex='2' />";
else
echo "<input type='submit' name='submit' value='" . __('Update File &raquo;') . "' tabindex='2' />";
?>
</p>
<?php else : ?>
<p><em><?php _e('If this file was writable you could edit it.'); ?></em></p>
<p><em><?php _e('If this file were writable you could edit it.'); ?></em></p>
<?php endif; ?>
</form>
<?php
</form>
<?php
} else {
echo '<div class="error"><p>' . __('Oops, no such file exists! Double check the name and try again, merci.') . '</p></div>';
}
?>
</div>
?>
<div class="clear"> &nbsp; </div>
</div>
<?php
break;
}
include("admin-footer.php") ?>
include("admin-footer.php") ?>

View File

@@ -2,24 +2,45 @@
require_once('admin.php');
if ( isset($_GET['action']) ) {
check_admin_referer();
if ('activate' == $_GET['action']) {
$current = get_settings('active_plugins');
if (!in_array($_GET['plugin'], $current)) {
$current[] = trim( $_GET['plugin'] );
check_admin_referer('activate-plugin_' . $_GET['plugin']);
$current = get_option('active_plugins');
$plugin = trim($_GET['plugin']);
if ( validate_file($plugin) )
wp_die(__('Invalid plugin.'));
if ( ! file_exists(ABSPATH . PLUGINDIR . '/' . $plugin) )
wp_die(__('Plugin file does not exist.'));
if (!in_array($plugin, $current)) {
wp_redirect('plugins.php?error=true'); // we'll override this later if the plugin can be included without fatal error
ob_start();
@include(ABSPATH . PLUGINDIR . '/' . $plugin);
$current[] = $plugin;
sort($current);
update_option('active_plugins', $current);
do_action('activate_' . $plugin);
ob_end_clean();
}
sort($current);
update_option('active_plugins', $current);
header('Location: plugins.php?activate=true');
}
if ('deactivate' == $_GET['action']) {
$current = get_settings('active_plugins');
wp_redirect('plugins.php?activate=true'); // overrides the ?error=true one above
} else if ('deactivate' == $_GET['action']) {
check_admin_referer('deactivate-plugin_' . $_GET['plugin']);
$current = get_option('active_plugins');
array_splice($current, array_search( $_GET['plugin'], $current), 1 ); // Array-fu!
update_option('active_plugins', $current);
header('Location: plugins.php?deactivate=true');
do_action('deactivate_' . trim( $_GET['plugin'] ));
wp_redirect('plugins.php?deactivate=true');
} elseif ($_GET['action'] == 'deactivate-all') {
check_admin_referer('deactivate-all');
$current = get_option('active_plugins');
foreach ($current as $plugin) {
array_splice($current, array_search($plugin, $current), 1);
do_action('deactivate_' . $plugin);
}
update_option('active_plugins', array());
wp_redirect('plugins.php?deactivate-all=true');
}
exit;
}
$title = __('Manage Plugins');
@@ -28,89 +49,122 @@ require_once('admin-header.php');
// Clean up options
// If any plugins don't exist, axe 'em
$check_plugins = get_settings('active_plugins');
$check_plugins = get_option('active_plugins');
// Sanity check. If the active plugin list is not an array, make it an
// empty array.
if ( !is_array($check_plugins) ) {
$check_plugins = array();
update_option('active_plugins', $check_plugins);
update_option('active_plugins', $check_plugins);
}
// If a plugin file does not exist, remove it from the list of active
// plugins.
foreach ($check_plugins as $check_plugin) {
if (!file_exists(ABSPATH . 'wp-content/plugins/' . $check_plugin)) {
$current = get_settings('active_plugins');
unset($current[$_GET['plugin']]);
update_option('active_plugins', $current);
if (!file_exists(ABSPATH . PLUGINDIR . '/' . $check_plugin)) {
$current = get_option('active_plugins');
$key = array_search($check_plugin, $current);
if ( false !== $key && NULL !== $key ) {
unset($current[$key]);
update_option('active_plugins', $current);
}
}
}
?>
<?php if (isset($_GET['activate'])) : ?>
<div class="updated"><p><?php _e('Plugin <strong>activated</strong>.') ?></p>
</div>
<?php endif; ?>
<?php if (isset($_GET['deactivate'])) : ?>
<div class="updated"><p><?php _e('Plugin <strong>deactivated</strong>.') ?></p>
</div>
<?php if ( isset($_GET['error']) ) : ?>
<div id="message" class="updated fade"><p><?php _e('Plugin could not be activated because it triggered a <strong>fatal error</strong>.') ?></p></div>
<?php elseif ( isset($_GET['activate']) ) : ?>
<div id="message" class="updated fade"><p><?php _e('Plugin <strong>activated</strong>.') ?></p></div>
<?php elseif ( isset($_GET['deactivate']) ) : ?>
<div id="message" class="updated fade"><p><?php _e('Plugin <strong>deactivated</strong>.') ?></p></div>
<?php elseif (isset($_GET['deactivate-all'])) : ?>
<div id="message" class="updated fade"><p><?php _e('All plugins <strong>deactivated</strong>.'); ?></p></div>
<?php endif; ?>
<div class="wrap">
<h2><?php _e('Plugin Management'); ?></h2>
<p><?php _e('Plugins are files you usually download separately from WordPress that add functionality. To install a plugin you generally just need to put the plugin file into your <code>wp-content/plugins</code> directory. Once a plugin is installed, you may activate it or deactivate it here. If something goes wrong with a plugin and you can&#8217;t use WordPress, delete that plugin from the <code>wp-content/plugins</code> directory and it will be automatically deactivated.'); ?></p>
<p><?php _e('Plugins extend and expand the functionality of WordPress. Once a plugin is installed, you may activate it or deactivate it here.'); ?></p>
<?php
if ( get_settings('active_plugins') )
$current_plugins = get_settings('active_plugins');
if ( get_option('active_plugins') )
$current_plugins = get_option('active_plugins');
$plugins = get_plugins();
if (empty($plugins)) {
_e("<p>Couldn't open plugins directory or there are no plugins available.</p>"); // TODO: make more helpful
echo '<p>';
_e("Couldn&#8217;t open plugins directory or there are no plugins available."); // TODO: make more helpful
echo '</p>';
} else {
?>
<table width="100%" cellpadding="3" cellspacing="3">
<table class="widefat plugins">
<thead>
<tr>
<th><?php _e('Plugin'); ?></th>
<th><?php _e('Version'); ?></th>
<th><?php _e('Author'); ?></th>
<th style="text-align: center"><?php _e('Version'); ?></th>
<th><?php _e('Description'); ?></th>
<th><?php _e('Action'); ?></th>
<th style="text-align: center"<?php if ( current_user_can('edit_plugins') ) echo ' colspan="2"'; ?>><?php _e('Action'); ?></th>
</tr>
</thead>
<?php
$style = '';
foreach($plugins as $plugin_file => $plugin_data) {
$style = ('class="alternate"' == $style|| 'class="alternate active"' == $style) ? '' : 'alternate';
if (!empty($current_plugins) && in_array($plugin_file, $current_plugins)) {
$action = "<a href='plugins.php?action=deactivate&amp;plugin=$plugin_file' title='".__('Deactivate this plugin')."' class='delete'>".__('Deactivate')."</a>";
$toggle = "<a href='" . wp_nonce_url("plugins.php?action=deactivate&amp;plugin=$plugin_file", 'deactivate-plugin_' . $plugin_file) . "' title='".__('Deactivate this plugin')."' class='delete'>".__('Deactivate')."</a>";
$plugin_data['Title'] = "<strong>{$plugin_data['Title']}</strong>";
$style .= $style == 'alternate' ? ' active' : 'active';
} else {
$action = "<a href='plugins.php?action=activate&amp;plugin=$plugin_file' title='".__('Activate this plugin')."' class='edit'>".__('Activate')."</a>";
$toggle = "<a href='" . wp_nonce_url("plugins.php?action=activate&amp;plugin=$plugin_file", 'activate-plugin_' . $plugin_file) . "' title='".__('Activate this plugin')."' class='edit'>".__('Activate')."</a>";
}
$plugin_data['Description'] = wp_kses($plugin_data['Description'], array('a' => array('href' => array(),'title' => array()),'abbr' => array('title' => array()),'acronym' => array('title' => array()),'code' => array(),'em' => array(),'strong' => array()) ); ;
if ($style != '') $style = 'class="' . $style . '"';
$plugins_allowedtags = array('a' => array('href' => array(),'title' => array()),'abbr' => array('title' => array()),'acronym' => array('title' => array()),'code' => array(),'em' => array(),'strong' => array());
// Sanitize all displayed data
$plugin_data['Title'] = wp_kses($plugin_data['Title'], $plugins_allowedtags);
$plugin_data['Version'] = wp_kses($plugin_data['Version'], $plugins_allowedtags);
$plugin_data['Description'] = wp_kses($plugin_data['Description'], $plugins_allowedtags);
$plugin_data['Author'] = wp_kses($plugin_data['Author'], $plugins_allowedtags);
if ( $style != '' )
$style = 'class="' . $style . '"';
if ( is_writable(ABSPATH . PLUGINDIR . '/' . $plugin_file) )
$edit = "<a href='plugin-editor.php?file=$plugin_file' title='".__('Open this file in the Plugin Editor')."' class='edit'>".__('Edit')."</a>";
else
$edit = '';
echo "
<tr $style>
<td class=\"name\">{$plugin_data['Title']}</td>
<td class=\"vers\">{$plugin_data['Version']}</td>
<td class=\"auth\">{$plugin_data['Author']}</td>
<td class=\"desc\">{$plugin_data['Description']}</td>
<td class=\"togl\">$action</td>
<td class='name'>{$plugin_data['Title']}</td>
<td class='vers'>{$plugin_data['Version']}</td>
<td class='desc'><p>{$plugin_data['Description']} <cite>".sprintf(__('By %s'), $plugin_data['Author']).".</cite></p></td>
<td class='togl'>$toggle</td>";
if ( current_user_can('edit_plugins') )
echo "
<td>$edit</td>";
echo"
</tr>";
}
?>
<tr>
<td colspan="3">&nbsp;</td>
<td colspan="2" style="width:12em;"><a href="<?php echo wp_nonce_url('plugins.php?action=deactivate-all', 'deactivate-all'); ?>" class="delete"><?php _e('Deactivate All Plugins'); ?></a></td>
</tr>
</table>
<?php
}
?>
<p><?php printf(__('If something goes wrong with a plugin and you can&#8217;t use WordPress, delete or rename that file in the <code>%s</code> directory and it will be automatically deactivated.'), PLUGINDIR); ?></p>
<h2><?php _e('Get More Plugins'); ?></h2>
<p><?php _e('You can find additional plugins for your site in the <a href="http://wordpress.org/extend/plugins/">WordPress plugin directory</a>. To install a plugin you generally just need to upload the plugin file into your <code>wp-content/plugins</code> directory. Once a plugin is uploaded, you may activate it here.'); ?></p>
<p><?php _e('You can find additional plugins for your site in the <a href="http://wordpress.org/extend/plugins/">WordPress plugin directory</a>.'); ?></p>
<p><?php printf(__('To install a plugin you generally just need to upload the plugin file into your <code>%s</code> directory. Once a plugin is uploaded, you may activate it here.'), PLUGINDIR); ?></p>
</div>

97
wp-admin/post-new.php Normal file
View File

@@ -0,0 +1,97 @@
<?php
require_once('admin.php');
$title = __('Create New Post');
$parent_file = 'post-new.php';
$editing = true;
wp_enqueue_script('prototype');
wp_enqueue_script('interface');
wp_enqueue_script('autosave');
require_once ('./admin-header.php');
if ( ! current_user_can('edit_posts') ) { ?>
<div class="wrap">
<p><?php printf(__('Since you&#8217;re a newcomer, you&#8217;ll have to wait for an admin to raise your level to 1, in order to be authorized to post.<br />
You can also <a href="mailto:%s?subject=Promotion?">e-mail the admin</a> to ask for a promotion.<br />
When you&#8217;re promoted, just reload this page and you&#8217;ll be able to blog. :)'), get_option('admin_email')); ?>
</p>
</div>
<?php
include('admin-footer.php');
exit();
}
if ( isset($_GET['posted']) && $_GET['posted'] ) : ?>
<div id="message" class="updated fade"><p><strong><?php _e('Post saved.'); ?></strong> <a href="<?php echo get_permalink( $_GET['posted'] ); ?>"><?php _e('View post'); ?> &raquo;</a></p></div>
<?php
endif;
if ( $drafts = get_users_drafts( $user_ID ) ) { ?>
<div class="wrap">
<p><strong><?php _e('Your Drafts:') ?></strong>
<?php
// Show drafts.
$num_drafts = count($drafts);
if ( $num_drafts > 15 ) $num_drafts = 15;
for ( $i = 0; $i < $num_drafts; $i++ ) {
$draft = $drafts[$i];
if ( 0 != $i )
echo ', ';
if ( empty($draft->post_title) )
$draft->post_title = sprintf(__('Post # %s'), $draft->ID);
echo "<a href='post.php?action=edit&amp;post=$draft->ID' title='" . __('Edit this draft') . "'>$draft->post_title</a>";
}
if ( 15 < count($drafts) ) { ?>
, <a href="edit.php"><?php echo sprintf(__('and %s more'), (count($drafts) - 15) ); ?> &raquo;</a>
<?php } ?>
.</p>
</div>
<?php
}
// Show post form.
$post = get_default_post_to_edit();
include('edit-form-advanced.php');
?>
<?php if ( $is_NS4 || $is_gecko || $is_winIE ) { ?>
<div id="wp-bookmarklet" class="wrap">
<h3><?php _e('WordPress Bookmarklet'); ?></h3>
<p><?php _e('Right click on the following link and choose "Add to favorites" to create a posting shortcut.'); ?></p>
<p>
<?php
if ($is_NS4 || $is_gecko) {
?>
<a href="javascript:if(navigator.userAgent.indexOf('Safari') >= 0){Q=getSelection();}else{Q=document.selection?document.selection.createRange().text:document.getSelection();}location.href='<?php echo get_option('siteurl') ?>/wp-admin/post-new.php?text='+encodeURIComponent(Q)+'&amp;popupurl='+encodeURIComponent(location.href)+'&amp;popuptitle='+encodeURIComponent(document.title);"><?php printf(__('Press It - %s'), wp_specialchars(get_option('blogname'))); ?></a>
<?php
} else if ($is_winIE) {
?>
<a href="javascript:Q='';if(top.frames.length==0)Q=document.selection.createRange().text;location.href='<?php echo get_option('siteurl') ?>/wp-admin/post-new.php?text='+encodeURIComponent(Q)+'&amp;popupurl='+encodeURIComponent(location.href)+'&amp;popuptitle='+encodeURIComponent(document.title);"><?php printf(__('Press it - %s'), get_option('blogname')); ?></a>
<script type="text/javascript">
<!--
function oneclickbookmarklet(blah) {
window.open ("profile.php?action=IErightclick", "oneclickbookmarklet", "width=500, height=450, location=0, menubar=0, resizable=0, scrollbars=1, status=1, titlebar=0, toolbar=0, screenX=120, left=120, screenY=120, top=120");
}
// -->
</script>
<br />
<br />
<?php _e('One-click bookmarklet:') ?><br />
<a href="javascript:oneclickbookmarklet(0);"><?php _e('click here') ?></a>
<?php
} else if ($is_opera) {
?>
<a href="javascript:location.href='<?php echo get_option('siteurl'); ?>/wp-admin/post-new.php?popupurl='+escape(location.href)+'&popuptitle='+escape(document.title);"><?php printf(__('Press it - %s'), get_option('blogname')); ?></a>
<?php
} else if ($is_macIE) {
?>
<a href="javascript:Q='';location.href='<?php echo get_option('siteurl'); ?>/wp-admin/bookmarklet.php?text='+escape(document.getSelection())+'&popupurl='+escape(location.href)+'&popuptitle='+escape(document.title);"><?php printf(__('Press it - %s'), get_option('blogname')); ?></a>
<?php
}
?>
</p>
</div>
<?php } ?>
<?php include('admin-footer.php'); ?>

View File

@@ -1,795 +1,170 @@
<?php
require_once('admin.php');
$wpvarstoreset = array('action', 'safe_mode', 'withcomments', 'posts', 'content', 'edited_post_title', 'comment_error', 'profile', 'trackback_url', 'excerpt', 'showcomments', 'commentstart', 'commentend', 'commentorder' );
$parent_file = 'edit.php';
$submenu_file = 'edit.php';
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
wp_reset_vars(array('action', 'safe_mode', 'withcomments', 'posts', 'content', 'edited_post_title', 'comment_error', 'profile', 'trackback_url', 'excerpt', 'showcomments', 'commentstart', 'commentend', 'commentorder'));
if (isset($_POST['deletepost'])) {
$action = "delete";
}
// Fix submenu highlighting for pages.
if (false !== strpos($_SERVER['HTTP_REFERER'], 'edit-pages.php')) $submenu_file = 'page-new.php';
$editing = true;
if ( isset( $_POST['deletepost'] ) )
$action = 'delete';
switch($action) {
case 'postajaxpost':
case 'post':
$parent_file = 'post-new.php';
$submenu_file = 'post-new.php';
check_admin_referer('add-post');
if ( !user_can_create_draft($user_ID) )
die( __('You are not allowed to create posts or drafts on this blog.') );
$post_pingback = (int) $_POST['post_pingback'];
$content = apply_filters('content_save_pre', $_POST['content']);
$excerpt = apply_filters('excerpt_save_pre', $_POST['excerpt']);
$post_title = apply_filters('title_save_pre', $_POST['post_title']);
$post_categories = apply_filters('category_save_pre', $_POST['post_category']);
$post_status = apply_filters('status_save_pre', $_POST['post_status']);
$post_name = apply_filters('name_save_pre', $_POST['post_name']);
$post_parent = 0;
$menu_order = 0;
if ( isset($_POST['parent_id']) )
$post_parent = (int) $_POST['parent_id'];
if ( isset($_POST['menu_order']) )
$menu_order = (int) $_POST['menu_order'];
if (! empty($_POST['post_author_override'])) {
$post_author = (int) $_POST['post_author_override'];
} else if (! empty($_POST['post_author'])) {
$post_author = (int) $_POST['post_author'];
} else {
$post_author = (int) $_POST['user_ID'];
}
if ( !user_can_edit_user($user_ID, $post_author) )
die( __('You cannot post as this user.') );
if ( empty($post_status) )
$post_status = 'draft';
// Double-check
if ( 'publish' == $post_status && (!user_can_create_post($user_ID)) )
$post_status = 'draft';
$comment_status = $_POST['comment_status'];
if ( empty($comment_status) ) {
if ( !isset($_POST['advanced_view']) )
$comment_status = get_option('default_comment_status');
else
$comment_status = 'closed';
}
$ping_status = $_POST['ping_status'];
if ( empty($ping_status) ) {
if ( !isset($_POST['advanced_view']) )
$ping_status = get_option('default_ping_status');
else
$ping_status = 'closed';
}
$post_password = $_POST['post_password'];
$trackback = $_POST['trackback_url'];
$trackback = preg_replace('|\s+|', "\n", $trackback);
if (user_can_set_post_date($user_ID) && (!empty($_POST['edit_date']))) {
$aa = $_POST['aa'];
$mm = $_POST['mm'];
$jj = $_POST['jj'];
$hh = $_POST['hh'];
$mn = $_POST['mn'];
$ss = $_POST['ss'];
$jj = ($jj > 31) ? 31 : $jj;
$hh = ($hh > 23) ? $hh - 24 : $hh;
$mn = ($mn > 59) ? $mn - 60 : $mn;
$ss = ($ss > 59) ? $ss - 60 : $ss;
$now = "$aa-$mm-$jj $hh:$mn:$ss";
$now_gmt = get_gmt_from_date("$aa-$mm-$jj $hh:$mn:$ss");
} else {
$now = current_time('mysql');
$now_gmt = current_time('mysql', 1);
}
// What to do based on which button they pressed
if ('' != $_POST['saveasdraft']) $post_status = 'draft';
if ('' != $_POST['saveasprivate']) $post_status = 'private';
if ('' != $_POST['publish']) $post_status = 'publish';
if ('' != $_POST['advanced']) $post_status = 'draft';
if ('' != $_POST['savepage']) $post_status = 'static';
$id_result = $wpdb->get_row("SHOW TABLE STATUS LIKE '$wpdb->posts'");
$post_ID = $id_result->Auto_increment;
if ( empty($post_name) ) {
if ( 'draft' != $post_status )
$post_name = sanitize_title($post_title, $post_ID);
} else {
$post_name = sanitize_title($post_name, $post_ID);
}
if ('publish' == $post_status) {
$post_name_check = $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$post_name' AND post_status = 'publish' AND ID != '$post_ID' LIMIT 1");
if ($post_name_check) {
$suffix = 2;
while ($post_name_check) {
$alt_post_name = $post_name . "-$suffix";
$post_name_check = $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$alt_post_name' AND post_status = 'publish' AND ID != '$post_ID' LIMIT 1");
$suffix++;
}
$post_name = $alt_post_name;
}
}
$postquery ="INSERT INTO $wpdb->posts
(ID, post_author, post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_password, post_name, to_ping, post_modified, post_modified_gmt, post_parent, menu_order)
VALUES
('$post_ID', '$post_author', '$now', '$now_gmt', '$content', '$post_title', '$excerpt', '$post_status', '$comment_status', '$ping_status', '$post_password', '$post_name', '$trackback', '$now', '$now_gmt', '$post_parent', '$menu_order')
";
$result = $wpdb->query($postquery);
$post_ID = 'post' == $action ? write_post() : edit_post();
// Redirect.
if (!empty($_POST['mode'])) {
switch($_POST['mode']) {
case 'bookmarklet':
$location = 'bookmarklet.php?a=b';
$location = $_POST['referredby'];
break;
case 'sidebar':
$location = 'sidebar.php?a=b';
break;
default:
$location = 'post.php';
$location = 'post-new.php';
break;
}
} else {
$location = 'post.php?posted=true';
$location = "post-new.php?posted=$post_ID";
}
if ( 'static' == $_POST['post_status'] )
$location = "page-new.php?saved=true";
if ( '' != $_POST['advanced'] || isset($_POST['save']) )
if ( isset($_POST['save']) )
$location = "post.php?action=edit&post=$post_ID";
header("Location: $location"); // Send user on their way while we keep working
// Insert categories
// Check to make sure there is a category, if not just set it to some default
if (!$post_categories) $post_categories[] = get_option('default_category');
foreach ($post_categories as $post_category) {
// Double check it's not there already
$exists = $wpdb->get_row("SELECT * FROM $wpdb->post2cat WHERE post_id = $post_ID AND category_id = $post_category");
if (!$exists) {
$wpdb->query("
INSERT INTO $wpdb->post2cat
(post_id, category_id)
VALUES
($post_ID, $post_category)
");
}
}
add_meta($post_ID);
$wpdb->query("UPDATE $wpdb->posts SET guid = '" . get_permalink($post_ID) . "' WHERE ID = '$post_ID'");
do_action('save_post', $post_ID);
if ('publish' == $post_status) {
do_action('publish_post', $post_ID);
if ($post_pingback)
pingback($content, $post_ID);
do_enclose( $content, $post_ID );
do_trackbacks($post_ID);
}
if ($post_status == 'static') {
generate_page_rewrite_rules();
add_post_meta($post_ID, '_wp_page_template', $_POST['page_template'], true);
}
require_once('admin-header.php');
wp_redirect($location);
exit();
break;
case 'edit':
$title = __('Edit');
$editing = true;
$post_ID = $p = (int) $_GET['post'];
$post = get_post($post_ID);
if ( 'page' == $post->post_type ) {
wp_redirect("page.php?action=edit&post=$post_ID");
exit();
}
if($post->post_status == 'draft') {
wp_enqueue_script('prototype');
wp_enqueue_script('autosave');
}
require_once('admin-header.php');
$post = $post_ID = $p = (int) $_GET['post'];
if ( !user_can_edit_post($user_ID, $post_ID) )
if ( !current_user_can('edit_post', $post_ID) )
die ( __('You are not allowed to edit this post.') );
$postdata = &get_post($post_ID);
$content = $postdata->post_content;
$content = format_to_edit($content);
$content = apply_filters('content_edit_pre', $content);
$excerpt = $postdata->post_excerpt;
$excerpt = format_to_edit($excerpt);
$excerpt = apply_filters('excerpt_edit_pre', $excerpt);
$edited_post_title = format_to_edit($postdata->post_title);
$edited_post_title = apply_filters('title_edit_pre', $edited_post_title);
$post_status = $postdata->post_status;
$comment_status = $postdata->comment_status;
$ping_status = $postdata->ping_status;
$post_password = $postdata->post_password;
$to_ping = $postdata->to_ping;
$pinged = $postdata->pinged;
$post_name = $postdata->post_name;
$post_parent = $postdata->post_parent;
$post_author = $postdata->post_author;
$menu_order = $postdata->menu_order;
if( 'private' == $postdata->post_status && $postdata->post_author != $user_ID )
die ( __('You are not allowed to view other users\' private posts.') );
$post = get_post_to_edit($post_ID);
if ($post_status == 'static') {
$page_template = get_post_meta($post_ID, '_wp_page_template', true);
include('edit-page-form.php');
} else {
include('edit-form-advanced.php');
}
include('edit-form-advanced.php');
$post = &$postdata;
?>
<div id='preview' class='wrap'>
<h2><?php _e('Post Preview (updated when post is saved)'); ?></h2>
<h3 class="storytitle" id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf(__("Permanent Link: %s"), get_the_title()); ?>"><?php the_title(); ?></a></h3>
<div class="meta"><?php _e("Filed under:"); ?> <?php the_category(','); ?> &#8212; <?php the_author() ?> @ <?php the_time() ?></div>
<div class="storycontent">
<?php
$content = apply_filters('the_content', $post->post_content);
echo $content;
?>
</div>
</div>
<?php
break;
case 'editattachment':
$post_id = (int) $_POST['post_ID'];
check_admin_referer('update-attachment_' . $post_id);
// Don't let these be changed
unset($_POST['guid']);
$_POST['post_type'] = 'attachment';
// Update the thumbnail filename
$newmeta = wp_get_attachment_metadata( $post_id, true );
$newmeta['thumb'] = $_POST['thumb'];
wp_update_attachment_metadata( $post_id, $newmeta );
case 'editpost':
// die(var_dump('<pre>', $_POST));
if (!isset($blog_ID)) {
$blog_ID = 1;
}
$post_ID = $_POST['post_ID'];
$post_ID = (int) $_POST['post_ID'];
check_admin_referer('update-post_' . $post_ID);
if (!user_can_edit_post($user_ID, $post_ID, $blog_ID))
die( __('You are not allowed to edit this post.') );
$post_ID = edit_post();
$post_categories = $_POST['post_category'];
if (!$post_categories) $post_categories[] = 1;
$content = apply_filters('content_save_pre', $_POST['content']);
$excerpt = apply_filters('excerpt_save_pre', $_POST['excerpt']);
$post_title = $_POST['post_title'];
$prev_status = $_POST['prev_status'];
$post_status = $_POST['post_status'];
$menu_order = (int) $_POST['menu_order'];
if (! empty($_POST['post_author_override'])) {
$post_author = (int) $_POST['post_author_override'];
} else if (! empty($_POST['post_author'])) {
$post_author = (int) $_POST['post_author'];
} else {
$post_author = (int) $_POST['user_ID'];
}
if ( !user_can_edit_user($user_ID, $post_author) )
die( __('You cannot post as this user.') );
$comment_status = $_POST['comment_status'];
if (empty($comment_status)) $comment_status = 'closed';
//if (!$_POST['comment_status']) $comment_status = get_settings('default_comment_status');
$ping_status = $_POST['ping_status'];
if (empty($ping_status)) $ping_status = 'closed';
//if (!$_POST['ping_status']) $ping_status = get_settings('default_ping_status');
$post_password = $_POST['post_password'];
$post_name = $_POST['post_name'];
$post_parent = 0;
if (isset($_POST['parent_id'])) {
$post_parent = $_POST['parent_id'];
}
$trackback = $_POST['trackback_url'];
// Format trackbacks
$trackback = preg_replace('|\s+|', '\n', $trackback);
if (isset($_POST['publish'])) $post_status = 'publish';
// Double-check
if ( 'publish' == $post_status && (!user_can_create_post($user_ID)) )
$post_status = 'draft';
if ( empty($post_name) ) {
if ( 'draft' != $post_status )
$post_name = sanitize_title($post_title, $post_ID);
} else {
$post_name = sanitize_title($post_name, $post_ID);
}
if ('publish' == $post_status) {
$post_name_check = $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$post_name' AND post_status = 'publish' AND ID != '$post_ID' LIMIT 1");
if ($post_name_check) {
$suffix = 2;
while ($post_name_check) {
$alt_post_name = $post_name . "-$suffix";
$post_name_check = $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$alt_post_name' AND post_status = 'publish' AND ID != '$post_ID' LIMIT 1");
$suffix++;
if ( 'post' == $_POST['originalaction'] ) {
if (!empty($_POST['mode'])) {
switch($_POST['mode']) {
case 'bookmarklet':
$location = $_POST['referredby'];
break;
case 'sidebar':
$location = 'sidebar.php?a=b';
break;
default:
$location = 'post-new.php';
break;
}
$post_name = $alt_post_name;
} else {
$location = "post-new.php?posted=$post_ID";
}
if ( isset($_POST['save']) )
$location = "post.php?action=edit&post=$post_ID";
} else {
$referredby = '';
if ( !empty($_POST['referredby']) )
$referredby = preg_replace('|https?://[^/]+|i', '', $_POST['referredby']);
$referer = preg_replace('|https?://[^/]+|i', '', wp_get_referer());
if ($_POST['save']) {
$location = "post.php?action=edit&post=$post_ID";
} elseif ($_POST['updatemeta']) {
$location = wp_get_referer() . '&message=2#postcustom';
} elseif ($_POST['deletemeta']) {
$location = wp_get_referer() . '&message=3#postcustom';
} elseif (!empty($referredby) && $referredby != $referer) {
$location = $_POST['referredby'];
if ( $_POST['referredby'] == 'redo' )
$location = get_permalink( $post_ID );
} elseif ($action == 'editattachment') {
$location = 'attachments.php';
} else {
$location = 'post-new.php';
}
}
if (user_can_edit_post_date($user_ID, $post_ID) && (!empty($_POST['edit_date']))) {
$aa = $_POST['aa'];
$mm = $_POST['mm'];
$jj = $_POST['jj'];
$hh = $_POST['hh'];
$mn = $_POST['mn'];
$ss = $_POST['ss'];
$jj = ($jj > 31) ? 31 : $jj;
$hh = ($hh > 23) ? $hh - 24 : $hh;
$mn = ($mn > 59) ? $mn - 60 : $mn;
$ss = ($ss > 59) ? $ss - 60 : $ss;
$datemodif = ", post_date = '$aa-$mm-$jj $hh:$mn:$ss'";
$datemodif_gmt = ", post_date_gmt = '".get_gmt_from_date("$aa-$mm-$jj $hh:$mn:$ss")."'";
} else {
$datemodif = '';
$datemodif_gmt = '';
}
$now = current_time('mysql');
$now_gmt = current_time('mysql', 1);
$result = $wpdb->query("
UPDATE $wpdb->posts SET
post_content = '$content',
post_excerpt = '$excerpt',
post_title = '$post_title'"
.$datemodif_gmt
.$datemodif.",
post_status = '$post_status',
comment_status = '$comment_status',
ping_status = '$ping_status',
post_author = '$post_author',
post_password = '$post_password',
post_name = '$post_name',
to_ping = '$trackback',
post_modified = '$now',
post_modified_gmt = '$now_gmt',
menu_order = '$menu_order',
post_parent = '$post_parent'
WHERE ID = $post_ID ");
if ($_POST['save']) {
$location = $_SERVER['HTTP_REFERER'];
} elseif ($_POST['updatemeta']) {
$location = $_SERVER['HTTP_REFERER'] . '&message=2#postcustom';
} elseif ($_POST['deletemeta']) {
$location = $_SERVER['HTTP_REFERER'] . '&message=3#postcustom';
} elseif (isset($_POST['referredby']) && $_POST['referredby'] != $_SERVER['HTTP_REFERER']) {
$location = $_POST['referredby'];
if ( $_POST['referredby'] == 'redo' )
$location = get_permalink( $post_ID );
} else {
$location = 'post.php';
}
header ('Location: ' . $location); // Send user on their way while we keep working
// Meta Stuff
if ($_POST['meta']) :
foreach ($_POST['meta'] as $key => $value) :
update_meta($key, $value['key'], $value['value']);
endforeach;
endif;
if ($_POST['deletemeta']) :
foreach ($_POST['deletemeta'] as $key => $value) :
delete_meta($key);
endforeach;
endif;
add_meta($post_ID);
// Now it's category time!
// First the old categories
$old_categories = $wpdb->get_col("SELECT category_id FROM $wpdb->post2cat WHERE post_id = $post_ID");
// Delete any?
foreach ($old_categories as $old_cat) {
if (!in_array($old_cat, $post_categories)) // If a category was there before but isn't now
$wpdb->query("DELETE FROM $wpdb->post2cat WHERE category_id = $old_cat AND post_id = $post_ID LIMIT 1");
}
// Add any?
foreach ($post_categories as $new_cat) {
if (!in_array($new_cat, $old_categories))
$wpdb->query("INSERT INTO $wpdb->post2cat (post_id, category_id) VALUES ($post_ID, $new_cat)");
}
if ($prev_status != 'publish' && $post_status == 'publish')
do_action('private_to_published', $post_ID);
do_action('edit_post', $post_ID);
if ($post_status == 'publish') {
do_action('publish_post', $post_ID);
do_trackbacks($post_ID);
do_enclose( $content, $post_ID );
if ( get_option('default_pingback_flag') )
pingback($content, $post_ID);
}
if ($post_status == 'static') {
generate_page_rewrite_rules();
if ( ! update_post_meta($post_ID, '_wp_page_template', $_POST['page_template'])) {
add_post_meta($post_ID, '_wp_page_template', $_POST['page_template'], true);
}
}
wp_redirect($location); // Send user on their way while we keep working
exit();
break;
case 'delete':
check_admin_referer();
$post_id = (isset($_GET['post'])) ? intval($_GET['post']) : intval($_POST['post_ID']);
if (!user_can_delete_post($user_ID, $post_id)) {
die( __('You are not allowed to delete this post.') );
check_admin_referer('delete-post_' . $post_id);
$post = & get_post($post_id);
if ( !current_user_can('delete_post', $post_id) )
wp_die( __('You are not allowed to delete this post.') );
if ( $post->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...') );
}
if (! wp_delete_post($post_id))
die( __('Error in deleting...') );
$sendback = $_SERVER['HTTP_REFERER'];
if (strstr($sendback, 'post.php')) $sendback = get_settings('siteurl') .'/wp-admin/post.php';
$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);
header ('Location: ' . $sendback);
generate_page_rewrite_rules();
do_action('delete_post', $post_id);
break;
case 'editcomment':
$title = __('Edit Comment');
$parent_file = 'edit.php';
require_once ('admin-header.php');
get_currentuserinfo();
$comment = $_GET['comment'];
$commentdata = get_commentdata($comment, 1, true) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'javascript:history.go(-1)'));
if (!user_can_edit_post_comments($user_ID, $commentdata['comment_post_ID'])) {
die( __('You are not allowed to edit comments on this post.') );
}
$content = $commentdata['comment_content'];
$content = format_to_edit($content);
$content = apply_filters('comment_edit_pre', $content);
$comment_status = $commentdata['comment_approved'];
include('edit-form-comment.php');
break;
case 'confirmdeletecomment':
require_once('./admin-header.php');
$comment = $_GET['comment'];
$p = (int) $_GET['p'];
$commentdata = get_commentdata($comment, 1, true) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
if (!user_can_delete_post_comments($user_ID, $commentdata['comment_post_ID'])) {
die( __('You are not allowed to delete comments on this post.') );
}
echo "<div class=\"wrap\">\n";
echo "<p>" . __('<strong>Caution:</strong> You are about to delete the following comment:') . "</p>\n";
echo "<table border=\"0\">\n";
echo "<tr><td>" . __('Author:') . "</td><td>" . $commentdata["comment_author"] . "</td></tr>\n";
echo "<tr><td>" . __('E-mail:') . "</td><td>" . $commentdata["comment_author_email"] . "</td></tr>\n";
echo "<tr><td>". __('URL:') . "</td><td>" . $commentdata["comment_author_url"] . "</td></tr>\n";
echo "<tr><td>". __('Comment:') . "</td><td>" . stripslashes($commentdata["comment_content"]) . "</td></tr>\n";
echo "</table>\n";
echo "<p>" . __('Are you sure you want to do that?') . "</p>\n";
echo "<form action='".get_settings('siteurl')."/wp-admin/post.php' method='get'>\n";
echo "<input type=\"hidden\" name=\"action\" value=\"deletecomment\" />\n";
echo "<input type=\"hidden\" name=\"p\" value=\"$p\" />\n";
echo "<input type=\"hidden\" name=\"comment\" value=\"$comment\" />\n";
echo "<input type=\"hidden\" name=\"noredir\" value=\"1\" />\n";
echo "<input type=\"submit\" value=\"" . __('Yes') . "\" />";
echo "&nbsp;&nbsp;";
echo "<input type=\"button\" value=\"" . __('No') . "\" onclick=\"self.location='". get_settings('siteurl') ."/wp-admin/edit.php?p=$p&amp;c=1#comments';\" />\n";
echo "</form>\n";
echo "</div>\n";
break;
case 'deletecomment':
check_admin_referer();
$comment = $_GET['comment'];
$p = $_GET['p'];
if (isset($_GET['noredir'])) {
$noredir = true;
} else {
$noredir = false;
}
$postdata = get_post($p) or die(sprintf(__('Oops, no post with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
$commentdata = get_commentdata($comment, 1, true) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'post.php'));
if (!user_can_delete_post_comments($user_ID, $commentdata['comment_post_ID'])) {
die( __('You are not allowed to edit comments on this post.') );
}
wp_set_comment_status($comment, "delete");
do_action('delete_comment', $comment);
if (($_SERVER['HTTP_REFERER'] != "") && (false == $noredir)) {
header('Location: ' . $_SERVER['HTTP_REFERER']);
} else {
header('Location: '. get_settings('siteurl') .'/wp-admin/edit.php?p='.$p.'&c=1#comments');
}
break;
case 'unapprovecomment':
require_once('./admin-header.php');
check_admin_referer();
$comment = $_GET['comment'];
$p = $_GET['p'];
if (isset($_GET['noredir'])) {
$noredir = true;
} else {
$noredir = false;
}
$commentdata = get_commentdata($comment) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
if (!user_can_edit_post_comments($user_ID, $commentdata['comment_post_ID'])) {
die( __('You are not allowed to edit comments on this post, so you cannot disapprove this comment.') );
}
wp_set_comment_status($comment, "hold");
if (($_SERVER['HTTP_REFERER'] != "") && (false == $noredir)) {
header('Location: ' . $_SERVER['HTTP_REFERER']);
} else {
header('Location: '. get_settings('siteurl') .'/wp-admin/edit.php?p='.$p.'&c=1#comments');
}
break;
case 'mailapprovecomment':
$comment = (int) $_GET['comment'];
$commentdata = get_commentdata($comment, 1, true) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
if (!user_can_edit_post_comments($user_ID, $commentdata['comment_post_ID'])) {
die( __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
}
if ('1' != $commentdata['comment_approved']) {
wp_set_comment_status($comment, 'approve');
if (true == get_option('comments_notify'))
wp_notify_postauthor($comment);
}
header('Location: ' . get_option('siteurl') . '/wp-admin/moderation.php?approved=1');
break;
case 'approvecomment':
$comment = $_GET['comment'];
$p = $_GET['p'];
if (isset($_GET['noredir'])) {
$noredir = true;
} else {
$noredir = false;
}
$commentdata = get_commentdata($comment) or die(sprintf(__('Oops, no comment with this ID. <a href="%s">Go back</a>!'), 'edit.php'));
if (!user_can_edit_post_comments($user_ID, $commentdata['comment_post_ID'])) {
die( __('You are not allowed to edit comments on this post, so you cannot approve this comment.') );
}
wp_set_comment_status($comment, "approve");
if (get_settings("comments_notify") == true) {
wp_notify_postauthor($comment);
}
if (($_SERVER['HTTP_REFERER'] != "") && (false == $noredir)) {
header('Location: ' . $_SERVER['HTTP_REFERER']);
} else {
header('Location: '. get_settings('siteurl') .'/wp-admin/edit.php?p='.$p.'&c=1#comments');
}
break;
case 'editedcomment':
$comment_ID = $_POST['comment_ID'];
$comment_post_ID = $_POST['comment_post_ID'];
$newcomment_author = $_POST['newcomment_author'];
$newcomment_author_email = $_POST['newcomment_author_email'];
$newcomment_author_url = $_POST['newcomment_author_url'];
$comment_status = $_POST['comment_status'];
if (!user_can_edit_post_comments($user_ID, $comment_post_ID)) {
die( __('You are not allowed to edit comments on this post, so you cannot edit this comment.') );
}
if (user_can_edit_post_date($user_ID, $post_ID) && (!empty($_POST['edit_date']))) {
$aa = $_POST['aa'];
$mm = $_POST['mm'];
$jj = $_POST['jj'];
$hh = $_POST['hh'];
$mn = $_POST['mn'];
$ss = $_POST['ss'];
$jj = ($jj > 31) ? 31 : $jj;
$hh = ($hh > 23) ? $hh - 24 : $hh;
$mn = ($mn > 59) ? $mn - 60 : $mn;
$ss = ($ss > 59) ? $ss - 60 : $ss;
$datemodif = ", comment_date = '$aa-$mm-$jj $hh:$mn:$ss'";
} else {
$datemodif = '';
}
$content = apply_filters('comment_save_pre', $_POST['content']);
$result = $wpdb->query("
UPDATE $wpdb->comments SET
comment_content = '$content',
comment_author = '$newcomment_author',
comment_author_email = '$newcomment_author_email',
comment_approved = '$comment_status',
comment_author_url = '$newcomment_author_url'".$datemodif."
WHERE comment_ID = $comment_ID"
);
$referredby = $_POST['referredby'];
if (!empty($referredby)) {
header('Location: ' . $referredby);
} else {
header ("Location: edit.php?p=$comment_post_ID&c=1#comments");
}
do_action('edit_comment', $comment_ID);
wp_redirect($sendback);
exit();
break;
default:
$title = __('Create New Post');
require_once ('./admin-header.php');
?>
<?php if ( isset($_GET['posted']) ) : ?>
<div class="updated"><p><?php printf(__('Post saved. <a href="%s">View site &raquo;</a>'), get_bloginfo('home')); ?></p></div>
<?php endif; ?>
<?php
if (user_can_create_draft($user_ID)) {
$action = 'post';
get_currentuserinfo();
$drafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'draft' AND post_author = $user_ID");
if ($drafts) {
?>
<div class="wrap">
<p><strong><?php _e('Your Drafts:') ?></strong>
<?php
$i = 0;
foreach ($drafts as $draft) {
if (0 != $i)
echo ', ';
$draft->post_title = stripslashes($draft->post_title);
if ($draft->post_title == '')
$draft->post_title = sprintf(__('Post # %s'), $draft->ID);
echo "<a href='post.php?action=edit&amp;post=$draft->ID' title='" . __('Edit this draft') . "'>$draft->post_title</a>";
++$i;
}
?>.</p>
</div>
<?php
}
//set defaults
$post_status = 'draft';
$comment_status = get_settings('default_comment_status');
$ping_status = get_settings('default_ping_status');
$post_pingback = get_settings('default_pingback_flag');
$default_post_cat = get_settings('default_category');
$content = wp_specialchars($content);
$content = apply_filters('default_content', $content);
$edited_post_title = apply_filters('default_title', $edited_post_title);
$excerpt = apply_filters('default_excerpt', $excerpt);
if (get_settings('advanced_edit')) {
include('edit-form-advanced.php');
} else {
include('edit-form.php');
}
?>
<div class="wrap">
<?php _e('<h3>WordPress bookmarklet</h3>
<p>You can drag the following link to your links bar or add it to your bookmarks and when you "Press it" it will open up a popup window with information and a link to the site you&#8217;re currently browsing so you can make a quick post about it. Try it out:</p>') ?>
<p>
<?php
$bookmarklet_height= (get_settings('use_trackback')) ? 480 : 440;
if ($is_NS4 || $is_gecko) {
?>
<a href="javascript:if(navigator.userAgent.indexOf('Safari') >= 0){Q=getSelection();}else{Q=document.selection?document.selection.createRange().text:document.getSelection();}void(window.open('<?php echo get_settings('siteurl') ?>/wp-admin/bookmarklet.php?text='+encodeURIComponent(Q)+'&amp;popupurl='+encodeURIComponent(location.href)+'&amp;popuptitle='+encodeURIComponent(document.title),'<?php _e('WordPress bookmarklet') ?>','scrollbars=yes,width=600,height=460,left=100,top=150,status=yes'));"><?php printf(__('Press It - %s'), wp_specialchars(get_settings('blogname'))); ?></a>
<?php
} else if ($is_winIE) {
?>
<a href="javascript:Q='';if(top.frames.length==0)Q=document.selection.createRange().text;void(btw=window.open('<?php echo get_settings('siteurl') ?>/wp-admin/bookmarklet.php?text='+encodeURIComponent(Q)+'<?php echo $bookmarklet_tbpb ?>&amp;popupurl='+encodeURIComponent(location.href)+'&amp;popuptitle='+encodeURIComponent(document.title),'bookmarklet','scrollbars=yes,width=600,height=<?php echo $bookmarklet_height ?>,left=100,top=150,status=yes'));btw.focus();"><?php printf(__('Press it - %s'), get_settings('blogname')); ?></a>
<script type="text/javascript">
<!--
function oneclickbookmarklet(blah) {
window.open ("profile.php?action=IErightclick", "oneclickbookmarklet", "width=500, height=450, location=0, menubar=0, resizable=0, scrollbars=1, status=1, titlebar=0, toolbar=0, screenX=120, left=120, screenY=120, top=120");
}
// -->
</script>
<br />
<br />
<?php _e('One-click bookmarklet:') ?><br />
<a href="javascript:oneclickbookmarklet(0);"><?php _e('click here') ?></a>
<?php
} else if ($is_opera) {
?>
<a href="javascript:void(window.open('<?php echo get_settings('siteurl'); ?>/wp-admin/bookmarklet.php?popupurl='+escape(location.href)+'&popuptitle='+escape(document.title)+'<?php echo $bookmarklet_tbpb ?>','bookmarklet','scrollbars=yes,width=600,height=<?php echo $bookmarklet_height ?>,left=100,top=150,status=yes'));"><?php printf(__('Press it - %s'), get_settings('blogname')); ?></a>
<?php
} else if ($is_macIE) {
?>
<a href="javascript:Q='';if(top.frames.length==0);void(btw=window.open('<?php echo get_settings('siteurl'); ?>/wp-admin/bookmarklet.php?text='+escape(document.getSelection())+'&popupurl='+escape(location.href)+'&popuptitle='+escape(document.title)+'<?php echo $bookmarklet_tbpb ?>','bookmarklet','scrollbars=yes,width=600,height=<?php echo $bookmarklet_height ?>,left=100,top=150,status=yes'));btw.focus();"><?php printf(__('Press it - %s'), get_settings('blogname')); ?></a>
<?php
}
?>
</p>
</div>
<?php
} else {
?>
<div class="wrap">
<p><?php printf(__('Since you&#8217;re a newcomer, you&#8217;ll have to wait for an admin to raise your level to 1, in order to be authorized to post.<br />
You can also <a href="mailto:%s?subject=Promotion?">e-mail the admin</a> to ask for a promotion.<br />
When you&#8217;re promoted, just reload this page and you&#8217;ll be able to blog. :)'), get_settings('admin_email')); ?>
</p>
</div>
<?php
}
wp_redirect('edit.php');
exit();
break;
} // end switch
/* </Edit> */
include('admin-footer.php');
?>

View File

@@ -0,0 +1,30 @@
<?php
$parent_file = 'profile.php';
$submenu_file = 'profile.php';
require_once('admin.php');
check_admin_referer('update-profile_' . $user_ID);
if ( !$_POST )
wp_die( __('No post?') );
$errors = edit_user($user_ID);
if ( is_wp_error( $errors ) ) {
foreach( $errors->get_error_messages() as $message )
echo "$message<br />";
exit;
}
do_action('personal_options_update');
if ( 'profile' == $_POST['from'] )
$to = 'profile.php?updated=true';
else
$to = 'profile.php?updated=true';
wp_redirect( $to );
exit;
?>

View File

@@ -1,282 +1,150 @@
<?php
<?php
require_once('admin.php');
$title = 'Profile';
$parent_file = 'profile.php';
$title = __('Profile');
$wpvarstoreset = array('action', 'profile', 'user');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
require_once('../wp-config.php');
auth_redirect();
switch($action) {
case 'update':
get_currentuserinfo();
/* checking the nickname has been typed */
if (empty($_POST["newuser_nickname"])) {
die (__("<strong>ERROR</strong>: please enter your nickname (can be the same as your username)"));
return false;
}
/* if the ICQ UIN has been entered, check to see if it has only numbers */
if (!empty($_POST["newuser_icq"])) {
if ((ereg("^[0-9]+$",$_POST["newuser_icq"]))==false) {
die (__("<strong>ERROR</strong>: your ICQ UIN can only be a number, no letters allowed"));
return false;
}
}
/* checking e-mail address */
if (empty($_POST["newuser_email"])) {
die (__("<strong>ERROR</strong>: please type your e-mail address"));
return false;
} else if (!is_email($_POST["newuser_email"])) {
die (__("<strong>ERROR</strong>: the e-mail address isn't correct"));
return false;
}
$pass1 = $_POST["pass1"];
$pass2 = $_POST["pass2"];
do_action('check_passwords', array($user_login, &$pass1, &$pass2));
if ( '' == $pass1 ) {
if ( '' != $pass2 )
die (__("<strong>ERROR</strong>: you typed your new password only once. Go back to type it twice."));
$updatepassword = "";
} else {
if ('' == $pass2)
die (__("<strong>ERROR</strong>: you typed your new password only once. Go back to type it twice."));
if ( $pass1 != $pass2 )
die (__("<strong>ERROR</strong>: you typed two different passwords. Go back to correct that."));
$newuser_pass = $pass1;
$updatepassword = "user_pass=MD5('$newuser_pass'), ";
wp_clearcookie();
wp_setcookie($user_login, $newuser_pass);
}
$newuser_firstname = wp_specialchars($_POST['newuser_firstname']);
$newuser_lastname = wp_specialchars($_POST['newuser_lastname']);
$newuser_nickname = $_POST['newuser_nickname'];
$newuser_nicename = sanitize_title($newuser_nickname);
$newuser_icq = wp_specialchars($_POST['newuser_icq']);
$newuser_aim = wp_specialchars($_POST['newuser_aim']);
$newuser_msn = wp_specialchars($_POST['newuser_msn']);
$newuser_yim = wp_specialchars($_POST['newuser_yim']);
$newuser_email = wp_specialchars($_POST['newuser_email']);
$newuser_url = wp_specialchars($_POST['newuser_url']);
$newuser_url = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $newuser_url) ? $newuser_url : 'http://' . $newuser_url;
$newuser_idmode = wp_specialchars($_POST['newuser_idmode']);
$user_description = $_POST['user_description'];
$result = $wpdb->query("UPDATE $wpdb->users SET user_firstname='$newuser_firstname', $updatepassword user_lastname='$newuser_lastname', user_nickname='$newuser_nickname', user_icq='$newuser_icq', user_email='$newuser_email', user_url='$newuser_url', user_aim='$newuser_aim', user_msn='$newuser_msn', user_yim='$newuser_yim', user_idmode='$newuser_idmode', user_description = '$user_description', user_nicename = '$newuser_nicename' WHERE ID = $user_ID");
wp_redirect('profile.php?updated=true');
break;
case 'IErightclick':
$bookmarklet_height= 550;
?>
<div class="menutop">&nbsp;IE one-click bookmarklet</div>
<table width="100%" cellpadding="20">
<tr><td>
<p>To have a one-click bookmarklet, just copy and paste this<br />into a new text file:</p>
<?php
$regedit = "REGEDIT4\r\n[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Post To &WP : ". get_settings('blogname') ."]\r\n@=\"javascript:doc=external.menuArguments.document;Q=doc.selection.createRange().text;void(btw=window.open('". get_settings('siteurl') ."/wp-admin/bookmarklet.php?text='+escape(Q)+'".$bookmarklet_tbpb."&popupurl='+escape(doc.location.href)+'&popuptitle='+escape(doc.title),'bookmarklet','scrollbars=no,width=480,height=".$bookmarklet_height.",left=100,top=150,status=yes'));btw.focus();\"\r\n\"contexts\"=hex:31\"";
?>
<pre style="margin: 20px; background-color: #cccccc; border: 1px dashed #333333; padding: 5px; font-size: 12px;"><?php echo $regedit; ?></pre>
<p>Save it as wordpress.reg, and double-click on this file in an Explorer<br />
window. Answer Yes to the question, and restart Internet Explorer.<br /><br />
That's it, you can now right-click in an IE window and select <br />
'Post to WP' to make the bookmarklet appear. :)</p>
<p align="center">
<form>
<input class="search" type="button" value="1" name="Close this window" />
</form>
</p>
</td></tr>
</table>
<?php
break;
default:
if ( current_user_can('edit_users') )
$parent_file = 'users.php';
else
$parent_file = 'profile.php';
include_once('admin-header.php');
$profiledata=get_userdata($user_ID);
include_once('admin-header.php');
$profileuser = get_user_to_edit($user_ID);
$bookmarklet_height= 440;
$bookmarklet_height= 440;
?>
if (isset($updated)) { ?>
<div class="updated">
<?php if ( isset($_GET['updated']) ) { ?>
<div id="message" class="updated fade">
<p><strong><?php _e('Profile updated.') ?></strong></p>
</div>
<?php } ?>
<div class="wrap">
<h2><?php _e('Profile'); ?></h2>
<form name="profile" id="profile" action="profile.php" method="post">
<p>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="checkuser_id" value="<?php echo $user_ID ?>" />
</p>
<table width="99%" border="0" cellspacing="2" cellpadding="3" class="editform">
<tr>
<th width="33%" scope="row"><?php _e('Username:') ?></th>
<td width="67%"><?php echo $profiledata->user_login; ?></td>
</tr>
<tr>
<th scope="row"><?php _e('Level:') ?></th>
<td><?php echo $profiledata->user_level; ?></td>
</tr>
<tr>
<th scope="row"><?php _e('Posts:') ?></th>
<td> <?php
$posts = get_usernumposts($user_ID);
echo $posts;
?></td>
</tr>
<tr>
<th scope="row"><?php _e('First name:') ?></th>
<td><input type="text" name="newuser_firstname" id="newuser_firstname" value="<?php echo $profiledata->user_firstname ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Last name:') ?></th>
<td><input type="text" name="newuser_lastname" id="newuser_lastname2" value="<?php echo $profiledata->user_lastname ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Nickname:') ?></th>
<td><input type="text" name="newuser_nickname" id="newuser_nickname2" value="<?php echo $profiledata->user_nickname ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('How to display name:') ?> </th>
<td><select name="newuser_idmode">
<option value="nickname"<?php
if ($profiledata->user_idmode == 'nickname')
echo ' selected="selected"'; ?>><?php echo $profiledata->user_nickname ?></option>
<option value="login"<?php
if ($profiledata->user_idmode=="login")
echo ' selected="selected"'; ?>><?php echo $profiledata->user_login ?></option>
<?php if ( !empty( $profiledata->user_firstname ) ) : ?>
<option value="firstname"<?php
if ($profiledata->user_idmode=="firstname")
echo ' selected="selected"'; ?>><?php echo $profiledata->user_firstname ?></option>
<?php endif; ?>
<?php if ( !empty( $profiledata->user_lastname ) ) : ?>
<option value="lastname"<?php
if ($profiledata->user_idmode=="lastname")
echo ' selected="selected"'; ?>><?php echo $profiledata->user_lastname ?></option>
<?php endif; ?>
<?php if ( !empty( $profiledata->user_firstname ) && !empty( $profiledata->user_lastname ) ) : ?>
<option value="namefl"<?php
if ($profiledata->user_idmode=="namefl")
echo ' selected="selected"'; ?>><?php echo $profiledata->user_firstname." ".$profiledata->user_lastname ?></option>
<?php endif; ?>
<?php if ( !empty( $profiledata->user_firstname ) && !empty( $profiledata->user_lastname ) ) : ?>
<option value="namelf"<?php
if ($profiledata->user_idmode=="namelf")
echo ' selected="selected"'; ?>><?php echo $profiledata->user_lastname." ".$profiledata->user_firstname ?></option>
<?php endif; ?>
</select> </td>
</tr>
<tr>
<th scope="row"><?php _e('E-mail:') ?></th>
<td><input type="text" name="newuser_email" id="newuser_email2" value="<?php echo $profiledata->user_email ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Website:') ?></th>
<td><input type="text" name="newuser_url" id="newuser_url2" value="<?php echo $profiledata->user_url ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('ICQ:') ?></th>
<td><input type="text" name="newuser_icq" id="newuser_icq2" value="<?php if ($profiledata->user_icq > 0) { echo $profiledata->user_icq; } ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('AIM:') ?></th>
<td><input type="text" name="newuser_aim" id="newuser_aim2" value="<?php echo $profiledata->user_aim ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('MSN IM:') ?> </th>
<td><input type="text" name="newuser_msn" id="newuser_msn2" value="<?php echo $profiledata->user_msn ?>" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Yahoo IM:') ?> </th>
<td> <input type="text" name="newuser_yim" id="newuser_yim2" value="<?php echo $profiledata->user_yim ?>" /> </td>
</tr>
<tr>
<th scope="row"><?php _e('Profile:') ?></th>
<td><textarea name="user_description" rows="5" id="textarea2" style="width: 99%; "><?php echo $profiledata->user_description ?></textarea></td>
</tr>
<div class="wrap">
<h2><?php _e('Your Profile and Personal Options'); ?></h2>
<form name="profile" id="your-profile" action="profile-update.php" method="post">
<?php wp_nonce_field('update-profile_' . $user_ID) ?>
<p>
<input type="hidden" name="from" value="profile" />
<input type="hidden" name="checkuser_id" value="<?php echo $user_ID ?>" />
</p>
<h3><?php _e('Personal Options'); ?></h3>
<?php if ( rich_edit_exists() ) : // don't bother showing the option if the editor has been removed ?>
<p><label for="rich_editing"><input name="rich_editing" type="checkbox" id="rich_editing" value="true" <?php checked('true', get_user_option('rich_editing')); ?> />
<?php _e('Use the visual editor when writing') ?></label></p>
<?php endif; ?>
<?php do_action('profile_personal_options'); ?>
<p class="submit"><input type="submit" value="<?php _e('Update Profile &raquo;') ?>" name="submit" /></p>
<fieldset>
<legend><?php _e('Name'); ?></legend>
<p><label><?php _e('Username: (no editing)'); ?><br />
<input type="text" name="user_login" value="<?php echo $profileuser->user_login; ?>" disabled="disabled" />
</label></p>
<p><label><?php _e('First name:') ?><br />
<input type="text" name="first_name" value="<?php echo $profileuser->first_name ?>" /></label></p>
<p><label><?php _e('Last name:') ?><br />
<input type="text" name="last_name" value="<?php echo $profileuser->last_name ?>" /></label></p>
<p><label><?php _e('Nickname:') ?><br />
<input type="text" name="nickname" value="<?php echo $profileuser->nickname ?>" /></label></p>
<p><label><?php _e('Display name publicly as:') ?> <br />
<select name="display_name">
<option value="<?php echo $profileuser->display_name; ?>"><?php echo $profileuser->display_name; ?></option>
<option value="<?php echo $profileuser->nickname ?>"><?php echo $profileuser->nickname ?></option>
<option value="<?php echo $profileuser->user_login ?>"><?php echo $profileuser->user_login ?></option>
<?php if ( !empty( $profileuser->first_name ) ) : ?>
<option value="<?php echo $profileuser->first_name ?>"><?php echo $profileuser->first_name ?></option>
<?php endif; ?>
<?php if ( !empty( $profileuser->last_name ) ) : ?>
<option value="<?php echo $profileuser->last_name ?>"><?php echo $profileuser->last_name ?></option>
<?php endif; ?>
<?php if ( !empty( $profileuser->first_name ) && !empty( $profileuser->last_name ) ) : ?>
<option value="<?php echo $profileuser->first_name." ".$profileuser->last_name ?>"><?php echo $profileuser->first_name." ".$profileuser->last_name ?></option>
<option value="<?php echo $profileuser->last_name." ".$profileuser->first_name ?>"><?php echo $profileuser->last_name." ".$profileuser->first_name ?></option>
<?php endif; ?>
</select></label></p>
</fieldset>
<fieldset>
<legend><?php _e('Contact Info'); ?></legend>
<p><label><?php _e('E-mail: (required)') ?><br />
<input type="text" name="email" value="<?php echo $profileuser->user_email ?>" /></label></p>
<p><label><?php _e('Website:') ?><br />
<input type="text" name="url" value="<?php echo $profileuser->user_url ?>" />
</label></p>
<p><label><?php _e('AIM:') ?><br />
<input type="text" name="aim" value="<?php echo $profileuser->aim ?>" />
</label></p>
<p><label><?php _e('Yahoo IM:') ?><br />
<input type="text" name="yim" value="<?php echo $profileuser->yim ?>" />
</label></p>
<p><label><?php _e('Jabber / Google Talk:') ?><br />
<input type="text" name="jabber" value="<?php echo $profileuser->jabber ?>" /></label>
</p>
</fieldset>
<br clear="all" />
<fieldset>
<legend><?php _e('About Yourself'); ?></legend>
<p class="desc"><?php _e('Share a little biographical information. '); ?></p>
<p><textarea name="description" rows="5" cols="30"><?php echo $profileuser->description ?></textarea></p>
</fieldset>
<?php
$show_password_fields = apply_filters('show_password_fields', true);
if ( $show_password_fields ) :
?>
<tr>
<th scope="row"><?php _e('New <strong>Password</strong> (Leave blank to stay the same.)') ?></th>
<td><input type="password" name="pass1" size="16" value="" />
<br />
<input type="password" name="pass2" size="16" value="" /></td>
</tr>
<fieldset>
<legend><?php _e('Update Your Password'); ?></legend>
<p class="desc"><?php _e('If you would like to change your password type a new one twice below. Otherwise leave this blank.'); ?></p>
<p><label><?php _e('New Password:'); ?><br />
<input type="password" name="pass1" size="16" value="" />
</label></p>
<p><label><?php _e('Type it one more time:'); ?><br />
<input type="password" name="pass2" size="16" value="" />
</label></p>
</fieldset>
<?php endif; ?>
<?php do_action('show_user_profile'); ?>
<br clear="all" />
<table width="99%" border="0" cellspacing="2" cellpadding="3" class="editform">
<?php
if(count($profileuser->caps) > count($profileuser->roles)):
?>
<tr>
<th scope="row"><?php _e('Additional Capabilities:') ?></th>
<td><?php
$output = '';
foreach($profileuser->caps as $cap => $value) {
if(!$wp_roles->is_role($cap)) {
if($output != '') $output .= ', ';
$output .= $value ? $cap : "Denied: {$cap}";
}
}
echo $output;
?></td>
</tr>
<?php
endif;
?>
</table>
<p class="submit">
<input type="submit" value="<?php _e('Update Profile &raquo;') ?>" name="submit" />
</p>
<p class="submit"><input type="submit" value="<?php _e('Update Profile &raquo;') ?>" name="submit" /></p>
</form>
</div>
<?php if ($is_gecko && $profiledata->user_level != 0) { ?>
<div class="wrap">
<script type="text/javascript">
//<![CDATA[
function addPanel()
{
if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function"))
window.sidebar.addPanel("WordPress Post: <?php echo get_settings('blogname'); ?>","<?php echo get_settings('siteurl'); ?>/wp-admin/sidebar.php","");
else
alert(<?php __("'No Sidebar found! You must use Mozilla 0.9.4 or later!'") ?>);
}
//]]>
</script>
<strong><?php _e('SideBar') ?></strong><br />
<?php _e('Add the <a href="#" onclick="addPanel()">WordPress Sidebar</a>!') ?>
<?php } elseif (($is_winIE) || ($is_macIE)) { ?>
<strong><?php _e('SideBar') ?></strong><br />
<?php __('Add this link to your favorites:') ?><br />
<a href="javascript:Q='';if(top.frames.length==0)Q=document.selection.createRange().text;void(_search=open('<?php echo get_settings('siteurl');
?>/wp-admin/sidebar.php?text='+escape(Q)+'&popupurl='+escape(location.href)+'&popuptitle='+escape(document.title),'_search'))"><?php _e('WordPress Sidebar') ?></a>.
</div>
<?php } ?>
</div>
<?php
break;
}
/* </Profile | My Profile> */
include('admin-footer.php');
?>
<?php include('admin-footer.php'); ?>

247
wp-admin/rtl.css Normal file
View File

@@ -0,0 +1,247 @@
#viewarc, #viewcat, #namediv, #emaildiv, #uridiv, #planetnews li, #login ul li, #your-profile fieldset, #footer .logo, .alignleft .available-theme {
float: right;
}
#templateside, .alignright {
float: left;
}
#login #send, .readmore, .widefat th {
text-align: right;
}
#postcustomsubmit, form#upload th, .submit, .editform th {
text-align: left;
}
#devnews h4, #wphead h1, #your-profile legend, fieldset.options legend, #planetnews li .post {
font-family: Tahoma, Georgia, "Times New Roman", Times, serif;
}
#wphead {
padding: .8em 2em .8em 19em;
}
#wphead h1 {
font-size: 2.4em;
}
#postdiv, #titlediv, #guiddiv, #tagdiv {
margin: 0 0 0 8px;
}
#ed_toolbar input {
margin: 3px 0 2px 2px;
}
#edButtons input, #edButtons input:active {
margin: 0px 0 -1px 2px;
}
body, td {
font: 13px Tahoma, "Lucida Grande", "Lucida Sans Unicode", Verdana;
}
h1, h2, h3, h4, h5 {
font-family: "Times New Roman", Times, serif;
}
h3.dbx-handle {
font-family: tahoma, Verdana, Arial, Helvetica, sans-serif;
}
textarea, input, select {
font: 13px Tahoma, Verdana, Arial, Helvetica, sans-serif;
}
.quicktags, .search {
font: 12px Tahoma, Georgia, "Times New Roman", Times, serif;
}
.updated, .confirm {
padding: 0 3em 0 1em;
}
.submit input, .submit input:focus, .button, .button:focus {
border-left-color: #999;
border-right-color: #ccc;
}
.submit input:active, .button:active {
border-left-color: #ccc;
border-right-color: #999;
}
#adminmenu {
padding: .2em 2em .3em .2em;
height: 28px;
}
#adminmenu a {
margin: 0 0 0 10px;
display: block;
float: right;
font: 700 16px/130% "Times New Roman", Times, serif;
}
#adminmenu a.current {
border-right: 0;
border-left: 2px solid #4f96c8;
}
#submenu, #minisub {
padding: 1px 3em 0 2em;
}
#submenu {
height: 28px;
}
#submenu a {
margin: 0 0 0 10px;
display: block;
float: right;
line-height: 155%;
}
#submenu .current {
border-right: 0;
border-left: 2px solid #045290;
}
#currenttheme img {
float: right;
margin-right: auto;
margin-left: 1em;
}
#postdiv #quicktags {
padding-right: 0;
padding-left: 6px;
}
.readmore {
margin-right: auto;
margin-left: 5em;
}
#postexcerpt div, #attachmentlinks div {
margin-right: auto;
margin-left: 8px;
}
* html #postexcerpt .dbx-toggle-open {
padding-right: 0;
padding-left: 8px;
}
#searchform {
float: right;
margin-right: auto;
margin-left: 1em;
}
#poststuff {
margin-right: auto;
margin-left: 16em;
}
#template div {
margin-right: auto;
margin-left: 190px;
}
* html #template div {
margin-right: auto;
margin-left: 0px;
}
#user_info {
right: auto;
left: 1em;
}
#zeitgeist {
float: left;
margin-left: auto;
margin-right: 1em;
}
#zeitgeist ul {
margin: 0 .6em .3em 0;
padding: 0 .6em 0 0;
}
.wrap ul {
margin-left: 500px;
}
#categorydiv ul {
margin-left: auto;
margin-right: 10px;
}
#moremeta {
margin-right: 0;
margin-left: 15px;
right: auto;
left: 6%;
}
#moremeta .dbx-content {
background: url(images/box-butt.gif) no-repeat bottom left;
padding-right: 10px;
padding-left: 0;
text-align: right;
}
#moremeta .dbx-handle {
background: #2685af url(images/box-head.gif) no-repeat left;
margin-top: -2px;
}
#moremeta .dbx-box {
background: url(images/box-bg.gif) repeat-y left;
padding-bottom: 0;
}
a.dbx-toggle, a.dbx-toggle:visited {
right: auto;
left: 2px;
}
#categorychecklist {
margin-right: auto;
margin-left: 6px;
}
#ajax-response.alignleft {
margin-left: auto;
margin-right: 2em;
}
#postdivrich #edButtons {
padding-left: 0;
padding-right: 3px;
}
.page-numbers {
margin-right: auto;
margin-left: 3px;
}
a.view-link {
right:auto;
left:5%;
margin-right:0;
margin-left:220px;
}
#advancedstuff {
direction: ltr;
}
#advancedstuff .dbx-handle {
text-align: right;
}
#advancedstuff .dbx-content * {
direction: rtl;
}

View File

@@ -1,17 +1,18 @@
<?php
define('WP_INSTALLING', true);
if (file_exists('../wp-config.php'))
die("The file 'wp-config.php' already exists. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='install.php'>installing now</a>.");
if (!file_exists('../wp-config-sample.php'))
die('Sorry, I need a wp-config-sample.php file to work from. Please re-upload this file from your WordPress installation.');
die('Sorry, I need a wp-config-sample.php file to work from. Please re-upload this file from your WordPress installation.');
$configFile = file('../wp-config-sample.php');
if (!is_writable('../')) die("Sorry, I can't write to the directory. You'll have to either change the permissions on your WordPress directory or create your wp-config.php manually.");
$step = 0;
if(isset($_GET['step'])) $step = $_GET['step'];
if (isset($_GET['step']))
$step = $_GET['step'];
else
$step = 0;
header( 'Content-Type: text/html; charset=utf-8' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -20,137 +21,168 @@ header( 'Content-Type: text/html; charset=utf-8' );
<title>WordPress &rsaquo; Setup Configuration File</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style media="screen" type="text/css">
<!--
<!--
html {
background: #eee;
}
body {
background: #fff;
color: #000;
font-family: Georgia, "Times New Roman", Times, serif;
margin-left: 15%;
margin-right: 15%;
margin-left: 20%;
margin-right: 20%;
padding: .2em 2em;
}
h1 {
color: #006;
font-size: 18px;
font-weight: lighter;
}
h2 {
font-size: 16px;
}
p, li, dt {
line-height: 140%;
padding-bottom: 2px;
}
ul, ol {
padding: 5px 5px 5px 20px;
}
#logo {
margin: 0;
padding: 0;
background-image: url(http://wordpress.org/images/logo.png);
background-repeat: no-repeat;
height: 60px;
border-bottom: 4px solid #333;
margin-bottom: 2em;
}
#logo a {
display: block;
height: 60px;
.step a, .step input {
font-size: 2em;
}
#logo a span {
display: none;
td input {
font-size: 1.5em;
}
p, li {
line-height: 140%;
.step, th {
text-align: right;
}
-->
#footer {
text-align: center;
border-top: 1px solid #ccc;
padding-top: 1em;
font-style: italic;
}
-->
</style>
</head>
<body>
<h1 id="logo"><a href="http://wordpress.org"><span>WordPress</span></a></h1>
<body>
<h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png" /></h1>
<?php
// Check if wp-config.php has been created
if (file_exists('../wp-config.php'))
die("<p>The file 'wp-config.php' already exists. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='install.php'>installing now</a>.</p></body></html>");
switch($step) {
case 0:
?>
<p>Welcome to WordPress. Before getting started, we need some information on the database. You will need to know the following items before proceeding.</p>
<ol>
<li>Database name</li>
<li>Database username</li>
<li>Database password</li>
<li>Database host</li>
<li>Table prefix (if you want to run more than one WordPress in a single database) </li>
</ol>
?>
<p>Welcome to WordPress. Before getting started, we need some information on the database. You will need to know the following items before proceeding.</p>
<ol>
<li>Database name</li>
<li>Database username</li>
<li>Database password</li>
<li>Database host</li>
<li>Table prefix (if you want to run more than one WordPress in a single database) </li>
</ol>
<p><strong>If for any reason this automatic file creation doesn't work, don't worry. All this does is fill in the database information to a configuration file. You may also simply open <code>wp-config-sample.php</code> in a text editor, fill in your information, and save it as <code>wp-config.php</code>. </strong></p>
<p>In all likelihood, these items were supplied to you by your ISP. If you do not have this information, then you will need to contact them before you can continue. If you&#8217;re all ready, <a href="setup-config.php?step=1">let&#8217;s go</a>! </p>
<?php
break;
case 1:
?>
</p>
<form method="post" action="setup-config.php?step=2">
<p>Below you should enter your database connection details. If you're not sure about these, contact your host. </p>
<table>
<tr>
<th scope="row">Database Name</th>
<td><input name="dbname" type="text" size="45" value="wordpress" /></td>
<td>The name of the database you want to run WP in. </td>
</tr>
<tr>
<th scope="row">User Name</th>
<td><input name="uname" type="text" size="45" value="username" /></td>
<td>Your MySQL username</td>
</tr>
<tr>
<th scope="row">Password</th>
<td><input name="pwd" type="text" size="45" value="password" /></td>
<td>...and MySQL password.</td>
</tr>
<tr>
<th scope="row">Database Host</th>
<td><input name="dbhost" type="text" size="45" value="localhost" /></td>
<td>99% chance you won't need to change this value.</td>
</tr>
<tr>
<th scope="row">Table Prefix</th>
<td><input name="prefix" type="text" id="prefix" value="wp_" size="45" /></td>
<td>If you want to run multiple WordPress installations in a single database, change this.</td>
</tr>
</table>
<input name="submit" type="submit" value="Submit" />
</form>
?>
</p>
<form method="post" action="setup-config.php?step=2">
<p>Below you should enter your database connection details. If you're not sure about these, contact your host. </p>
<table>
<tr>
<th scope="row">Database Name</th>
<td><input name="dbname" type="text" size="25" value="wordpress" /></td>
<td>The name of the database you want to run WP in. </td>
</tr>
<tr>
<th scope="row">User Name</th>
<td><input name="uname" type="text" size="25" value="username" /></td>
<td>Your MySQL username</td>
</tr>
<tr>
<th scope="row">Password</th>
<td><input name="pwd" type="text" size="25" value="password" /></td>
<td>...and MySQL password.</td>
</tr>
<tr>
<th scope="row">Database Host</th>
<td><input name="dbhost" type="text" size="25" value="localhost" /></td>
<td>99% chance you won't need to change this value.</td>
</tr>
<tr>
<th scope="row">Table Prefix</th>
<td><input name="prefix" type="text" id="prefix" value="wp_" size="25" /></td>
<td>If you want to run multiple WordPress installations in a single database, change this.</td>
</tr>
</table>
<h2 class="step">
<input name="submit" type="submit" value="Submit" />
</h2>
</form>
<?php
break;
case 2:
$dbname = $_POST['dbname'];
$uname = $_POST['uname'];
$passwrd = $_POST['pwd'];
$dbhost = $_POST['dbhost'];
$prefix = $_POST['prefix'];
$dbname = trim($_POST['dbname']);
$uname = trim($_POST['uname']);
$passwrd = trim($_POST['pwd']);
$dbhost = trim($_POST['dbhost']);
$prefix = trim($_POST['prefix']);
if (empty($prefix)) $prefix = 'wp_';
// Test the db connection.
define('DB_NAME', $dbname);
define('DB_USER', $uname);
define('DB_PASSWORD', $passwrd);
define('DB_HOST', $dbhost);
// Test the db connection.
define('DB_NAME', $dbname);
define('DB_USER', $uname);
define('DB_PASSWORD', $passwrd);
define('DB_HOST', $dbhost);
// We'll fail here if the values are no good.
require_once('../wp-includes/wp-db.php');
// We'll fail here if the values are no good.
require_once('../wp-includes/wp-db.php');
$handle = fopen('../wp-config.php', 'w');
foreach ($configFile as $line_num => $line) {
switch (substr($line,0,16)) {
case "define('DB_NAME'":
fwrite($handle, str_replace("wordpress", $dbname, $line));
break;
case "define('DB_USER'":
fwrite($handle, str_replace("'username'", "'$uname'", $line));
break;
case "define('DB_PASSW":
fwrite($handle, str_replace("'password'", "'$passwrd'", $line));
break;
case "define('DB_HOST'":
fwrite($handle, str_replace("localhost", $dbhost, $line));
break;
foreach ($configFile as $line_num => $line) {
switch (substr($line,0,16)) {
case "define('DB_NAME'":
fwrite($handle, str_replace("putyourdbnamehere", $dbname, $line));
break;
case "define('DB_USER'":
fwrite($handle, str_replace("'usernamehere'", "'$uname'", $line));
break;
case "define('DB_PASSW":
fwrite($handle, str_replace("'yourpasswordhere'", "'$passwrd'", $line));
break;
case "define('DB_HOST'":
fwrite($handle, str_replace("localhost", $dbhost, $line));
break;
case '$table_prefix =':
fwrite($handle, str_replace('wp_', $prefix, $line));
break;
default:
fwrite($handle, $line);
}
}
fclose($handle);
default:
fwrite($handle, $line);
}
}
fclose($handle);
chmod('../wp-config.php', 0666);
?>
<p>All right sparky! You've made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to <a href="install.php">run the install!</a></p>
?>
<p>All right sparky! You've made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to <a href="install.php">run the install!</a></p>
<?php
break;
}
?>
?>
<p id="footer"><a href="http://wordpress.org/">WordPress</a>, personal publishing platform.</p>
</body>
</html>

View File

@@ -3,10 +3,8 @@ $mode = 'sidebar';
require_once('admin.php');
get_currentuserinfo();
if ($user_level == 0)
die ("Cheatin' uh ?");
if ( ! current_user_can('edit_posts') )
wp_die(__('Cheatin&#8217; uh?'));
if ('b' == $_GET['a']) {
@@ -36,21 +34,21 @@ form {
padding: 3px;
}
.sidebar-categories {
display: block;
height: 6.6em;
overflow: auto;
background-color: #f4f4f4;
display: block;
height: 6.6em;
overflow: auto;
background-color: #f4f4f4;
}
.sidebar-categories label {
font-size: 10px;
display: block;
width: 90%;
display: block;
width: 90%;
}
</style>
</head>
<body id="sidebar">
<h1 id="wphead"><a href="http://wordpress.org" rel="external">WordPress</a></h1>
<form name="post" action="post.php" method="POST">
<h1 id="wphead"><a href="http://wordpress.org/" rel="external">WordPress</a></h1>
<form name="post" action="post.php" method="post">
<div><input type="hidden" name="action" value="post" />
<input type="hidden" name="user_ID" value="<?php echo $user_ID ?>" />
<input type="hidden" name="mode" value="sidebar" />
@@ -67,9 +65,10 @@ Post:
<textarea rows="8" cols="12" style="width: 100%" name="content" tabindex="2"></textarea>
</p>
<p>
<input name="saveasdraft" type="submit" id="saveasdraft" tabindex="9" value="Save as Draft" />
<input name="publish" type="submit" id="publish" tabindex="6" style="font-weight: bold;" value="Publish" />
<input name="saveasdraft" type="submit" id="saveasdraft" tabindex="9" value="Save as Draft" />
<?php if ( current_user_can('publish_posts') ) : ?>
<input name="publish" type="submit" id="publish" tabindex="6" style="font-weight: bold;" value="Publish" />
<?php endif; ?>
</p>
</div>
</form>

View File

@@ -3,21 +3,7 @@ require_once('admin.php');
$title = __('Template &amp; File Editing');
$parent_file = 'edit.php';
$wpvarstoreset = array('action','redirect','profile','error','warning','a','file');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
wp_reset_vars(array('action', 'redirect', 'profile', 'error', 'warning', 'a', 'file'));
$recents = get_option('recently_edited');
@@ -36,18 +22,23 @@ switch($action) {
case 'update':
if ($user_level < 5) {
die(__('<p>You have do not have sufficient permissions to edit templates for this blog.</p>'));
}
check_admin_referer('edit-file_' . $file);
if ( ! current_user_can('edit_files') )
wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this blog.').'</p>');
$newcontent = stripslashes($_POST['newcontent']);
if (is_writeable($real_file)) {
$f = fopen($real_file, 'w+');
fwrite($f, $newcontent);
fclose($f);
header("Location: templates.php?file=$file&a=te");
$f = @ fopen($real_file, 'w+');
if ( $f ) {
fwrite($f, $newcontent);
fclose($f);
wp_redirect("templates.php?file=$file&a=te");
} else {
wp_redirect("templates.php?file=$file&a=err");
}
} else {
header("Location: templates.php?file=$file");
wp_redirect("templates.php?file=$file&a=err");
}
exit();
@@ -57,28 +48,41 @@ break;
default:
require_once('./admin-header.php');
if ( $user_level <= 5 )
die(__('<p>You have do not have sufficient permissions to edit templates for this blog.</p>'));
if ( strstr( $file, 'wp-config.php' ) )
die( __('<p>The config file cannot be edited or viewed through the web interface. Sorry!</p>') );
if ( ! current_user_can('edit_files') )
wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this blog.').'</p>');
if (strpos($file, 'wp-config.php') !== false)
wp_die('<p>'.__('The config file cannot be edited or viewed through the web interface. Sorry!').'</p>');
update_recently_edited($file);
if (!is_file($real_file))
$error = 1;
$error = true;
if (!$error) {
$f = fopen($real_file, 'r');
$content = fread($f, filesize($real_file));
$content = htmlspecialchars($content);
$f = @ fopen($real_file, 'r');
if ( $f ) {
if ( filesize($real_file ) > 0 ) {
$content = fread($f, filesize($real_file));
$content = htmlspecialchars($content);
} else {
$content = '';
}
} else {
$error = true;
}
}
?>
<?php if (isset($_GET['a'])) : ?>
<div class="updated"><p><?php _e('File edited successfully.') ?></p></div>
<?php if ( 'err' == $_GET['a'] ) : ?>
<div id="message" class="error"><p><?php _e('Could not save file.') ?></p></div>
<?php else: ?>
<div id="message" class="updated fade"><p><?php _e('File edited successfully.') ?></p></div>
<?php endif; ?>
<?php endif; ?>
<div class="wrap">
<div class="wrap">
<?php
if (is_writeable($real_file)) {
echo '<h2>' . sprintf(__('Editing <strong>%s</strong>'), wp_specialchars($file) ) . '</h2>';
@@ -87,14 +91,14 @@ if (is_writeable($real_file)) {
}
?>
<div id="templateside">
<?php
if ( $recents ) :
<?php
if ( $recents ) :
?>
<h3><?php _e('Recent'); ?></h3>
<?php
echo '<ol>';
foreach ($recents as $recent) :
echo "<li><a href='templates.php?file=$recent'>" . get_file_description(basename($recent)) . "</a></li>";
echo "<li><a href='templates.php?file=" . attribute_escape($recent) . "'>" . wp_specialchars(get_file_description(basename($recent))) . "</a></li>";
endforeach;
echo '</ol>';
endif;
@@ -106,49 +110,51 @@ endif;
if (file_exists(ABSPATH . $old_file))
$common_files[] = $old_file;
} ?>
<ul>
<?php foreach ($common_files as $common_file) : ?>
<li><a href="templates.php?file=<?php echo $common_file?>"><?php echo get_file_description($common_file); ?></a></li>
<?php endforeach; ?>
</ul>
<ul>
<?php foreach ($common_files as $common_file) : ?>
<li><a href="templates.php?file=<?php echo $common_file?>"><?php echo get_file_description($common_file); ?></a></li>
<?php endforeach; ?>
</ul>
</div>
<?php if (!$error) { ?>
<form name="template" id="template" action="templates.php" method="post">
<div><textarea cols="70" rows="25" name="newcontent" id='newcontent' tabindex="1"><?php echo $content ?></textarea>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="file" value="<?php echo $file ?>" />
</div>
<form name="template" id="template" action="templates.php" method="post">
<?php wp_nonce_field('edit-file_' . $file) ?>
<div><textarea cols="70" rows="25" name="newcontent" id='newcontent' tabindex="1"><?php echo $content ?></textarea>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="file" value="<?php echo $file ?>" />
</div>
<?php if ( is_writeable($real_file) ) : ?>
<p class="submit">
<p class="submit">
<?php
echo "<input type='submit' name='submit' value=' " . __('Update File') . " &raquo;' tabindex='2' />";
echo "<input type='submit' name='submit' value=' " . __('Update File &raquo;') . "' tabindex='2' />";
?>
</p>
<?php else : ?>
<p><em><?php _e('If this file was writable you could edit it.'); ?></em></p>
<p><em><?php _e('If this file were writable you could edit it.'); ?></em></p>
<?php endif; ?>
</form>
<?php
</form>
<?php
} else {
echo '<div class="error"><p>' . __('Oops, no such file exists! Double check the name and try again, merci.') . '</p></div>';
}
?>
<div class="clear"> &nbsp; </div>
</div>
<div class="wrap">
<h2><?php _e('Other Files') ?></h2>
<p><?php _e('To edit a file, type its name here. You can edit any file <a href="http://codex.wordpress.org/Changing_File_Permissions" title="Read more about making files writable">writable by the server</a>, e.g. CHMOD 666.') ?></p>
<form name="file" action="templates.php" method="get">
<input type="text" name="file" />
<input type="submit" name="submit" value="<?php _e('Edit file &raquo;') ?>" />
</form>
<p><?php _e('To edit a file, type its name here. You can edit any file <a href="http://codex.wordpress.org/Changing_File_Permissions" title="Read more about making files writable">writable by the server</a>, e.g. CHMOD 666.') ?></p>
<form name="file" action="templates.php" method="get">
<input type="text" name="file" />
<input type="submit" name="submit" value="<?php _e('Edit file &raquo;') ?>" />
</form>
<p><?php _e('Note: of course, you can also edit the files/templates in your text editor of choice and upload them. This online editor is only meant to be used when you don&#8217;t have access to a text editor or FTP client.') ?></p>
</div>
<p><?php _e('Note: of course, you can also edit the files/templates in your text editor of choice and upload them. This online editor is only meant to be used when you don&#8217;t have access to a text editor or FTP client.') ?></p>
</div>
<?php
break;
}
include("admin-footer.php");
?>
?>

View File

@@ -4,21 +4,7 @@ require_once('admin.php');
$title = __("Edit Themes");
$parent_file = 'themes.php';
$wpvarstoreset = array('action','redirect','profile','error','warning','a','file', 'theme');
for ($i=0; $i<count($wpvarstoreset); $i += 1) {
$wpvar = $wpvarstoreset[$i];
if (!isset($$wpvar)) {
if (empty($_POST["$wpvar"])) {
if (empty($_GET["$wpvar"])) {
$$wpvar = '';
} else {
$$wpvar = $_GET["$wpvar"];
}
} else {
$$wpvar = $_POST["$wpvar"];
}
}
}
wp_reset_vars(array('action', 'redirect', 'profile', 'error', 'warning', 'a', 'file', 'theme'));
$themes = get_themes();
@@ -30,7 +16,7 @@ if (empty($theme)) {
if ( ! isset($themes[$theme]) )
die(__('The requested theme does not exist.'));
wp_die(__('The requested theme does not exist.'));
$allowed_files = array_merge($themes[$theme]['Stylesheet Files'], $themes[$theme]['Template Files']);
@@ -41,13 +27,16 @@ if (empty($file)) {
$file = validate_file_to_edit($file, $allowed_files);
$real_file = get_real_file_to_edit($file);
$file_show = basename( $file );
switch($action) {
case 'update':
if ($user_level < 5) {
die(__('<p>You have do not have sufficient permissions to edit templates for this blog.</p>'));
}
check_admin_referer('edit-theme_' . $file . $theme);
if ( !current_user_can('edit_themes') )
wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this blog.').'</p>');
$newcontent = stripslashes($_POST['newcontent']);
$theme = urlencode($theme);
@@ -55,27 +44,31 @@ case 'update':
$f = fopen($real_file, 'w+');
fwrite($f, $newcontent);
fclose($f);
header("Location: theme-editor.php?file=$file&theme=$theme&a=te");
$location = "theme-editor.php?file=$file&theme=$theme&a=te";
} else {
header("Location: theme-editor.php?file=$file&theme=$theme");
$location = "theme-editor.php?file=$file&theme=$theme";
}
$location = wp_kses_no_null($location);
$strip = array('%0d', '%0a');
$location = str_replace($strip, '', $location);
header("Location: $location");
exit();
break;
default:
if ( !current_user_can('edit_themes') )
wp_die('<p>'.__('You do not have sufficient permissions to edit themes for this blog.').'</p>');
require_once('admin-header.php');
if ($user_level <= 5) {
die(__('<p>You have do not have sufficient permissions to edit themes for this blog.</p>'));
}
update_recently_edited($file);
if (!is_file($real_file))
$error = 1;
if (!$error && filesize($real_file) > 0) {
$f = fopen($real_file, 'r');
$content = fread($f, filesize($real_file));
@@ -84,10 +77,10 @@ default:
?>
<?php if (isset($_GET['a'])) : ?>
<div class="updated"><p><?php _e('File edited successfully.') ?></p></div>
<div id="message" class="updated fade"><p><?php _e('File edited successfully.') ?></p></div>
<?php endif; ?>
<div class="wrap">
<form name="theme" action="theme-editor.php" method="post">
<form name="theme" action="theme-editor.php" method="post">
<?php _e('Select theme to edit:') ?>
<select name="theme" id="theme">
<?php
@@ -95,63 +88,65 @@ default:
$theme_name = $a_theme['Name'];
if ($theme_name == $theme) $selected = " selected='selected'";
else $selected = '';
$theme_name = wp_specialchars($theme_name, true);
$theme_name = attribute_escape($theme_name);
echo "\n\t<option value=\"$theme_name\" $selected>$theme_name</option>";
}
?>
</select>
<input type="submit" name="Submit" value="<?php _e('Select') ?> &raquo;" />
<input type="submit" name="Submit" value="<?php _e('Select &raquo;') ?>" class="button" />
</form>
</div>
<div class="wrap">
<?php
if (is_writeable($real_file)) {
echo '<h2>' . sprintf(__('Editing <code>%s</code>'), $file) . '</h2>';
if ( is_writeable($real_file) ) {
echo '<h2>' . sprintf(__('Editing <code>%s</code>'), $file_show) . '</h2>';
} else {
echo '<h2>' . sprintf(__('Browsing <code>%s</code>'), $file) . '</h2>';
echo '<h2>' . sprintf(__('Browsing <code>%s</code>'), $file_show) . '</h2>';
}
?>
<div id="templateside">
<h3><?php printf(__("<strong>'%s'</strong> theme files"), $theme) ?></h3>
<h3><?php printf(__("<strong>'%s'</strong> theme files"), $theme) ?></h3>
<?php
if ($allowed_files) :
?>
<ul>
<ul>
<?php foreach($allowed_files as $allowed_file) : ?>
<li><a href="theme-editor.php?file=<?php echo "$allowed_file"; ?>&amp;theme=<?php echo urlencode($theme) ?>"><?php echo get_file_description($allowed_file); ?></a></li>
<?php endforeach; ?>
</ul>
</ul>
<?php endif; ?>
</div>
</div>
<?php
if (!$error) {
?>
<form name="template" id="template" action="theme-editor.php" method="post">
<div><textarea cols="70" rows="25" name="newcontent" id="newcontent" tabindex="1"><?php echo $content ?></textarea>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="file" value="<?php echo $file ?>" />
<input type="hidden" name="theme" value="<?php echo $theme ?>" />
?>
<form name="template" id="template" action="theme-editor.php" method="post">
<?php wp_nonce_field('edit-theme_' . $file . $theme) ?>
<div><textarea cols="70" rows="25" name="newcontent" id="newcontent" tabindex="1"><?php echo $content ?></textarea>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="file" value="<?php echo $file ?>" />
<input type="hidden" name="theme" value="<?php echo $theme ?>" />
</div>
<?php if ( is_writeable($real_file) ) : ?>
<p class="submit">
<p class="submit">
<?php
echo "<input type='submit' name='submit' value=' " . __('Update File') . " &raquo;' tabindex='2' />";
echo "<input type='submit' name='submit' value=' " . __('Update File &raquo;') . "' tabindex='2' />";
?>
</p>
<?php else : ?>
<p><em><?php _e('If this file was writable you could edit it.'); ?></em></p>
<p><em><?php _e('If this file were writable you could edit it.'); ?></em></p>
<?php endif; ?>
</form>
<?php
</form>
<?php
} else {
echo '<div class="error"><p>' . __('Oops, no such file exists! Double check the name and try again, merci.') . '</p></div>';
}
?>
</div>
?>
<div class="clear"> &nbsp; </div>
</div>
<?php
break;
}
include("admin-footer.php") ?>
include("admin-footer.php") ?>

View File

@@ -2,115 +2,94 @@
require_once('admin.php');
if ( isset($_GET['action']) ) {
check_admin_referer();
check_admin_referer('switch-theme_' . $_GET['template']);
if ('activate' == $_GET['action']) {
if (isset($_GET['template'])) {
update_option('template', $_GET['template']);
}
if ( isset($_GET['template']) )
update_option('template', $_GET['template']);
if (isset($_GET['stylesheet'])) {
update_option('stylesheet', $_GET['stylesheet']);
}
if ( isset($_GET['stylesheet']) )
update_option('stylesheet', $_GET['stylesheet']);
do_action('switch_theme', get_current_theme());
header('Location: themes.php?activated=true');
wp_redirect('themes.php?activated=true');
exit;
}
}
}
$title = __('Manage Themes');
$parent_file = 'themes.php';
require_once('admin-header.php');
?>
<?php if ( ! validate_current_theme() ) : ?>
<div class="updated"><p><?php _e('The active theme is broken. Reverting to the default theme.'); ?></p></div>
<?php elseif ( isset($activated) ) : ?>
<div class="updated"><p><?php _e('New theme activated'); ?></p></div>
<div id="message1" class="updated fade"><p><?php _e('The active theme is broken. Reverting to the default theme.'); ?></p></div>
<?php elseif ( isset($_GET['activated']) ) : ?>
<div id="message2" class="updated fade"><p><?php printf(__('New theme activated. <a href="%s">View site &raquo;</a>'), get_bloginfo('url') . '/'); ?></p></div>
<?php endif; ?>
<?php
$themes = get_themes();
$current_theme = get_current_theme();
$current_title = $themes[$current_theme]['Title'];
$current_version = $themes[$current_theme]['Version'];
$current_parent_theme = $themes[$current_theme]['Parent Theme'];
$current_template_dir = $themes[$current_theme]['Template Dir'];
$current_stylesheet_dir = $themes[$current_theme]['Stylesheet Dir'];
$current_template = $themes[$current_theme]['Template'];
$current_stylesheet = $themes[$current_theme]['Stylesheet'];
$ct = current_theme_info();
?>
<div class="wrap">
<h2><?php _e('Current Theme'); ?></h2>
<div id="currenttheme">
<h3><?php printf(__('%1$s %2$s by %3$s'), $current_title, $current_version, $themes[$current_theme]['Author']) ; ?></h3>
<p><?php echo $themes[$current_theme]['Description']; ?></p>
<?php if ($current_parent_theme) { ?>
<p><?php printf(__('The active theme is <strong>%1$s</strong>. The template files are located in <code>%2$s</code>. The stylesheet files are located in <code>%3$s</code>. <strong>%4$s</strong> uses templates from <strong>%5$s</strong>. Changes made to the templates will affect both themes.'), $current_theme, $current_template_dir, $current_stylesheet_dir, $current_theme, $current_parent_theme); ?></p>
<?php if ( $ct->screenshot ) : ?>
<img src="<?php echo get_option('siteurl') . '/' . $ct->stylesheet_dir . '/' . $ct->screenshot; ?>" alt="<?php _e('Current theme preview'); ?>" />
<?php endif; ?>
<h3><?php printf(__('%1$s %2$s by %3$s'), $ct->title, $ct->version, $ct->author) ; ?></h3>
<p><?php echo $ct->description; ?></p>
<?php if ($ct->parent_theme) { ?>
<p><?php printf(__('The template files are located in <code>%2$s</code>. The stylesheet files are located in <code>%3$s</code>. <strong>%4$s</strong> uses templates from <strong>%5$s</strong>. Changes made to the templates will affect both themes.'), $ct->title, $ct->template_dir, $ct->stylesheet_dir, $ct->title, $ct->parent_theme); ?></p>
<?php } else { ?>
<p><?php printf(__('The active theme is <strong>%1$s</strong>. The template files are located in <code>%2$s</code>. The stylesheet files are located in <code>%3$s</code>.'), $current_theme, $current_template_dir, $current_stylesheet_dir); ?></p>
<p><?php printf(__('All of this theme&#8217;s files are located in <code>%2$s</code>.'), $ct->title, $ct->template_dir, $ct->stylesheet_dir); ?></p>
<?php } ?>
</div>
<h2><?php _e('Themes Available'); ?></h2>
<h2><?php _e('Available Themes'); ?></h2>
<?php if ( 1 < count($themes) ) { ?>
<table width="100%" cellpadding="3" cellspacing="3">
<tr>
<th><?php _e('Name'); ?></th>
<th><?php _e('Author'); ?></th>
<th><?php _e('Description'); ?></th>
<th></th>
</tr>
<?php
$style = '';
$style = '';
$theme_names = array_keys($themes);
natcasesort($theme_names);
$theme_names = array_keys($themes);
natcasesort($theme_names);
foreach ($theme_names as $theme_name) {
$template = $themes[$theme_name]['Template'];
$stylesheet = $themes[$theme_name]['Stylesheet'];
$title = $themes[$theme_name]['Title'];
$version = $themes[$theme_name]['Version'];
$description = $themes[$theme_name]['Description'];
$author = $themes[$theme_name]['Author'];
if ($template == $current_template && $stylesheet == $current_stylesheet) {
$action = '<strong>' . __('Active Theme') . '</strong>';
$current = true;
} else {
$action = "<a href='themes.php?action=activate&amp;template=$template&amp;stylesheet=$stylesheet' title='" . __('Select this theme') . "' class='edit'>" . __('Select') . '</a>';
$current = false;
}
$style = ('class="alternate"' == $style|| 'class="alternate active"' == $style) ? '' : 'alternate';
if ($current) $style .= $style == 'alternate' ? ' active' : 'active';
if ($style != '') $style = 'class="' . $style . '"';
echo "
<tr $style>";
if ( $current )
echo "<td><strong>$title $version</strong></td>";
else
echo "<td>$title $version</td>";
echo "
<td class=\"auth\">$author</td>
<td class=\"desc\">$description</td>
<td class=\"togl\">$action</td>
</tr>";
}
foreach ($theme_names as $theme_name) {
if ( $theme_name == $ct->name )
continue;
$template = $themes[$theme_name]['Template'];
$stylesheet = $themes[$theme_name]['Stylesheet'];
$title = $themes[$theme_name]['Title'];
$version = $themes[$theme_name]['Version'];
$description = $themes[$theme_name]['Description'];
$author = $themes[$theme_name]['Author'];
$screenshot = $themes[$theme_name]['Screenshot'];
$stylesheet_dir = $themes[$theme_name]['Stylesheet Dir'];
$activate_link = wp_nonce_url("themes.php?action=activate&amp;template=$template&amp;stylesheet=$stylesheet", 'switch-theme_' . $template);
?>
<div class="available-theme">
<h3><a href="<?php echo $activate_link; ?>"><?php echo "$title $version"; ?></a></h3>
</table>
<?php
}
?>
<a href="<?php echo $activate_link; ?>" class="screenshot">
<?php if ( $screenshot ) : ?>
<img src="<?php echo get_option('siteurl') . '/' . $stylesheet_dir . '/' . $screenshot; ?>" alt="" />
<?php endif; ?>
</a>
<p><?php echo $description; ?></p>
</div>
<?php } // end foreach theme_names ?>
<?php } ?>
<?php
// List broken themes, if any.
$broken_themes = get_broken_themes();
if (count($broken_themes)) {
if ( count($broken_themes) ) {
?>
<h2><?php _e('Broken Themes'); ?></h2>
@@ -123,7 +102,7 @@ if (count($broken_themes)) {
</tr>
<?php
$theme = '';
$theme_names = array_keys($broken_themes);
natcasesort($theme_names);
@@ -133,10 +112,10 @@ if (count($broken_themes)) {
$theme = ('class="alternate"' == $theme) ? '' : 'class="alternate"';
echo "
<tr $theme>
<td>$title</td>
<td>$description</td>
</tr>";
<tr $theme>
<td>$title</td>
<td>$description</td>
</tr>";
}
?>
</table>
@@ -145,10 +124,8 @@ if (count($broken_themes)) {
?>
<h2><?php _e('Get More Themes'); ?></h2>
<p><?php _e('You can find additional themes for your site in the <a href="http://wordpress.org/extend/themes/">WordPress theme directory</a>. To install a theme you generally just need to upload the theme folder into your <code>wp-content/themes</code> directory. Once a theme is uploaded, you may activate it here.'); ?></p>
<p><?php _e('You can find additional themes for your site in the <a href="http://wordpress.org/extend/themes/">WordPress theme directory</a>. To install a theme you generally just need to upload the theme folder into your <code>wp-content/themes</code> directory. Once a theme is uploaded, you should see it on this page.'); ?></p>
</div>
<?php
include('admin-footer.php');
?>
<?php require('admin-footer.php'); ?>

View File

@@ -3,12 +3,12 @@ require_once( dirname( dirname(__FILE__) ) . '/wp-config.php');
require_once( ABSPATH . 'wp-includes/class-snoopy.php');
if ( !get_option('use_linksupdate') )
die('Feature disabled.');
wp_die(__('Feature disabled.'));
$link_uris = $wpdb->get_col("SELECT link_url FROM $wpdb->links");
if ( !$link_uris )
die('No links');
wp_die(__('No links'));
$link_uris = urlencode( join( $link_uris, "\n" ) );
@@ -16,29 +16,29 @@ $query_string = "uris=$link_uris";
$http_request = "POST /updated-batch/ HTTP/1.0\r\n";
$http_request .= "Host: api.pingomatic.com\r\n";
$http_request .= 'Content-Type: application/x-www-form-urlencoded; charset='.get_settings('blog_charset')."\r\n";
$http_request .= 'Content-Type: application/x-www-form-urlencoded; charset='.get_option('blog_charset')."\r\n";
$http_request .= 'Content-Length: ' . strlen($query_string) . "\r\n";
$http_request .= 'User-Agent: WordPress/' . $wp_version . "\r\n";
$http_request .= "\r\n";
$http_request .= $query_string;
$response = '';
if( false !== ( $fs = fsockopen('api.pingomatic.com', 80, $errno, $errstr, 5) ) ) {
if ( false !== ( $fs = @fsockopen('api.pingomatic.com', 80, $errno, $errstr, 5) ) ) {
fwrite($fs, $http_request);
while ( !feof($fs) )
$response .= fgets($fs, 1160); // One TCP-IP packet
fclose($fs);
$response = explode("\r\n\r\n", $response, 2);
$body = trim( $response[1] );
$body = str_replace(array("\r\n", "\r"), "\n", $body);
$returns = explode("\n", $body);
foreach ($returns as $return) :
$time = addslashes( substr($return, 0, 19) );
$uri = addslashes( preg_replace('/(.*?) | (.*?)/', '$2', $return) );
$time = $wpdb->escape( substr($return, 0, 19) );
$uri = $wpdb->escape( preg_replace('/(.*?) | (.*?)/', '$2', $return) );
$wpdb->query("UPDATE $wpdb->links SET link_updated = '$time' WHERE link_url = '$uri'");
endforeach;
}
?>
?>

View File

@@ -1,15 +1,195 @@
<?php
if ( file_exists(ABSPATH . 'wp-content/install.php') )
require (ABSPATH . 'wp-content/install.php');
require_once(ABSPATH . '/wp-admin/admin-functions.php');
require_once(ABSPATH . '/wp-admin/admin-db.php');
require_once(ABSPATH . '/wp-admin/upgrade-schema.php');
require_once(ABSPATH . WPINC . '/registration.php');
if ( !function_exists('wp_install') ) :
function wp_install($blog_title, $user_name, $user_email, $public, $meta='') {
global $wp_rewrite;
wp_check_mysql_version();
wp_cache_flush();
make_db_current_silent();
populate_options();
populate_roles();
update_option('blogname', $blog_title);
update_option('admin_email', $user_email);
update_option('blog_public', $public);
$schema = ( isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ) ? 'https://' : 'http://';
if ( defined('WP_SITEURL') && '' != WP_SITEURL )
$guessurl = WP_SITEURL;
else
$guessurl = preg_replace('|/wp-admin/.*|i', '', $schema . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
update_option('siteurl', $guessurl);
// If not a public blog, don't ping.
if ( ! $public )
update_option('default_pingback_flag', 0);
// Create default user. If the user already exists, the user tables are
// being shared among blogs. Just set the role in that case.
$user_id = username_exists($user_name);
if ( !$user_id ) {
$random_password = substr(md5(uniqid(microtime())), 0, 6);
$user_id = wp_create_user($user_name, $random_password, $user_email);
} else {
$random_password = __('User already exists. Password inherited.');
}
$user = new WP_User($user_id);
$user->set_role('administrator');
wp_install_defaults($user_id);
$wp_rewrite->flush_rules();
wp_new_blog_notification($blog_title, $guessurl, $user_id, $random_password);
wp_cache_flush();
return array('url' => $guessurl, 'user_id' => $user_id, 'password' => $random_password);
}
endif;
if ( !function_exists('wp_install_defaults') ) :
function wp_install_defaults($user_id) {
global $wpdb;
// Default category
$wpdb->query("INSERT INTO $wpdb->categories (cat_ID, cat_name, category_nicename, category_count, category_description) VALUES ('0', '".$wpdb->escape(__('Uncategorized'))."', '".sanitize_title(__('Uncategorized'))."', '1', '')");
// Default link category
$wpdb->query("INSERT INTO $wpdb->categories (cat_ID, cat_name, category_nicename, link_count, category_description) VALUES ('0', '".$wpdb->escape(__('Blogroll'))."', '".sanitize_title(__('Blogroll'))."', '7', '')");
// Now drop in some default links
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://inphotos.org/', 'Donncha', 0, 'http://inphotos.org/feed/', '');");
$wpdb->query( "INSERT INTO $wpdb->link2cat (`link_id`, `category_id`) VALUES (1, 2)" );
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://zengun.org/weblog/', 'Michel', 0, 'http://zengun.org/weblog/feed/', '');");
$wpdb->query( "INSERT INTO $wpdb->link2cat (`link_id`, `category_id`) VALUES (2, 2)" );
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://boren.nu/', 'Ryan', 0, 'http://boren.nu/feed/', '');");
$wpdb->query( "INSERT INTO $wpdb->link2cat (`link_id`, `category_id`) VALUES (3, 2)" );
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://photomatt.net/', 'Matt', 0, 'http://xml.photomatt.net/feed/', '');");
$wpdb->query( "INSERT INTO $wpdb->link2cat (`link_id`, `category_id`) VALUES (4, 2)" );
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://zed1.com/journalized/', 'Mike', 0, 'http://zed1.com/journalized/feed/', '');");
$wpdb->query( "INSERT INTO $wpdb->link2cat (`link_id`, `category_id`) VALUES (5, 2)" );
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://www.alexking.org/', 'Alex', 0, 'http://www.alexking.org/blog/wp-rss2.php', '');");
$wpdb->query( "INSERT INTO $wpdb->link2cat (`link_id`, `category_id`) VALUES (6, 2)" );
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://dougal.gunters.org/', 'Dougal', 0, 'http://dougal.gunters.org/feed/', '');");
$wpdb->query( "INSERT INTO $wpdb->link2cat (`link_id`, `category_id`) VALUES (7, 2)" );
// First post
$now = date('Y-m-d H:i:s');
$now_gmt = gmdate('Y-m-d H:i:s');
$wpdb->query("INSERT INTO $wpdb->posts (post_author, post_date, post_date_gmt, post_content, post_excerpt, post_title, post_category, post_name, post_modified, post_modified_gmt, comment_count, to_ping, pinged, post_content_filtered) VALUES ($user_id, '$now', '$now_gmt', '".$wpdb->escape(__('Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!'))."', '', '".$wpdb->escape(__('Hello world!'))."', '0', '".$wpdb->escape(__('hello-world'))."', '$now', '$now_gmt', '1', '', '', '')");
$wpdb->query( "INSERT INTO $wpdb->post2cat (`rel_id`, `post_id`, `category_id`) VALUES (1, 1, 1)" );
// Default comment
$wpdb->query("INSERT INTO $wpdb->comments (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_date, comment_date_gmt, comment_content) VALUES ('1', '".$wpdb->escape(__('Mr WordPress'))."', '', 'http://wordpress.org/', '$now', '$now_gmt', '".$wpdb->escape(__('Hi, this is a comment.<br />To delete a comment, just log in and view the post&#039;s comments. There you will have the option to edit or delete them.'))."')");
// First Page
$wpdb->query("INSERT INTO $wpdb->posts (post_author, post_date, post_date_gmt, post_content, post_excerpt, post_title, post_category, post_name, post_modified, post_modified_gmt, post_status, post_type, to_ping, pinged, post_content_filtered) VALUES ($user_id, '$now', '$now_gmt', '".$wpdb->escape(__('This is an example of a WordPress page, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many pages like this one or sub-pages as you like and manage all of your content inside of WordPress.'))."', '', '".$wpdb->escape(__('About'))."', '0', '".$wpdb->escape(__('about'))."', '$now', '$now_gmt', 'publish', 'page', '', '', '')");
}
endif;
if ( !function_exists('wp_new_blog_notification') ) :
function wp_new_blog_notification($blog_title, $blog_url, $user_id, $password) {
$user = new WP_User($user_id);
$email = $user->user_email;
$name = $user->user_login;
$message_headers = 'From: "' . $blog_title . '" <wordpress@' . $_SERVER['SERVER_NAME'] . '>';
$message = sprintf(__("Your new WordPress blog has been successfully set up at:
%1\$s
You can log in to the administrator account with the following information:
Username: %2\$s
Password: %3\$s
We hope you enjoy your new weblog. Thanks!
--The WordPress Team
http://wordpress.org/
"), $blog_url, $name, $password);
@wp_mail($email, __('New WordPress Blog'), $message, $message_headers);
}
endif;
if ( !function_exists('wp_upgrade') ) :
function wp_upgrade() {
global $wp_current_db_version, $wp_db_version;
$wp_current_db_version = __get_option('db_version');
// We are up-to-date. Nothing to do.
if ( $wp_db_version == $wp_current_db_version )
return;
wp_check_mysql_version();
wp_cache_flush();
make_db_current_silent();
upgrade_all();
wp_cache_flush();
}
endif;
// Functions to be called in install and upgrade scripts
function upgrade_all() {
global $wp_current_db_version, $wp_db_version, $wp_rewrite;
$wp_current_db_version = __get_option('db_version');
// We are up-to-date. Nothing to do.
if ( $wp_db_version == $wp_current_db_version )
return;
// If the version is not set in the DB, try to guess the version.
if ( empty($wp_current_db_version) ) {
$wp_current_db_version = 0;
// If the template option exists, we have 1.5.
$template = __get_option('template');
if ( !empty($template) )
$wp_current_db_version = 2541;
}
populate_options();
upgrade_100();
upgrade_101();
upgrade_110();
upgrade_130();
save_mod_rewrite_rules();
if ( $wp_current_db_version < 2541 ) {
upgrade_100();
upgrade_101();
upgrade_110();
upgrade_130();
}
maybe_disable_automattic_widgets();
if ( $wp_current_db_version < 3308 )
upgrade_160();
if ( $wp_current_db_version < 4772 )
upgrade_210();
if ( $wp_current_db_version < 4351 )
upgrade_old_slugs();
$wp_rewrite->flush_rules();
update_option('db_version', $wp_db_version);
}
function upgrade_100() {
@@ -19,16 +199,16 @@ function upgrade_100() {
$posts = $wpdb->get_results("SELECT ID, post_title, post_name FROM $wpdb->posts WHERE post_name = ''");
if ($posts) {
foreach($posts as $post) {
if ('' == $post->post_name) {
if ('' == $post->post_name) {
$newtitle = sanitize_title($post->post_title);
$wpdb->query("UPDATE $wpdb->posts SET post_name = '$newtitle' WHERE ID = '$post->ID'");
}
}
}
$categories = $wpdb->get_results("SELECT cat_ID, cat_name, category_nicename FROM $wpdb->categories");
foreach ($categories as $category) {
if ('' == $category->category_nicename) {
if ('' == $category->category_nicename) {
$newtitle = sanitize_title($category->cat_name);
$wpdb->query("UPDATE $wpdb->categories SET category_nicename = '$newtitle' WHERE cat_ID = '$category->cat_ID'");
}
@@ -48,7 +228,7 @@ function upgrade_100() {
else:
$catwhere = '';
endif;
$allposts = $wpdb->get_results("SELECT ID, post_category FROM $wpdb->posts WHERE post_category != '0' $catwhere");
if ($allposts) :
foreach ($allposts as $post) {
@@ -81,12 +261,12 @@ function upgrade_101() {
function upgrade_110() {
global $wpdb;
// Set user_nicename.
global $wpdb;
// Set user_nicename.
$users = $wpdb->get_results("SELECT ID, user_nickname, user_nicename FROM $wpdb->users");
foreach ($users as $user) {
if ('' == $user->user_nicename) {
if ('' == $user->user_nicename) {
$newname = sanitize_title($user->user_nickname);
$wpdb->query("UPDATE $wpdb->users SET user_nicename = '$newname' WHERE ID = '$user->ID'");
}
@@ -95,7 +275,7 @@ function upgrade_110() {
$users = $wpdb->get_results("SELECT ID, user_pass from $wpdb->users");
foreach ($users as $row) {
if (!preg_match('/^[A-Fa-f0-9]{32}$/', $row->user_pass)) {
$wpdb->query('UPDATE '.$wpdb->users.' SET user_pass = MD5(\''.$row->user_pass.'\') WHERE ID = \''.$row->ID.'\'');
$wpdb->query('UPDATE '.$wpdb->users.' SET user_pass = MD5(\''.$row->user_pass.'\') WHERE ID = \''.$row->ID.'\'');
}
}
@@ -137,63 +317,63 @@ function upgrade_110() {
}
function upgrade_130() {
global $wpdb, $table_prefix;
global $wpdb;
// Remove extraneous backslashes.
// Remove extraneous backslashes.
$posts = $wpdb->get_results("SELECT ID, post_title, post_content, post_excerpt, guid, post_date, post_name, post_status, post_author FROM $wpdb->posts");
if ($posts) {
foreach($posts as $post) {
$post_content = addslashes(deslash($post->post_content));
$post_title = addslashes(deslash($post->post_title));
$post_excerpt = addslashes(deslash($post->post_excerpt));
$post_content = addslashes(deslash($post->post_content));
$post_title = addslashes(deslash($post->post_title));
$post_excerpt = addslashes(deslash($post->post_excerpt));
if ( empty($post->guid) )
$guid = get_permalink($post->ID);
else
$guid = $post->guid;
$wpdb->query("UPDATE $wpdb->posts SET post_title = '$post_title', post_content = '$post_content', post_excerpt = '$post_excerpt', guid = '$guid' WHERE ID = '$post->ID'");
$wpdb->query("UPDATE $wpdb->posts SET post_title = '$post_title', post_content = '$post_content', post_excerpt = '$post_excerpt', guid = '$guid' WHERE ID = '$post->ID'");
}
}
// Remove extraneous backslashes.
// Remove extraneous backslashes.
$comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_content FROM $wpdb->comments");
if ($comments) {
foreach($comments as $comment) {
$comment_content = addslashes(deslash($comment->comment_content));
$comment_author = addslashes(deslash($comment->comment_author));
$wpdb->query("UPDATE $wpdb->comments SET comment_content = '$comment_content', comment_author = '$comment_author' WHERE comment_ID = '$comment->comment_ID'");
$comment_content = addslashes(deslash($comment->comment_content));
$comment_author = addslashes(deslash($comment->comment_author));
$wpdb->query("UPDATE $wpdb->comments SET comment_content = '$comment_content', comment_author = '$comment_author' WHERE comment_ID = '$comment->comment_ID'");
}
}
// Remove extraneous backslashes.
// Remove extraneous backslashes.
$links = $wpdb->get_results("SELECT link_id, link_name, link_description FROM $wpdb->links");
if ($links) {
foreach($links as $link) {
$link_name = addslashes(deslash($link->link_name));
$link_description = addslashes(deslash($link->link_description));
$wpdb->query("UPDATE $wpdb->links SET link_name = '$link_name', link_description = '$link_description' WHERE link_id = '$link->link_id'");
$link_name = addslashes(deslash($link->link_name));
$link_description = addslashes(deslash($link->link_description));
$wpdb->query("UPDATE $wpdb->links SET link_name = '$link_name', link_description = '$link_description' WHERE link_id = '$link->link_id'");
}
}
// The "paged" option for what_to_show is no more.
if ($wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = 'what_to_show'") == 'paged') {
$wpdb->query("UPDATE $wpdb->options SET option_value = 'posts' WHERE option_name = 'what_to_show'");
}
// The "paged" option for what_to_show is no more.
if ($wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = 'what_to_show'") == 'paged') {
$wpdb->query("UPDATE $wpdb->options SET option_value = 'posts' WHERE option_name = 'what_to_show'");
}
$active_plugins = __get_option('active_plugins');
$active_plugins = __get_option('active_plugins');
// If plugins are not stored in an array, they're stored in the old
// newline separated format. Convert to new format.
if ( !is_array( $active_plugins ) ) {
$active_plugins = explode("\n", trim($active_plugins));
update_option('active_plugins', $active_plugins);
}
// If plugins are not stored in an array, they're stored in the old
// newline separated format. Convert to new format.
if ( !is_array( $active_plugins ) ) {
$active_plugins = explode("\n", trim($active_plugins));
update_option('active_plugins', $active_plugins);
}
// Obsolete tables
$wpdb->query('DROP TABLE IF EXISTS ' . $table_prefix . 'optionvalues');
$wpdb->query('DROP TABLE IF EXISTS ' . $table_prefix . 'optiontypes');
$wpdb->query('DROP TABLE IF EXISTS ' . $table_prefix . 'optiongroups');
$wpdb->query('DROP TABLE IF EXISTS ' . $table_prefix . 'optiongroup_options');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optionvalues');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optiontypes');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optiongroups');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optiongroup_options');
// Update comments table to use comment_type
$wpdb->query("UPDATE $wpdb->comments SET comment_type='trackback', comment_content = REPLACE(comment_content, '<trackback />', '') WHERE comment_content LIKE '<trackback />%'");
@@ -213,25 +393,206 @@ function upgrade_130() {
make_site_theme();
}
function upgrade_160() {
global $wpdb, $wp_current_db_version;
populate_roles_160();
$users = $wpdb->get_results("SELECT * FROM $wpdb->users");
foreach ( $users as $user ) :
if ( !empty( $user->user_firstname ) )
update_usermeta( $user->ID, 'first_name', $wpdb->escape($user->user_firstname) );
if ( !empty( $user->user_lastname ) )
update_usermeta( $user->ID, 'last_name', $wpdb->escape($user->user_lastname) );
if ( !empty( $user->user_nickname ) )
update_usermeta( $user->ID, 'nickname', $wpdb->escape($user->user_nickname) );
if ( !empty( $user->user_level ) )
update_usermeta( $user->ID, $wpdb->prefix . 'user_level', $user->user_level );
if ( !empty( $user->user_icq ) )
update_usermeta( $user->ID, 'icq', $wpdb->escape($user->user_icq) );
if ( !empty( $user->user_aim ) )
update_usermeta( $user->ID, 'aim', $wpdb->escape($user->user_aim) );
if ( !empty( $user->user_msn ) )
update_usermeta( $user->ID, 'msn', $wpdb->escape($user->user_msn) );
if ( !empty( $user->user_yim ) )
update_usermeta( $user->ID, 'yim', $wpdb->escape($user->user_icq) );
if ( !empty( $user->user_description ) )
update_usermeta( $user->ID, 'description', $wpdb->escape($user->user_description) );
if ( isset( $user->user_idmode ) ):
$idmode = $user->user_idmode;
if ($idmode == 'nickname') $id = $user->user_nickname;
if ($idmode == 'login') $id = $user->user_login;
if ($idmode == 'firstname') $id = $user->user_firstname;
if ($idmode == 'lastname') $id = $user->user_lastname;
if ($idmode == 'namefl') $id = $user->user_firstname.' '.$user->user_lastname;
if ($idmode == 'namelf') $id = $user->user_lastname.' '.$user->user_firstname;
if (!$idmode) $id = $user->user_nickname;
$id = $wpdb->escape( $id );
$wpdb->query("UPDATE $wpdb->users SET display_name = '$id' WHERE ID = '$user->ID'");
endif;
// FIXME: RESET_CAPS is temporary code to reset roles and caps if flag is set.
$caps = get_usermeta( $user->ID, $wpdb->prefix . 'capabilities');
if ( empty($caps) || defined('RESET_CAPS') ) {
$level = get_usermeta($user->ID, $wpdb->prefix . 'user_level');
$role = translate_level_to_role($level);
update_usermeta( $user->ID, $wpdb->prefix . 'capabilities', array($role => true) );
}
endforeach;
$old_user_fields = array( 'user_firstname', 'user_lastname', 'user_icq', 'user_aim', 'user_msn', 'user_yim', 'user_idmode', 'user_ip', 'user_domain', 'user_browser', 'user_description', 'user_nickname', 'user_level' );
$wpdb->hide_errors();
foreach ( $old_user_fields as $old )
$wpdb->query("ALTER TABLE $wpdb->users DROP $old");
$wpdb->show_errors();
if ( 0 == $wpdb->get_var("SELECT SUM(category_count) FROM $wpdb->categories") ) { // Create counts
$categories = $wpdb->get_col("SELECT cat_ID FROM $wpdb->categories");
foreach ( $categories as $cat_id ) {
$count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->post2cat, $wpdb->posts WHERE $wpdb->posts.ID=$wpdb->post2cat.post_id AND post_status='publish' AND category_id = '$cat_id'");
$wpdb->query("UPDATE $wpdb->categories SET category_count = '$count' WHERE cat_ID = '$cat_id'");
}
}
// populate comment_count field of posts table
$comments = $wpdb->get_results( "SELECT comment_post_ID, COUNT(*) as c FROM $wpdb->comments WHERE comment_approved = '1' GROUP BY comment_post_ID" );
if( is_array( $comments ) ) {
foreach ($comments as $comment) {
$wpdb->query( "UPDATE $wpdb->posts SET comment_count = $comment->c WHERE ID = '$comment->comment_post_ID'" );
}
}
// Some alpha versions used a post status of object instead of attachment and put
// the mime type in post_type instead of post_mime_type.
if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) {
$objects = $wpdb->get_results("SELECT ID, post_type FROM $wpdb->posts WHERE post_status = 'object'");
foreach ($objects as $object) {
$wpdb->query("UPDATE $wpdb->posts SET post_status = 'attachment',
post_mime_type = '$object->post_type',
post_type = ''
WHERE ID = $object->ID");
$meta = get_post_meta($object->ID, 'imagedata', true);
if ( ! empty($meta['file']) )
update_attached_file( $object->ID, $meta['file'] );
}
}
}
function upgrade_210() {
global $wpdb, $wp_current_db_version;
if ( $wp_current_db_version < 3506 ) {
// Update status and type.
$posts = $wpdb->get_results("SELECT ID, post_status FROM $wpdb->posts");
if ( ! empty($posts) ) foreach ($posts as $post) {
$status = $post->post_status;
$type = 'post';
if ( 'static' == $status ) {
$status = 'publish';
$type = 'page';
} else if ( 'attachment' == $status ) {
$status = 'inherit';
$type = 'attachment';
}
$wpdb->query("UPDATE $wpdb->posts SET post_status = '$status', post_type = '$type' WHERE ID = '$post->ID'");
}
}
if ( $wp_current_db_version < 3845 ) {
populate_roles_210();
}
if ( $wp_current_db_version < 3531 ) {
// Give future posts a post_status of future.
$now = gmdate('Y-m-d H:i:59');
$wpdb->query ("UPDATE $wpdb->posts SET post_status = 'future' WHERE post_status = 'publish' AND post_date_gmt > '$now'");
$posts = $wpdb->get_results("SELECT ID, post_date FROM $wpdb->posts WHERE post_status ='future'");
if ( !empty($posts) )
foreach ( $posts as $post )
wp_schedule_single_event(mysql2date('U', $post->post_date), 'publish_future_post', array($post->ID));
}
if ( $wp_current_db_version < 3570 ) {
// Create categories for link categories if a category with the same
// name doesn't exist. Create a map of link cat IDs to cat IDs.
$link_cat_id_map = array();
$link_cats = $wpdb->get_results("SELECT cat_id, cat_name FROM " . $wpdb->prefix . 'linkcategories');
foreach ( $link_cats as $link_cat) {
if ( $cat_id = category_exists($link_cat->cat_name) ) {
$link_cat_id_map[$link_cat->cat_id] = $cat_id;
$default_link_cat = $cat_id;
} else {
$link_cat_id_map[$link_cat->cat_id] = wp_create_category($link_cat->cat_name);
$default_link_cat = $link_cat_id_map[$link_cat->cat_id];
}
}
// Associate links to cats.
$links = $wpdb->get_results("SELECT link_id, link_category FROM $wpdb->links");
if ( !empty($links) ) foreach ( $links as $link ) {
if ( 0 == $link->link_category )
continue;
if ( ! isset($link_cat_id_map[$link->link_category]) )
continue;
$link_cat = $link_cat_id_map[$link->link_category];
$cat = $wpdb->get_row("SELECT * FROM $wpdb->link2cat WHERE link_id = '$link->link_id' AND category_id = '$link_cat'");
if ( !$cat ) {
$wpdb->query("INSERT INTO $wpdb->link2cat (link_id, category_id)
VALUES ('$link->link_id', '$link_cat')");
}
}
// Set default to the last category we grabbed during the upgrade loop.
update_option('default_link_category', $default_link_cat);
// Count links per category.
if ( 0 == $wpdb->get_var("SELECT SUM(link_count) FROM $wpdb->categories") ) {
$categories = $wpdb->get_col("SELECT cat_ID FROM $wpdb->categories");
foreach ( $categories as $cat_id ) {
$count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->link2cat, $wpdb->links WHERE $wpdb->links.link_id = $wpdb->link2cat.link_id AND category_id = '$cat_id'");
$wpdb->query("UPDATE $wpdb->categories SET link_count = '$count' WHERE cat_ID = '$cat_id'");
}
}
}
if ( $wp_current_db_version < 4772 ) {
// Obsolete linkcategories table
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'linkcategories');
}
}
function upgrade_old_slugs() {
// upgrade people who were using the Redirect Old Slugs plugin
global $wpdb;
$wpdb->query("UPDATE $wpdb->postmeta SET meta_key = '_wp_old_slug' WHERE meta_key = 'old_slug'");
}
// The functions we use to actually do stuff
// General
function maybe_create_table($table_name, $create_ddl) {
global $wpdb;
foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
if ($table == $table_name) {
return true;
}
}
//didn't find it try to create it.
$q = $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
if ($table == $table_name) {
return true;
}
}
return false;
global $wpdb;
foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
if ($table == $table_name) {
return true;
}
}
//didn't find it try to create it.
$q = $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
if ($table == $table_name) {
return true;
}
}
return false;
}
function drop_index($table, $index) {
@@ -260,22 +621,22 @@ function add_clean_index($table, $index) {
** false on error
*/
function maybe_add_column($table_name, $column_name, $create_ddl) {
global $wpdb, $debug;
foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
if ($debug) echo("checking $column == $column_name<br />");
if ($column == $column_name) {
return true;
}
}
//didn't find it try to create it.
$q = $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
if ($column == $column_name) {
return true;
}
}
return false;
global $wpdb, $debug;
foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
if ($debug) echo("checking $column == $column_name<br />");
if ($column == $column_name) {
return true;
}
}
//didn't find it try to create it.
$q = $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
if ($column == $column_name) {
return true;
}
}
return false;
}
@@ -284,7 +645,7 @@ function get_alloptions_110() {
global $wpdb;
if ($options = $wpdb->get_results("SELECT option_name, option_value FROM $wpdb->options")) {
foreach ($options as $option) {
// "When trying to design a foolproof system,
// "When trying to design a foolproof system,
// never underestimate the ingenuity of the fools :)" -- Dougal
if ('siteurl' == $option->option_name) $option->option_value = preg_replace('|/+$|', '', $option->option_value);
if ('home' == $option->option_name) $option->option_value = preg_replace('|/+$|', '', $option->option_value);
@@ -298,9 +659,23 @@ function get_alloptions_110() {
// Version of get_option that is private to install/upgrade.
function __get_option($setting) {
global $wpdb;
if ( $setting == 'home' && defined( 'WP_HOME' ) ) {
return preg_replace( '|/+$|', '', constant( 'WP_HOME' ) );
}
if ( $setting == 'siteurl' && defined( 'WP_SITEURL' ) ) {
return preg_replace( '|/+$|', '', constant( 'WP_SITEURL' ) );
}
$option = $wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = '$setting'");
if ( 'home' == $setting && '' == $option )
return __get_option('siteurl');
if ( 'siteurl' == $setting || 'home' == $setting || 'category_base' == $setting )
$option = preg_replace('|/+$|', '', $option);
@ $kellogs = unserialize($option);
if ($kellogs !== FALSE)
return $kellogs;
@@ -309,35 +684,35 @@ function __get_option($setting) {
}
function deslash($content) {
// Note: \\\ inside a regex denotes a single backslash.
// Note: \\\ inside a regex denotes a single backslash.
// Replace one or more backslashes followed by a single quote with
// a single quote.
$content = preg_replace("/\\\+'/", "'", $content);
// Replace one or more backslashes followed by a single quote with
// a single quote.
$content = preg_replace("/\\\+'/", "'", $content);
// Replace one or more backslashes followed by a double quote with
// a double quote.
$content = preg_replace('/\\\+"/', '"', $content);
// Replace one or more backslashes followed by a double quote with
// a double quote.
$content = preg_replace('/\\\+"/', '"', $content);
// Replace one or more backslashes with one backslash.
$content = preg_replace("/\\\+/", "\\", $content);
// Replace one or more backslashes with one backslash.
$content = preg_replace("/\\\+/", "\\", $content);
return $content;
return $content;
}
function dbDelta($queries, $execute = true) {
global $wpdb;
// Seperate individual queries into an array
if( !is_array($queries) ) {
$queries = explode( ';', $queries );
if('' == $queries[count($queries) - 1]) array_pop($queries);
}
$cqueries = array(); // Creation Queries
$iqueries = array(); // Insertion Queries
$for_update = array();
// Create a tablename index for an array ($cqueries) of queries
foreach($queries as $qry) {
if(preg_match("|CREATE TABLE ([^ ]*)|", $qry, $matches)) {
@@ -356,7 +731,7 @@ function dbDelta($queries, $execute = true) {
else {
// Unrecognized query type
}
}
}
// Check to see which tables and fields exist
if($tables = $wpdb->get_col('SHOW TABLES;')) {
@@ -375,13 +750,13 @@ function dbDelta($queries, $execute = true) {
$flds = explode("\n", $qryline);
//echo "<hr/><pre>\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."</pre><hr/>";
// For every field line specified in the query
foreach($flds as $fld) {
// Extract the field name
preg_match("|^([^ ]*)|", trim($fld), $fvals);
$fieldname = $fvals[1];
// Verify the found field name
$validfield = true;
switch(strtolower($fieldname))
@@ -397,18 +772,18 @@ function dbDelta($queries, $execute = true) {
break;
}
$fld = trim($fld);
// If it's a valid field, add it to the field array
if($validfield) {
$cfields[strtolower($fieldname)] = trim($fld, ", \n");
}
}
// Fetch the table column structure from the database
$tablefields = $wpdb->get_results("DESCRIBE {$table};");
// For every field in the table
foreach($tablefields as $tablefield) {
foreach($tablefields as $tablefield) {
// If the table field exists in the field array...
if(array_key_exists(strtolower($tablefield->Field), $cfields)) {
// Get the field type from the query
@@ -421,7 +796,7 @@ function dbDelta($queries, $execute = true) {
$cqueries[] = "ALTER TABLE {$table} CHANGE COLUMN {$tablefield->Field} " . $cfields[strtolower($tablefield->Field)];
$for_update[$table.'.'.$tablefield->Field] = "Changed type of {$table}.{$tablefield->Field} from {$tablefield->Type} to {$fieldtype}";
}
// Get the default value from the array
//echo "{$cfields[strtolower($tablefield->Field)]}<br>";
if(preg_match("| DEFAULT '(.*)'|i", $cfields[strtolower($tablefield->Field)], $matches)) {
@@ -448,11 +823,11 @@ function dbDelta($queries, $execute = true) {
$cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef";
$for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname;
}
// Index stuff goes here
// Fetch the table index structure from the database
$tableindices = $wpdb->get_results("SHOW INDEX FROM {$table};");
if($tableindices) {
// Clear the index array
unset($index_ary);
@@ -481,7 +856,7 @@ function dbDelta($queries, $execute = true) {
}
$index_columns = '';
// For each column in the index
foreach($index_data['columns'] as $column_data) {
foreach($index_data['columns'] as $column_data) {
if($index_columns != '') $index_columns .= ',';
// Add the field to the column list string
$index_columns .= $column_data['fieldname'];
@@ -489,7 +864,7 @@ function dbDelta($queries, $execute = true) {
$index_columns .= '('.$column_data['subpart'].')';
}
}
// Add the column list to the index create string
// Add the column list to the index create string
$index_string .= ' ('.$index_columns.')';
if(!(($aindex = array_search($index_string, $indices)) === false)) {
@@ -562,7 +937,7 @@ function make_site_theme_from_oldschool($theme_name, $template) {
if ($oldfile == 'index.php') { // Check to make sure it's not a new index
$index = implode('', file("$oldpath/$oldfile"));
if ( strstr( $index, 'WP_USE_THEMES' ) ) {
if (strpos($index, 'WP_USE_THEMES') !== false) {
if (! @copy(ABSPATH . 'wp-content/themes/default/index.php', "$site_dir/$newfile"))
return false;
continue; // Don't copy anything
@@ -634,12 +1009,12 @@ function make_site_theme_from_default($theme_name, $template) {
$f = fopen("$site_dir/style.css", 'w');
foreach ($stylelines as $line) {
if (strstr($line, "Theme Name:")) $line = "Theme Name: $theme_name";
elseif (strstr($line, "Theme URI:")) $line = "Theme URI: " . __get_option('siteurl');
elseif (strstr($line, "Description:")) $line = "Description: Your theme";
elseif (strstr($line, "Version:")) $line = "Version: 1";
elseif (strstr($line, "Author:")) $line = "Author: You";
fwrite($f, "{$line}\n");
if (strpos($line, 'Theme Name:') !== false) $line = 'Theme Name: ' . $theme_name;
elseif (strpos($line, 'Theme URI:') !== false) $line = 'Theme URI: ' . __get_option('url');
elseif (strpos($line, 'Description:') !== false) $line = 'Description: Your theme.';
elseif (strpos($line, 'Version:') !== false) $line = 'Version: 1';
elseif (strpos($line, 'Author:') !== false) $line = 'Author: You';
fwrite($f, $line . "\n");
}
fclose($f);
}
@@ -703,4 +1078,47 @@ function make_site_theme() {
}
return $template;
}
function translate_level_to_role($level) {
switch ($level) {
case 10:
case 9:
case 8:
return 'administrator';
case 7:
case 6:
case 5:
return 'editor';
case 4:
case 3:
case 2:
return 'author';
case 1:
return 'contributor';
case 0:
return 'subscriber';
}
}
function wp_check_mysql_version() {
global $wp_version;
// Make sure the server has MySQL 4.0
$mysql_version = preg_replace('|[^0-9\.]|', '', @mysql_get_server_info());
if ( version_compare($mysql_version, '4.0.0', '<') )
die(sprintf(__('<strong>ERROR</strong>: WordPress %s requires MySQL 4.0.0 or higher'), $wp_version));
}
function maybe_disable_automattic_widgets() {
$plugins = __get_option( 'active_plugins' );
foreach ( (array) $plugins as $plugin ) {
if ( basename( $plugin ) == 'widgets.php' ) {
array_splice( $plugins, array_search( $plugin, $plugins ), 1 );
update_option( 'active_plugins', $plugins );
break;
}
}
}
?>

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