Compare commits

...

2187 Commits

Author SHA1 Message Date
markjaquith
3b042772a9 Oops. Personal debug code that slipped in.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@7587 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-02 13:19:00 +00:00
markjaquith
819c7ad8c2 Sanitize "cat" query var and cast to int before looking for a category template
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@7586 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-04-02 13:15:21 +00:00
ryan
5ca1d6a092 Make sure term id is an int. Props tellyworth. fixes #5330 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@7069 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-27 21:22:25 +00:00
ryan
a7fe84505d Use preg_replace_callback() instead of using the 'e' modifier.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@7068 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-27 21:19:59 +00:00
ryan
6855aba68e Make Nonce Mismatch Fail Instead of AYS. Props filosofo. fixes #5838 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6818 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-13 18:17:47 +00:00
ryan
d665517313 metaWeblog.newPost fix. Props malex. fixes #5814 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6814 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-13 17:53:52 +00:00
ryan
08d8849c1b Remove extra underscores. fixes #5788 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6745 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-07 04:04:29 +00:00
ryan
70a17cdf40 Another bump
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6724 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-05 04:05:20 +00:00
ryan
6bb9f0bb95 Bump
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6720 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-05 02:40:57 +00:00
ryan
4af58fb06a More cap checks from josephscott. see #5313
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6715 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-04 18:52:49 +00:00
ryan
0998fab88e Add edit_page cap check. Props josephscott. see #5313
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6710 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-02 17:57:20 +00:00
ryan
14bb4dd834 Avoid the 64bit dragons. Fixes #3780 for 2.3 props nbachiyski.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6708 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-02 17:49:37 +00:00
ryan
94552fc2fe Fix the require_once in install-helper.php so that it works when included from a plugin. Fixes #5090 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6707 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-02 17:45:44 +00:00
ryan
f64a4081fd Revert #5007 as it causes more trouble than it solves. Fixes #5273 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6706 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2008-02-02 17:44:27 +00:00
ryan
57c41f52a0 Don't echo content. Props xknown.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6527 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-29 19:38:47 +00:00
ryan
d18aa351d1 Don't echo posted content. Specialchars all other displayed info.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6525 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-29 19:21:10 +00:00
ryan
5367e04404 Bump
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6523 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-29 17:15:44 +00:00
ryan
f7ce06a547 Extra traversal check.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6521 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-29 03:14:53 +00:00
ryan
de80358206 RC1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6511 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-28 05:13:11 +00:00
ryan
5bdf730916 Use is_admin. Props markjaquith. see #5487
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6510 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-28 01:04:30 +00:00
ryan
f3e07504ea Some cap checks for app from josephscott.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6508 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-28 00:47:45 +00:00
ryan
a16b46381d Don't show email.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6506 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-27 22:31:31 +00:00
ryan
abb6a65d21 Some xmlrpc cap checks from josephscott.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6504 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-27 22:30:18 +00:00
ryan
a12c5d8bde Add some sanitization
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6502 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-27 08:27:58 +00:00
ryan
c190d7805c Limit what getAuthors exposes. Props josephscott for the patch and xknown for the find. fixes #5534 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6499 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-26 19:56:24 +00:00
ryan
ddfc1fdc68 Limit post_password exposure. Props josephscott for the patch and xknown for the find. fixes #5535 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6497 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-26 19:51:01 +00:00
ryan
d03d5860b2 Don't do hierarchical if includes specified. Props Kafkaesqui. fixes #5373 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6492 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-24 21:24:26 +00:00
ryan
b6dd8ef09f beta3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6489 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-24 16:41:31 +00:00
ryan
cf2d1602b1 Escape pop3 error messages. Props xknown. fixes #5484 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6487 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-24 08:13:35 +00:00
ryan
a8e3706c40 Show DB errors if WP_DEBUG and if installing. see #5473
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6470 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-22 17:45:59 +00:00
ryan
c73526bcb8 beta2
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6466 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-22 08:05:11 +00:00
ryan
b6b234927b Don't block SET NAMES query. Props g30rg3x for the find. fixes #5503 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6463 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-22 06:24:10 +00:00
ryan
555a11e1a1 Forgot this. see #5495
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6461 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 19:55:21 +00:00
ryan
054d7612c8 Return after bailing since bail doesn't always die now. Don't do queries if constructor didn't complete. see #5495
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6458 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 19:28:21 +00:00
westi
4c2206cf4a Remove reference to get_caller as it doesn't exist in the 2.3 branch.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6455 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 16:41:26 +00:00
ryan
eac48efe48 Remove debug
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6453 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 06:12:56 +00:00
ryan
beb95394e3 2.3.2-beta
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6451 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 05:53:55 +00:00
ryan
5cd4fd2621 Be more selective in what we make clickable.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6450 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 03:14:38 +00:00
ryan
2734f1c677 Custom DB error page. fixes #5500 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6448 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 02:57:21 +00:00
ryan
927888f31f Check attachment link when deleting.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6445 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 01:40:00 +00:00
ryan
56d9722850 Set error if there is a problem connecting to the DB. Props skeltoac and Potter_System. fixes #5495 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6444 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 01:35:26 +00:00
ryan
1f2ef3e402 Suppress display of DB error messages by default. Props filosofo. fixes #5473 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6443 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 01:31:31 +00:00
ryan
a1adf4e349 Better is_admin() check from filosofo and pishmishy. fixes #5487 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6442 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-12-21 01:28:48 +00:00
ryan
9495e906d7 Skip sanitization altogether for raw context. Props Quandary. fixes #5325 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6322 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-11-07 06:28:46 +00:00
ryan
5f519c0d59 Ship it
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6292 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-26 16:08:17 +00:00
ryan
4a0f81aa39 Allow hypens in email addresses. Props Bobcat. fixes #5169 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6280 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-21 06:18:08 +00:00
ryan
29f61fb96e Getting ready for RC1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6279 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-20 19:22:40 +00:00
ryan
8ee19ffce1 Beta time
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6270 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-17 21:20:45 +00:00
ryan
f0802a73d9 Group results when selecting from post2cat and link2cat to avoid dupes. fixes #5223 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6268 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-17 21:09:02 +00:00
westi
9eec531922 Set the Sender on emails as well as from. Fixes #5007 for 2.3.1 props mattyrob
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6266 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-17 20:19:01 +00:00
markjaquith
30110216f2 Explicitly exclude previews from canonicalization. fixes #5203 for 2.3.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6264 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-17 20:15:18 +00:00
ryan
6ddf21d582 Prevent direct load of edit-post-rows.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6258 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-17 16:51:55 +00:00
ryan
0d612c6304 Add current_user_can() checks to link.php. Props DD32. fixes #4627 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6256 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-16 16:09:37 +00:00
ryan
d0314e0336 Use inner joins instead of left joins for taxonomy. Inner is faster. fixes #5179 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6253 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-15 20:14:56 +00:00
ryan
9c3151f5bb Use filename if no title. Props tellyworth. fixes #5080 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6234 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-12 22:15:32 +00:00
ryan
574d8bb7d3 Make sure initial query is saved when calling wp(). Props andy. fixes #5121 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6232 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-12 21:46:32 +00:00
ryan
52ea4aa917 Fix category assigment during link import. fixes #5107 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6231 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-12 21:24:08 +00:00
ryan
83f88345d4 Lose Convert All Categories button. It is confusing people. Props foolswisdom. fixes #5058 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6226 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-11 17:52:13 +00:00
markjaquith
801c850f18 check for a match against a lowercase host in wp_safe_redirect(). props BoltClock. fixes #5114 for 2.3.1
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6220 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-10 19:26:21 +00:00
ryan
cbe3e26f14 wlw manifest from josephscott. fixes #5023 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6211 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-09 21:09:49 +00:00
ryan
8422931569 Force prototype to load before jquery. Props mdawaffe. fixes #5067 for trunk
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6210 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-09 21:04:40 +00:00
ryan
521ee8a270 Apply filteres when returning empty array from get_pages. Props epper. fixes #4712 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6205 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-08 22:26:19 +00:00
westi
c12b431aa3 Ensure we have the default category id. Fixes #5150 for branches/2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6194 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-06 06:23:45 +00:00
ryan
3d8a0319cd Fix filesize warnings. fixes #5077 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6191 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-05 16:29:55 +00:00
ryan
349592dff0 Add some spacing. fixes #5137 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6190 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-05 16:28:42 +00:00
ryan
cc937bd40f New taxonomy intersection queries from xknown. fixes #5137 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6187 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-04 18:11:03 +00:00
ryan
77524aa0c4 Add page sanitization. Props xknown. fixes #5135 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6184 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-03 16:26:16 +00:00
ryan
208d86f6f8 Add sanitize_url. Don't convert ampersands in URLs when saving to DB. fixes #4411 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6183 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-10-03 16:17:54 +00:00
westi
76b2c8bef3 Update version for branches 2.3 fixes #5099
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6176 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-29 10:54:36 +00:00
ryan
d821c2d010 Spelling fix from zamoose. fixes #5095 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6175 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-28 17:37:36 +00:00
ryan
02bc8ab391 Gettext fix from nbachiyski. fixes #5086 for trunk
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-26 23:23:22 +00:00
ryan
9907c0290a Fix typo in category widget class name. Props joostdevalk. fixes #5079 for 2.3.
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6170 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-26 16:12:42 +00:00
ryan
d93fbd7e13 Set TEST_COOKIE for SITECOOKIEPATH. see #5076
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6167 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-25 23:17:30 +00:00
ryan
2b50d1f647 2.3
git-svn-id: http://svn.automattic.com/wordpress/branches/2.3@6166 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-25 00:37:21 +00:00
matt
15372a22b6 bumpity
git-svn-id: http://svn.automattic.com/wordpress/trunk@6164 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-25 00:34:43 +00:00
ryan
fd17fe449d Remove reference to importers and move the note about converting up to the Note section. fixes #5060
git-svn-id: http://svn.automattic.com/wordpress/trunk@6163 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-24 02:39:49 +00:00
ryan
6486085cf4 STP importer fixes from momo360modena. fixes #5059
git-svn-id: http://svn.automattic.com/wordpress/trunk@6162 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-24 01:57:55 +00:00
ryan
a48973211c Fix typo. fixes #5061
git-svn-id: http://svn.automattic.com/wordpress/trunk@6161 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-24 01:48:36 +00:00
ryan
8d349aa85c Add some filtering. Props jhodgdon. fixes #3595
git-svn-id: http://svn.automattic.com/wordpress/trunk@6160 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-23 19:25:15 +00:00
ryan
e76e370638 Fix term count padding.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6159 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-23 00:35:59 +00:00
markjaquith
5f4c602776 Cast to array in upgrade foreach(). props arnee. fixes #5047
git-svn-id: http://svn.automattic.com/wordpress/trunk@6158 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-22 23:14:38 +00:00
ryan
683db28b4c Term with slug that conflicts with existing term with different parent gets a new term entry with a unique slug. see #5034
git-svn-id: http://svn.automattic.com/wordpress/trunk@6157 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-22 18:01:08 +00:00
ryan
add4250c0d Revert part of [5263] to fix downloading in Safari. fixes #5040
git-svn-id: http://svn.automattic.com/wordpress/trunk@6156 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-22 16:50:35 +00:00
ryan
72e74add8d Don't reset parent when updating attachment. Props filosofo and michelwp. fixes #5010
git-svn-id: http://svn.automattic.com/wordpress/trunk@6155 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-22 16:30:40 +00:00
markjaquith
e56c1c2097 Bookend moderation links properly with right square bracket. highest omg bbq? Still, nice catch, ozh. fixes #5035
git-svn-id: http://svn.automattic.com/wordpress/trunk@6154 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-22 06:28:47 +00:00
markjaquith
0fb4233fdf Add tag_base to list of untrailingslashed options, and standardize the unslashing. Prevents /mytags//tagname/
git-svn-id: http://svn.automattic.com/wordpress/trunk@6153 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-22 06:11:48 +00:00
markjaquith
c005340430 Fix PATH_INFO first page paging link. fixes #5039
git-svn-id: http://svn.automattic.com/wordpress/trunk@6152 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-22 06:07:03 +00:00
markjaquith
d3d447d6e9 Core and plugin update checking: make sure fsockopen() is available and check file resources with is_resource() -- both to prevent feof() infinite loops. Props xknown. fixes #5037
git-svn-id: http://svn.automattic.com/wordpress/trunk@6151 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-22 00:08:50 +00:00
ryan
48813443db Revert [5969]. It can break permalinks. see #4739
git-svn-id: http://svn.automattic.com/wordpress/trunk@6150 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-21 19:36:12 +00:00
ryan
a366ee01ef Export and import of post tags. fixes #4682
git-svn-id: http://svn.automattic.com/wordpress/trunk@6149 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-21 18:34:28 +00:00
ryan
81482db30b Add checks for WP_Error. Props filosofo. see #4809
git-svn-id: http://svn.automattic.com/wordpress/trunk@6148 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-21 15:51:00 +00:00
ryan
2794b34f4a Add some filtering. Props jhodgdon. fixes #5030
git-svn-id: http://svn.automattic.com/wordpress/trunk@6147 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-21 15:04:13 +00:00
ryan
94349171ec Updated RTL CSS from mani_monaj. fixes #5025
git-svn-id: http://svn.automattic.com/wordpress/trunk@6146 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-20 23:36:45 +00:00
markjaquith
5177c0e5c7 Pass the attempted redirect host as a second parameter in the allowed_redirect_hosts filter. props mdawaffe.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6145 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-20 21:53:42 +00:00
ryan
40b7e58b82 Always remove index.php from request before contructing page links. fixes #5000
git-svn-id: http://svn.automattic.com/wordpress/trunk@6144 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-20 20:56:22 +00:00
markjaquith
3be5215e08 Remove trailing /index.php fixing from canonical.php ... Thanks chaoticmortalcom. fixes #5017
git-svn-id: http://svn.automattic.com/wordpress/trunk@6143 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-20 20:25:43 +00:00
ryan
4a03a94051 Bail if post is empty. Props mdawaffe. fixes #5019
git-svn-id: http://svn.automattic.com/wordpress/trunk@6142 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-20 18:25:14 +00:00
ryan
3542e01f19 Don't specialchars markup in term description. fixes #5021
git-svn-id: http://svn.automattic.com/wordpress/trunk@6141 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-20 18:23:33 +00:00
markjaquith
315a28c4b5 Remove non-functioning and misleading "Privacy" label on install. fixes #5012
git-svn-id: http://svn.automattic.com/wordpress/trunk@6140 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-19 21:45:23 +00:00
markjaquith
4f6b825b8b Make sure number_format_i18n() is available before calling it in timer_stop(). fixes #5016
git-svn-id: http://svn.automattic.com/wordpress/trunk@6139 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-19 20:48:34 +00:00
ryan
9eb6351d24 Extra protection in check_ajax_referer from mdawaffe. fixes #4939
git-svn-id: http://svn.automattic.com/wordpress/trunk@6138 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-19 19:32:34 +00:00
ryan
3ac0df5170 Fix includes for setup-config so that wp_die is defined. Props DD32. fixes #4997
git-svn-id: http://svn.automattic.com/wordpress/trunk@6137 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-19 04:27:56 +00:00
markjaquith
f25f33c4ba Put a filter in wp_safe_redirect() so people can whitelist other domains. see #4606
git-svn-id: http://svn.automattic.com/wordpress/trunk@6136 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-19 04:14:53 +00:00
ryan
192cb2dda5 RC1
git-svn-id: http://svn.automattic.com/wordpress/trunk@6135 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-19 04:14:27 +00:00
markjaquith
3c89a5c5d7 More robust wp_safe_redirect(). Introducing wp_sanitize_redirect() for use in wp_redirect() and wp_safe_redirect(). fixes #4606
git-svn-id: http://svn.automattic.com/wordpress/trunk@6134 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-19 03:47:37 +00:00
ryan
deb7701a85 Script loader cleanup from mdawaffe. fixes #5003
git-svn-id: http://svn.automattic.com/wordpress/trunk@6133 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-19 00:51:21 +00:00
ryan
1fa2f6df66 the_title_attribute(). Props Nazgul. fixes #4731
git-svn-id: http://svn.automattic.com/wordpress/trunk@6132 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-18 22:50:59 +00:00
markjaquith
dbd3d07274 Introducing wp_safe_redirect(). fixes #4606 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@6131 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-18 22:23:16 +00:00
ryan
bbe284b1d1 Fake being in the loop during export so that template tags work.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6130 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-18 18:01:47 +00:00
ryan
8eceaca349 Import tags. see #4682
git-svn-id: http://svn.automattic.com/wordpress/trunk@6129 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-18 17:50:21 +00:00
ryan
1d146b6153 Revert rename of more-link class. Props foolswisdom. fixes #4999
git-svn-id: http://svn.automattic.com/wordpress/trunk@6128 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-18 16:44:35 +00:00
ryan
39152aff25 Replace faulty regex. Props tenpura. fixes #4820
git-svn-id: http://svn.automattic.com/wordpress/trunk@6127 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-18 16:42:25 +00:00
ryan
c352f29893 Drop old tables. Props Nazgul. fixes #4995
git-svn-id: http://svn.automattic.com/wordpress/trunk@6126 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-18 16:37:21 +00:00
ryan
9bfccd6286 Add checks for WP_Error. Props filosofo. see #4809
git-svn-id: http://svn.automattic.com/wordpress/trunk@6125 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-18 16:32:22 +00:00
markjaquith
f30cd7acec Use maybe_unserialize() in get_usermeta(). Props filosofo. fixes #4993
git-svn-id: http://svn.automattic.com/wordpress/trunk@6124 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-17 19:19:55 +00:00
ryan
3ccba6071a Add tags-input class. Props momo360modena. fixes #4989
git-svn-id: http://svn.automattic.com/wordpress/trunk@6123 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-16 18:25:10 +00:00
ryan
6d53f77f31 gettext string. Props tai. fixes #4985
git-svn-id: http://svn.automattic.com/wordpress/trunk@6122 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-16 18:15:03 +00:00
ryan
76fee1da02 Don't lose tags when saving a post with attachments. Props filosofo. fixes #4532
git-svn-id: http://svn.automattic.com/wordpress/trunk@6121 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-16 02:36:23 +00:00
matt
1e127b413c Sometimes the $page global is set but it's just an integer, like 1, not an object which we should try to address and put in the cache. The page would work but we'd do spurious wp_cache_add
git-svn-id: http://svn.automattic.com/wordpress/trunk@6120 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-15 21:52:37 +00:00
matt
4216f95b64 Because we're modifying an existing cache variable we need to do a _set, not an _add, like we do other places we stick multiple cache values in a single var and key.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6119 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-15 21:50:53 +00:00
westi
e08024d86e Set svn:eol-style on a few files.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6118 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-15 17:35:32 +00:00
matt
8bfcfae2f8 Incorrect cache group was causing terms never to get cached.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6117 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-15 16:48:29 +00:00
markjaquith
d3db272764 Properly name files with unknown extensions (for people with unfiltered_upload cap, natch). props Nazgul. fixes #4974 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@6116 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-14 21:13:23 +00:00
markjaquith
8a6802ef00 Canonical fixes: Allow Pages to have /page/x/. Always trailing slash home when it is not paged. Strip extra trailing slashes off of /page/x///
git-svn-id: http://svn.automattic.com/wordpress/trunk@6115 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-14 19:41:23 +00:00
ryan
ec182d74a6 Deprecate fakeit arg. Props Nazgul. fixes #4439
git-svn-id: http://svn.automattic.com/wordpress/trunk@6114 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 21:27:26 +00:00
westi
b36db5619b Switch to is_callable instead of function_exists to allow for class based importer plugins. Fixes #4614
git-svn-id: http://svn.automattic.com/wordpress/trunk@6113 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 20:36:31 +00:00
markjaquith
3d3846ee8a Handle ports for canonical redirects. Props driverkt and westi. fixes #4970
git-svn-id: http://svn.automattic.com/wordpress/trunk@6112 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 19:24:05 +00:00
markjaquith
9ea001d704 Just some indent fixes in canonical.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@6111 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 19:12:53 +00:00
markjaquith
b36471d4cf Use wp_die() for WPDB bails. Send 500 response and no-cache headers so wp_die()s are not cached. props DD32. fixes #3471
git-svn-id: http://svn.automattic.com/wordpress/trunk@6110 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 06:23:23 +00:00
ryan
9e61170004 s/onChange/onchange/. Props grubgirl, Nazgul. fixes #4630
git-svn-id: http://svn.automattic.com/wordpress/trunk@6109 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 05:33:54 +00:00
markjaquith
3fc1d4f08d De-rabbit-hole compat.php
git-svn-id: http://svn.automattic.com/wordpress/trunk@6108 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 05:24:31 +00:00
markjaquith
76d0f29698 Check for apply_filters() in status_header() so that it can be called early on in load process
git-svn-id: http://svn.automattic.com/wordpress/trunk@6107 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 05:00:46 +00:00
ryan
103e793478 no follow callback
git-svn-id: http://svn.automattic.com/wordpress/trunk@6105 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 04:51:33 +00:00
markjaquith
95908afb48 Move $wp_header_to_desc array to get_status_header_desc() so that it can be called before vars.php is loaded.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6104 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 04:48:41 +00:00
markjaquith
1cae6a8691 Plugins are not loaded at this point, so the wp_header_to_desc_array filter is useless
git-svn-id: http://svn.automattic.com/wordpress/trunk@6103 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 04:13:32 +00:00
ryan
7bbd23f3c6 Don't strip slashes from pre. Props DelGurth and mdawaffe. fixes #2059
git-svn-id: http://svn.automattic.com/wordpress/trunk@6102 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 04:11:21 +00:00
markjaquith
b9dcf3c0c3 Don't set comment_author_email for pings in MT import. fixes #4461
git-svn-id: http://svn.automattic.com/wordpress/trunk@6101 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-13 04:10:36 +00:00
markjaquith
ec6416ec0b fix links generated by get_category_rss_link(). props gwagenknecht. fixes #4550 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@6100 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 22:24:28 +00:00
markjaquith
791aec14b2 Set $theme_loc correctly when ABSPATH is "/". Props arabek. fixes #4541
git-svn-id: http://svn.automattic.com/wordpress/trunk@6099 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 22:19:26 +00:00
markjaquith
0880ca8693 Set widget classname when passed string, object/method, object-reference/method. fixes #4910
git-svn-id: http://svn.automattic.com/wordpress/trunk@6098 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 20:48:21 +00:00
markjaquith
1f3ce09d52 Ignore HOST capitalization differences for canonical redirects. props jbctech. fixes #4773
git-svn-id: http://svn.automattic.com/wordpress/trunk@6097 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 20:44:41 +00:00
westi
d1acf020b5 Allow plugins to sanitize there own options easily.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6096 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 18:15:29 +00:00
westi
223182463d Ensure the parentlink is trailingslashed when building the url - don't trim / off the front. Fixes #2801 props Libertus
git-svn-id: http://svn.automattic.com/wordpress/trunk@6095 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 17:46:13 +00:00
westi
2f44508e9b Consolidate shared code in get_userdata and get_userdatabylogin. Fixes #2134 props johnjosephbachir
git-svn-id: http://svn.automattic.com/wordpress/trunk@6094 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 17:15:17 +00:00
westi
cf26b9d049 Make the atom feed updated field actually tell you when the post was updated. Fixes #4816 props lapcat.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6093 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 16:26:39 +00:00
ryan
60bec14a4e More phpdoc for taxonomy from darkdragon. see #4742
git-svn-id: http://svn.automattic.com/wordpress/trunk@6092 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 02:56:44 +00:00
ryan
48b96208e2 Add echo or return option to wp_list_categories. Props Otto42. fixes #4182
git-svn-id: http://svn.automattic.com/wordpress/trunk@6091 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 02:53:27 +00:00
ryan
159ea09341 Resurrect admin-functions.php and upgrade-functions.php for back compat. fixes #4956
git-svn-id: http://svn.automattic.com/wordpress/trunk@6090 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 02:36:04 +00:00
ryan
8e5302b57f Add cat_row filter. Props johnbillion. fixes #4926
git-svn-id: http://svn.automattic.com/wordpress/trunk@6089 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 01:08:19 +00:00
ryan
a1046188b8 Deprecate old links functions. Props rob1n. fixes #3413
git-svn-id: http://svn.automattic.com/wordpress/trunk@6088 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 01:01:48 +00:00
ryan
98d52ab1f2 Resurrect count padding.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6087 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-12 00:49:16 +00:00
ryan
c06e70516a Remove duplicate code from wp_insert_attachment(). Update to use sanitize_post. Props Otto42. fixes #4946
git-svn-id: http://svn.automattic.com/wordpress/trunk@6086 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 22:27:36 +00:00
markjaquith
4bc7869c84 Always trailingslash the "home" URL. Protect against chained redirects. Thanks wantmoore. fixes #4773
git-svn-id: http://svn.automattic.com/wordpress/trunk@6085 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 21:21:40 +00:00
westi
ca4ddf50f8 Allow the wp_mail filter to change the passed data. Fixes #4511 props ryan.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6084 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 20:49:28 +00:00
westi
446c704af5 Ensure (next|previous)_post_link always have some content even when the post title is blank. Fixes #1835, props johnbillion
git-svn-id: http://svn.automattic.com/wordpress/trunk@6082 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 20:05:52 +00:00
ryan
e3db8369d0 Remove reference to the_quicktags. Props Nazgul. fixes #4925
git-svn-id: http://svn.automattic.com/wordpress/trunk@6081 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 19:56:40 +00:00
ryan
6d983b5bb5 If a category is already a tag, don't put it in the list of categories to convert. fixes #4955
git-svn-id: http://svn.automattic.com/wordpress/trunk@6080 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 19:54:19 +00:00
ryan
33953bc337 Retain default category when converting categories to tags. fixes #4845
git-svn-id: http://svn.automattic.com/wordpress/trunk@6079 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 19:33:35 +00:00
westi
c3155a54b2 Fix tab order when edit comments. Props Nazgul fixes #4726
git-svn-id: http://svn.automattic.com/wordpress/trunk@6078 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 19:08:26 +00:00
ryan
6df40aea78 Use setup_postdata instead of deprecated start_wp. fixes #3188
git-svn-id: http://svn.automattic.com/wordpress/trunk@6077 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 18:56:16 +00:00
ryan
87fcc363c1 Add tags to export. see #4682
git-svn-id: http://svn.automattic.com/wordpress/trunk@6076 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 18:35:21 +00:00
ryan
c8077169aa Add user_nicename key to users table. fixes #4937
git-svn-id: http://svn.automattic.com/wordpress/trunk@6075 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 18:13:56 +00:00
ryan
368b18d383 Set tag_id to first tag in multi tag queries. Have single_cat_title() fallback to single_tag_title() if is_tag so that existing category templates will work with tags. fixes #4506
git-svn-id: http://svn.automattic.com/wordpress/trunk@6074 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 18:06:52 +00:00
ryan
9fbbf54462 beta3
git-svn-id: http://svn.automattic.com/wordpress/trunk@6073 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-11 01:43:49 +00:00
westi
a4a609093e Add importer for Bunny's Technorati Tags plugin. Fixes #4931
git-svn-id: http://svn.automattic.com/wordpress/trunk@6072 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-10 20:30:55 +00:00
ryan
d84f590203 References don't work inside foreach in php4. Props mdawaffe.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6071 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-10 19:37:00 +00:00
markjaquith
ba6e8f4a92 Actually, we always need to URLencode square brackets... or wp_redirect() will strip them out. see #4935. see #4878
git-svn-id: http://svn.automattic.com/wordpress/trunk@6070 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-10 15:53:34 +00:00
markjaquith
51299852ef Forgot to use $lsb and $rsb in [6064]. Props mdawaffe. see #4935. see #4878
git-svn-id: http://svn.automattic.com/wordpress/trunk@6069 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-10 15:34:13 +00:00
markjaquith
d59743c972 Strip index.php/ before adding it in get_pagenum_link(). Insert index.php/ for the first page when blog is on a page. fixes #4945
git-svn-id: http://svn.automattic.com/wordpress/trunk@6068 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-10 15:06:21 +00:00
markjaquith
7931d5eca5 Revert [6047] -- we await a better solution. see #4858
git-svn-id: http://svn.automattic.com/wordpress/trunk@6065 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-08 17:20:35 +00:00
markjaquith
79c4324e01 Only urlencode previously existing values in add_query_arg() (more backwards compatible). fixes #4935. see #4084. see #4878
git-svn-id: http://svn.automattic.com/wordpress/trunk@6064 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-08 14:27:24 +00:00
markjaquith
23b1e871a1 Don't show a plugin author byline if no author name has been specified. Props Viper007Bond. fixes #4927
git-svn-id: http://svn.automattic.com/wordpress/trunk@6060 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-07 18:53:56 +00:00
markjaquith
229a52b3a1 focus the cursor when writing a new post. Props foolswisdom and Nazgul. fixes #3936
git-svn-id: http://svn.automattic.com/wordpress/trunk@6059 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-07 02:56:05 +00:00
markjaquith
6a1c63e2f7 Correctly set REQUEST_URI for IIS setups that put that info into SCRIPT_NAME as well as PATH_INFO. props snakefoot and Nazgul. fixes #4853
git-svn-id: http://svn.automattic.com/wordpress/trunk@6058 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-07 02:43:00 +00:00
markjaquith
ead6bfebf7 Try more ways of getting wp-admin URL in wp_die(). props Nazgul. fixes #4006
git-svn-id: http://svn.automattic.com/wordpress/trunk@6057 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-07 02:25:54 +00:00
markjaquith
6ecaec3d1f Skip deprecated option replacement in wp-mail.php. props Nazgul. fixes #4924
git-svn-id: http://svn.automattic.com/wordpress/trunk@6056 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-07 02:07:13 +00:00
markjaquith
95b86a22f5 Don't re-add the deprecated new_users_can_blog option. Props Nazgul. fixes #4923
git-svn-id: http://svn.automattic.com/wordpress/trunk@6055 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-07 01:44:24 +00:00
markjaquith
1ba81b4f02 Properly construct widget classname if second param is an array. Props f00f. fixes #4910
git-svn-id: http://svn.automattic.com/wordpress/trunk@6054 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-06 23:27:16 +00:00
markjaquith
eb2d6cea06 Upgrade the options table before calling populate_options() to avoid errors. Props Nazgul. fixes #4921
git-svn-id: http://svn.automattic.com/wordpress/trunk@6053 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-06 23:08:25 +00:00
markjaquith
445d7b077f Set guid when creating first post during install. Props Nazgul and rubys. fixes #4894
git-svn-id: http://svn.automattic.com/wordpress/trunk@6052 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-06 23:01:30 +00:00
ryan
8bbd1008f1 Fix term count calculation during upgrade. fixes #4922
git-svn-id: http://svn.automattic.com/wordpress/trunk@6051 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-06 22:56:03 +00:00
ryan
8d33c59576 Case terms to int so we don't try to create new terms with the term ids as the names. fixes #4920
git-svn-id: http://svn.automattic.com/wordpress/trunk@6050 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-06 22:07:23 +00:00
markjaquith
f851dc2257 Always put the author of the post in the authors dropdown, even if they have since been demoted to a role without post-saving capabilities. fixes #4458
git-svn-id: http://svn.automattic.com/wordpress/trunk@6049 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-06 04:46:56 +00:00
ryan
a428494291 Resurrect hide_empty
git-svn-id: http://svn.automattic.com/wordpress/trunk@6048 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-06 04:34:06 +00:00
markjaquith
94973a275b Default to showing published posts on Manage Posts page. fixes #4858
git-svn-id: http://svn.automattic.com/wordpress/trunk@6047 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-06 04:33:35 +00:00
ryan
a40345190e Add missing instance var. Props filosofo. see #4806
git-svn-id: http://svn.automattic.com/wordpress/trunk@6046 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 23:17:41 +00:00
ryan
827ed61968 Remove redundant declaration ofedInsertContent. Props Viper007Bond. fixes #4902
git-svn-id: http://svn.automattic.com/wordpress/trunk@6045 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 23:14:39 +00:00
ryan
b5a2f7431e Update pop3 class to latest from squirrelmail. Props westi. see #4337
git-svn-id: http://svn.automattic.com/wordpress/trunk@6044 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 22:55:38 +00:00
ryan
2ee9183f8a Fix comment orphaning in blogger importer. Props andy. fixes #4406
git-svn-id: http://svn.automattic.com/wordpress/trunk@6043 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 22:48:58 +00:00
ryan
7bdf6d6c6e Remove redundant url filter. fixes #4663
git-svn-id: http://svn.automattic.com/wordpress/trunk@6042 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 22:44:58 +00:00
markjaquith
bdd9e5e1e4 Use post_date (not post_modified) to check for unpublished posts when showing post listings in admin. fixes #4914
git-svn-id: http://svn.automattic.com/wordpress/trunk@6041 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 22:17:59 +00:00
ryan
c5d33cbebd Basic tag cloud widget. Props Stargazer. fixes #4130
git-svn-id: http://svn.automattic.com/wordpress/trunk@6040 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 21:50:52 +00:00
markjaquith
98a92950a3 Deprecate option_can_override, option_type, option_width, option_height, option_description, option_admin_level from options table. Props Nazgul. fixes #4390
git-svn-id: http://svn.automattic.com/wordpress/trunk@6039 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 19:20:53 +00:00
markjaquith
c8215773ce Fix link to others' drafts from nag. fixes #4912
git-svn-id: http://svn.automattic.com/wordpress/trunk@6038 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 18:40:40 +00:00
markjaquith
f396867f60 Show "Post #N" for posts without a title in the nag. Props Viper007Bond. fixes #4849
git-svn-id: http://svn.automattic.com/wordpress/trunk@6037 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 18:33:45 +00:00
ryan
1760555e8b Don't skip sanitization if 404. Add wp_title display filters.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6035 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-05 03:11:04 +00:00
ryan
64382fbdc9 mprove desriptions for I18N strings. Props nbachiyski. fixes #4906
git-svn-id: http://svn.automattic.com/wordpress/trunk@6034 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-04 22:50:31 +00:00
westi
d7c37c0c02 Improve desriptions for I18N strings. Fixes #4906 props nbachiyski
git-svn-id: http://svn.automattic.com/wordpress/trunk@6033 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-04 20:56:08 +00:00
ryan
40527f6ac2 APP taxonomy fixes from rubys. fixes #4904
git-svn-id: http://svn.automattic.com/wordpress/trunk@6032 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-04 17:09:57 +00:00
markjaquith
1e8e248b97 Actually, let's just drop that slash check altogether. Equals sign is the best indicator. fixes #4903 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@6031 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-04 05:26:18 +00:00
markjaquith
ab71cc4a4f Require a slash AND the absence of an equals sign to designate the passed $uri as a base (without a query string). fixes #4903 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@6030 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-04 05:21:54 +00:00
markjaquith
5913b16065 Better $pagenow determination. fixes #4748
git-svn-id: http://svn.automattic.com/wordpress/trunk@6029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-04 03:21:04 +00:00
markjaquith
2f0e0c8760 Clean up Jerome's Keywords importer
git-svn-id: http://svn.automattic.com/wordpress/trunk@6028 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-04 02:14:34 +00:00
ryan
a4f8a52b4e beta2
git-svn-id: http://svn.automattic.com/wordpress/trunk@6027 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-04 01:01:01 +00:00
ryan
321c310717 Remove trailing whitespace
git-svn-id: http://svn.automattic.com/wordpress/trunk@6026 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 23:32:58 +00:00
ryan
87c4f3a17f Strip lines that contain only whitespace down to newlines.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6025 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 23:19:20 +00:00
westi
d38d018ce9 Fix admin css link when installing in a directory. Fixes #4877
git-svn-id: http://svn.automattic.com/wordpress/trunk@6024 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 20:20:18 +00:00
ryan
8c8c1cb4f7 Remove unused var. Props johnjosephbachir. fixes #4764
git-svn-id: http://svn.automattic.com/wordpress/trunk@6023 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 20:06:27 +00:00
markjaquith
e468628526 Check for wp-admin case-insensitively in is_admin()
git-svn-id: http://svn.automattic.com/wordpress/trunk@6022 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 19:56:09 +00:00
ryan
58c7ce91e3 Tag unions and intersections. fixes #4895
git-svn-id: http://svn.automattic.com/wordpress/trunk@6021 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 18:14:05 +00:00
markjaquith
6cfdd1934b trim() plugin URL before deciding whether to show a link. props Gary King. fixes #4633
git-svn-id: http://svn.automattic.com/wordpress/trunk@6020 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 16:55:10 +00:00
westi
03d6c4d0ba Change queries in get_{next|previous}_post so that plugins can INNER JOIN on other tables with an ID column. Fixes #4822 props Cimmo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6019 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 16:46:31 +00:00
westi
36851becbd Switch to require_once for wp-includes/db.php when it exists. Fixes #4597 props intoxination.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6017 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 16:17:10 +00:00
westi
3235902cff urlencode the theme name and stylesheet name in the activate links so as to support directories with + in the name. Fixes #3279.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6016 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 16:11:10 +00:00
ryan
4726644b8b Don't strip @ from url. Fix scheme prefixing. Props pishmishy. fixes #3299
git-svn-id: http://svn.automattic.com/wordpress/trunk@6015 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 15:59:12 +00:00
ryan
97918578a4 Remove category parent dropdown from edit link category form since link categories are non-hierarchical. fixes #4896
git-svn-id: http://svn.automattic.com/wordpress/trunk@6013 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 14:49:02 +00:00
ryan
986715f5b6 tag_id not tag__id. see #4895
git-svn-id: http://svn.automattic.com/wordpress/trunk@6012 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 03:26:57 +00:00
ryan
f87baf5b1f tag__in, tag__not_in, and tag_and queries. fixes #4895
git-svn-id: http://svn.automattic.com/wordpress/trunk@6011 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-03 03:24:23 +00:00
markjaquith
d723ff00d8 Escape text titles in AtomParser. Props Sam Ruby. fixes #4892
git-svn-id: http://svn.automattic.com/wordpress/trunk@6010 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-02 20:42:00 +00:00
westi
2662be2098 Inform the user when cookies are disabled and login fails. Fixed #2039 props tellyworth.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6009 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-02 17:20:37 +00:00
markjaquith
7e45ed193a Eliminate double urlencode()ing in add_query_arg(). Move &-to-& conversion to wp_nonce_url(). fixes #4884
git-svn-id: http://svn.automattic.com/wordpress/trunk@6008 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-02 05:49:54 +00:00
markjaquith
e26363a568 Correct variable name in clean_object_term_cache(). props arnee. fixes #4888
git-svn-id: http://svn.automattic.com/wordpress/trunk@6007 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-02 05:08:48 +00:00
markjaquith
747bd2cf21 urlencode() redirect_to param in login links for both themes. fixes #4873 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@6006 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-01 23:05:11 +00:00
markjaquith
d60384b385 Turn & to & in add_query_arg(). fixes #4878
git-svn-id: http://svn.automattic.com/wordpress/trunk@6005 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-01 22:12:17 +00:00
ryan
b04e8d39ee AtomPub fixes from Pete Lacey. fixes #4887
git-svn-id: http://svn.automattic.com/wordpress/trunk@6004 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-01 19:32:54 +00:00
westi
1290e8caed Tell the user what number comment they are editing. Fixes #4524 props momo360modena and Nazgul.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6003 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-01 16:33:55 +00:00
westi
7b9174524a Enable full translation of the Tags description. Fixes #4885 props nbachiyski.
git-svn-id: http://svn.automattic.com/wordpress/trunk@6002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-01 12:06:47 +00:00
westi
7612bc20b1 Fix RDF feeds to not contain invalid tag "category". Fixed #4643 props kztk
git-svn-id: http://svn.automattic.com/wordpress/trunk@6001 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-01 08:33:08 +00:00
ryan
a43e37b8a1 get_tag() and get_tag_feed_link()
git-svn-id: http://svn.automattic.com/wordpress/trunk@6000 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-01 04:43:27 +00:00
markjaquith
0906863d2c Preserve query string arrays in add_query_arg(). fixes #4878 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5999 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-09-01 03:41:50 +00:00
ryan
93840b1632 Add some filtering. Props jhodgdon. see #4516
git-svn-id: http://svn.automattic.com/wordpress/trunk@5998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-31 23:55:56 +00:00
ryan
277e5aa914 Don't use unavailable func. Props filosofo. fixes #4881
git-svn-id: http://svn.automattic.com/wordpress/trunk@5997 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-31 22:36:16 +00:00
markjaquith
c8d7b27ed2 Use single_tag_title() on tag pages in the Default theme. Props Andy. fixes #4876
git-svn-id: http://svn.automattic.com/wordpress/trunk@5996 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 19:54:46 +00:00
markjaquith
a2cac0cf09 Kill %tag%-based permalinks. fixes #4875
git-svn-id: http://svn.automattic.com/wordpress/trunk@5995 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 19:42:34 +00:00
markjaquith
0219651b96 Check manage_options for upgrade notification. Tailor message accordingly. Props johnbillion. fixes #4869
git-svn-id: http://svn.automattic.com/wordpress/trunk@5994 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 18:21:03 +00:00
markjaquith
bacbca924f 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/trunk@5993 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 18:13:48 +00:00
markjaquith
f0b39c1b5c Better %0d/%0a sanitization for wp_redirect() from hakre. fixes #4819 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5990 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 17:46:09 +00:00
westi
f9e28418ce Ensure we always show the current version in the footer if the last update check failed. Fixes #4867 props Viper007Bond
git-svn-id: http://svn.automattic.com/wordpress/trunk@5987 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 16:25:50 +00:00
ryan
5a997f588b Escape special chars in regex. Props eightize and Otto42. fixes #4873
git-svn-id: http://svn.automattic.com/wordpress/trunk@5986 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 15:42:26 +00:00
markjaquith
88f73f7f41 Use "update" language to refer to new versions. Props johnbillion. fixes #4868
git-svn-id: http://svn.automattic.com/wordpress/trunk@5985 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 14:41:03 +00:00
ryan
8790a28916 Importer for Jerome's Keywords. fixes #4346
git-svn-id: http://svn.automattic.com/wordpress/trunk@5984 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 01:39:46 +00:00
ryan
56dd1d2033 Make sure term cache is cleared when updating term counts.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5983 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-30 00:34:55 +00:00
ryan
b92227412a Trackback fxn cleanup from Otto42. fixes #4800
git-svn-id: http://svn.automattic.com/wordpress/trunk@5982 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 23:08:44 +00:00
ryan
560b73b9e3 mt_keywords support. Props westi and josephscott. fixes #900
git-svn-id: http://svn.automattic.com/wordpress/trunk@5981 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 23:01:48 +00:00
ryan
aac14d9531 Don't convert category to tag if tag of the same name already exists. fixes #4864
git-svn-id: http://svn.automattic.com/wordpress/trunk@5980 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 22:47:07 +00:00
ryan
395ee1acad Include tags in feeds. fixes #4537
git-svn-id: http://svn.automattic.com/wordpress/trunk@5979 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 21:10:20 +00:00
markjaquith
816f89fb03 More cautious canonical-ness. Exclude IIS and POSTs. Better paging handling. Still a work in progress! see #4773
git-svn-id: http://svn.automattic.com/wordpress/trunk@5978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 21:06:51 +00:00
ryan
440c4dedd6 Simple Tagging importer. Props bloertscher and joostdevalk. fixes #4247
git-svn-id: http://svn.automattic.com/wordpress/trunk@5977 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 19:55:39 +00:00
ryan
d330ec7e34 delete_post_meta_by_key() from Mark Jaquith. fixes #4178
git-svn-id: http://svn.automattic.com/wordpress/trunk@5976 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 19:12:20 +00:00
ryan
0f6dfb8b1f Remove hardcoded clean_url on comment_author_url since it is handled on the pre_comment_author_url filter. Props wnorris. fixes #4120
git-svn-id: http://svn.automattic.com/wordpress/trunk@5975 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 19:04:14 +00:00
markjaquith
9e48d38752 Fix paging and preview links for canonical stuff. see #4773. fixes #4862
git-svn-id: http://svn.automattic.com/wordpress/trunk@5974 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 18:10:11 +00:00
ryan
ef5caabe37 Limit recent entries query to published posts. fixes #4786
git-svn-id: http://svn.automattic.com/wordpress/trunk@5973 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 18:02:19 +00:00
ryan
6a0629e717 Take port into consideration when spawning cron. Props bchecketts. fixes #4782
git-svn-id: http://svn.automattic.com/wordpress/trunk@5972 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 17:57:06 +00:00
westi
ad90a8f560 CSS fix for IE7 so that the login button is in the box. Fixed #4828 props intoxination.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5971 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 17:39:41 +00:00
westi
51bde8f657 Remove dead code. Fixed #4791 props filosofo
git-svn-id: http://svn.automattic.com/wordpress/trunk@5970 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 17:36:46 +00:00
westi
5691b03700 Add utf8->ascii mappings for icelandic letters. Fixes #4739 props einare
git-svn-id: http://svn.automattic.com/wordpress/trunk@5969 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 17:34:15 +00:00
westi
36ec45d7ff Fix xhtml output for RSS widget when feed contains no items. Fixed #4671 props brettz95 and Nazgul
git-svn-id: http://svn.automattic.com/wordpress/trunk@5968 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 17:28:07 +00:00
ryan
f78592cf01 Redirect back to post-new.php when doing a save and continue with empty post fields. fixes #4855
git-svn-id: http://svn.automattic.com/wordpress/trunk@5967 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-29 17:24:42 +00:00
ryan
0cb5968afc Fix blogger auth. Props andy. fixes #4847
git-svn-id: http://svn.automattic.com/wordpress/trunk@5966 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 23:31:51 +00:00
ryan
014915caea Make css cache busting and rtl inclusion uniform across admin. Props mdawaffe. fixes #4830
git-svn-id: http://svn.automattic.com/wordpress/trunk@5965 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 23:23:38 +00:00
ryan
c630733e1d Take post_max_size into account when determining the upload limit. Props mdawaffe. fixes #4240
git-svn-id: http://svn.automattic.com/wordpress/trunk@5964 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 23:13:16 +00:00
ryan
6050182157 Reorder post/page status dropdowns. Props mdawaffe. fixes #4848
git-svn-id: http://svn.automattic.com/wordpress/trunk@5963 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 21:04:17 +00:00
ryan
82705c845d Remove extraneous tag. Props nbachiyski. fixes #4838
git-svn-id: http://svn.automattic.com/wordpress/trunk@5962 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 20:25:57 +00:00
westi
67d21286a8 Ensure we flush the recent entries widget cache after a post has been deleted. Fixes #4825 props donncha
git-svn-id: http://svn.automattic.com/wordpress/trunk@5960 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 20:12:43 +00:00
westi
9b742b7959 Pass through the function argument so rules can actually be added to the top of the stack, props santos
git-svn-id: http://svn.automattic.com/wordpress/trunk@5959 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 19:55:11 +00:00
ryan
3fe16de587 explicitly check next() against FALSE in do_action_ref_array(). Props Denis-de-Bernardy, Otto42, Nazgul, santosj, DD32. fixes #4625 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5958 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 19:06:56 +00:00
ryan
c0287d8f23 Update readme version to 2.3. Props Nazgul. fixes #4840
git-svn-id: http://svn.automattic.com/wordpress/trunk@5957 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 19:01:20 +00:00
ryan
666bfd2d91 Don't return permalink for non-existent post. Props Viper007Bond. fixes #4834
git-svn-id: http://svn.automattic.com/wordpress/trunk@5956 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 18:58:54 +00:00
ryan
5fc07fcd15 Gettext fixes from nbachiyski. fixes #4835
git-svn-id: http://svn.automattic.com/wordpress/trunk@5955 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 18:57:55 +00:00
ryan
501833e41e beta1
git-svn-id: http://svn.automattic.com/wordpress/trunk@5954 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 00:18:36 +00:00
ryan
3d9dce3497 Update dotclear and textpattern importers to use taxonomy
git-svn-id: http://svn.automattic.com/wordpress/trunk@5953 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-28 00:08:58 +00:00
ryan
788512c881 Add clean_url filter. see #4570
git-svn-id: http://svn.automattic.com/wordpress/trunk@5952 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-27 23:31:09 +00:00
ryan
f8d09ad828 Bring in atomlib 0.4 and update wp-app to use it. Props eliast and placey. fixes #4191
git-svn-id: http://svn.automattic.com/wordpress/trunk@5951 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-27 19:52:58 +00:00
ryan
7aa077d6a0 Revert get_col behavior. Props mdawaffe. fixes #4826
git-svn-id: http://svn.automattic.com/wordpress/trunk@5950 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-27 19:44:53 +00:00
matt
27f66be1cd Minor styling change for update notification.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5949 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-27 18:52:50 +00:00
ryan
5217cd1838 Trim before comparison. Props foolswisdom and Nazgul. fixes #4815
git-svn-id: http://svn.automattic.com/wordpress/trunk@5948 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-27 15:17:00 +00:00
matt
d9793c3e8d Make the entire comment flood check pluggable as it can cause load problems on large sites.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-27 06:34:18 +00:00
ryan
c89928a4c8 Escape parsed fields.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5946 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-26 22:13:54 +00:00
ryan
e80177b92b Display tag name, not slug, in title. Props ionfish. fixes #4812
git-svn-id: http://svn.automattic.com/wordpress/trunk@5945 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-26 17:18:00 +00:00
ryan
86932908e3 Add missing global and remove unused var. Props JeremyVisser. fixes #4818
git-svn-id: http://svn.automattic.com/wordpress/trunk@5944 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-26 17:12:31 +00:00
ryan
62f60a666d Fix typo
git-svn-id: http://svn.automattic.com/wordpress/trunk@5943 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-25 18:41:12 +00:00
matt
77c64399d0 As the developer links are out of date and just used to attack us now, updating the blogroll to include links to WP resources.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5942 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-25 18:06:22 +00:00
ryan
a03073ef0a Add nonces to tag importers. Props xknown. fixes #4811
git-svn-id: http://svn.automattic.com/wordpress/trunk@5941 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-25 17:07:10 +00:00
ryan
a5fbb3f85f Fix blogroll upgrades from 2.0. fixes #4813
git-svn-id: http://svn.automattic.com/wordpress/trunk@5940 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-25 16:57:56 +00:00
ryan
4340c63de1 Update to jquery 1.1.4. Props mdawaffe. fixes #4810
git-svn-id: http://svn.automattic.com/wordpress/trunk@5939 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-24 21:46:03 +00:00
ryan
51b6d6f6ea Don't pass cat as ref. Fix some term sanitization. fixes #4702
git-svn-id: http://svn.automattic.com/wordpress/trunk@5938 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-24 18:41:01 +00:00
ryan
ccdf20ef62 Update WP importer to use taxonomy and query cat based on slug. see #4613
git-svn-id: http://svn.automattic.com/wordpress/trunk@5937 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-24 14:44:26 +00:00
ryan
c8723a4f3f Fix how wp_filter array is keyed. Props santosj/darkdragon. fixes #3875 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5936 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-24 14:18:08 +00:00
ryan
6db72e6e43 Allow plugins to register importers. Props westi and Nazgul. fixes #4614
git-svn-id: http://svn.automattic.com/wordpress/trunk@5935 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 23:09:03 +00:00
ryan
7c0ecf6202 jquery for widgets admin. Props filosofo. see #3824
git-svn-id: http://svn.automattic.com/wordpress/trunk@5934 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 22:34:15 +00:00
ryan
f3ed626d52 eol-style
git-svn-id: http://svn.automattic.com/wordpress/trunk@5933 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 22:19:53 +00:00
westi
fcd0a36f09 Enable plugins to override the cockney replace array, fixes #4804 props andihit
git-svn-id: http://svn.automattic.com/wordpress/trunk@5930 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 21:02:31 +00:00
westi
31992bac0d Allow upload of all Open Office document types props nbachiyski fixes #4615
git-svn-id: http://svn.automattic.com/wordpress/trunk@5929 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 18:28:14 +00:00
westi
8047b60291 Give the view links in post/page listings the view class rather than the edit class, fixes #4058 props rgovostes
git-svn-id: http://svn.automattic.com/wordpress/trunk@5927 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 18:04:15 +00:00
ryan
ac46bc16c7 Don't allow private query vars in url_to_postid
git-svn-id: http://svn.automattic.com/wordpress/trunk@5925 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 16:09:37 +00:00
westi
07ff444b6f Fix plugin basename for Windows servers. Fixes #3002 props Ozh
git-svn-id: http://svn.automattic.com/wordpress/trunk@5924 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 16:07:21 +00:00
ryan
c6d79a79b0 Don't die with type
git-svn-id: http://svn.automattic.com/wordpress/trunk@5923 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 15:53:25 +00:00
markjaquith
68501fd51b No canonical-ness for wp-admin. see #4773
git-svn-id: http://svn.automattic.com/wordpress/trunk@5921 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-23 03:40:51 +00:00
ryan
276b690c7e Add cat-item-id and page-item-id classes. Props Otto42. fixes #4703
git-svn-id: http://svn.automattic.com/wordpress/trunk@5920 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-22 22:59:45 +00:00
ryan
f65528ed41 Fix get_post_comments_feed_link() to work with pages. fixes #4637
git-svn-id: http://svn.automattic.com/wordpress/trunk@5919 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-22 22:42:57 +00:00
ryan
200f0b020f Add get_lastpostdate and 'get_lastpostdatemodified filters. Props rob1n. fixes #4801
git-svn-id: http://svn.automattic.com/wordpress/trunk@5918 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-22 22:30:06 +00:00
ryan
02df4f722c Add class to tag cloud links. Props filosofo. fixes #4798
git-svn-id: http://svn.automattic.com/wordpress/trunk@5917 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-22 22:28:00 +00:00
ryan
cbad9a2993 posts_results and posts_selection hooks. fixes #4799
git-svn-id: http://svn.automattic.com/wordpress/trunk@5916 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-22 18:03:26 +00:00
ryan
1a2aa3fcc3 Sanitize a few options
git-svn-id: http://svn.automattic.com/wordpress/trunk@5914 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-22 17:57:36 +00:00
matt
27657cd8cf First pass plugin update notification, see #4795
git-svn-id: http://svn.automattic.com/wordpress/trunk@5913 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-22 10:48:48 +00:00
ryan
851ce58496 Some tag api additions from andy.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5912 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-21 18:39:45 +00:00
ryan
763f8b8821 commentsrss2_head action from joostdevalk. fixes #4694
git-svn-id: http://svn.automattic.com/wordpress/trunk@5911 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-21 18:32:39 +00:00
ryan
9b395107f4 Deprecate permalink_single_rss(). Add the_permalink_rss() with accompanying filter. Props joostdevalk and Otto42. fixes #4654
git-svn-id: http://svn.automattic.com/wordpress/trunk@5910 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-21 18:27:45 +00:00
ryan
d3754cc69b i18n fix from momo360modena and nbachiyski. fixes #4523
git-svn-id: http://svn.automattic.com/wordpress/trunk@5909 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-21 00:35:55 +00:00
ryan
eb30d086be Really make slugs unique during upgrade. fixes #4776
git-svn-id: http://svn.automattic.com/wordpress/trunk@5908 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-21 00:11:46 +00:00
ryan
567bc9d3f1 wp_reset_query() from mdawaffe. fixes #4741
git-svn-id: http://svn.automattic.com/wordpress/trunk@5907 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-20 22:55:43 +00:00
ryan
ba0f401390 bookmark sanitizer funcs and default filter cleanup. see #4546
git-svn-id: http://svn.automattic.com/wordpress/trunk@5906 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-20 22:50:04 +00:00
matt
7bacf89b7e Better styling for update notice, fixes #1476
git-svn-id: http://svn.automattic.com/wordpress/trunk@5904 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-20 07:01:15 +00:00
matt
f273f7a17b Change IPs to link to local search instead of cryptic ARIN info
git-svn-id: http://svn.automattic.com/wordpress/trunk@5903 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-20 07:00:29 +00:00
ryan
645bbfa324 Formatting cleanups from johnjosephbachir. fixes #4775
git-svn-id: http://svn.automattic.com/wordpress/trunk@5901 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-19 22:25:44 +00:00
matt
04558f4424 Don't run if installing, fixes $4772
git-svn-id: http://svn.automattic.com/wordpress/trunk@5900 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-19 04:27:04 +00:00
ryan
b4cd7ba224 Add back compat to get_the_category. Props nbachiyski. fixes #4771
git-svn-id: http://svn.automattic.com/wordpress/trunk@5899 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-18 17:21:51 +00:00
ryan
4f183b4fe7 mt_allow_pings fix. Props Joseph Scott and Allan Odgaard. fixes #4770 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5898 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 23:32:49 +00:00
ryan
8d75bcef27 Revert accidental commit.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5897 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 21:23:39 +00:00
ryan
0458d919c0 First cut of taxonomy API phpdoc from darkdragon. see #4742
git-svn-id: http://svn.automattic.com/wordpress/trunk@5896 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 21:22:37 +00:00
matt
be96bdbdaa Missing image from earlier commit.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5895 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 13:34:26 +00:00
matt
096bece621 Switch to init action. Hat tip: westi. See #1476
git-svn-id: http://svn.automattic.com/wordpress/trunk@5894 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 13:28:45 +00:00
matt
242e21e732 Switch incoming links to use Google, fixes #4577
git-svn-id: http://svn.automattic.com/wordpress/trunk@5893 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 11:08:00 +00:00
matt
7c2dbb9cb1 First pass at upgrade notification for core, see #1476. Also includes some minor footer styling changes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5892 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 10:33:52 +00:00
markjaquith
410a3c5762 Oops... forgot the svn add. Thanks mdawaffe. see #4554
git-svn-id: http://svn.automattic.com/wordpress/trunk@5891 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 03:45:59 +00:00
markjaquith
6fc031de6b Canonical URLs, first swing. Props to Scott Yang, Ryan and Matt. see #4554 (and report bugs there, for now)
git-svn-id: http://svn.automattic.com/wordpress/trunk@5890 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 03:35:15 +00:00
markjaquith
54639a391b Set REQUEST_URI for IIS in more situations. props snakefoot. fixes #3514
git-svn-id: http://svn.automattic.com/wordpress/trunk@5889 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 03:32:19 +00:00
markjaquith
d55ac9708c Send dateCreated as local blog time, add date_created_gmt with GMT value. Props josephscott. fixes #4624. refs #4158, #4314
git-svn-id: http://svn.automattic.com/wordpress/trunk@5888 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 03:18:58 +00:00
markjaquith
e9c8915627 correct logic grouping when reading importers. fixes #4763
git-svn-id: http://svn.automattic.com/wordpress/trunk@5887 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-17 01:59:37 +00:00
ryan
84f43891f6 Don't trim option arrays on save. Props m0n5t3r, Nazgul. fixes #4571
git-svn-id: http://svn.automattic.com/wordpress/trunk@5886 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 19:55:19 +00:00
ryan
948284b296 Don't update comments feed last-modified header for unapproved comments. Props James Ballantine and Nazgul. fixes #4618 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5885 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 19:26:01 +00:00
ryan
96aba6a4c7 RTL CSS fixes from sewar. fixes #4655
git-svn-id: http://svn.automattic.com/wordpress/trunk@5884 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 18:49:32 +00:00
ryan
08e94676ef Add id to viewsite span. Props JeremyVisser. fixes #4666
git-svn-id: http://svn.automattic.com/wordpress/trunk@5883 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 18:46:50 +00:00
ryan
19f1e721bb Use dc:creator instead of author for rss2 comment feeds. Props lexhair, Otto42. fixes #4704 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5881 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 18:34:57 +00:00
ryan
4ae69ee6a8 Advanced Toolbar shortcut hint fix from leonid. fixes #4707
git-svn-id: http://svn.automattic.com/wordpress/trunk@5880 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 18:17:54 +00:00
ryan
aa1b4e8968 Set instead of add since the cache value has multiple keys that can change. Props josephscott. fixes #4743
git-svn-id: http://svn.automattic.com/wordpress/trunk@5879 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 18:12:12 +00:00
ryan
5e34cab763 Fix css path for readme.html. Props Stevie212, JeremyVisser. fixes #4751
git-svn-id: http://svn.automattic.com/wordpress/trunk@5878 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 18:09:30 +00:00
ryan
f478ddaa36 Pass args as array instead of query string.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5876 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-16 18:00:47 +00:00
ryan
eb3e9e6dc7 Display error message when attempting to edit post or page IDs that do not exist. Props Viper007Bond. fixes #4737
git-svn-id: http://svn.automattic.com/wordpress/trunk@5875 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-15 22:31:19 +00:00
ryan
4ab52670e9 Remove extra paren. Props tmountjr. fixes #4752
git-svn-id: http://svn.automattic.com/wordpress/trunk@5874 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-15 22:26:54 +00:00
ryan
ff20fd6c17 Category union and intersection query vars. fixes #4750
git-svn-id: http://svn.automattic.com/wordpress/trunk@5873 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-15 22:08:51 +00:00
ryan
8b205f4e87 Typo fix
git-svn-id: http://svn.automattic.com/wordpress/trunk@5872 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-15 21:54:02 +00:00
ryan
951a41ad1e get_the_tag_list from andy. fixes #4733
git-svn-id: http://svn.automattic.com/wordpress/trunk@5871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-14 03:44:49 +00:00
ryan
13b23aa20a Space before slash to properly close br tag. Props tmountjr. fixes #4717
git-svn-id: http://svn.automattic.com/wordpress/trunk@5870 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-14 03:12:24 +00:00
ryan
ddc05f60ea wp_update_comment_count hook from mdawaffe. fixes #4740
git-svn-id: http://svn.automattic.com/wordpress/trunk@5869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-14 03:08:44 +00:00
ryan
2ae70d7c72 Update in_category() to use object term cache API. Props technosailor. fixes #4442
git-svn-id: http://svn.automattic.com/wordpress/trunk@5868 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-14 03:01:26 +00:00
ryan
dc1c54a35c Use opendir instead of dir. Props nbachiyski. fixes #4450
git-svn-id: http://svn.automattic.com/wordpress/trunk@5867 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-14 02:58:33 +00:00
ryan
638d5e6e39 wp_update_term_count fixes from cavemonkey50. fixes #4500
git-svn-id: http://svn.automattic.com/wordpress/trunk@5866 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-14 02:54:02 +00:00
ryan
7c1ce10fae sanitize the value, not the field. Props cavemonkey50. fixes #4651
git-svn-id: http://svn.automattic.com/wordpress/trunk@5865 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-14 02:46:06 +00:00
ryan
74fcc19b8e RTL fixes from mani_monaj. fixes #4730
git-svn-id: http://svn.automattic.com/wordpress/trunk@5863 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-13 15:36:26 +00:00
matt
98a674b2e9 A quick hook when an export is done
git-svn-id: http://svn.automattic.com/wordpress/trunk@5862 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-11 01:31:10 +00:00
matt
c13a667443 A more elegant way of doing get_col.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5861 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-10 19:30:24 +00:00
markjaquith
5b82b1c426 Prevent get_col() from returning an array of NULLs. see #4725
git-svn-id: http://svn.automattic.com/wordpress/trunk@5860 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-10 18:08:04 +00:00
markjaquith
676ea2ea3c globalize wp_version so Magpie can use it. props Nazgul, hakre. fixes #3996
git-svn-id: http://svn.automattic.com/wordpress/trunk@5859 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-10 08:07:53 +00:00
matt
0311e61389 If you don't have anything nice to say, don't say anything at all. (And certainly don't return the results of a previous query to an empty query.)
git-svn-id: http://svn.automattic.com/wordpress/trunk@5858 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-10 01:33:56 +00:00
markjaquith
b64ce2d0f0 explicitly check next() against FALSE when iterating through filters. Props Denis-de-Bernardy, Otto42, Nazgul, santosj (go team effort!). fixes #4625 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5857 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-08 17:41:46 +00:00
markjaquith
48b20cf17d Specify our serif fonts for h2s. Props JeremyVisser. fixes #4713
git-svn-id: http://svn.automattic.com/wordpress/trunk@5856 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-08 12:08:28 +00:00
markjaquith
2af150e496 Avoid running get_posts filter twice. Props DD32. fixes #4712
git-svn-id: http://svn.automattic.com/wordpress/trunk@5855 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-08 04:24:44 +00:00
markjaquith
773e23d2e6 Don't tell users they have to update their .htaccess unless we're actually giving them something with which to update it. fixes #4706
git-svn-id: http://svn.automattic.com/wordpress/trunk@5854 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-08 04:10:20 +00:00
markjaquith
5c83a39e33 Clear old future post cron entry before creating the authoritative one. Props Barry. fixes #4710
git-svn-id: http://svn.automattic.com/wordpress/trunk@5853 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-08 04:08:06 +00:00
markjaquith
44df30f2d6 Fix class-smtp.php typo. Props Nazgul, tension7. fixes #4700
git-svn-id: http://svn.automattic.com/wordpress/trunk@5852 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-05 18:13:24 +00:00
markjaquith
fa0dc110d9 Allow for hour/minute/second values in the QS that evaluate as false (like 0). Props Otto42 and agharbeia. fixes #4499
git-svn-id: http://svn.automattic.com/wordpress/trunk@5848 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-04 16:30:27 +00:00
matt
763b0b689e If no user ID for whatever reason, bail early.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5847 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-04 03:58:42 +00:00
markjaquith
9e21fb42fc function_exists() wrapper around fetch_rss() to allow for plugin replacement. Props Otto42. see #4547
git-svn-id: http://svn.automattic.com/wordpress/trunk@5845 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-03 01:39:36 +00:00
markjaquith
25abcd1338 More streamlined install process. Obeys WP_SITEURL if defined. fixes #4687 (props JeremyVisser, Nazgul), see #4685
git-svn-id: http://svn.automattic.com/wordpress/trunk@5844 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-03 01:08:59 +00:00
markjaquith
5897a90fd7 Consistently include wp-config.php. fixes #3349
git-svn-id: http://svn.automattic.com/wordpress/trunk@5843 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-03 00:45:06 +00:00
markjaquith
3ba71111de Allow pre_option_ filters to return values that evaluate as false. fixes #4695
git-svn-id: http://svn.automattic.com/wordpress/trunk@5842 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-02 22:51:42 +00:00
markjaquith
f359dab72e More upload escaping. Props Brian Layman. fixes #4689 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5837 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 20:58:19 +00:00
matt
f526180278 Absolute numbers where we will never allow negatives, fixes #4692
git-svn-id: http://svn.automattic.com/wordpress/trunk@5836 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 19:41:44 +00:00
matt
0c1b4f93ca Sanitize cat_id, fixes #4691
git-svn-id: http://svn.automattic.com/wordpress/trunk@5835 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 19:40:30 +00:00
markjaquith
f28dad8261 Sanitize option names in option.php, use current escaping functions. for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5832 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 19:24:51 +00:00
markjaquith
ad81604c8c add_option()/update_option() should pass the option name to get_option() pre-escaped. fixes #4690 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5829 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 19:14:10 +00:00
markjaquith
e9b0e8284b attribute_escape() in upload form action. Props Nazgul. fixes #4689 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5827 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 17:20:01 +00:00
markjaquith
5a833d50ef Ending DIV was missing in edit-link-form.php. Props idle and Nazgul. fixes #4688
git-svn-id: http://svn.automattic.com/wordpress/trunk@5826 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-08-01 16:14:46 +00:00
markjaquith
8c454d7909 Favor the term "blog" instead of "weblog." Props foolswisdom and Nazgul. fixes #4674
git-svn-id: http://svn.automattic.com/wordpress/trunk@5825 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-30 16:32:12 +00:00
markjaquith
e06883dfcc Use "home," not "siteurl" for widget dropdown category URLs. Props Pastinakel. fixes #4683 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5823 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-30 16:23:04 +00:00
matt
51ce46e892 Shows pending moderation comments in title and bold comment numbers with comments that need attention.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5821 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-29 19:56:55 +00:00
markjaquith
764f50bd3d ABSPATH already has a trailing slash. Props Nazgul. fixes #4607
git-svn-id: http://svn.automattic.com/wordpress/trunk@5820 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-27 21:28:01 +00:00
ryan
343cbb9421 Set eol style
git-svn-id: http://svn.automattic.com/wordpress/trunk@5819 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-25 16:58:01 +00:00
ryan
f2223e6dc5 In your cats, making them back compat.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5818 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-25 03:04:46 +00:00
ryan
401f581879 Don't forget to filter post_category
git-svn-id: http://svn.automattic.com/wordpress/trunk@5817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-24 22:29:41 +00:00
ryan
b01cbf1b76 fix FF bug in write screen: post status change on reload. Props mdawaffe. fixes #4664
git-svn-id: http://svn.automattic.com/wordpress/trunk@5816 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-24 21:40:58 +00:00
ryan
00ac511053 Recalculate counts
git-svn-id: http://svn.automattic.com/wordpress/trunk@5815 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-21 21:52:35 +00:00
ryan
a7720182d1 First attempt at upgrading old releases that used the linkcategories table to taxonomy. Needs testing.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5814 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-21 20:53:19 +00:00
ryan
451ec5e6ec RTL styling from sewar. fixes #4653
git-svn-id: http://svn.automattic.com/wordpress/trunk@5813 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-21 18:55:36 +00:00
ryan
5f26b1b415 RTL styling from sewar. fixes #4653
git-svn-id: http://svn.automattic.com/wordpress/trunk@5812 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-21 18:55:11 +00:00
ryan
491ee1a1aa add title filter outside of the loop. Do we even need it?
git-svn-id: http://svn.automattic.com/wordpress/trunk@5811 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-21 00:05:28 +00:00
westi
75a3af7d17 Only enable gzip compression if it is not enabled in php.ini. Fixes #4426
git-svn-id: http://svn.automattic.com/wordpress/trunk@5810 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-18 21:12:22 +00:00
westi
c510f1060d Update .htaccess file when rewrite rules are deleted if it exists.
Fixes #4018


git-svn-id: http://svn.automattic.com/wordpress/trunk@5809 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-18 20:46:54 +00:00
ryan
e7d71efdd9 Revert jcalendar date picker experiment. Save it for another day. fixes #4641
git-svn-id: http://svn.automattic.com/wordpress/trunk@5808 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-17 19:26:03 +00:00
ryan
7217266ca3 AND get_terms() field queries
git-svn-id: http://svn.automattic.com/wordpress/trunk@5807 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-17 02:02:52 +00:00
ryan
460ddd3a1d Eliminate post_pingback stuff since we always use default_pingback_flag. fixes pingback problems caused by [5797] for #4620
git-svn-id: http://svn.automattic.com/wordpress/trunk@5806 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-16 23:11:51 +00:00
ryan
db54c8c57d Make balanceTags() option independent. Props mdawaffe. fixes #4626
git-svn-id: http://svn.automattic.com/wordpress/trunk@5805 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-16 19:23:41 +00:00
ryan
714f8edd6c jquery data selector for post timestamps. Props tellyworth. fixes #4641
git-svn-id: http://svn.automattic.com/wordpress/trunk@5804 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-16 19:22:27 +00:00
ryan
05c0d6840b Return hook as null instead of empty string. Props DD32. fixes #4639
git-svn-id: http://svn.automattic.com/wordpress/trunk@5803 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-15 17:59:05 +00:00
ryan
b6978b2123 Don't slurp in entire file. Props tellyworth. see #4421
git-svn-id: http://svn.automattic.com/wordpress/trunk@5802 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-15 17:55:12 +00:00
ryan
d8d651221c Show upload file size in upload browser. Props tellyworth. fixes #4561
git-svn-id: http://svn.automattic.com/wordpress/trunk@5801 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-15 17:52:50 +00:00
ryan
17a5de92fe Password reset usability improvements from tellyworth. fixes #4527
git-svn-id: http://svn.automattic.com/wordpress/trunk@5800 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-15 17:50:38 +00:00
ryan
22c16718c5 Add classes that indicate post status and author ownership. Props tellyworth. fixes #4628
git-svn-id: http://svn.automattic.com/wordpress/trunk@5799 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-15 17:48:01 +00:00
ryan
c140ccb72d Fix variable name. Props bgracewood. fixes #4621
git-svn-id: http://svn.automattic.com/wordpress/trunk@5797 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-12 16:00:51 +00:00
ryan
ebf520f0d7 Post filter rework. see #4546
git-svn-id: http://svn.automattic.com/wordpress/trunk@5796 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-11 19:57:43 +00:00
matt
9813daa487 Make this more specific so it can be more easily overridden with CSS.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5795 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-10 04:38:27 +00:00
ryan
b4557ec25b Don't load all includes by default. We have our own script loader. fixes #4512
git-svn-id: http://svn.automattic.com/wordpress/trunk@5794 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-09 21:22:38 +00:00
ryan
6eb4acd7fd Bump scriptaculous ver in script loader. fixes #4512
git-svn-id: http://svn.automattic.com/wordpress/trunk@5793 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-09 20:20:34 +00:00
ryan
e47dfd7529 Update to scriptaculous 1.7.1_beta3. Props Nazgul. fixes #4512
git-svn-id: http://svn.automattic.com/wordpress/trunk@5792 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-09 20:14:28 +00:00
markjaquith
76ed1bdad8 Undo pre-doublequoting in prepare(). Props JeremyVisser. see #4553
git-svn-id: http://svn.automattic.com/wordpress/trunk@5791 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-09 17:55:32 +00:00
ryan
97daaa0d03 Update jquery to 1.1.3.1. Fixes http://bugs.kde.org/show_bug.cgi?id=147661
git-svn-id: http://svn.automattic.com/wordpress/trunk@5790 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-08 21:10:14 +00:00
markjaquith
9b0c0d56db Properly unset notoptions cache in add_option() so that get_option() and update_option() work on the same load. fixes #4429 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5788 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-07 04:06:29 +00:00
markjaquith
b721942f26 Pass extra args to pre_kses hook. Props mdawaffe. see #4409
git-svn-id: http://svn.automattic.com/wordpress/trunk@5787 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-06 22:47:24 +00:00
ryan
d5842abd35 don't show Publish button when editing a future post. Props tellyworth.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5786 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-06 21:04:37 +00:00
ryan
4ba5f806d7 Reduce export mem usage. Props tellyworth. fixes #4589
git-svn-id: http://svn.automattic.com/wordpress/trunk@5785 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-06 20:57:28 +00:00
ryan
fd4c86f9a4 Resurrect noquery
git-svn-id: http://svn.automattic.com/wordpress/trunk@5784 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-06 20:45:46 +00:00
markjaquith
2304077c2b Entitize lone less-than characters. Props mdawaffe. fixes #4409
git-svn-id: http://svn.automattic.com/wordpress/trunk@5783 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-06 12:53:15 +00:00
ryan
821cf4b63f suggestCategories cleanup
git-svn-id: http://svn.automattic.com/wordpress/trunk@5782 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-06 00:15:13 +00:00
ryan
0d05f746cf Don't richedit for comments. Props Joseph Scott. fixes #4587 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5780 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-05 20:11:32 +00:00
markjaquith
45db1a512a Automatically quote strings in $wpdb->prepare(). Use vsprintf(). see #4553
git-svn-id: http://svn.automattic.com/wordpress/trunk@5779 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-05 17:32:46 +00:00
markjaquith
fbdfcce157 Introducing "prepare", a WPDB method for sprintf()-prepared SQL statements. see #4553. Implementation details to follow.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5778 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-04 16:18:57 +00:00
markjaquith
c671554b03 Update wp-comments-post.php to WP coding conventions. props JeremyVisser. fixes #4573
git-svn-id: http://svn.automattic.com/wordpress/trunk@5777 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-04 16:12:37 +00:00
markjaquith
6e0ef646b7 Make it possible for a plugin to replace the feed-parsing engine. see: #4547
git-svn-id: http://svn.automattic.com/wordpress/trunk@5776 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-03 18:10:20 +00:00
matt
d31029a026 Upgrade to jQuery 1.1.3, fixes #4576
git-svn-id: http://svn.automattic.com/wordpress/trunk@5775 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-02 23:57:52 +00:00
ryan
46110c7774 Delete term relationship only for the given object.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-07-02 15:47:27 +00:00
markjaquith
aec08dedad Use doublequotes so line break works. Props Lloyd. fixes #4557
git-svn-id: http://svn.automattic.com/wordpress/trunk@5773 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-28 23:08:23 +00:00
markjaquith
a2f7332558 Mark pingback as already pinged when the target site says it already got the pingback. props mdawaffe. fixes #4289
git-svn-id: http://svn.automattic.com/wordpress/trunk@5772 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-27 23:28:36 +00:00
markjaquith
83d0dab731 Correct grammatical error (comment splice). Props filosofo. fixes #4551
git-svn-id: http://svn.automattic.com/wordpress/trunk@5771 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-27 23:25:49 +00:00
ryan
c1adb3c7ad Allow rules to be added to the top of the rule stack.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5769 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-27 21:39:50 +00:00
markjaquith
0e2d9ff004 Fix typo in get_the_author_url(). props pgdx. fixes #4542
git-svn-id: http://svn.automattic.com/wordpress/trunk@5767 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-27 00:51:04 +00:00
markjaquith
4e9c69747b Check post type after upload. Props Alexander Concha
git-svn-id: http://svn.automattic.com/wordpress/trunk@5765 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-26 20:45:30 +00:00
markjaquith
64ef1ed841 Correctly grab Content-Type from old-school headers, skip blank headers. fixes #4296
git-svn-id: http://svn.automattic.com/wordpress/trunk@5764 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-26 20:18:56 +00:00
markjaquith
9a91481a2b Don't add MIME-Version header twice (PHPMailer already adds it). see #4296
git-svn-id: http://svn.automattic.com/wordpress/trunk@5763 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-26 19:11:23 +00:00
markjaquith
d9d5fde1e7 compare mail headers case-insensitively and actually use the Content-Type specified. Props Nazgul. see: #4296
git-svn-id: http://svn.automattic.com/wordpress/trunk@5762 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-26 18:28:56 +00:00
markjaquith
829ace3e68 strpos() is "haystack,needle", not "needle,haystack" Props pishmishy. fixes #4520
git-svn-id: http://svn.automattic.com/wordpress/trunk@5761 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-26 18:06:17 +00:00
ryan
1d13d95eeb s/cat_name/name/
git-svn-id: http://svn.automattic.com/wordpress/trunk@5760 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-25 21:39:17 +00:00
ryan
3dc720588b Change cat_name, cat_ID to name, term_id.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5759 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-25 21:37:47 +00:00
ryan
5ebed51846 Eliminate cat select. Use API.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5758 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-25 21:34:06 +00:00
markjaquith
b1a12f6718 get_comment_to_edit() should return false when the comment does not exist or is marked as spam. props Westi. fixes #4533.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5757 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-25 21:30:18 +00:00
ryan
267997a4fd Add name_like query to get_terms(). Use it in suggestCategories.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5756 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-25 21:28:19 +00:00
ryan
0e7483cc5a s/cat_name/name/ see #4537
git-svn-id: http://svn.automattic.com/wordpress/trunk@5755 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-25 20:06:02 +00:00
ryan
a5e56dc9db s/cat_name/name/ see #4537
git-svn-id: http://svn.automattic.com/wordpress/trunk@5754 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-25 19:51:26 +00:00
markjaquith
2fd0094ce3 Display fatal errors that prevent plugins from being activated. fixes #4508
git-svn-id: http://svn.automattic.com/wordpress/trunk@5753 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-25 18:57:54 +00:00
ryan
ed549303d7 Move the_title filter to get_the_title. Props jhodgdon. fixes #4477
git-svn-id: http://svn.automattic.com/wordpress/trunk@5752 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-25 17:48:35 +00:00
markjaquith
1111b0c5fe Ordering and labeling niceties for the Manage > Posts screen. see #4446
git-svn-id: http://svn.automattic.com/wordpress/trunk@5751 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-24 06:25:49 +00:00
markjaquith
d50996b941 Order pending posts nag by post_modified ASC, drafts by post_modified DESC
git-svn-id: http://svn.automattic.com/wordpress/trunk@5750 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-24 05:58:38 +00:00
markjaquith
a05fcdcf23 Change to "and x more" for nags. see #4446
git-svn-id: http://svn.automattic.com/wordpress/trunk@5749 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-24 05:46:08 +00:00
markjaquith
3f154010f3 Only hide comments column for pending, future, and draft posts. see #4446
git-svn-id: http://svn.automattic.com/wordpress/trunk@5748 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-24 05:05:22 +00:00
markjaquith
ad9271f86f Don't init widgets if the blog isn't installed yet. fixes #4504
git-svn-id: http://svn.automattic.com/wordpress/trunk@5747 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-23 05:32:16 +00:00
markjaquith
bf8b03a928 Matt requested that I revert this ([5742]). see #4254 for discussion
git-svn-id: http://svn.automattic.com/wordpress/trunk@5744 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-22 01:29:57 +00:00
markjaquith
eefdd4cef7 Upgrade to Prototype 1.5.1.1 (bugfix release). Props Nazgul. fixes #4502
git-svn-id: http://svn.automattic.com/wordpress/trunk@5743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-21 22:01:21 +00:00
markjaquith
37dbcc2a80 BrowseHappy is outdated. fixes #4254
git-svn-id: http://svn.automattic.com/wordpress/trunk@5742 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-21 21:53:41 +00:00
ryan
74bc9bb8a6 Term count fixes
git-svn-id: http://svn.automattic.com/wordpress/trunk@5741 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-21 15:46:49 +00:00
ryan
21e8f43f8c Don't create '0' categories. fixes #4413
git-svn-id: http://svn.automattic.com/wordpress/trunk@5739 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-20 22:06:29 +00:00
ryan
9d84bef608 js_escape improvements from Alexander Concha. Catches &#39 &#039 ' ' ' ' &#x000027 etc.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5734 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-19 22:46:55 +00:00
ryan
fd5da3a85e Protect _wp_page_template too.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5733 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-19 22:42:25 +00:00
ryan
7ffc5ee8b0 Accept 'open' and 'closed' as valid values for mt_allow_comments and mt_allow_pings in XML-RPC. Props Joseph Scott. see #4469
git-svn-id: http://svn.automattic.com/wordpress/trunk@5729 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-19 19:12:24 +00:00
rob1n
7b09e504e7 Change references of get_object_terms() to wp_get_object_terms(). fixes #4490
git-svn-id: http://svn.automattic.com/wordpress/trunk@5728 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-19 18:03:12 +00:00
rob1n
0eb86404da Fix up wp_list_authors() SQL. fixes #4485
git-svn-id: http://svn.automattic.com/wordpress/trunk@5727 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-19 17:57:53 +00:00
ryan
e2dc2a8dd3 Add some taxonomy validation. Rearrange funcs.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5726 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-19 00:33:44 +00:00
ryan
e8dc080307 Prevent editing of protected meta keys.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5723 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-18 16:28:11 +00:00
ryan
c09f6ffbdb escape before extracting. Props Alexander Concha.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5721 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-18 00:18:18 +00:00
rob1n
3ca7762517 Add missing </em>. Props johnbillion. fixes #4479
git-svn-id: http://svn.automattic.com/wordpress/trunk@5720 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-16 17:52:08 +00:00
ryan
9fbb55032a Regex fix. Props tellyworth. fixes #4452
git-svn-id: http://svn.automattic.com/wordpress/trunk@5718 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-16 02:09:08 +00:00
ryan
e30a9ba012 Upgrade code for multiple category widgets. Props Andy. see #4285
git-svn-id: http://svn.automattic.com/wordpress/trunk@5717 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-16 02:03:25 +00:00
ryan
64d3a54b85 Don't use permalinks for pending posts. see #4446
git-svn-id: http://svn.automattic.com/wordpress/trunk@5716 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-15 22:11:01 +00:00
rob1n
404e50bfb3 Show the name, not the slug. fixes #4473
git-svn-id: http://svn.automattic.com/wordpress/trunk@5715 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-15 18:26:43 +00:00
ryan
e7890261e5 EXTR_SKIP. See #4468
git-svn-id: http://svn.automattic.com/wordpress/trunk@5712 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-15 17:30:37 +00:00
ryan
2ea53cf51a Use CDATA escaping on fields. Props tellyworth. fixes #4452
git-svn-id: http://svn.automattic.com/wordpress/trunk@5711 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-15 17:22:38 +00:00
rob1n
560d294867 Fix reference to ocomment.php. Props alanjcastonguay and Lloyd. fixes #4471
git-svn-id: http://svn.automattic.com/wordpress/trunk@5710 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-15 16:54:17 +00:00
ryan
aac03a2066 wp_parse_str() from mdawaffe. see #4467
git-svn-id: http://svn.automattic.com/wordpress/trunk@5709 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-14 22:46:59 +00:00
ryan
9d3d20f063 Use EXTR_SKIP when extracting. see #4468
git-svn-id: http://svn.automattic.com/wordpress/trunk@5708 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-14 22:45:40 +00:00
markjaquith
7f44512c5d Introducing post_status="pending". see #4446 and put any initial bug reports on that ticket
git-svn-id: http://svn.automattic.com/wordpress/trunk@5707 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-14 16:24:28 +00:00
markjaquith
e211aa64e7 use FALSE to designate lack of user-supplied URL in *_query_arg() funcs. fixes #4465 for 2.3 (trunk)
git-svn-id: http://svn.automattic.com/wordpress/trunk@5705 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-14 05:12:22 +00:00
markjaquith
99f0971b73 only strip question marks from the RIGHT side of the query string. fixes #4464 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5704 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-14 04:44:06 +00:00
rob1n
9fac8dcbae Use display_name instead. Props Pal Gronas Drange. fixes #4459
git-svn-id: http://svn.automattic.com/wordpress/trunk@5701 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-14 02:30:26 +00:00
ryan
2f09416258 Trim empty lines. Nothing but newline.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5700 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-14 02:25:30 +00:00
ryan
72c169c2f1 Don't output author uri tag if uri is empty.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5699 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-13 18:03:17 +00:00
rob1n
cbdc90759c wp_rss() updates. fixes #3834
git-svn-id: http://svn.automattic.com/wordpress/trunk@5698 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-13 17:23:38 +00:00
rob1n
a14a68b216 Translate some strings in the classic theme that were missed. Props nbachiyski. fixes #4451
git-svn-id: http://svn.automattic.com/wordpress/trunk@5697 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-13 16:41:21 +00:00
rob1n
ab2e725577 Translate the rest of the &raquo;'s. Props nbachiyski. fixes #3401
git-svn-id: http://svn.automattic.com/wordpress/trunk@5696 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-13 16:29:55 +00:00
markjaquith
8187ddb3d7 correct CSS link for install. Props Viper007Bond. fixes #4443
git-svn-id: http://svn.automattic.com/wordpress/trunk@5694 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-13 06:33:17 +00:00
matt
81dd1f1737 Update in_category to use the new object_term_cache, it wasn't so much with the working before.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5693 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-13 00:16:33 +00:00
markjaquith
6dca00cae6 Correct SQL query in [5691]. fixes #2316
git-svn-id: http://svn.automattic.com/wordpress/trunk@5692 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 23:44:45 +00:00
markjaquith
f1fa801385 Omit underscore-prefixed meta keys from dropdown list. fixes #2316
git-svn-id: http://svn.automattic.com/wordpress/trunk@5691 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 23:22:38 +00:00
rob1n
d4f95b7fd4 Accidental commit. Props Nazgul. fixes #4437
git-svn-id: http://svn.automattic.com/wordpress/trunk@5690 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 21:59:22 +00:00
rob1n
845ae5609d Add ID's to profile edit form's fieldsets. fixes #4434
git-svn-id: http://svn.automattic.com/wordpress/trunk@5689 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 21:52:50 +00:00
rob1n
e3328ca20b Don't include HTML in gettext call. Props nbachiyski and Nazgul. fixes #4437
git-svn-id: http://svn.automattic.com/wordpress/trunk@5688 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 21:48:55 +00:00
ryan
b26a66ced0 Fix image path
git-svn-id: http://svn.automattic.com/wordpress/trunk@5687 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 21:47:12 +00:00
markjaquith
6d5da3e33c Force $autoload to be either "yes" or "no". see #4440. props Nazgul
git-svn-id: http://svn.automattic.com/wordpress/trunk@5686 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 20:57:58 +00:00
markjaquith
cf2b700d93 Make sure post titles longer than 200 chars get unique slugs. fixes #4433. props AaronCampbell.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5685 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 20:49:40 +00:00
ryan
56272d8507 MT importer rework. see #4421
git-svn-id: http://svn.automattic.com/wordpress/trunk@5684 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 19:49:30 +00:00
ryan
21dff0640c Add a prophylactic sanitize_user()
git-svn-id: http://svn.automattic.com/wordpress/trunk@5683 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-12 18:11:06 +00:00
ryan
66e6a55c7e escapeshellarg the sender
git-svn-id: http://svn.automattic.com/wordpress/trunk@5682 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-11 23:19:33 +00:00
ryan
81c90fcd76 attribute_escape REQUEST_URI
git-svn-id: http://svn.automattic.com/wordpress/trunk@5679 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-11 22:41:47 +00:00
rob1n
ff6f1383d1 Maintain "Page order" for consistency. fixes #4431
git-svn-id: http://svn.automattic.com/wordpress/trunk@5677 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-11 21:11:40 +00:00
rob1n
458b65a2f0 Translate &raquo;. see #3401
git-svn-id: http://svn.automattic.com/wordpress/trunk@5676 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-11 21:05:50 +00:00
rob1n
6e5e54b5ae Revert multiple category stuff. see #4285
git-svn-id: http://svn.automattic.com/wordpress/trunk@5675 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-09 00:59:14 +00:00
rob1n
a79c4dbda3 Fix <!--generator--> line's time format. Props macbis. fixes #4424 for 2.3 and 2.2.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5674 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 23:06:10 +00:00
rob1n
32a890bd26 Some more multiple category widget stuff. see #4285
git-svn-id: http://svn.automattic.com/wordpress/trunk@5673 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 22:50:37 +00:00
rob1n
d84178acd7 Check the user before overwriting the attachment. Props xknown and Joseph Scott. fixes #4422
git-svn-id: http://svn.automattic.com/wordpress/trunk@5671 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 17:07:59 +00:00
rob1n
64b91fc94b Add support for multiple instances of the category widget. see #4285
git-svn-id: http://svn.automattic.com/wordpress/trunk@5669 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 14:49:30 +00:00
ryan
b5598e2bda More comment caching. see #4387
git-svn-id: http://svn.automattic.com/wordpress/trunk@5667 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 06:56:34 +00:00
ryan
f2f6101e1c Comment caching. Reduce queries on edit-comments.php page. Add non-persistent cache groups. Hat tip to hovenko. fixes #4387
git-svn-id: http://svn.automattic.com/wordpress/trunk@5666 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 00:20:22 +00:00
rob1n
fbfafcf27a Update CSS paths. see #4334
git-svn-id: http://svn.automattic.com/wordpress/trunk@5665 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-08 00:19:35 +00:00
rob1n
4d5baa0fad Use Older/Newer rather than Previous/Next for sake of clarity. fixes #4397
git-svn-id: http://svn.automattic.com/wordpress/trunk@5664 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-07 23:33:06 +00:00
rob1n
02959eb9d4 Move a stray <p> from a recent change.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5663 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-07 22:52:09 +00:00
matt
adda69e289 We prefer our own API. (Which MT/Typepad have cloned already.)
git-svn-id: http://svn.automattic.com/wordpress/trunk@5662 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-07 14:10:53 +00:00
matt
ff1e0f32fc No good reason to align the mark all in the center or move the metadata around.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5661 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-07 14:01:02 +00:00
ryan
a09031ecd0 Use get_term_children() and get_term_field(). see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5660 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-06 16:13:12 +00:00
ryan
d2188a7dde Fix category renaming. fixes #4415 see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5659 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-06 16:12:02 +00:00
ryan
bac1fccf3a Fix category renaming. fixes #4415 see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5658 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-06 16:10:52 +00:00
ryan
d5f3d0c2d7 Remove comment_text filter from get_comment_to_edit. fixes #4403 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5655 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-05 14:41:02 +00:00
ryan
539b2e48f0 First cut of link category management. Rough and ugly.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5654 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-05 05:08:27 +00:00
rob1n
1390f9deee Better use empty alt attribute than the filename. Props cpoteet. fixes #3100
git-svn-id: http://svn.automattic.com/wordpress/trunk@5653 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-05 04:40:10 +00:00
ryan
9f46c4af44 Term sanitization. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5652 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-05 00:57:23 +00:00
ryan
f904142767 Add 'edit_posts' capability check to metaWeblog.newPost. Props Joseph Scott and Wei-Yeh Lee. fixes #4404 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5651 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-04 18:31:32 +00:00
ryan
e515401912 Run comment_text filter before format_to_edit() when getting a comment to edit. fixes #4403 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5646 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-04 17:43:22 +00:00
ryan
b8c0875ef0 Upgrade fixes. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5643 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-03 18:57:14 +00:00
ryan
16e8f842f5 Fix link category dropdown and filter. Add some back compat to get_categories. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5642 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-03 17:28:27 +00:00
rob1n
bf88d4adc0 Make visited links in the admin stand out more. Props ptvguy and Nazgul. fixes #2779
git-svn-id: http://svn.automattic.com/wordpress/trunk@5641 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-03 01:00:03 +00:00
rob1n
9ce729e656 Content-Type, not Content-type, as headers are case sensitive. Props foolswisdom and Nazgul. fixes #3545
git-svn-id: http://svn.automattic.com/wordpress/trunk@5640 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 05:21:18 +00:00
rob1n
64820ed1ae wp_mail() rewrite that handles HTML mail. fixes #4296
git-svn-id: http://svn.automattic.com/wordpress/trunk@5639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 03:18:24 +00:00
rob1n
026cdded71 phpDoc effort for wp-includes/author-template.php. fixes #4393
git-svn-id: http://svn.automattic.com/wordpress/trunk@5638 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 03:04:01 +00:00
ryan
4214428322 Separate AJAX cat adder into post and link flavors. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5637 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 02:53:09 +00:00
rob1n
9828d17066 Don't queue Prototype or Interface, just jQuery.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5636 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 01:01:57 +00:00
rob1n
73e7d2ff2e Ugh. We need to consolidate these headers. see #4334
git-svn-id: http://svn.automattic.com/wordpress/trunk@5635 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 00:43:40 +00:00
rob1n
23057b57fb Revert some links. see #4334
git-svn-id: http://svn.automattic.com/wordpress/trunk@5634 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 00:42:32 +00:00
rob1n
16c43baa92 Don't more wp-admin.css and rtl.css for compat.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5633 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 00:41:37 +00:00
rob1n
5d27044a24 Whoops, forgot about wp-login.php. see #4334
git-svn-id: http://svn.automattic.com/wordpress/trunk@5632 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 00:40:23 +00:00
rob1n
cac67278d2 Move JavaScript to js subfolder, and CSS to css subfolder. see #4334
git-svn-id: http://svn.automattic.com/wordpress/trunk@5631 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 00:37:51 +00:00
rob1n
c927ae3f37 Keep greedy regex's in control. fixes #4165
git-svn-id: http://svn.automattic.com/wordpress/trunk@5630 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-02 00:02:06 +00:00
rob1n
168c858844 Move uploads JS to jQuery. Props filosofo. see #3824
git-svn-id: http://svn.automattic.com/wordpress/trunk@5629 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-01 23:52:27 +00:00
rob1n
f7ba6b94d9 A bit simpler.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5628 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-01 23:16:50 +00:00
rob1n
d9757a4426 phpDoc for wp-includes/registration.php. fixes #4383
git-svn-id: http://svn.automattic.com/wordpress/trunk@5627 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-01 23:13:41 +00:00
rob1n
82e3bf32c3 Fix a strpos typo. fixes #4390
git-svn-id: http://svn.automattic.com/wordpress/trunk@5626 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-01 23:10:03 +00:00
rob1n
a437fa5e23 Fix wp_title single post title filters. Props jhodgdon. fixes #3755
git-svn-id: http://svn.automattic.com/wordpress/trunk@5625 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-01 22:54:46 +00:00
markjaquith
06e670d043 Allow wp_list_authors() to optionally return. fixes #4323. see #3567.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-01 05:43:24 +00:00
rob1n
b8c26df7e0 Fix nestable HTML, including <blockquote>'s. Props anonymousbugger (!) and Nazgul. fixes #1170
git-svn-id: http://svn.automattic.com/wordpress/trunk@5623 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-01 02:33:03 +00:00
ryan
9e8bfa7f7b query by parent, not child_of, in get_nested_categories(). see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5622 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-06-01 02:24:07 +00:00
ryan
fb6ce027e1 Use new term tables in wp_install_defaults(). see #4380, #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5621 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 22:50:47 +00:00
markjaquith
bd89b78f8d get_bloginfo("comments_atom_url") now works properly. fixes #4382 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5619 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 22:44:21 +00:00
markjaquith
09202da539 correct "type" in Atom comments feed alternate links. fixes #4381 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5617 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 22:13:06 +00:00
ryan
fbe9b4d76e Abstract object term cache a bit more. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5616 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 21:38:33 +00:00
rob1n
71a095d0ee Don't translate "you haven't installed" text yet, because text domain isn't installed. Props nbachiyski.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5615 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 12:29:46 +00:00
rob1n
01af55cbf7 Bring tinyspell.php into sync. Props Nazgul. fixes #4368
git-svn-id: http://svn.automattic.com/wordpress/trunk@5614 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 12:22:06 +00:00
rob1n
e836ded63b Fix variable typo. Props schulte. fixes #4374
git-svn-id: http://svn.automattic.com/wordpress/trunk@5613 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 03:51:03 +00:00
ryan
e7e4c113fd If a term has no children, return an empty array for child_of queries. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 03:44:18 +00:00
rob1n
d268eae391 Some more get_pagenum_link() fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 03:36:40 +00:00
rob1n
544f18ce7d Fix get_pagenum_link() for query strings. fixes #3930
git-svn-id: http://svn.automattic.com/wordpress/trunk@5610 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 03:29:44 +00:00
rob1n
fb2f7fb6b0 Fix some typos in query.php. Props schulte. fixes #4373
git-svn-id: http://svn.automattic.com/wordpress/trunk@5609 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 03:19:38 +00:00
ryan
48bfddf9fc Disable nesting until inifinite loop tracked down.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5608 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 03:09:58 +00:00
rob1n
ce8ddce5c4 Move the restrict_manage_posts hook to somewhere more reasonable. see #4359
git-svn-id: http://svn.automattic.com/wordpress/trunk@5607 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 02:12:04 +00:00
rob1n
990ca286c1 Localize the "you haven't installed WP yet" message. fixes #4370
git-svn-id: http://svn.automattic.com/wordpress/trunk@5606 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 02:03:22 +00:00
rob1n
ba3abf0733 Add option to exclude pages to pages widget. see #4259
git-svn-id: http://svn.automattic.com/wordpress/trunk@5605 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 01:57:10 +00:00
rob1n
fc76cc488d Prototype fix to keep Safari < 2 from blowing up. fixes #4363
git-svn-id: http://svn.automattic.com/wordpress/trunk@5604 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 01:38:11 +00:00
rob1n
ebee78ae54 Check that tinyMCE is defined. Props johnbillion. fixes #4257
git-svn-id: http://svn.automattic.com/wordpress/trunk@5602 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 00:24:31 +00:00
rob1n
e83a798987 Upgrade TinyMCE spell checker to 1.0.5. fixes #4368
git-svn-id: http://svn.automattic.com/wordpress/trunk@5601 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-31 00:21:55 +00:00
rob1n
a8d5942028 Some comment edit form aesthetics. fixes #4367
git-svn-id: http://svn.automattic.com/wordpress/trunk@5600 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-30 23:53:34 +00:00
ryan
7800ed531e Fix slug queries. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5599 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-30 21:50:57 +00:00
ryan
df1a8696d5 Some term caching. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5598 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-30 03:36:59 +00:00
ryan
7c39499aa0 Category hierarchy fixes. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5597 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-30 01:39:47 +00:00
ryan
facc7245fa Add ignore_empty option to wp_count_terms(). see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5596 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-30 01:05:44 +00:00
ryan
e2a9845a94 Add missing taxonomy argument. Props nbachiyski. fixes #4362 see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5595 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 23:06:46 +00:00
ryan
083dfb059b Fix listing of categories with parents. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5594 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 21:50:00 +00:00
ryan
3176f1acd2 get_term_children() and category query fixes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5593 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 21:27:49 +00:00
ryan
6a314d85d8 Use taxonomy instead of post2cat. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5592 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 16:52:31 +00:00
markjaquith
b0ffd98c95 switch to term_id and name for category sorting. see #4189. sort by term_id for category permalinks, by name for get_the_category(). fixes #4335 for trunk. Props Erik Barzeski for the find.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5590 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 04:54:45 +00:00
markjaquith
007e5937cf use clean_url(). Nice catch, g30rg3x. see #4333 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5588 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 04:35:23 +00:00
ryan
4efb612c1a Post and page management filter additions from mdawaffe. see #3945
git-svn-id: http://svn.automattic.com/wordpress/trunk@5587 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 04:28:10 +00:00
ryan
c09ea05543 Use API instead of SELECT. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5586 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 04:26:36 +00:00
ryan
13a01467dc get_objects_in_term()
git-svn-id: http://svn.automattic.com/wordpress/trunk@5585 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-29 04:25:09 +00:00
ryan
283458e631 Nomenclature changes. see #3945
git-svn-id: http://svn.automattic.com/wordpress/trunk@5583 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 22:31:31 +00:00
ryan
957cd7955b Show drafts that have a published parent. Props mdawaffe. fixes #4356
git-svn-id: http://svn.automattic.com/wordpress/trunk@5582 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 21:55:12 +00:00
markjaquith
fcf640dd6b declare $user_ID global in load_template(). fixes #4354.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5581 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 21:32:35 +00:00
rob1n
16dab6f6db Move Dashboard's news to jQuery. see #3824
git-svn-id: http://svn.automattic.com/wordpress/trunk@5580 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 20:46:03 +00:00
rob1n
4b9d4641be Add a is_user_logged_in() check.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5579 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 20:39:24 +00:00
rob1n
380d9c3487 Show me more!
git-svn-id: http://svn.automattic.com/wordpress/trunk@5578 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 19:32:24 +00:00
rob1n
5aedce1521 Update TinyMCE to 2.1.1.1 (look at all those 1's...). fixes #4262
git-svn-id: http://svn.automattic.com/wordpress/trunk@5577 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 19:30:05 +00:00
ryan
6621b8eed0 Fix category permalinks. Update cat_ID to term_id. fixes #4349 see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5576 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 18:47:08 +00:00
ryan
a438f8a92a Better draft, private, and future post/page management from mdawaffe. fixes #3945
git-svn-id: http://svn.automattic.com/wordpress/trunk@5575 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 18:34:06 +00:00
rob1n
a5e4caba87 Moderation cleaned up, add paging and various bug fixes. fixes #4317
git-svn-id: http://svn.automattic.com/wordpress/trunk@5574 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 17:21:25 +00:00
rob1n
6800fa5564 Actually, this makes more sense.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5573 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 17:11:42 +00:00
rob1n
673cab8183 Turn string to upper. Props Donncha. fixes #4350
git-svn-id: http://svn.automattic.com/wordpress/trunk@5572 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 17:05:46 +00:00
markjaquith
7e9cfad780 Fix category/tag base wording. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5571 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 06:46:39 +00:00
markjaquith
070d2fd62b Int cast. Props to Alexander Concha for the find, Joseph Scott for the patch.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5570 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 05:12:56 +00:00
markjaquith
6a41f63aae permalink_link() is deprecated, and should reference its replacement.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5569 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 04:39:40 +00:00
rob1n
0617eb51d0 Add rel="tag" to tag links. fixes #4159
git-svn-id: http://svn.automattic.com/wordpress/trunk@5568 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 02:07:59 +00:00
ryan
965e63b970 Register taxonomies as object instead of arrays. Fix tt_ids query in get_post_terms().
git-svn-id: http://svn.automattic.com/wordpress/trunk@5567 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 00:51:24 +00:00
ryan
e3f7055082 Set eol-style
git-svn-id: http://svn.automattic.com/wordpress/trunk@5566 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-28 00:04:33 +00:00
matt
0ee4823f71 A helpful pointer for a possible cause of this error.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5565 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-27 22:08:42 +00:00
ryan
ab1d417e55 Return true when deleting link to satisfy admin-ajax error check. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5564 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-27 19:43:44 +00:00
ryan
ee5ec0c505 Fix up exporter. Remove more refrences to the categories table. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5563 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-27 19:32:45 +00:00
ryan
2857b43d78 Fix default cat options. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5562 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-27 17:57:15 +00:00
ryan
333d77ea9c Typo fix from flinkflonk. fixes #4347 see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5561 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-27 17:45:31 +00:00
ryan
eb541a962f Link category fixes. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5560 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-27 17:21:04 +00:00
ryan
49953705f1 Delete term if no taxonomies use it. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5559 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-27 06:29:52 +00:00
ryan
128bbfa161 Change term count callback style. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5558 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-27 06:17:50 +00:00
ryan
3e59a81327 Remove debug. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5557 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-27 05:28:30 +00:00
ryan
c816b51b8c Fix object term relationship deletion and count updating.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5556 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-27 05:15:18 +00:00
ryan
2918f50e90 Term cache work. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5555 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-26 23:32:06 +00:00
ryan
474e769f07 cat2tag fixes. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5554 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-26 18:59:58 +00:00
ryan
80ce3031d1 Update cat2tag converter. Some term API tweaks. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5553 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-26 18:54:16 +00:00
ryan
b068bd6447 During upgrade, make slugs unique and put like slugs in a term group. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5552 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-26 17:47:20 +00:00
ryan
f24ed6715f Fix schema formatting to appease dbDelta. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5551 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 22:57:52 +00:00
rob1n
77a141151f Fix typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5549 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 16:27:34 +00:00
rob1n
a98bb3abda Fix Atom feeds' categories. fixes #4307
git-svn-id: http://svn.automattic.com/wordpress/trunk@5548 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 15:55:30 +00:00
rob1n
8a3ed389bb More xmlrpc.php i18n fixes from nbachiyski. fixes #3997
git-svn-id: http://svn.automattic.com/wordpress/trunk@5547 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 15:33:47 +00:00
rob1n
629dde868c Actually check for PHP 4.2. Props nbachiyski. fixes #4336
git-svn-id: http://svn.automattic.com/wordpress/trunk@5546 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 14:51:33 +00:00
ryan
fa860d54c0 Fix include path. see #4334
git-svn-id: http://svn.automattic.com/wordpress/trunk@5545 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 09:53:16 +00:00
ryan
f7e5557f6e Don't load category cache from old tables. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5544 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 09:45:55 +00:00
ryan
8e547a3677 attribute_escape()s and int casts. see #4333
git-svn-id: http://svn.automattic.com/wordpress/trunk@5543 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 09:41:04 +00:00
ryan
770613e763 Admin includes reorg. see #4334
git-svn-id: http://svn.automattic.com/wordpress/trunk@5542 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 07:16:21 +00:00
ryan
92e7d3c3bc Make sure sanitize_option() is always called when updating options.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5541 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-25 02:22:30 +00:00
ryan
677b609ee2 Don't create old tables. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5540 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-24 22:55:33 +00:00
ryan
6445fc55a2 Category/tag to taxonomy upgrade. First cut.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5539 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-24 22:40:24 +00:00
ryan
fe5e71cfaa RSD link fixes from Joseph Scott. fixes #4329 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5537 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-24 17:09:39 +00:00
rob1n
315fcd5cd6 the_search_query() revamp. fixes #4327
git-svn-id: http://svn.automattic.com/wordpress/trunk@5536 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-24 03:37:10 +00:00
rob1n
cf3f7ac197 Use selected() to clean that up. Thanks Mark. fixes #4291
git-svn-id: http://svn.automattic.com/wordpress/trunk@5535 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-24 00:29:51 +00:00
ryan
76d2530a7e No more TAXONOMY bit fiels. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5534 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 22:11:02 +00:00
ryan
6251eb3ca6 wp_delete_term(). see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5533 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 22:03:24 +00:00
ryan
1b783b9b9a More rel_type elimination. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5532 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 20:59:11 +00:00
markjaquith
563c0ab7a2 Allow MT Importer to use FTP-uploaded file (to get around php.ini-set file upload size limit). fixes #4284
git-svn-id: http://svn.automattic.com/wordpress/trunk@5531 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 19:36:35 +00:00
ryan
b00beb3027 Convert category queries and list cats to taxonomy. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5530 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 18:59:12 +00:00
ryan
0e05576999 Set and get post cats to taxonomy. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5529 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 18:07:53 +00:00
ryan
675cc0d029 wp_insert_category(), cat_rows(), and others using taxonomy. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5528 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 17:28:13 +00:00
rob1n
040263799f Filter max upload file size for import form. Props Donncha. fixes #4320
git-svn-id: http://svn.automattic.com/wordpress/trunk@5527 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 15:45:28 +00:00
rob1n
4d9a6e1a98 Fix bloginfo() filtering when it comes to links. Props Nazgul. fixes #4116
git-svn-id: http://svn.automattic.com/wordpress/trunk@5526 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 14:58:32 +00:00
ryan
42df47a478 Add get_term_by() and taxonomy registration bits. Move more category stuff to taxonomy. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5525 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 10:32:33 +00:00
ryan
557eafd82e Add some term hooks. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5524 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 07:26:52 +00:00
ryan
4bbddb6559 Start moving link categories to taxonomy. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5523 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 07:15:10 +00:00
ryan
b450105bfd wp_insert_term() and wp_update_term(). see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5522 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 05:42:31 +00:00
ryan
0b795ff92b Add get_terms() and get_term(). Move more of tagging to taxonomy. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5521 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-23 03:57:20 +00:00
rob1n
e623c78708 Run the i through the parseInt to avoid IE 7 errors. fixes #4268
git-svn-id: http://svn.automattic.com/wordpress/trunk@5520 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 22:52:29 +00:00
rob1n
6a1b3fcd19 Run it through the filter. see #4259
git-svn-id: http://svn.automattic.com/wordpress/trunk@5519 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 22:36:56 +00:00
ryan
c5967f3432 Remove the_content filter from widget text. see #4259
git-svn-id: http://svn.automattic.com/wordpress/trunk@5518 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 21:32:07 +00:00
ryan
fe1178d848 Keep the old tables in the schema until everything is converted. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5516 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 20:59:00 +00:00
ryan
6ecc901391 Fix primary key on term_relationships. Add wp_set_object_terms(). Setting post tags working now. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5515 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 20:39:26 +00:00
markjaquith
0c80a47d13 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/trunk@5513 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 19:57:50 +00:00
markjaquith
9a75737897 Prevent current author from claiming authorship of posts from other authors when editing via desktop client. Props Erik Barzeski. fixes #4315 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@5511 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 19:53:16 +00:00
ryan
634a33c206 Very rough initial commit of taxonomy for everyone's hacking pleasure. There be dragons. see #4189
git-svn-id: http://svn.automattic.com/wordpress/trunk@5510 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 05:12:38 +00:00
rob1n
3ed5b0a01e Don't show title if user leaves it blank. see #4259
git-svn-id: http://svn.automattic.com/wordpress/trunk@5509 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-22 00:25:44 +00:00
rob1n
3fab6618e2 Fix accidental typo. fixes #4300
git-svn-id: http://svn.automattic.com/wordpress/trunk@5508 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 22:58:22 +00:00
rob1n
7048b27ede 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/trunk@5507 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 22:50:32 +00:00
ryan
aeb569d93d Fix theme template field. fixes #4310 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5506 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 20:11:53 +00:00
ryan
b634b18433 Check if is_array before unsetting array index. fixes #4306 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5501 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 16:39:08 +00:00
rob1n
041135b01b Pass text widget text through format_to_edit. Props Ryan. fixes #4302
git-svn-id: http://svn.automattic.com/wordpress/trunk@5499 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 13:13:22 +00:00
rob1n
b83c9dae09 Fix wp-ajax.js addArg's hashes. Props technosailor. fixes #4277
git-svn-id: http://svn.automattic.com/wordpress/trunk@5498 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 12:56:39 +00:00
rob1n
69c2d56a31 Keep editing mode when paging through comments. fixes #4300
git-svn-id: http://svn.automattic.com/wordpress/trunk@5497 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-21 12:52:44 +00:00
rob1n
4e6e08e11d Doh. fixes #4292
git-svn-id: http://svn.automattic.com/wordpress/trunk@5496 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 23:44:37 +00:00
ryan
7a3c62d0dd Fix widget admin layout for IE7. Props Denis-de-Bernardy. fixes #4264 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5494 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 17:24:25 +00:00
rob1n
4a83568904 Check for switch_themes, not edit_themes. Props Denis de Bernardy. fixes #4292
git-svn-id: http://svn.automattic.com/wordpress/trunk@5492 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 04:38:51 +00:00
rob1n
a45c3a3f23 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/trunk@5491 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 04:32:28 +00:00
rob1n
1d47f812cd Select the option if it's set to that. fixes #4291
git-svn-id: http://svn.automattic.com/wordpress/trunk@5490 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 04:26:02 +00:00
ryan
90986b4697 s/2.1/2.2/
git-svn-id: http://svn.automattic.com/wordpress/trunk@5489 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 00:24:08 +00:00
ryan
592c3c0767 Fix tinymce colorpicker. Props azaozz. fixes #4188 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5487 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-19 00:10:24 +00:00
rob1n
5d40bf562c 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/trunk@5486 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-18 02:29:11 +00:00
ryan
8da6590866 Restore crack-headed arg passing to register_sidebar_widget(). fixes #4275 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5485 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-16 17:49:32 +00:00
rob1n
349ba3a536 Fix some attribute misnamings. Props Erunafailaro. fixes #4274
git-svn-id: http://svn.automattic.com/wordpress/trunk@5483 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-16 17:37:55 +00:00
rob1n
d6b4808d80 Update Prototype to 1.5.1 and script.aculo.us to 1.7.1-b2. Props zamoose. fixes #4265
git-svn-id: http://svn.automattic.com/wordpress/trunk@5482 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-16 03:27:07 +00:00
rob1n
77b86e7c68 Fix get_pagenum_link(). fixes #3930
git-svn-id: http://svn.automattic.com/wordpress/trunk@5481 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-16 02:47:24 +00:00
ryan
d4288b9aee Add nonce to avoid AYS when restoring image header.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5478 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-15 16:47:15 +00:00
ryan
a291731ed3 Theme screenshot fix from mdawaffe. fixes #4266 for 2.3.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5476 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-14 23:30:17 +00:00
ryan
1fbb89b1a0 Allow sidebar names to be passed to dynamic_sidebar(). fixes #4258 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5474 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-14 05:13:39 +00:00
matt
b0d60f0351 Show post name and bring organization in line with the edit comments page.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5472 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-14 03:41:03 +00:00
matt
537f72cffb This button gets buried, especially when you have a lot of widgets, and it needs to be at the top too.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5471 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-14 03:39:05 +00:00
rob1n
05c0fccdf9 Get rid of stray space.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5470 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-14 03:28:10 +00:00
matt
0e8598a256 Remove the generation time, it isn't terribly useful to users and gets confused with version
git-svn-id: http://svn.automattic.com/wordpress/trunk@5469 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-14 03:14:17 +00:00
ryan
d7e422644f More Kubrick custom color header i18n from nbachiyski. fixes #4256 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5468 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-13 18:46:17 +00:00
ryan
5b000b1507 Kubrick custin color header i18n from nbachiyski. fixes #4256 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5466 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-13 17:56:30 +00:00
ryan
f5b4234c59 Flush all output buffers during shutdown to avoid PHP 5 bustage. see #3354
git-svn-id: http://svn.automattic.com/wordpress/trunk@5462 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 22:06:31 +00:00
ryan
b820d101d6 Return proper protocol. fixes #3886 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5460 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 21:55:14 +00:00
rob1n
24399dcbfb Seeing double. Good spot momo360modena. fixes #4251 for 2.1, 2.2 and 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5459 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 19:47:47 +00:00
rob1n
f417e94b89 Don't make useless status_header() call. fixes #4249
git-svn-id: http://svn.automattic.com/wordpress/trunk@5458 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 19:30:38 +00:00
matt
a22990a56e 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/trunk@5457 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 18:29:57 +00:00
rob1n
51ace86089 Don't call the function if it doesn't exist yet. fixes #4249
git-svn-id: http://svn.automattic.com/wordpress/trunk@5455 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 16:24:17 +00:00
rob1n
1fb3798eb5 Bring get_pagenum_link() into this century. Props Mark Jaquith. fixes #3930
git-svn-id: http://svn.automattic.com/wordpress/trunk@5454 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-12 00:17:34 +00:00
rob1n
65454107d1 git-svn-id: http://svn.automattic.com/wordpress/trunk@5451 1a063a9b-81f0-0310-95a4-ce76da25c4cd 2007-05-11 04:02:30 +00:00
rob1n
492592d5ec Ugh. I thought I had fixed all of these.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5450 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 04:01:54 +00:00
rob1n
0b847d9933 Some fixes for the Textpattern importer.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5449 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 03:54:56 +00:00
rob1n
ac72ff2a42 Show authors' logins in alphabetical order. fixes #4232
git-svn-id: http://svn.automattic.com/wordpress/trunk@5448 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 03:51:21 +00:00
rob1n
b354bc3813 Filter get_theme_data() data through KSES to get rid of evil XSS things. fixes #4236
git-svn-id: http://svn.automattic.com/wordpress/trunk@5447 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 03:44:03 +00:00
rob1n
ee7d9e9e18 New status_header code, and WP-DB bail() errors send a 503 Service Unavailable. see #2409
Also, the new header code to text array has 302 as Found. fixes #4183


git-svn-id: http://svn.automattic.com/wordpress/trunk@5446 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 03:34:50 +00:00
rob1n
f432ed648a Fix for PHP version 5.2.2 where $HTTP_RAW_POST_DATA isn't set. fixes #4248
git-svn-id: http://svn.automattic.com/wordpress/trunk@5445 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 03:21:06 +00:00
rob1n
e6c189902c Use wp_parse_args(). fixes #4237
git-svn-id: http://svn.automattic.com/wordpress/trunk@5444 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 03:10:05 +00:00
ryan
70c17cc871 Escapage
git-svn-id: http://svn.automattic.com/wordpress/trunk@5441 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-11 00:56:12 +00:00
ryan
f7de9ede8a Handle local and remote blogroll imports. Props apokalyptik. fixes #4243 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5439 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 21:21:54 +00:00
ryan
272fbe5c8a Left, right, dragChange, hop. s/left/right/. Props Lawrence Pit. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5437 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 21:18:21 +00:00
ryan
58b1093938 Use correct var. Props charismabiz. fixes #4246 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5435 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 21:08:13 +00:00
ryan
93266da580 Add missing preg delimiter. see #4241
git-svn-id: http://svn.automattic.com/wordpress/trunk@5433 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 16:37:44 +00:00
ryan
fec23e1837 Cast to array to avoid warning.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5432 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 16:32:11 +00:00
rob1n
b3165ed3c1 Make H2's in the admin wrap nice, and some CSS cleanup. Props JeremyVisser. fixes #4119
git-svn-id: http://svn.automattic.com/wordpress/trunk@5430 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 02:52:22 +00:00
rob1n
26dfd309f6 Show WP-Adv TinyMCE button by default. Props johnbillion. fixes #3171
git-svn-id: http://svn.automattic.com/wordpress/trunk@5429 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 02:42:00 +00:00
rob1n
56a1232923 Don't discard non-default args in wp_parse_args(). see #4237
git-svn-id: http://svn.automattic.com/wordpress/trunk@5428 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 02:33:01 +00:00
ryan
28f3106ee9 Var is an object var. Add missing this.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5427 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 02:31:16 +00:00
rob1n
58839706d0 Let WebKit 420 or above get in. And clean up that overgrown ternary. Props Andy. fixes #4241
git-svn-id: http://svn.automattic.com/wordpress/trunk@5425 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 01:31:12 +00:00
rob1n
ece3623070 Don't add port if port == 80 (default port). fixes #3993
git-svn-id: http://svn.automattic.com/wordpress/trunk@5424 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 01:26:56 +00:00
ryan
17be568a6d Don't preg_match_all when processing items. fixes #4239 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5423 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-10 00:05:21 +00:00
ryan
6f6062af97 Obey show_post_count for dropdown.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5421 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-09 21:54:30 +00:00
matt
1fbc800c8b Knowing the version of the theme is pretty useless in this context, it's clutter.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5419 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-09 17:14:23 +00:00
ryan
a8c91f6c0b Include plugin.php before calling wp_die. fixes #4238 for 2.3.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5418 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-09 16:18:11 +00:00
matt
49407420a2 Don't forget to center this cell as well.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5416 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-09 08:12:54 +00:00
rob1n
1e30a12eb5 Bit of clean-up.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5415 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-09 04:19:19 +00:00
ryan
627725be1a Make sure wp_actions is set before counting.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5413 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-08 17:59:52 +00:00
ryan
bbad336b10 Don't send header from wp_die() if admin header already sent. fixes #4234 for 2.3.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5411 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-07 23:24:44 +00:00
ryan
481e505d49 Fix did_action to properly account for actions that have no callbacks attached.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5409 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-07 23:22:50 +00:00
ryan
ef4ad331e1 Add nonces to importers
git-svn-id: http://svn.automattic.com/wordpress/trunk@5404 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-07 15:56:53 +00:00
ryan
9b1b9b2084 attribute_escape for widgets. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5403 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-07 02:16:28 +00:00
ryan
9805be9f11 Make sure Widgets menu comes after Themes. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5401 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-06 20:36:11 +00:00
ryan
23b99491a2 Fix widget registration back compat by splitting API. Fix feed widget. For 2.3. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5399 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-06 07:08:11 +00:00
rob1n
b6fc2cacce Add in missing delimiter. fixes #4226 for 2.0, 2.2 and 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5396 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-05 02:51:20 +00:00
rob1n
f7f55f0883 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/trunk@5395 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-05 00:19:25 +00:00
rob1n
69f36791f1 Use WP_HOME and WP_SITEURL in upgrading. Props filosofo. fixes #4211
git-svn-id: http://svn.automattic.com/wordpress/trunk@5394 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-05 00:17:05 +00:00
rob1n
8638b7ab3a Return based on whether the hook was removed or not. Props mdawaffe. fixes #4223
Note that this will almost definitely *not* affect existing implementations. The way most code is set up now is to just call remove_filter() or remove_action().


git-svn-id: http://svn.automattic.com/wordpress/trunk@5393 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 23:27:12 +00:00
rob1n
bc423b6e4c Use correct border order in classic theme's CSS. fixes #4225
git-svn-id: http://svn.automattic.com/wordpress/trunk@5392 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 23:23:41 +00:00
ryan
3768d8363d eol-style everywhere
git-svn-id: http://svn.automattic.com/wordpress/trunk@5391 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 21:48:43 +00:00
ryan
b33a7e9cfb Set eol-style
git-svn-id: http://svn.automattic.com/wordpress/trunk@5390 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 21:28:50 +00:00
ryan
e98183c527 Set eol-style
git-svn-id: http://svn.automattic.com/wordpress/trunk@5388 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 21:26:38 +00:00
ryan
b311e786fe 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/trunk@5385 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 17:52:22 +00:00
rob1n
48c85562b8 Don't reference old-style "levels," as they apparently used to call them back in the day.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5384 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 04:18:59 +00:00
rob1n
0a8b69c947 Don't take out class attribute for <abbr />, for hReview. fixes #3420
git-svn-id: http://svn.automattic.com/wordpress/trunk@5383 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 03:52:11 +00:00
ryan
2cc75dbc63 Add 'Select' text to the dropdowns. Props Joseph Scott.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5381 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-04 02:23:49 +00:00
rob1n
ce488547e8 Sort page templates by name. Props Arrrr. see #2926
git-svn-id: http://svn.automattic.com/wordpress/trunk@5380 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-03 04:41:22 +00:00
rob1n
0b1ce5d4f8 Apply get_nested_cats filter. Props davidhouse and Nazgul. fixes #2623
git-svn-id: http://svn.automattic.com/wordpress/trunk@5379 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-03 04:34:07 +00:00
rob1n
7db9d9f6b2 Use fancy quotes instead of raw quotes (which should have been &quot; anyways).
git-svn-id: http://svn.automattic.com/wordpress/trunk@5378 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-03 01:23:14 +00:00
rob1n
f8b2a63e57 Load order fixed.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5377 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-03 00:52:14 +00:00
rob1n
ab530a67d5 Don't show Widgets admin page if core widgets aren't enabled. fixes #4218
git-svn-id: http://svn.automattic.com/wordpress/trunk@5376 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-03 00:43:57 +00:00
rob1n
2fff1e5671 Add lang and xml:lang attributes to allowed list for p, div and blockquote. fixes #4128
git-svn-id: http://svn.automattic.com/wordpress/trunk@5375 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-02 04:31:30 +00:00
rob1n
37745efcae Spring cleaning, extreme edition.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5374 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-02 04:26:57 +00:00
rob1n
e5fb2523b4 Clean that mess up so it's more easily managed.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5373 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-02 04:17:43 +00:00
ryan
9e54a128b8 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/trunk@5370 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-02 00:32:22 +00:00
ryan
f20cad1508 Fix inline uploader page links. Props mdawaffe. fixes #4217 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5368 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 23:33:44 +00:00
ryan
b159bcacff Remove wp_ prefix from default widget class names. For back compat.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5366 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 22:51:52 +00:00
ryan
6658364b30 Set eol-style
git-svn-id: http://svn.automattic.com/wordpress/trunk@5365 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 17:46:55 +00:00
rob1n
b21f9bdc98 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/trunk@5363 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 01:58:18 +00:00
rob1n
5339481434 Typo.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5362 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 01:27:46 +00:00
rob1n
4c26ea65a1 Add clearer to edit-pages.php. Props Nazgul. fixes #4210
git-svn-id: http://svn.automattic.com/wordpress/trunk@5361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 01:19:19 +00:00
rob1n
58d8ed1284 Move widget stuff around. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-05-01 01:13:06 +00:00
ryan
72a19935ff Widget registration fixes from Andy. For 2.3. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5358 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 20:02:02 +00:00
ryan
8efa935340 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/trunk@5356 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 17:43:11 +00:00
ryan
6c0b1d6a5f Fix typo breaking recent comment cache deletion for widgets.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5354 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 16:45:23 +00:00
ryan
f47ebf8582 unfiltered_upload fix from Nazgul. fixes #4136
git-svn-id: http://svn.automattic.com/wordpress/trunk@5353 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 15:54:50 +00:00
ryan
247d22682a Remove debug
git-svn-id: http://svn.automattic.com/wordpress/trunk@5351 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 03:47:14 +00:00
ryan
5fe0bd0c61 Don't use deprecated category API.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5349 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 03:32:33 +00:00
rob1n
a50e0e4c41 Bring back old behavior for sidebar ID's. Props filosofo. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5348 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 02:35:28 +00:00
rob1n
9ddfc38833 Fix stupid error on my part. Props abbaanthony. fixes #4208
git-svn-id: http://svn.automattic.com/wordpress/trunk@5347 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-30 02:28:06 +00:00
rob1n
6f0a508666 Filter dashboard URL's. fixes #2177
git-svn-id: http://svn.automattic.com/wordpress/trunk@5346 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-29 22:37:37 +00:00
rob1n
61059a3dc7 Check basename(). see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5345 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-29 21:00:54 +00:00
rob1n
32c3de1779 Automattically deactivate Automattic Widgets, if activated. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5344 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-29 20:53:29 +00:00
rob1n
b06cdd876f 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/trunk@5343 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-29 20:16:26 +00:00
ryan
df9d590cbc Fix widget control registration where id is not passed in.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5341 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-28 17:04:16 +00:00
ryan
e5ea802c0c Fix edit comment links
git-svn-id: http://svn.automattic.com/wordpress/trunk@5340 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-28 16:45:47 +00:00
ryan
72f35d050c Create widget id from widget name when id not specified.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5338 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-28 06:08:27 +00:00
ryan
a59fcf3c3a Kick widgets init from init hook.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5336 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-28 00:35:47 +00:00
ryan
b028d6eaa3 Some widgets gettext.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5334 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-28 00:29:27 +00:00
rob1n
638337cf4a Don't double encode gzip output if gzip is already set in php.ini. Props
welcomb. fixes #4205


git-svn-id: http://svn.automattic.com/wordpress/trunk@5333 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 20:55:05 +00:00
matt
05996c589f Link it even if it's zero because it counts approved comments and you might want to go to that page even if there are no approved comments yet.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5331 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 05:30:23 +00:00
matt
8a486dfe60 Link that URL!
git-svn-id: http://svn.automattic.com/wordpress/trunk@5330 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 05:23:53 +00:00
ryan
8aaa48e041 Use the right field name ya idjit.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5329 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 04:34:44 +00:00
ryan
d44752d2ca Consult global comment in get_comment(). Don't show empty edit links.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5328 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 03:51:36 +00:00
rob1n
8d6b81e175 Whoops, forgot widgets-rtl.css.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5327 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 02:39:22 +00:00
rob1n
007a086bcd Use non-GMT date. fixes #3034
git-svn-id: http://svn.automattic.com/wordpress/trunk@5326 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 00:56:12 +00:00
rob1n
9843f9df79 Add Firefox bookmarking instructions. Props abelcheung. fixes #4203
git-svn-id: http://svn.automattic.com/wordpress/trunk@5325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 00:55:11 +00:00
rob1n
1f39b8dce7 Widgets RTL CSS, and a few little widget bugfixes. Props Sewar. fixes #4185
git-svn-id: http://svn.automattic.com/wordpress/trunk@5324 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 00:51:19 +00:00
rob1n
44088f5463 Add id attribute where it's only name. fixes #3696
git-svn-id: http://svn.automattic.com/wordpress/trunk@5323 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-27 00:47:01 +00:00
matt
93bd5ffe05 I think this got accidentally reverted.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5322 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-26 22:17:13 +00:00
ryan
cb6d5b0c4b Fix text and rss widget registration. fixes #4204 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-26 17:49:11 +00:00
ryan
6a307367a8 Add dropdown option to archives and categories widgets. Props Joseph Scott. fixes #4194 for 2.2
git-svn-id: http://svn.automattic.com/wordpress/trunk@5319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-26 17:17:30 +00:00
rob1n
85902939a7 Links widget fixes from Otto42. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5317 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-26 03:43:59 +00:00
rob1n
309491de6d 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/trunk@5316 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-26 02:13:18 +00:00
rob1n
2a03779965 Firefox uses Alt+Shift for access keys. Props johnbillion. fixes #4193
git-svn-id: http://svn.automattic.com/wordpress/trunk@5315 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-26 02:02:59 +00:00
rob1n
b3d3d731ac Require once only. Props masquerade. fixes #4192
git-svn-id: http://svn.automattic.com/wordpress/trunk@5313 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-25 04:41:12 +00:00
rob1n
1657ad3db3 Housekeeping -- a misspelling.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5312 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-25 03:14:11 +00:00
rob1n
bc90e51a2f Variable name fix. Props filosofo. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5310 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-25 03:02:28 +00:00
rob1n
129931fdcd Add admin_xml_ns to upload.php's <html>, since it doesn't use admin-header.php.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5309 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-25 00:56:22 +00:00
rob1n
d3f52c3b45 Allow number_format to be internationalized. Props nbachiyski. fixes #3677
git-svn-id: http://svn.automattic.com/wordpress/trunk@5308 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-25 00:49:57 +00:00
rob1n
56add54053 Housekeeping -- clean out debug calls.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5307 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 23:58:51 +00:00
rob1n
559fa91b8d Add ODT to allowed file types. Props Nazgul. fixes #4136
git-svn-id: http://svn.automattic.com/wordpress/trunk@5304 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 23:28:39 +00:00
rob1n
ea9d389751 Add unfiltered_upload cap, and allow for admins. Props Nazgul. fixes #4136
git-svn-id: http://svn.automattic.com/wordpress/trunk@5303 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 23:27:20 +00:00
rob1n
534eeaf7bc get_edit_*_link() functions. fixes #4153
git-svn-id: http://svn.automattic.com/wordpress/trunk@5302 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 23:21:56 +00:00
ryan
c03e74ab48 Update widgets to latest bits. see #4169
git-svn-id: http://svn.automattic.com/wordpress/trunk@5301 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 21:36:17 +00:00
ryan
a0985c387b widgets.php be doubling down. Once is enough.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5300 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 18:41:42 +00:00
ryan
9426bb5642 Set eol-style on new files.
git-svn-id: http://svn.automattic.com/wordpress/trunk@5299 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 18:40:02 +00:00
rob1n
03e6c2ed9a Widgets for 2.3. fixes #4186
git-svn-id: http://svn.automattic.com/wordpress/trunk@5297 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-24 01:05:17 +00:00
ryan
c28054301c Fix variable collission in _get_cat_children. see #3985
git-svn-id: http://svn.automattic.com/wordpress/trunk@5295 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-23 20:28:38 +00:00
rob1n
2e72244bde has_excerpt() template tag. fixes #4177 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5293 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-22 04:25:47 +00:00
ryan
be8f80d6d2 Use GMT in XML-RPC dateCreated fields. Props Joseph Scott. fixes #4158 for 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5292 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-22 03:07:34 +00:00
rob1n
eb2b42e800 Properly close the paragraph. Props zeo. fixes #4171 for both 2.2 and 2.3
git-svn-id: http://svn.automattic.com/wordpress/trunk@5290 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-20 03:52:41 +00:00
ryan
978cf8aee5 2.3-alpha
git-svn-id: http://svn.automattic.com/wordpress/trunk@5288 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2007-04-19 04:05:39 +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
385 changed files with 72076 additions and 32163 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,112 +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/css/install.css" type="text/css" />
</head>
<body>
<h1 style="text-align: center"><img alt="WordPress" src="http://wordpress.org/images/wordpress.gif" /> <br />
Version 2.0</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.3
</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>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>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 2.0:</h2>
<h2>Upgrading from any previous WordPress to 2.3:</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>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="roles">User Roles </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>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>
@@ -117,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>

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

@@ -0,0 +1,320 @@
<?php
require_once('../wp-config.php');
require_once('includes/admin.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-link-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 ( !$slug = sanitize_title($cat_name) )
die('0');
if ( !$cat_id = is_term( $cat_name, 'link_category' ) ) {
$cat_id = wp_insert_term( $cat_name, 'link_category' );
$cat_id = $cat_id['term_id'];
}
$cat_name = wp_specialchars(stripslashes($cat_name));
$x->add( array(
'what' => 'link-category',
'id' => $cat_id,
'data' => "<li id='link-category-$cat_id'><label for='in-link-category-$cat_id' class='selectit'><input value='$cat_id' type='checkbox' checked='checked' name='link_category[]' id='in-link-category-$cat_id'/> $cat_name</label></li>"
) );
}
$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))
) ) ) {
if ( is_wp_error( $pid ) )
return $pid;
$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;
?>

View File

@@ -1,349 +0,0 @@
<?php
function get_users_drafts( $user_id ) {
global $wpdb;
$user_id = (int) $user_id;
$query = "SELECT ID, post_title FROM $wpdb->posts WHERE 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_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)" );
}
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);
$cat_ID = (int) $cat_ID;
// Are we updating or creating?
if (!empty ($cat_ID))
$update = true;
else
$update = false;
$cat_name = wp_specialchars($cat_name);
if (empty ($category_nicename))
$category_nicename = sanitize_title($cat_name);
else
$category_nicename = sanitize_title($category_nicename);
if (empty ($category_description))
$category_description = '';
if (empty ($category_parent))
$category_parent = 0;
if (!$update) {
$wpdb->query("INSERT INTO $wpdb->categories (cat_ID, cat_name, category_nicename, category_description, category_parent) VALUES ('0', '$cat_name', '$category_nicename', '$category_description', '$category_parent')");
$cat_ID = $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' 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'" );
}
wp_cache_delete($cat_ID, 'category');
if ($update) {
do_action('edit_category', $cat_ID);
} else {
wp_cache_delete('all_category_ids', 'category');
do_action('create_category', $cat_ID);
do_action('add_category', $cat_ID);
}
return $cat_ID;
}
function wp_update_category($catarr) {
global $wpdb;
$cat_ID = (int) $catarr['cat_ID'];
// 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;
// Don't delete the default cat.
if (1 == $cat_ID)
return 0;
$category = get_category($cat_ID);
$parent = $category->category_parent;
// Delete the category.
$wpdb->query("DELETE FROM $wpdb->categories WHERE cat_ID = '$cat_ID'");
// Update children to point to new parent.
$wpdb->query("UPDATE $wpdb->categories SET category_parent = '$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_cache_delete($cat_ID, 'category');
wp_cache_delete('all_category_ids', 'category');
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_cats('', $post_id, $cat_ids);
return $cat_ids;
}
function category_exists($cat_name) {
global $wpdb;
if (!$category_nicename = sanitize_title($cat_name))
return 0;
return $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
$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');
do_action('delete_user', $id);
return true;
}
function get_link($link_id, $output = OBJECT) {
global $wpdb;
$link = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = '$link_id'");
if ( $output == OBJECT ) {
return $link;
} elseif ( $output == ARRAY_A ) {
return get_object_vars($link);
} elseif ( $output == ARRAY_N ) {
return array_values(get_object_vars($link));
} else {
return $link;
}
}
function wp_insert_link($linkdata) {
global $wpdb, $current_user;
extract($linkdata);
$update = false;
if ( !empty($link_id) )
$update = true;
if ( empty($link_rating) )
$link_rating = 0;
if ( empty($link_target) )
$link_target = '';
if ( empty($link_visible) )
$link_visible = 'Y';
if ( empty($link_owner) )
$link_owner = $current_user->id;
if ( empty($link_notes) )
$link_notes = '';
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_category='$link_category',
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_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', '$link_owner', '$link_rating', '$link_rel', '$link_notes', '$link_rss')");
$link_id = $wpdb->insert_id;
}
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);
// Merge old and new fields with new fields overwriting old ones.
$linkdata = array_merge($link, $linkdata);
return wp_insert_link($linkdata);
}
function wp_delete_link($link_id) {
global $wpdb;
do_action('delete_link', $link_id);
return $wpdb->query("DELETE FROM $wpdb->links WHERE link_id = '$link_id'");
}
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,19 +1,13 @@
<div id="footer"><p><a href="http://wordpress.org/" id="wordpress-logo"><img src="images/wordpress-logo.png" alt="WordPress" /></a></p>
<p>
<a href="http://codex.wordpress.org/"><?php _e('Documentation'); ?></a> &#8212; <a href="http://wordpress.org/support/"><?php _e('Support Forums'); ?></a> <br />
<?php bloginfo('version'); ?> &#8212; <?php printf(__('%s seconds'), number_format(timer_stop(), 2)); ?>
</p>
<div id="footer">
<p><?php
$upgrade = apply_filters( 'update_footer', '' );
echo __('Thank you for creating with <a href="http://wordpress.org/">WordPress</a>').' | '.__('<a href="http://codex.wordpress.org/">Documentation</a>').' | '.__('<a href="http://wordpress.org/support/forum/4">Feedback</a>').' '.$upgrade;
?></p>
</div>
<?php do_action('admin_footer', ''); ?>
<script type="text/javascript">if(typeof wpOnload=='function')wpOnload();</script>
<?php
if ( (substr(php_sapi_name(), 0, 3) == 'cgi') && spawn_pinger() ) {
echo '<iframe id="pingcheck" src="' . get_settings('siteurl') .'/wp-admin/execute-pings.php?time=' . time() . '" style="border:none;width:1px;height:1px;"></iframe>';
}
?>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,71 +1,54 @@
<?php
@header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
<?php
@header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
if (!isset($_GET["page"])) require_once('admin.php');
if ( $editing ) {
$dbx_js = true;
$cat_js = true;
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' );
}
if ( $list_js || $cat_js )
$sack_js = true;
get_admin_page_title();
?>
<?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">
<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_settings('blog_charset'); ?>" />
<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_option('blog_charset'); ?>" />
<title><?php bloginfo('name') ?> &rsaquo; <?php echo wp_specialchars( strip_tags( $title ) ); ?> &#8212; WordPress</title>
<?php wp_admin_css(); ?>
<script type="text/javascript">
//<![CDATA[
function addLoadEvent(func) {if ( typeof wpOnload!='function'){wpOnload=func;}else{ var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}}
//]]>
</script>
<script type="text/javascript" src="../wp-includes/js/fat.js"></script>
<?php if ( $xfn_js ) { ?>
<script type="text/javascript" src="xfn.js"></script>
<?php } ?>
<?php if ( $sack_js ) { ?>
<script type="text/javascript" src="../wp-includes/js/tw-sack.js"></script>
<?php } ?>
<?php if ( $list_js ) { ?>
<script type="text/javascript" src="list-manipulation.js"></script>
<?php } ?>
<?php if ( $dbx_js ) { ?>
<script type="text/javascript" src="../wp-includes/js/dbx.js"></script>
<script type="text/javascript">
//<![CDATA[
addLoadEvent( function() {
<?php switch ( $pagenow ) : case 'post.php' : ?>
var manager = new dbxManager('postmeta');
<?php break; case 'page-new.php' : ?>
var manager = new dbxManager('pagemeta');
<?php break; endswitch; ?>
});
//]]>
</script>
<script type="text/javascript" src="../wp-includes/js/dbx-key.js"></script>
<?php } ?>
<?php if ( $editing && user_can_richedit() ) { ?>
<script type="text/javascript" src="../wp-includes/js/tinymce/tiny_mce_gzip.php?ver=20051211"></script>
<?php } ?>
<?php if ( $cat_js ) { ?>
<script type="text/javascript" src="cat-js.php"></script>
<?php } ?>
<?php if ( ($parent_file != 'link-manager.php') && ($parent_file != 'options-general.php') ) : ?>
<style type="text/css">* html { overflow-x: hidden; }</style>
<?php endif; ?>
<?php do_action('admin_head'); ?>
<?php endif;
if ( isset($page_hook) )
do_action('admin_print_scripts-' . $page_hook);
else if ( isset($plugin_page) )
do_action('admin_print_scripts-' . $plugin_page);
do_action('admin_print_scripts');
if ( isset($page_hook) )
do_action('admin_head-' . $page_hook);
else if ( isset($plugin_page) )
do_action('admin_head-' . $plugin_page);
do_action('admin_head');
?>
</head>
<body>
<body class="wp-admin <?php echo apply_filters( 'admin_body_class', '' ); ?>">
<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 id="viewsite">(<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_settings('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 Account'); ?></a>] </p></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');
require(ABSPATH . 'wp-admin/menu-header.php');
if ( $parent_file == 'options-general.php' ) {
require(ABSPATH . '/wp-admin/options-head.php');
require(ABSPATH . 'wp-admin/options-head.php');
}
?>

View File

@@ -1,15 +1,17 @@
<?php
define('WP_ADMIN', TRUE);
if ( defined('ABSPATH') )
require_once( ABSPATH . 'wp-config.php');
else
require_once('../wp-config.php');
if ( get_option('db_version') != $wp_db_version )
die (sprintf(__("Your database is out-of-date. Please <a href='%s'>upgrade</a>."), get_option('siteurl') . '/wp-admin/upgrade.php'));
require_once(ABSPATH . 'wp-admin/admin-functions.php');
require_once(ABSPATH . 'wp-admin/admin-db.php');
require_once(ABSPATH . WPINC . '/registration-functions.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/includes/admin.php');
auth_redirect();
@@ -17,90 +19,94 @@ 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'));
$xfn_js = $sack_js = $list_js = $cat_js = $dbx_js = $editing = false;
wp_enqueue_script( 'fat' );
require(ABSPATH . '/wp-admin/menu.php');
$editing = false;
// Handle plugin admin pages.
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($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');
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");
require_once(ABSPATH . 'wp-admin/admin-header.php');
include(ABSPATH . PLUGINDIR . "/$plugin_page");
}
include(ABSPATH . 'wp-admin/admin-footer.php');
exit();
} else if (isset($_GET['import'])) {
$importer = $_GET['import'];
if ( validate_file($importer) ) {
die(__('Invalid importer.'));
}
if (! file_exists(ABSPATH . "wp-admin/import/$importer.php"))
die(__('Cannot load importer.'));
include(ABSPATH . "wp-admin/import/$importer.php");
if ( ! current_user_can('import') )
wp_die(__('You are not allowed to import.'));
$parent_file = 'import.php';
if ( validate_file($importer) ) {
wp_die(__('Invalid importer.'));
}
// Allow plugins to define importers as well
if (! is_callable($wp_importers[$importer][2]))
{
if (! file_exists(ABSPATH . "wp-admin/import/$importer.php"))
{
wp_die(__('Cannot load importer.'));
}
include(ABSPATH . "wp-admin/import/$importer.php");
}
$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');
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
define('WP_IMPORTING', true);
kses_init_filters(); // Always filter imported data with kses.
call_user_func($wp_importers[$importer][2]);
include(ABSPATH . 'wp-admin/admin-footer.php');
exit();
} else {
do_action("load-$pagenow");
}
?>

View File

@@ -3,7 +3,7 @@ $mode = 'bookmarklet';
require_once('admin.php');
if ( ! current_user_can('edit_posts') )
die ("Cheatin' uh?");
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">
@@ -25,33 +25,33 @@ $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 = wp_specialchars($_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 */
$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'); ?>" />
<link rel="stylesheet" href="wp-admin.css" type="text/css" />
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
<?php wp_admin_css(); ?>
<style type="text/css">
<!--
@@ -77,15 +77,15 @@ $popupurl = wp_specialchars($_REQUEST['popupurl']);
}
#wpbookmarklet .wrap {
border: 0px;
border: 0px;
}
#wpbookmarklet #postdiv {
margin-bottom: 0.5em;
margin-bottom: 0.5em;
}
#wpbookmarklet #titlediv {
margin-bottom: 1em;
margin-bottom: 1em;
}
-->

View File

@@ -1,178 +0,0 @@
<?php
require_once('admin.php');
header('Content-type: text/javascript; charset=' . get_settings('blog_charset'), true);
?>
var ajaxCat = new sack();
var newcat;
function newCatAddIn() {
if ( !document.getElementById('jaxcat') ) return false;
var ajaxcat = document.createElement('span');
ajaxcat.id = 'ajaxcat';
newcat = document.createElement('input');
newcat.type = 'text';
newcat.name = 'newcat';
newcat.id = 'newcat';
newcat.size = '16';
newcat.setAttribute('autocomplete', 'off');
newcat.onkeypress = ajaxNewCatKeyPress;
var newcatSub = document.createElement('input');
newcatSub.type = 'button';
newcatSub.name = 'Button';
newcatSub.id = 'catadd';
newcatSub.value = '<?php echo addslashes(__('Add')); ?>';
newcatSub.onclick = ajaxNewCat;
ajaxcat.appendChild(newcat);
ajaxcat.appendChild(newcatSub);
document.getElementById('jaxcat').appendChild(ajaxcat);
howto = document.createElement('span');
howto.innerHTML = '<?php echo addslashes(__('Separate multiple categories with commas.')); ?>';
howto.id = 'howto';
ajaxcat.appendChild(howto);
}
addLoadEvent(newCatAddIn);
function getResponseElement() {
var p = document.getElementById('ajaxcatresponse');
if (!p) {
p = document.createElement('span');
document.getElementById('jaxcat').appendChild(p);
p.id = 'ajaxcatresponse';
}
return p;
}
function newCatLoading() {
var p = getResponseElement();
p.innerHTML = '<?php echo addslashes(__('Sending Data...')); ?>';
}
function newCatLoaded() {
var p = getResponseElement();
p.innerHTML = '<?php echo addslashes(__('Data Sent...')); ?>';
}
function newCatInteractive() {
var p = getResponseElement();
p.innerHTML = '<?php echo addslashes(__('Processing Request...')); ?>';
}
function newCatCompletion() {
var p = getResponseElement();
var id = 0;
var ids = new Array();
var names = new Array();
ids = myPload( ajaxCat.response );
names = myPload( newcat.value );
for ( i = 0; i < ids.length; i++ ) {
id = ids[i].replace(/[\n\r]+/g, "");
if ( id == '-1' ) {
p.innerHTML = "<?php echo addslashes(__("You don't have permission to do that.")); ?>";
return;
}
if ( id == '0' ) {
p.innerHTML = "<?php echo addslashes(__('That category name is invalid. Try something else.')); ?>";
return;
}
var exists = document.getElementById('category-' + id);
if (exists) {
var moveIt = exists.parentNode;
var container = moveIt.parentNode;
container.removeChild(moveIt);
container.insertBefore(moveIt, container.firstChild);
moveIt.id = 'new-category-' + id;
exists.checked = 'checked';
var nowClass = moveIt.className;
moveIt.className = nowClass + ' fade';
Fat.fade_all();
moveIt.className = nowClass;
} else {
var catDiv = document.getElementById('categorychecklist');
var newLabel = document.createElement('label');
newLabel.setAttribute('for', 'category-' + id);
newLabel.id = 'new-category-' + id;
newLabel.className = 'selectit fade';
var newCheck = document.createElement('input');
newCheck.type = 'checkbox';
newCheck.value = id;
newCheck.name = 'post_category[]';
newCheck.id = 'category-' + id;
newLabel.appendChild(newCheck);
var newLabelText = document.createTextNode(' ' + names[i]);
newLabel.appendChild(newLabelText);
catDiv.insertBefore(newLabel, catDiv.firstChild);
newCheck.checked = 'checked';
Fat.fade_all();
newLabel.className = 'selectit';
}
newcat.value = '';
}
p.parentNode.removeChild(p);
// var id = parseInt(ajaxCat.response, 10);
}
function ajaxNewCatKeyPress(e) {
if (!e) {
if (window.event) {
e = window.event;
} else {
return;
}
}
if (e.keyCode == 13) {
ajaxNewCat();
e.returnValue = false;
e.cancelBubble = true;
return false;
}
}
function ajaxNewCat() {
var newcat = document.getElementById('newcat');
var split_cats = new Array(1);
var catString = '';
catString = 'ajaxnewcat=' + encodeURIComponent(newcat.value);
ajaxCat.requestFile = 'edit-form-ajax-cat.php';
ajaxCat.method = 'GET';
ajaxCat.onLoading = newCatLoading;
ajaxCat.onLoaded = newCatLoaded;
ajaxCat.onInteractive = newCatInteractive;
ajaxCat.onCompletion = newCatCompletion;
ajaxCat.runAJAX(catString);
}
function myPload( str ) {
var fixedExplode = new Array();
var comma = new String(',');
var count = 0;
var currentElement = '';
for( x=0; x < str.length; x++) {
andy = str.charAt(x);
if ( comma.indexOf(andy) != -1 ) {
currentElement = currentElement.replace(new RegExp('^\\s*(.*?)\\s*$', ''), '$1'); // trim
fixedExplode[count] = currentElement;
currentElement = "";
count++;
} else {
currentElement += andy;
}
}
if ( currentElement != "" )
fixedExplode[count] = currentElement;
return fixedExplode;
}

View File

@@ -3,112 +3,80 @@ require_once('admin.php');
$title = __('Categories');
$parent_file = 'edit.php';
$list_js = true;
$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 ( !current_user_can('manage_categories') )
die (__('Cheatin&#8217; uh?'));
wp_insert_category($_POST);
check_admin_referer('add-category');
header('Location: categories.php?message=1#addcat');
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') )
die (__('Cheatin&#8217; uh?'));
wp_die(__('Cheatin&#8217; uh?'));
$cat_ID = (int) $_GET['cat_ID'];
$cat_name = get_catname($cat_ID);
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));
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 = get_category_to_edit($cat_ID);
?>
<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($category->cat_name); ?>" size="40" /> <input type="hidden" name="action" value="editedcat" />
<input type="hidden" name="cat_ID" value="<?php echo $category->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='category_parent'>
<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 ( !current_user_can('manage_categories') )
die (__('Cheatin&#8217; uh?'));
wp_update_category($_POST);
$cat_ID = (int) $_POST['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'])) : ?>
@@ -121,44 +89,33 @@ $messages[3] = __('Category updated.');
<?php else : ?>
<h2><?php _e('Categories') ?> </h2>
<?php endif; ?>
<table id="the-list-x" 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 colspan="2" style="text-align: center"><?php _e('Action') ?></th>
</tr>
</thead>
<tbody id="the-list">
<?php
cat_rows();
?>
</tbody>
</table>
<div id="ajax-response"></div>
</div>
<?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(get_option('default_category'))) ?></p>
<p><?php printf(__('<strong>Note:</strong><br />Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the category <strong>%s</strong>.'), apply_filters('the_category', get_catname(get_option('default_category')))) ?></p>
<p><?php printf(__('Categories can be selectively converted to tags using the <a href="%s">category to tag converter</a>.'), 'admin.php?import=wp-cat2tag') ?></p>
</div>
<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='category_parent' 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
@@ -166,4 +123,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><a href='<?php echo $comment->comment_author_url; ?>'><?php echo $comment->comment_author_url; ?></a></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');
?>

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/css/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

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

204
wp-admin/css/upload.css Normal file
View File

@@ -0,0 +1,204 @@
body { background: #f9fcfe; }
.upload-file-data { display: none; }
#upload-menu {
border-top: 2em solid #247fab;
margin: 0;
padding: 0;
height: 0;
list-style: none;
width: 100%;
}
body > #upload-menu { border-bottom: 7px solid #fff; }
#upload-menu li {
margin: 0;
position: relative;
top: -2em;
padding-bottom: 5px;
border: none;
border-top: 3px solid #247fab;
}
#upload-menu li a.upload-tab-link {
margin-left: 0.75em;
padding: 5px 5px 0;
display: block;
float: left;
height: 100%;
text-decoration: none;
border-bottom: none;
color: #fff;
}
#upload-menu li.current {
border-right: 2px solid #448abd;
color: #000;
}
#upload-menu li.current a.upload-tab-link, #upload-menu li a:hover {
background: #f9fcfe;
color: #000;
}
#upload-menu li #current-tab-nav {
background: #f9fcfe;
float: left;
padding: 5px 5px 0 0;
margin-left: -5px;
}
#upload-menu li span .page-numbers {
padding: 0;
border: none;
}
#upload-menu li span a.page-numbers { color: #00019b; }
#upload-menu li span a.page-numbers:hover { text-decoration: underline; }
#upload-content {
position: relative;
clear: both;
margin: 0;
padding: 0;
border: none;
width: 100%;
height: 100%;
background: none;
}
#upload-file {
margin: 0 auto;
top: 0;
left: 0;
width: 95%;
height: 100%;
background: #f9fcfe;
}
#upload-file th {
width: 8em;
}
form#upload-file input, form#upload-file textarea, div#upload-content.upload table { width: 100%; }
form#upload-file .submit input { width: auto; }
#upload-file-view { padding: 0 0 0 75px; }
#file-title {
margin: 0 0 .2em 75px;
padding: 0;
display: block;
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 16px;
}
h2 {
margin: 0 .2em 0 0;
padding: 0;
display: inline;
border: none;
color: #000;
font-size: 1.4em;
line-height: 1.4em;
}
.wrap h2 {
margin: .4em 0 .5em;
display: block;
border-bottom: .5em solid #e5f3ff;
color: #333;
font: normal 32px/5px serif;
clear: both;
}
* html .wrap h2 {
margin-top: 1em;
}
.back {
display: block;
position: absolute;
left: 14px;
top: 10px;
}
#upload-files {
list-style-type: none;
margin: 0;
padding: 15px 0 0;
}
#upload-files li { margin: 0 0 15px 15px; }
#upload-files a, #upload-file-view a, a.file-link {
border: none;
text-decoration: none;
}
#upload-file-view a img { padding-bottom: .2em; border-bottom: 1px solid #6699CC; }
#upload-files a.file-link {
display: block;
width: 130px;
height: 128px;
background-color: rgb(209, 226, 239);
text-align: center;
overflow: hidden;
}
#upload-files a.text {
padding-top: 40px;
height: 88px;
font-size: 16px;
}
#upload-files a.file-link.image {
font-size: 2px;
letter-spacing: 0;
}
#upload-files a.file-link img { vertical-align: middle; }
#the-attachment-links textarea {
font-size: 10px;
overflow: hidden;
}
form table { float: none; padding: 0 15px; }
table {
float: left;
margin: 0;
padding: 0;
}
th { text-align: right; vertical-align: text-top; }
tr, td, th {
margin-top: 0;
padding-top: 0;
}
#uploadoptions th {
width: 80px;
}
#uploadoptions p {
margin: 0;
padding: 0;
}
#uploadoptions td {
padding-left: 1em;
line-height: 140%;
}
#uploadoptions table {
width: 300px;
}
input.readonly { background-color: #ddd; }

View File

@@ -0,0 +1,38 @@
.dropzone,
#palettediv,
.handle,
.controlform {
direction: rtl;
text-align: justify;
}
.dropzone {
float: right;
margin-left: 10px;
margin-right: auto;
width: 240px;
}
* html .dropzone ul {
margin-right: 0;
}
* .handle, #lastmodule span {
border-left: 1px solid #e8e8e8;
border-right: 1px solid #f2f2f2;
}
* .popper {
right: auto;
left: 3px;
}
#palettediv .module, #lastmodule {
margin-right: auto;
margin-left: 10px;
float: right;
}
#palettediv ul {
padding: 0 10px 0 0;
margin-right: 0;
width: 100%;
}
.placemat {
margin-right: 0;
float: right;
}

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

@@ -0,0 +1,236 @@
body {
height: 100%;
}
#sbadmin #zones {
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
}
#sbreset {
float: left;
margin: 1px 0;
}
.dropzone {
border: 1px solid #bbb;
float: left;
margin-right: 10px;
padding: 5px;
background-color: #f0f8ff;
}
.dropzone h3 {
text-align: center;
color: #333;
}
.dropzone input {
display: none;
}
.dropzone ul {
float: left;
list-style-type: none;
width: 240px;
margin: 0;
min-height: 200px;
padding: 0;
display: block;
}
* .module {
width: 238px;
padding: 0;
margin: 5px 0;
cursor: move;
display: block;
border: 1px solid #ccc;
background-color: #fbfbfb;
position: relative;
text-align: left;
line-height: 25px;
}
* .handle {
display: block;
width: 216px;
padding: 0 10px;
position: relative;
border-top: 1px solid #f2f2f2;
border-right: 1px solid #e8e8e8;
border-bottom: 1px solid #e8e8e8;
border-left: 1px solid #f2f2f2;
}
* .popper {
margin: 0;
display: inline;
position: absolute;
top: 3px;
right: 3px;
overflow: hidden;
text-align: center;
height: 16px;
font-size: 18px;
line-height: 14px;
cursor: pointer;
padding: 0 3px 1px;
border-top: 4px solid #6da6d1;
background: url( ../images/fade-butt.png ) -5px 0px;
}
* html .popper {
padding: 1px 6px 0;
font-size: 16px;
}
#sbadmin p.submit {
padding-right: 10px;
clear: left;
}
.placemat {
cursor: default;
margin: 0;
padding: 0;
position: relative;
}
.placemat h4 {
text-align: center;
}
.placemat span {
background-color: #ffe;
border: 1px solid #ccc;
padding: 0 10px 10px;
position: absolute;
text-align: justify;
}
#palettediv {
border: 1px solid #bbb;
background-color: #f0f8ff;
height:auto;
margin-top: 10px;
padding-bottom: 10px;
}
#palettediv:after, #zones:after, .dropzone:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
#palettediv, #zones, .dropzone {
display: block;
min-height: 1px;
}
* html #palettediv, * html #zones, * html .dropzone {
height: 1%;
}
#palettediv h3 {
text-align: center;
color: #333;
min-height: 1px;
}
#palettediv ul {
padding: 0 0 0 10px;
}
#palettediv .module {
margin-right: 10px;
float: left;
width: 120px;
}
#palettediv .handle {
height: 40px;
font-size: 90%;
width: 110px;
padding: 0 5px;
}
#palettediv .popper {
visibility: hidden;
}
* html #palettediv ul {
margin: 0;
padding: 0 0 0 10px;
}
#controls {
height: 0px;
}
.control {
position: absolute;
display: block;
background: #f9fcfe;
padding: 0;
}
.controlhandle {
cursor: move;
background-color: #6da6d1;
border-bottom: 2px solid #448abd;
color: #333;
display: block;
margin: 0 0 5px;
padding: 4px;
font-size: 120%;
}
.controlcloser {
cursor: pointer;
font-size: 120%;
display: block;
position: absolute;
top: 2px;
right: 8px;
padding: 0 3px;
font-weight: bold;
}
.controlform {
margin: 20px 30px;
}
.controlform p {
text-align: center;
}
.control .checkbox {
border: none;
background: transparent;
}
.hidden {
display: none;
}
#shadow {
background: black;
display: none;
position: absolute;
top: 0px;
left: 0px;
width: 100%;
}
#dragHelper {
position: absolute;
}
#dragHelper li.module {
display: block;
float: left;
}

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-image: url(<?php clean_url(header_image()) ?>);">
<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();
}
}
}
?>

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->term_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->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->slug); ?>" 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->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->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>

View File

@@ -2,12 +2,12 @@
require_once('admin.php');
$title = __('Edit Comments');
$parent_file = 'edit.php';
$list_js = true;
$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">
@@ -23,139 +23,166 @@ 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">
<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="submit" name="submit" value="<?php _e('Search') ?>" />
<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 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.)') ?>
</fieldset>
<?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 ( current_user_can('edit_post', $post_id) ) :
wp_set_comment_status($comment, "delete");
$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 id='the-list' 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 id='comment-$comment->comment_ID' 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 && 'http://' != $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 ( current_user_can('edit_post', $comment->comment_post_ID) ) {
echo " | <a href=\"post.php?action=editcomment&amp;comment=".$comment->comment_ID."\">" . __('Edit Comment') . "</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, '" . sprintf(__("You are about to delete this comment by &quot;%s&quot;.\\n&quot;Cancel&quot; to stop, &quot;OK&quot; to delete."), wp_specialchars( $comment->comment_author, 1 )) . "' );\">" . __('Delete Comment') . "</a> &#8212; ";
} // end if any comments to show
// Get post title
if ( current_user_can('edit_post', $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>
<?php } // end foreach ?>
</ol>
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 ?>
<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"));
$post = get_post($comment->comment_post_ID);
$authordata = get_userdata($post->post_author);
$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 ( current_user_can('edit_post', $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 style="text-align: center"><?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><a href="edit-comments.php?s=<?php comment_author_IP() ?>&amp;mode=edit"><?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 ('unapproved' == $comment_status) {
_e('Unapproved');
} 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='post.php?action=editcomment&amp;comment=$comment->comment_ID' class='edit'>" . __('Edit') . "</a>"; } ?></td>
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=\"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>
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
<?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 {
?>
@@ -165,7 +192,11 @@ if ('view' == $mode) {
<?php
} // end if ($comments)
}
?>
if ( $page_links )
echo "<p class='pagenav'>$page_links</p>";
?>
</div>

View File

@@ -1,59 +1,63 @@
<?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 id="message" class="updated fade"><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']) ): ?>
<?php if ( (isset($mode) && 'bookmarklet' == $mode) || isset($_GET['popupurl']) ): ?>
<input type="hidden" name="mode" value="bookmarklet" />
<?php endif; ?>
<div class="wrap">
<h2 id="write-post"><?php _e('Write Post'); ?><?php if ( 0 != $post_ID ) : ?>
<small class="quickjump"><a href="#preview-post"><?php _e('preview &darr;'); ?></a></small><?php endif; ?></h2>
<?php
if (0 == $post_ID) {
$form_action = 'post';
$temp_ID = -1 * time();
$form_extra = "<input type='hidden' name='temp_ID' value='$temp_ID' />";
$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->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", ' ', $post->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 ('' != $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="3" 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->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->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']) : ?>
<?php if ((isset($post->post_title) && '' == $post->post_title) || (isset($_GET['message']) && 2 > $_GET['message'])) : ?>
<script type="text/javascript">
function focusit() {
// focus on first input field
@@ -67,64 +71,62 @@ addLoadEvent(focusit);
<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_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>
<?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="passworddiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Password-Protect Post') ?></h3>
<div class="dbx-content"><input name="post_password" type="text" size="13" id="post_password" value="<?php echo $post->post_password ?>" /></div>
<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="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 $post->post_name ?>" /></div>
<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>
<fieldset id="categorydiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Categories') ?></h3>
<fieldset id="poststatusdiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Post Status') ?></h3>
<div class="dbx-content">
<p id="jaxcat"></p>
<div id="categorychecklist"><?php dropdown_categories(get_settings('default_category')); ?></div></div>
</fieldset>
<fieldset 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'); ?> /> <?php _e('Published') ?></label>
<?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_pending" class="selectit"><input id="post_status_pending" name="post_status" type="radio" value="pending" <?php checked($post->post_status, 'pending'); ?> /> <?php _e('Pending Review') ?></label>
<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 class="dbx-box">
<h3 class="dbx-handle"><?php _e('Post Timestamp'); ?>:</h3>
<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 if ( $authors = get_editable_authors( $current_user->id ) ) : // TODO: ROLE SYSTEM ?>
<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='$o->ID' $selected>$o->display_name</option>";
endforeach;
<?php
$authors = get_editable_user_ids( $current_user->id ); // TODO: ROLE SYSTEM
if ( $post->post_author && !in_array($post->post_author, $authors) )
$authors[] = $post->post_author;
if ( $authors && count( $authors ) > 1 ) :
?>
</select>
<fieldset id="authordiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Post Author'); ?></h3>
<div class="dbx-content">
<?php wp_dropdown_users( array('include' => $authors, 'name' => 'post_author_override', 'selected' => empty($post_ID) ? $user_ID : $post->post_author) ); ?>
</div>
</fieldset>
<?php endif; ?>
@@ -135,137 +137,125 @@ endforeach;
</div>
<fieldset id="titlediv">
<legend><?php _e('Title') ?></legend>
<div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $post->post_title; ?>" id="title" /></div>
<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') ?></legend>
<legend><?php _e('Post') ?>
<?php
$rows = get_settings('default_post_edit_rows');
if (($rows < 3) || ($rows > 100)) {
$rows = 12;
}
?>
<?php the_quicktags(); ?>
<?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>
<div><textarea <?php if ( user_can_richedit() ) echo 'title="true" '; ?>rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="2" id="content"><?php echo user_can_richedit() ? wp_richedit_pre($post->post_content) : $post->post_content; ?></textarea></div>
<?php the_editor($post->post_content); ?>
</fieldset>
<script type="text/javascript">
<!--
edCanvas = document.getElementById('content');
<?php if ( user_can_richedit() ) : ?>
// This code is meant to allow tabbing from Title to Post (TinyMCE).
if ( tinyMCE.isMSIE )
document.getElementById('title').onkeydown = function (e)
{
e = e ? e : window.event;
if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
var i = tinyMCE.selectedInstance;
if(typeof i == 'undefined')
return true;
tinyMCE.execCommand("mceStartTyping");
this.blur();
i.contentWindow.focus();
e.returnValue = false;
return false;
}
}
else
document.getElementById('title').onkeypress = function (e)
{
e = e ? e : window.event;
if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
var i = tinyMCE.selectedInstance;
if(typeof i == 'undefined')
return true;
tinyMCE.execCommand("mceStartTyping");
this.blur();
i.contentWindow.focus();
e.returnValue = false;
return false;
}
}
<?php endif; ?>
//-->
</script>
<?php echo $form_pingback ?>
<?php echo $form_prevstatus ?>
<fieldset id="tagdiv">
<legend><?php _e('Tags (separate multiple tags with commas: cats, pet food, dogs)'); ?></legend>
<div><input type="text" name="tags_input" class="tags-input" id="tags-input" size="30" tabindex="3" value="<?php echo get_tags_to_edit( $post_ID ); ?>" /></div>
</fieldset>
<p class="submit"><?php echo $saveasdraft; ?> <input type="submit" name="submit" value="<?php _e('Save') ?>" style="font-weight: bold;" tabindex="4" />
<?php
if ('publish' != $post->post_status || 0 == $post_ID) {
<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 ( !in_array( $post->post_status, array('publish', 'future') ) || 0 == $post_ID ) {
?>
<?php if ( current_user_can('publish_posts') ) : ?>
<input name="publish" type="submit" id="publish" tabindex="5" accesskey="p" value="<?php _e('Publish') ?>" />
<input name="publish" type="submit" id="publish" tabindex="5" accesskey="p" value="<?php _e('Publish') ?>" />
<?php else : ?>
<input name="publish" type="submit" id="publish" tabindex="5" accesskey="p" value="<?php _e('Submit for Review') ?>" />
<?php endif; ?>
<?php
}
?>
<input name="referredby" type="hidden" id="referredby" value="<?php
<input name="referredby" type="hidden" id="referredby" value="<?php
if ( !empty($_REQUEST['popupurl']) )
echo wp_specialchars($_REQUEST['popupurl']);
else if ( url_to_postid($_SERVER['HTTP_REFERER']) == $post_ID )
echo clean_url(stripslashes($_REQUEST['popupurl']));
else if ( url_to_postid(wp_get_referer()) == $post_ID )
echo 'redo';
else
echo wp_specialchars($_SERVER['HTTP_REFERER']);
echo clean_url(stripslashes(wp_get_referer()));
?>" /></p>
<?php do_action('edit_form_advanced'); ?>
<?php
if (current_user_can('upload_files')) {
$uploading_iframe_ID = (0 == $post_ID ? $temp_ID : $post_ID);
$uploading_iframe_src = "inline-uploading.php?action=view&amp;post=$uploading_iframe_ID";
$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" border="0" src="' . $uploading_iframe_src . '">' . __('This feature requires iframe support.') . '</iframe>';
echo '<iframe id="uploading" name="uploading" frameborder="0" src="' . $uploading_iframe_src . '">' . __('This feature requires iframe support.') . '</iframe>';
}
?>
<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>
</div>
<fieldset class="dbx-box">
<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 class="dbx-content"><?php _e('Send trackbacks to'); ?>: <?php echo $form_trackback; ?> (<?php _e('Separate multiple URIs with spaces'); ?>)
<?php
</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>
</fieldset>
<fieldset id="postcustom" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Custom Fields') ?></h3>
<div id="postcustomstuff" class="dbx-content">
<?php
if($metadata = has_meta($post_ID)) {
?>
<?php
list_meta($metadata);
?>
<?php
}
meta_form();
?>
</div>
</fieldset>
</div>
<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) : ?>
<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($post->post_title) ) . "')\""; ?> />
<?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>

View File

@@ -1,37 +0,0 @@
<?php
require_once('../wp-config.php');
require_once('admin-functions.php');
require_once('admin-db.php');
get_currentuserinfo();
if ( !current_user_can('manage_categories') )
die('-1');
function get_out_now() { exit; }
add_action('shutdown', 'get_out_now', -1);
$names = explode(',', rawurldecode($_GET['ajaxnewcat']) );
$ids = array();
foreach ($names as $cat_name) {
$cat_name = trim( $cat_name );
if ( !$category_nicename = sanitize_title($cat_name) )
continue;
if ( $already = category_exists($cat_name) ) {
$ids[] = (string) $already;
continue;
}
$new_cat_id = wp_create_category($cat_name);
$ids[] = (string) $new_cat_id;
}
$return = join(',', $ids);
die( (string) $return );
?>

View File

@@ -2,12 +2,14 @@
$submitbutton_text = __('Edit Comment &raquo;');
$toprow_title = sprintf(__('Editing Comment # %s'), $comment->comment_ID);
$form_action = 'editedcomment';
$form_extra = "' />\n<input type='hidden' name='comment_ID' value='" . $comment->comment_ID . "' />\n<input type='hidden' name='comment_post_ID' value='".$comment->comment_post_ID;
$form_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">
<h2><?php echo $toprow_title; ?></h2>
<?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">
@@ -17,78 +19,31 @@ function focusit() { // focus on first input field
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 $comment->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 $comment->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" id="newcomment_author_url" name="newcomment_author_url" size="35" value="<?php echo $comment->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="2" />
</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 title="true" rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content" style="width: 99%"><?php echo user_can_richedit() ? wp_richedit_pre($comment->comment_content) : $comment->comment_content; ?></textarea></div>
<?php the_editor($comment->comment_content, 'content', 'newcomment_author_url'); ?>
</fieldset>
<script type="text/javascript">
<!--
edCanvas = document.getElementById('content');
<?php if ( user_can_richedit() ) : ?>
// This code is meant to allow tabbing from Author URL to Post (TinyMCE).
if ( tinyMCE.isMSIE )
document.getElementById('newcomment_author_url').onkeydown = function (e)
{
e = e ? e : window.event;
if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
var i = tinyMCE.selectedInstance;
if(typeof i == 'undefined')
return true;
tinyMCE.execCommand("mceStartTyping");
this.blur();
i.contentWindow.focus();
e.returnValue = false;
return false;
}
}
else
document.getElementById('newcomment_author_url').onkeypress = function (e)
{
e = e ? e : window.event;
if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
var i = tinyMCE.selectedInstance;
if(typeof i == 'undefined')
return true;
tinyMCE.execCommand("mceStartTyping");
this.blur();
i.contentWindow.focus();
e.returnValue = false;
return false;
}
}
<?php endif; ?>
//-->
</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>
@@ -99,21 +54,25 @@ else
<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->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>
<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'); ?> tabindex="4" /> <?php _e('Approved') ?></label> &nbsp;
<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'); ?> tabindex="4" /> <?php _e('Moderated') ?></label> &nbsp;
<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'); ?> tabindex="4" /> <?php _e('Spam') ?></label></td>
</tr>
<?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, 5); ?> </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 $comment->comment_ID; ?>&amp;p=<?php echo $comment->comment_post_ID; ?>"><?php _e('Delete comment') ?></a></p></td>
<th scope="row" valign="top">&nbsp;</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 = '" . wp_create_nonce( 'delete-comment_' . $comment->comment_ID ) . "'; 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,7 +6,7 @@
<?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">
@@ -20,21 +20,20 @@ addLoadEvent(focusit);
<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 $post->post_title; ?>" id="title" /></div>
<legend><a href="http://wordpress.org/docs/reference/post/#title" title="<?php _e('Help on titles') ?>"><?php _e('Title') ?></a></legend>
<div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo attribute_escape( $post->post_title ); ?>" id="title" /></div>
</fieldset>
<fieldset id="categorydiv">
<legend><a href="http://wordpress.org/docs/reference/post/#category" title="<?php _e('Help on categories') ?>"><?php _e('Categories') ?></a></legend>
<legend><a href="http://wordpress.org/docs/reference/post/#category" title="<?php _e('Help on categories') ?>"><?php _e('Categories') ?></a></legend>
<div><?php dropdown_categories($post->post_category); ?></div>
</fieldset>
<br />
<fieldset id="postdiv">
<legend><a href="http://wordpress.org/docs/reference/post/#post" title="<?php _e('Help with post field') ?>"><?php _e('Post') ?></a></legend>
<?php the_quicktags(); ?>
<?php
$rows = get_settings('default_post_edit_rows');
$rows = get_option('default_post_edit_rows');
if (($rows < 3) || ($rows > 100)) {
$rows = 10;
}
@@ -49,22 +48,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 ( current_user_can('edit_posts') ) : ?>
<input name="publish" type="submit" id="publish" tabindex="6" style="font-weight: bold;" value="<?php _e('Publish') ?>" />
<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', ''); ?>

View File

@@ -0,0 +1,93 @@
<?php
require_once('admin.php');
$title = __('Categories');
$parent_file = 'link-manager.php';
//wp_enqueue_script( 'admin-categories' ); TODO: Fix AJAX
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.');
function link_cat_row($category) {
global $class;
if ( current_user_can( 'manage_categories' ) ) {
$edit = "<a href='link-category.php?action=edit&amp;cat_ID=$category->term_id' class='edit'>".__( 'Edit' )."</a></td>";
$default_cat_id = (int) get_option( 'default_link_category' );
if ( $category->term_id != $default_cat_id )
$edit .= "<td><a href='" . wp_nonce_url( "link-category.php?action=delete&amp;cat_ID=$category->term_id", 'delete-link-category_' . $category->term_id ) . "' onclick=\"return deleteSomething( 'cat', $category->term_id, '" . js_escape(sprintf( __("You are about to delete the category '%s'.\nAll links that were only assigned to this category will be assigned to the '%s' category.\n'OK' to delete, 'Cancel' to stop." ), $category->name, get_term_field( 'name', $default_cat_id, 'link_category' ))) . "' );\" class='delete'>".__( 'Delete' )."</a>";
else
$edit .= "<td style='text-align:center'>".__( "Default" );
} else {
$edit = '';
}
$class = ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || " class='alternate'" == $class ) ? '' : " class='alternate'";
$category->count = number_format_i18n( $category->count );
$count = ( $category->count > 0 ) ? "<a href='link-manager.php?cat_id=$category->term_id'>$category->count</a>" : $category->count;
return "<tr id='cat-$category->term_id'$class>
<th scope='row' style='text-align: center'>$category->term_id</th>
<td>" . ( $name_override ? $name_override : $pad . ' ' . $category->name ) . "</td>
<td>$category->description</td>
<td align='center'>$count</td>
<td>$edit</td>\n\t</tr>\n";
}
?>
<?php if (isset($_GET['message'])) : ?>
<div id="message" class="updated fade"><p><?php echo $messages[$_GET['message']]; ?></p></div>
<?php endif; ?>
<div class="wrap">
<?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 class="widefat">
<thead>
<tr>
<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" 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
$categories = get_terms( 'link_category', 'hide_empty=0' );
if ( $categories ) {
$output = '';
foreach ( $categories as $category ) {
$category = sanitize_term($category, 'link_category', 'display');
$output .= link_cat_row($category);
}
$output = apply_filters('cat_rows', $output);
echo $output;
unset($category);
}
?>
</tbody>
</table>
</div>
<?php if ( current_user_can('manage_categories') ) : ?>
<div class="wrap">
<p><?php printf(__('<strong>Note:</strong><br />Deleting a category does not delete the links in that category. Instead, links that were only assigned to the deleted category are set to the category <strong>%s</strong>.'), get_term_field('name', get_option('default_link_category'), 'link_category')) ?></p>
</div>
<?php include('edit-link-category-form.php'); ?>
<?php endif; ?>
<?php include('admin-footer.php'); ?>

View File

@@ -0,0 +1,43 @@
<?php
if ( ! empty($cat_ID) ) {
$heading = __('Edit Category');
$submit_text = __('Edit Category &raquo;');
$form = '<form name="editcat" id="editcat" method="post" action="link-category.php">';
$action = 'editedcat';
$nonce_action = 'update-link-category_' . $cat_ID;
do_action('edit_link_category_form_pre', $category);
} else {
$heading = __('Add Category');
$submit_text = __('Add Category &raquo;');
$form = '<form name="addcat" id="addcat" method="post" action="link-category.php">';
$action = 'addcat';
$nonce_action = 'add-link-category';
do_action('add_link_category_form_pre', $category);
}
?>
<div class="wrap">
<h2><?php echo $heading ?></h2>
<div id="ajax-response"></div>
<?php echo $form ?>
<input type="hidden" name="action" value="<?php echo $action ?>" />
<input type="hidden" name="cat_ID" value="<?php echo $category->term_id ?>" />
<?php wp_nonce_field($nonce_action); ?>
<table class="editform" width="100%" cellspacing="2" cellpadding="5">
<tr>
<th width="33%" scope="row" valign="top"><label for="name"><?php _e('Category name:') ?></label></th>
<td width="67%"><input name="name" id="name" type="text" value="<?php echo $category->name; ?>" size="40" /></td>
</tr>
<tr>
<th scope="row" valign="top"><label for="slug"><?php _e('Category slug:') ?></label></th>
<td><input name="slug" id="slug" type="text" value="<?php echo $category->slug; ?>" size="40" /></td>
</tr>
<tr>
<th scope="row" valign="top"><label for="description"><?php _e('Description: (optional)') ?></label></th>
<td><textarea name="description" id="description" rows="5" cols="50" style="width: 97%;"><?php echo $category->description; ?></textarea></td>
</tr>
</table>
<p class="submit"><input type="submit" name="submit" value="<?php echo $submit_text ?>" /></p>
<?php do_action('edit_link_category_form', $category); ?>
</form>
</div>

View File

@@ -1,14 +1,14 @@
<?php
if ( ! empty($link_id) ) {
$editing = true;
$heading = __('Edit a link:');
$heading = __('Edit Link');
$submit_text = __('Save Changes &raquo;');
$form = '<form action="" method="post" name="editlink" id="editlink">';
$form = '<form name="editlink" id="editlink" method="post" action="link.php">';
$nonce_action = 'update-bookmark_' . $link_id;
} else {
$editing = false;
$heading = __('<strong>Add</strong> a link:');
$heading = __('Add Link');
$submit_text = __('Add Link &raquo;');
$form = '<form name="addlink" method="post" action="link-manager.php">';
$form = '<form name="addlink" id="addlink" method="post" action="link.php">';
$nonce_action = 'add-bookmark';
}
function xfn_check($class, $value = '', $type = 'check') {
@@ -22,215 +22,237 @@ function xfn_check($class, $value = '', $type = 'check') {
}
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 ('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">
<?php echo $form ?>
<h2><?php echo $heading ?></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="link_url" value="<?php echo $link->link_url; ?>" style="width: 95%;" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Link Name:') ?></th>
<td><input type="text" name="link_name" value="<?php echo $link->link_name; ?>" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Short description:') ?></th>
<td><input type="text" name="link_description" value="<?php echo $link->link_description; ?>" style="width: 95%" /></td>
</tr>
<tr>
<th scope="row"><?php _e('Category:') ?></th>
<td><?php link_category_dropdown('link_category', $link->link_category); ?></td>
</tr>
</table>
<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="linkcategorychecklist"><?php dropdown_link_categories(get_option('default_link_category')); ?></ul>
</div>
</fieldset>
<p class="submit">
<input type="submit" name="submit" value="<?php echo $submit_text ?>" />
</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="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 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 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>
<p class="submit">
<input type="submit" name="submit" value="<?php echo $submit_text ?>" />
</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="link_image" size="50" value="<?php echo $link->link_image; ?>" style="width: 95%" /></td>
</tr>
<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"><?php _e('RSS URI:') ?> </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>
<tr>
<th scope="row"><?php _e('Target') ?></th>
<td><label>
<input type="radio" name="link_target" value="_blank" <?php echo(($link->link_target == '_blank') ? 'checked="checked"' : ''); ?> />
<code>_blank</code></label><br />
<label>
<input type="radio" name="link_target" value="_top" <?php echo(($link->link_target == '_top') ? 'checked="checked"' : ''); ?> />
<code>_top</code></label><br />
<label>
<input type="radio" name="link_target" value="" <?php echo(($link->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="link_visible" <?php if ($link->link_visible == 'Y') echo "checked='checked'"; ?> value="Y" />
<?php _e('Yes') ?></label><br /><label>
<input type="radio" name="link_visible" <?php if ($link->link_visible == 'N') echo "checked='checked'"; ?> value="N" />
<?php _e('No') ?></label></td>
</tr>
<th scope="row" valign="top"><label for="link_name"><?php _e('Name:') ?></label></th>
<td><input type="text" name="link_name" id="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" id="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" id="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>
<p class="submit"><input type="submit" name="submit" value="<?php echo $submit_text ?>" /></p>
<?php if ( $editing ) : ?>
<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 ?>" />
<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>
</div>
</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" />
<input type="hidden" name="action" value="add" />
<?php endif; ?>
</form>
</div>
</div>
</form>
</div>

View File

@@ -1,44 +1,51 @@
<div class="wrap">
<h2 id="write-post"><?php _e('Write Page'); ?><?php if ( 0 != $post_ID ) : ?>
<small class="quickjump"><a href="#preview-post"><?php _e('preview &darr;'); ?></a></small><?php endif; ?></h2>
<h2 id="write-post"><?php _e('Write Page'); ?></h2>
<?php
if (0 == $post_ID) {
$form_action = 'post';
$temp_ID = -1 * time();
$form_extra = "<input type='hidden' name='temp_ID' value='$temp_ID' />";
$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">
<!--
// <![CDATA[
function focusit() { // focus on first input field
document.post.title.focus();
}
addLoadEvent(focusit);
//-->
// ]]>
</script>
<div id="poststuff">
@@ -50,18 +57,27 @@ addLoadEvent(focusit);
<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>
<?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 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('Password-Protect Post') ?></h3>
<div class="dbx-content"><input name="post_password" type="text" size="13" id="post_password" value="<?php echo $post->post_password ?>" /></div>
<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>
<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); ?>
@@ -70,8 +86,8 @@ addLoadEvent(focusit);
</fieldset>
<?php if ( 0 != count( get_page_templates() ) ) { ?>
<fieldset id="pageparent" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Page Template:') ?></h3>
<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); ?>
@@ -81,20 +97,22 @@ addLoadEvent(focusit);
<?php } ?>
<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 $post->post_name ?>" /></div>
<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('Post author'); ?>:</h3>
<h3 class="dbx-handle"><?php _e('Page Author'); ?></h3>
<div class="dbx-content">
<select name="post_author_override" id="post_author_override">
<?php
<?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 = '';
$o->ID = (int) $o->ID;
$o->display_name = wp_specialchars( $o->display_name );
echo "<option value='$o->ID' $selected>$o->display_name</option>";
endforeach;
?>
@@ -104,7 +122,7 @@ endforeach;
<?php endif; ?>
<fieldset id="pageorder" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Page Order') ?></h3>
<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>
@@ -114,70 +132,33 @@ endforeach;
</div>
<fieldset id="titlediv">
<legend><?php _e('Page Title') ?></legend>
<div><input type="text" name="post_title" size="30" tabindex="1" value="<?php echo $post->post_title; ?>" id="title" /></div>
<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>
<fieldset id="<?php echo user_can_richedit() ? 'postdivrich' : 'postdiv'; ?>">
<legend><?php _e('Page Content') ?></legend>
<?php
$rows = get_settings('default_post_edit_rows');
if (($rows < 3) || ($rows > 100)) {
$rows = 10;
}
?>
<?php the_quicktags(); ?>
<legend><?php _e('Page Content') ?>
<div><textarea title="true" rows="<?php echo $rows; ?>" cols="40" name="content" tabindex="4" id="content"><?php echo user_can_richedit() ? wp_richedit_pre($post->post_content) : $post->post_content; ?></textarea></div>
<?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>
<script type="text/javascript">
<!--
edCanvas = document.getElementById('content');
<?php if ( user_can_richedit() ) : ?>
// This code is meant to allow tabbing from Title to Post (TinyMCE).
if ( tinyMCE.isMSIE )
document.getElementById('title').onkeydown = function (e)
{
e = e ? e : window.event;
if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
var i = tinyMCE.selectedInstance;
if(typeof i == 'undefined')
return true;
tinyMCE.execCommand("mceStartTyping");
this.blur();
i.contentWindow.focus();
e.returnValue = false;
return false;
}
}
else
document.getElementById('title').onkeypress = function (e)
{
e = e ? e : window.event;
if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
var i = tinyMCE.selectedInstance;
if(typeof i == 'undefined')
return true;
tinyMCE.execCommand("mceStartTyping");
this.blur();
i.contentWindow.focus();
e.returnValue = false;
return false;
}
}
<?php endif; ?>
//-->
</script>
<p class="submit">
<?php if ( $post_ID ) : ?>
<input name="save" type="submit" id="save" tabindex="5" value=" <?php _e('Save and Continue Editing'); ?> "/>
<input name="savepage" type="submit" id="savepage" tabindex="6" value="<?php $post_ID ? _e('Save') : _e('Create New Page') ?> &raquo;" />
<?php else : ?>
<input name="savepage" type="submit" id="savepage" tabindex="6" value="<?php _e('Create New Page') ?> &raquo;" />
<?php endif; ?>
<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>
@@ -186,10 +167,10 @@ else
<?php
if (current_user_can('upload_files')) {
$uploading_iframe_ID = (0 == $post_ID ? $temp_ID : $post_ID);
$uploading_iframe_src = "inline-uploading.php?action=view&amp;post=$uploading_iframe_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" border="0" src="' . $uploading_iframe_src . '">' . __('This feature requires iframe support.') . '</iframe>';
echo '<iframe id="uploading" name="uploading" frameborder="0" src="' . $uploading_iframe_src . '">' . __('This feature requires iframe support.') . '</iframe>';
}
?>
@@ -198,28 +179,31 @@ if (current_user_can('upload_files')) {
<fieldset id="postcustom" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Custom Fields') ?></h3>
<div id="postcustomstuff" class="dbx-content">
<?php
if($metadata = has_meta($post_ID)) {
?>
<table cellpadding="3">
<?php
list_meta($metadata);
$metadata = has_meta($post_ID);
list_meta($metadata);
?>
</table>
<?php
}
meta_form();
?>
</div>
<div id="ajax-response"></div>
</fieldset>
<?php do_action('dbx_page_advanced'); ?>
</div>
<?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."), $wpdb->escape($post->post_title) ) . "')\""; ?> />
<?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>
</div>

View File

@@ -2,78 +2,102 @@
require_once('admin.php');
$title = __('Pages');
$parent_file = 'edit.php';
$list_js = true;
wp_enqueue_script( 'listman' );
require_once('admin-header.php');
$post_stati = array( // array( adj, noun )
'publish' => array(__('Published'), __('Published pages')),
'draft' => array(__('Draft'), __('Draft pages')),
'private' => array(__('Private'), __('Private pages'))
);
$post_status_label = __('Pages');
$post_status_q = '';
if ( isset($_GET['post_status']) && in_array( $_GET['post_status'], array_keys($post_stati) ) ) {
$post_status_label = $post_stati[$_GET['post_status']][1];
$post_status_q = '&post_status=' . $_GET['post_status'];
}
?>
<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 wp_specialchars($_GET['s'], 1); ?>" size="17" />
<input type="submit" name="submit" value="<?php _e('Search') ?>" />
</fieldset>
<h2><?php
// Use $_GET instead of is_ since they can override each other
$h2_search = isset($_GET['s']) && $_GET['s'] ? ' ' . sprintf(__('matching &#8220;%s&#8221;'), wp_specialchars( stripslashes( $_GET['s'] ) ) ) : '';
$h2_author = '';
if ( isset($_GET['author']) && $_GET['author'] ) {
$author_user = get_userdata( (int) $_GET['author'] );
$h2_author = ' ' . sprintf(__('by %s'), wp_specialchars( $author_user->display_name ));
}
printf( _c( '%1$s%2$s%3$s|You can reorder these: 1: Pages, 2: by {s}, 3: matching {s}' ), $post_status_label, $h2_author, $h2_search );
?></h2>
<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" id="searchform" action="" method="get">
<fieldset><legend><?php _e('Search Terms&hellip;') ?></legend>
<input type="text" name="s" id="s" value="<?php echo attribute_escape( stripslashes( $_GET['s'] ) ); ?>" size="17" />
</fieldset>
<fieldset><legend><?php _e('Page Type&hellip;'); ?></legend>
<select name='post_status'>
<option<?php selected( @$_GET['post_status'], 0 ); ?> value='0'><?php _e('Any'); ?></option>
<?php foreach ( $post_stati as $status => $label ) : ?>
<option<?php selected( @$_GET['post_status'], $status ); ?> value='<?php echo $status; ?>'><?php echo $label[0]; ?></option>
<?php endforeach; ?>
</select>
</fieldset>
<?php $editable_ids = get_editable_user_ids( $user_ID ); if ( $editable_ids && count( $editable_ids ) > 1 ) : ?>
<fieldset><legend><?php _e('Author&hellip;'); ?></legend>
<?php wp_dropdown_users( array('include' => $editable_ids, 'show_option_all' => __('Any'), 'name' => 'author', 'selected' => isset($_GET['author']) ? $_GET['author'] : 0) ); ?>
</fieldset>
<?php endif; ?>
<input type="submit" id="post-query-submit" value="<?php _e('Filter &#187;'); ?>" class="button" />
</form>
<br style="clear:both;" />
<?php
wp("post_type=page&orderby=menu_order&what_to_show=posts$post_status_q&posts_per_page=-1&posts_per_archive_page=-1&order=asc");
$show_post_type = 'page';
if ( isset($_GET['s']) )
wp();
else
$posts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_status = 'static'");
$all = !( $h2_search || $post_status_q );
if ($posts) {
?>
<table id="the-list-x" 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
if ( isset($_GET['s']) ) {
foreach ( $posts as $post ) :
$class = ('alternate' != $class) ? 'alternate' : ''; ?>
<tr id='page-<?php echo $id; ?>' class='<?php echo $class; ?>'>
<th scope="row"><?php echo $post->ID; ?></th>
<td>
<?php echo $pad; ?><?php the_title() ?>
</td>
<td><?php the_author() ?></td>
<td><?php echo mysql2date('Y-m-d g:i a', $post->post_modified); ?></td>
<td><a href="<?php the_permalink(); ?>" rel="permalink" class="edit"><?php _e('View'); ?></a></td>
<td><?php if ( current_user_can('edit_pages') ) { echo "<a href='post.php?action=edit&amp;post=$id' class='edit'>" . __('Edit') . "</a>"; } ?></td>
<td><?php if ( current_user_can('edit_pages') ) { echo "<a href='post.php?action=delete&amp;post=$id' class='delete' onclick=\"return deleteSomething( 'page', " . $id . ", '" . sprintf(__("You are about to delete the &quot;%s&quot; page.\\n&quot;OK&quot; to delete, &quot;Cancel&quot; to stop."), wp_specialchars(get_the_title('','',0), 1)) . "' );\">" . __('Delete') . "</a>"; } ?></td>
<th scope="col" colspan="3" style="text-align: center"><?php _e('Action'); ?></th>
</tr>
<?php
endforeach;
} else {
page_rows();
}
?>
</table>
</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>
<p><?php _e('No pages found.') ?></p>
<?php
} // end if ($posts)
?>
?>
<h3><a href="page-new.php"><?php _e('Create New Page'); ?> &raquo;</a></h3>
<h3><a href="page-new.php"><?php _e('Create New Page &raquo;'); ?></a></h3>
</div>
<?php include('admin-footer.php'); ?>
<?php include('admin-footer.php'); ?>

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

@@ -0,0 +1,118 @@
<?php if ( ! defined('ABSPATH') ) die(); ?>
<table class="widefat">
<thead>
<tr>
<?php foreach($posts_columns as $column_display_name) { ?>
<th scope="col"><?php echo $column_display_name; ?></th>
<?php } ?>
</tr>
</thead>
<tbody id="the-list">
<?php
if ( have_posts() ) {
$bgcolor = '';
add_filter('the_title','wp_specialchars');
while (have_posts()) : the_post();
$class = ('alternate' == $class) ? '' : 'alternate';
global $current_user;
$post_owner = ( $current_user->ID == $post->post_author ? 'self' : 'other' );
?>
<tr id='post-<?php echo $id; ?>' class='<?php echo trim( $class . ' author-' . $post_owner . ' status-' . $post->post_status ); ?>'>
<?php
foreach($posts_columns as $column_name=>$column_display_name) {
switch($column_name) {
case 'id':
?>
<th scope="row" style="text-align: center"><?php echo $id ?></th>
<?php
break;
case 'modified':
?>
<td><?php if ( '0000-00-00 00:00:00' ==$post->post_modified ) _e('Never'); else the_modified_time(__('Y-m-d \<\b\r \/\> g:i:s a')); ?></td>
<?php
break;
case 'date':
?>
<td><?php if ( '0000-00-00 00:00:00' ==$post->post_date) _e('Unpublished'); else the_time(__('Y-m-d \<\b\r \/\> g:i:s a')); ?></td>
<?php
break;
case 'title':
?>
<td><?php the_title() ?>
<?php if ('private' == $post->post_status) _e(' - <strong>Private</strong>'); ?></td>
<?php
break;
case 'categories':
?>
<td><?php the_category(','); ?></td>
<?php
break;
case 'comments':
?>
<td style="text-align: center">
<?php
$left = get_pending_comments_num( $post->ID );
$pending_phrase = sprintf( __('%s pending'), number_format( $left ) );
if ( $left )
echo '<strong>';
comments_number("<a href='edit.php?p=$id&amp;c=1' title='$pending_phrase'>" . __('0') . '</a>', "<a href='edit.php?p=$id&amp;c=1' title='$pending_phrase'>" . __('1') . '</a>', "<a href='edit.php?p=$id&amp;c=1' title='$pending_phrase'>" . __('%') . '</a>');
if ( $left )
echo '</strong>';
?>
</td>
<?php
break;
case 'author':
?>
<td><?php the_author() ?></td>
<?php
break;
case 'control_view':
?>
<td><a href="<?php the_permalink(); ?>" rel="permalink" class="view"><?php _e('View'); ?></a></td>
<?php
break;
case 'control_edit':
?>
<td><?php if ( current_user_can('edit_post',$post->ID) ) { echo "<a href='post.php?action=edit&amp;post=$id' class='edit'>" . __('Edit') . "</a>"; } ?></td>
<?php
break;
case 'control_delete':
?>
<td><?php if ( current_user_can('delete_post',$post->ID) ) { echo "<a href='" . wp_nonce_url("post.php?action=delete&amp;post=$id", 'delete-post_' . $post->ID) . "' class='delete' 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;
default:
?>
<td><?php do_action('manage_posts_custom_column', $column_name, $id); ?></td>
<?php
break;
}
}
?>
</tr>
<?php
endwhile;
} else {
?>
<tr style='background-color: <?php echo $bgcolor; ?>'>
<td colspan="8"><?php _e('No posts found.') ?></td>
</tr>
<?php
} // end if ( have_posts() )
?>
</tbody>
</table>

View File

@@ -3,130 +3,61 @@ require_once('admin.php');
$title = __('Posts');
$parent_file = 'edit.php';
$list_js = true;
wp_enqueue_script( 1 == $_GET['c'] ? 'admin-comments' : 'listman' );
require_once('admin-header.php');
$_GET['m'] = (int) $_GET['m'];
$_GET['m'] = (int) $_GET['m'];
$_GET['cat'] = (int) $_GET['cat'];
$post_stati = array( // array( adj, noun )
'publish' => array(__('Published'), __('Published posts')),
'future' => array(__('Scheduled'), __('Scheduled posts')),
'pending' => array(__('Pending Review'), __('Pending posts')),
'draft' => array(__('Draft'), _c('Drafts|manage posts header')),
'private' => array(__('Private'), __('Private posts'))
);
$drafts = get_users_drafts( $user_ID );
$other_drafts = get_others_drafts( $user_ID);
$avail_post_stati = $wpdb->get_col("SELECT DISTINCT post_status FROM $wpdb->posts WHERE post_type = 'post'");
if ($drafts || $other_drafts) {
?>
<div class="wrap">
<?php if ($drafts) { ?>
<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>
<?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);
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>
<?php } ?>
</div>
<?php } ?>
<div class="wrap">
<h2>
<?php
$what_to_show = 'posts';
$posts_per_page = 15;
$posts_per_archive_page = -1;
wp();
if ( is_month() ) {
single_month_title(' ');
} elseif ( is_search() ) {
printf(__('Search for &#8220;%s&#8221;'), wp_specialchars($_GET['s']) );
} else {
if ( is_single() )
printf(__('Comments on %s'), $post->post_title);
elseif ( ! is_paged() || get_query_var('paged') == 1 )
_e('Last 15 Posts');
else
_e('Previous Posts');
$post_status_q = '';
$post_status_label = __('Posts');
if ( isset($_GET['post_status']) && in_array( $_GET['post_status'], array_keys($post_stati) ) ) {
$post_status_label = $post_stati[$_GET['post_status']][1];
$post_status_q = '&post_status=' . $_GET['post_status'];
}
?>
</h2>
<form name="searchform" action="" method="get" style="float: left; width: 16em; margin-right: 3em;">
<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') ?>" />
</fieldset>
</form>
<?php $arc_result = $wpdb->get_results("SELECT DISTINCT YEAR(post_date) AS yyear, MONTH(post_date) AS mmonth FROM $wpdb->posts WHERE post_date != '0000-00-00 00:00:00' ORDER BY post_date DESC");
if ( count($arc_result) ) { ?>
<form name="viewarc" action="" method="get" style="float: left; width: 20em; margin-bottom: 1em;">
<fieldset>
<legend><?php _e('Browse Month&hellip;') ?></legend>
<select name='m'>
<?php
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'] )
$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>\n";
}
?>
</select>
<input type="submit" name="submit" value="<?php _e('Show Month') ?>" />
</fieldset>
</form>
<?php } ?>
<br style="clear:both;" />
<div class="wrap">
<?php
if ( 'pending' === $_GET['post_status'] ) {
$order = 'ASC';
$orderby = 'modified';
} elseif ( 'draft' === $_GET['post_status'] ) {
$order = 'DESC';
$orderby = 'modified';
} else {
$order = 'DESC';
$orderby = 'date';
}
wp("what_to_show=posts$post_status_q&posts_per_page=15&order=$order&orderby=$orderby");
// 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')
);
$posts_columns = array();
$posts_columns['id'] = '<div style="text-align: center">' . __('ID') . '</div>';
if ( 'draft' === $_GET['post_status'] )
$posts_columns['modified'] = __('Modified');
elseif ( 'pending' === $_GET['post_status'] )
$posts_columns['modified'] = __('Submitted');
else
$posts_columns['date'] = __('When');
$posts_columns['title'] = __('Title');
$posts_columns['categories'] = __('Categories');
if ( !in_array($_GET['post_status'], array('pending', 'draft', 'future')) )
$posts_columns['comments'] = '<div style="text-align: center">' . __('Comments') . '</div>';
$posts_columns['author'] = __('Author');
$posts_columns = apply_filters('manage_posts_columns', $posts_columns);
// you can not edit these at the moment
@@ -136,104 +67,100 @@ $posts_columns['control_delete'] = '';
?>
<table id="the-list-x" width="100%" cellpadding="3" cellspacing="3">
<tr>
<h2><?php
if ( is_single() ) {
printf(__('Comments on %s'), apply_filters( "the_title", $post->post_title));
} else {
if ( $post_listing_pageable && !is_archive() && !is_search() )
$h2_noun = is_paged() ? sprintf(__( 'Previous %s' ), $post_status_label) : sprintf(__('Latest %s'), $post_status_label);
else
$h2_noun = $post_status_label;
// Use $_GET instead of is_ since they can override each other
$h2_author = '';
$_GET['author'] = (int) $_GET['author'];
if ( $_GET['author'] != 0 ) {
if ( $_GET['author'] == '-' . $user_ID ) { // author exclusion
$h2_author = ' ' . __('by other authors');
} else {
$author_user = get_userdata( get_query_var( 'author' ) );
$h2_author = ' ' . sprintf(__('by %s'), wp_specialchars( $author_user->display_name ));
}
}
$h2_search = isset($_GET['s']) && $_GET['s'] ? ' ' . sprintf(__('matching &#8220;%s&#8221;'), wp_specialchars( get_search_query() ) ) : '';
$h2_cat = isset($_GET['cat']) && $_GET['cat'] ? ' ' . sprintf( __('in &#8220;%s&#8221;'), single_cat_title('', false) ) : '';
$h2_month = isset($_GET['m']) && $_GET['m'] ? ' ' . sprintf( __('during %s'), single_month_title(' ', false) ) : '';
printf( _c( '%1$s%2$s%3$s%4$s%5$s|You can reorder these: 1: Posts, 2: by {s}, 3: matching {s}, 4: in {s}, 5: during {s}' ), $h2_noun, $h2_author, $h2_search, $h2_cat, $h2_month );
}
?></h2>
<form name="searchform" id="searchform" action="" method="get">
<fieldset><legend><?php _e('Search terms&hellip;'); ?></legend>
<input type="text" name="s" id="s" value="<?php the_search_query(); ?>" size="17" />
</fieldset>
<fieldset><legend><?php _e('Status&hellip;'); ?></legend>
<select name='post_status'>
<option<?php selected( @$_GET['post_status'], 0 ); ?> value='0'><?php _e('Any'); ?></option>
<?php foreach ( $post_stati as $status => $label ) : if ( !in_array($status, $avail_post_stati) ) continue; ?>
<option<?php selected( @$_GET['post_status'], $status ); ?> value='<?php echo $status; ?>'><?php echo $label[0]; ?></option>
<?php endforeach; ?>
</select>
</fieldset>
<?php
$editable_ids = get_editable_user_ids( $user_ID );
if ( $editable_ids && count( $editable_ids ) > 1 ) :
?>
<fieldset><legend><?php _e('Author&hellip;'); ?></legend>
<?php wp_dropdown_users( array('include' => $editable_ids, 'show_option_all' => __('Any'), 'name' => 'author', 'selected' => isset($_GET['author']) ? $_GET['author'] : 0) ); ?>
</fieldset>
<?php
endif;
$arc_query = "SELECT DISTINCT YEAR(post_date) AS yyear, MONTH(post_date) AS mmonth FROM $wpdb->posts WHERE post_type = 'post' ORDER BY post_date DESC";
$arc_result = $wpdb->get_results( $arc_query );
$month_count = count($arc_result);
if ( $month_count && !( 1 == $month_count && 0 == $arc_result[0]->mmonth ) ) { ?>
<fieldset><legend><?php _e('Month&hellip;') ?></legend>
<select name='m'>
<option<?php selected( @$_GET['m'], 0 ); ?> value='0'><?php _e('Any'); ?></option>
<?php
foreach ($arc_result as $arc_row) {
if ( $arc_row->yyear == 0 )
continue;
$arc_row->mmonth = zeroise($arc_row->mmonth, 2);
if ( $arc_row->yyear . $arc_row->mmonth == $_GET['m'] )
$default = ' selected="selected"';
else
$default = '';
echo "<option$default value='$arc_row->yyear$arc_row->mmonth'>";
echo $wp_locale->get_month($arc_row->mmonth) . " $arc_row->yyear";
echo "</option>\n";
}
?>
</select>
</fieldset>
<?php foreach($posts_columns as $column_display_name) { ?>
<th scope="col"><?php echo $column_display_name; ?></th>
<?php } ?>
</tr>
<?php
if ($posts) {
$bgcolor = '';
foreach ($posts as $post) { start_wp();
$class = ('alternate' == $class) ? '' : 'alternate';
?>
<tr id='post-<?php echo $id; ?>' class='<?php echo $class; ?>'>
<fieldset><legend><?php _e('Category&hellip;') ?></legend>
<?php wp_dropdown_categories('show_option_all='.__('All').'&hide_empty=1&hierarchical=1&show_count=1&selected='.$cat);?>
</fieldset>
<input type="submit" id="post-query-submit" value="<?php _e('Filter &#187;'); ?>" class="button" />
</form>
<?php
<?php do_action('restrict_manage_posts'); ?>
foreach($posts_columns as $column_name=>$column_display_name) {
<br style="clear:both;" />
switch($column_name) {
case 'id':
?>
<th scope="row"><?php echo $id ?></th>
<?php
break;
case 'date':
?>
<td><?php the_time('Y-m-d \<\b\r \/\> g:i:s a'); ?></td>
<?php
break;
case 'title':
?>
<td><?php the_title() ?>
<?php if ('private' == $post->post_status) _e(' - <strong>Private</strong>'); ?></td>
<?php
break;
case 'categories':
?>
<td><?php the_category(','); ?></td>
<?php
break;
case 'comments':
?>
<td><a href="edit.php?p=<?php echo $id ?>&amp;c=1">
<?php comments_number(__('0'), __('1'), __('%')) ?>
</a></td>
<?php
break;
case 'author':
?>
<td><?php the_author() ?></td>
<?php
break;
case 'control_view':
?>
<td><a href="<?php the_permalink(); ?>" rel="permalink" class="edit"><?php _e('View'); ?></a></td>
<?php
break;
case 'control_edit':
?>
<td><?php if ( current_user_can('edit_post',$post->ID) ) { echo "<a href='post.php?action=edit&amp;post=$id' class='edit'>" . __('Edit') . "</a>"; } ?></td>
<?php
break;
case 'control_delete':
?>
<td><?php if ( current_user_can('edit_post',$post->ID) ) { echo "<a href='post.php?action=delete&amp;post=$id' class='delete' onclick=\"return deleteSomething( 'post', " . $id . ", '" . sprintf(__("You are about to delete this post &quot;%s&quot;.\\n&quot;OK&quot; to delete, &quot;Cancel&quot; to stop."), wp_specialchars(get_the_title('', ''), 1) ) . "' );\">" . __('Delete') . "</a>"; } ?></td>
<?php
break;
default:
?>
<td><?php do_action('manage_posts_custom_column', $column_name, $id); ?></td>
<?php
break;
}
}
?>
</tr>
<?php
}
} else {
?>
<tr style='background-color: <?php echo $bgcolor; ?>'>
<td colspan="8"><?php _e('No posts found.') ?></td>
</tr>
<?php
} // end if ($posts)
?>
</table>
<?php include( 'edit-post-rows.php' ); ?>
<div id="ajax-response"></div>
@@ -243,57 +170,54 @@ foreach($posts_columns as $column_name=>$column_display_name) {
</div>
<?php
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">
update_comment_cache($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 ( current_user_can('edit_post', $post->ID) ) {
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) && ( current_user_can('moderate_comments') ) ) {
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 = '';
$post = get_post($comment->comment_post_ID);
$authordata = get_userdata($post->post_author);
$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="edit-comments.php?s=<?php comment_author_IP() ?>&amp;mode=edit"><?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
include('admin-footer.php');
?>
<?php } ?>
</div>
<?php include('admin-footer.php'); ?>

View File

@@ -1,25 +0,0 @@
<?php
require_once('../wp-config.php');
// Do pingbacks
while ($ping = $wpdb->get_row("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_pingme' LIMIT 1")) {
$wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$ping->ID} AND meta_key = '_pingme';");
pingback($ping->post_content, $ping->ID);
}
// Do Enclosures
while ($enclosure = $wpdb->get_row("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_encloseme' LIMIT 1")) {
$wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$enclosure->ID} AND meta_key = '_encloseme';");
do_enclose($enclosure->post_content, $enclosure->ID);
}
// Do Trackbacks
$trackbacks = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE CHAR_LENGTH(TRIM(to_ping)) > 7 AND post_status != 'draft'");
if ( is_array($trackbacks) ) {
foreach ( $trackbacks as $trackback ) {
do_trackbacks($trackback->ID);
}
}
?>

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

@@ -0,0 +1,272 @@
<?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, $post_ids, $post;
do_action('export_wp');
$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' ";
}
// grab a snapshot of post IDs, just in case it changes during the export
$post_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts $where ORDER BY post_date_gmt ASC");
$categories = (array) get_categories('get=all');
$tags = (array) get_tags('get=all');
function wxr_missing_parents($categories) {
if ( !is_array($categories) || empty($categories) )
return array();
foreach ( $categories as $category )
$parents[$category->term_id] = $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 = get_categories("include=" . 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->parent == 0 || isset($cats[$cat->parent]) ) {
$cats[$cat->term_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->name) )
return;
echo '<wp:cat_name>' . wxr_cdata($c->name) . '</wp:cat_name>';
}
function wxr_category_description($c) {
if ( empty($c->description) )
return;
echo '<wp:category_description>' . wxr_cdata($c->description) . '</wp:category_description>';
}
function wxr_tag_name($t) {
if ( empty($t->name) )
return;
echo '<wp:tag_name>' . wxr_cdata($t->name) . '</wp:tag_name>';
}
function wxr_tag_description($t) {
if ( empty($t->description) )
return;
echo '<wp:tag_description>' . wxr_cdata($t->description) . '</wp:tag_description>';
}
function wxr_post_taxonomy() {
$categories = get_the_category();
$tags = get_the_tags();
$cat_names = array();
$tag_names = array();
$the_list = '';
$filter = 'rss';
if ( !empty($categories) ) foreach ( (array) $categories as $category ) {
$cat_name = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
$the_list .= "\n\t\t<category><![CDATA[$cat_name]]></category>\n";
}
if ( !empty($tags) ) foreach ( (array) $tags as $tag ) {
$tag_name = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
$the_list .= "\n\t\t<category domain=\"tag\"><![CDATA[$tag_name]]></category>\n";
}
echo $the_list;
}
echo '<?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 panels. -->
<!-- 3. Choose "WordPress" from the list. -->
<!-- 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 to 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 into 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->slug; ?></wp:category_nicename><wp:category_parent><?php echo $c->parent ? $cats[$c->parent]->name : ''; ?></wp:category_parent><?php wxr_cat_name($c); ?><?php wxr_category_description($c); ?></wp:category>
<?php endforeach; endif; ?>
<?php if ( $tags ) : foreach ( $tags as $t ) : ?>
<wp:tag><wp:tag_slug><?php echo $t->slug; ?></wp:tag_slug><?php wxr_tag_name($t); ?><?php wxr_tag_description($t); ?></wp:tag>
<?php endforeach; endif; ?>
<?php do_action('rss2_head'); ?>
<?php if ($post_ids) {
global $wp_query;
$wp_query->in_the_loop = true; // Fake being in the loop.
// fetch 20 posts at a time rather than loading the entire table into memory
while ( $next_posts = array_splice($post_ids, 0, 20) ) {
$where = "WHERE ID IN (".join(',', $next_posts).")";
$posts = $wpdb->get_results("SELECT * FROM $wpdb->posts $where ORDER BY post_date_gmt ASC");
foreach ($posts as $post) {
setup_postdata($post); ?>
<item>
<title><?php the_title_rss() ?></title>
<link><?php the_permalink_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 wxr_post_taxonomy() ?>
<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 wxr_cdata($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

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: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

View File

@@ -1,28 +1,30 @@
<?php
require_once ('admin.php');
$title = __('Import');
$parent_file = 'import.php';
$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 them into your current blog. To get started, choose a system to import from below:'); ?></p>
<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);
$imports_dir = @ opendir($import_root);
if ($imports_dir) {
while (($file = $imports_dir->read()) !== false) {
if (preg_match('|^\.+$|', $file))
while (($file = readdir($imports_dir)) !== false) {
if ($file{0} == '.') {
continue;
if (preg_match('|\.php$|', $file))
require_once("$import_root/$file");
} elseif (substr($file, -4) == '.php') {
require_once($import_root . '/' . $file);
}
}
}
@closedir($imports_dir);
$importers = get_importers();
@@ -30,20 +32,20 @@ if (empty ($importers)) {
echo '<p>'.__('No importers are available.').'</p>'; // TODO: make more helpful
} else {
?>
<table width="100%" cellpadding="3" cellspacing="3">
<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='{$data[1]}'>{$data[0]}</a>";
$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=\"togl\">$action</td>
<td class=\"desc\">{$data[1]}</td>
<td class='import-system'>$action</td>
<td class='desc'>{$data[1]}</td>
</tr>";
}
?>

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,201 @@
<?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 ( is_wp_error( $post_id ) ) {
return $post_id;
}
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'];
$result = $this->import_posts();
if ( is_wp_error( $result ) )
return $result;
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 :
$result = $this->import();
if ( is_wp_error( $result ) )
$result->get_error_message();
break;
}
$this->footer();
}
function BW_Import() {
// Nothing.
}
}
$blogware_import = new BW_Import();
register_importer('blogware', __('Blogware'), __('Import posts from Blogware'), array ($blogware_import, 'dispatch'));
?>

115
wp-admin/import/btt.php Normal file
View File

@@ -0,0 +1,115 @@
<?php
class BunnyTags_Import {
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import Bunny&#8217;s Technorati Tags').'</h2>';
echo '<p>'.__('Steps may take a few minutes depending on the size of your database. Please be patient.').'<br /><br /></p>';
}
function footer() {
echo '</div>';
}
function greet() {
echo '<div class="narrow">';
echo '<p>'.__('Howdy! This imports tags from an existing Bunny&#8217;s Technorati Tags installation into this blog using the new WordPress native tagging structure.').'</p>';
echo '<p>'.__('This is suitable for Bunny&#8217;s Technorati Tags version 0.6.').'</p>';
echo '<p><strong>'.__('All existing Bunny&#8217;s Technorati Tags will be removed after import.').'</strong></p>';
echo '<p><strong>'.__('Don&#8217;t be stupid - backup your database before proceeding!').'</strong></p>';
echo '<form action="admin.php?import=btt&amp;step=1" method="post">';
wp_nonce_field('import-btt');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Import Tags &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function dispatch() {
if ( empty($_GET['step']) )
$step = 0;
else
$step = abs(intval($_GET['step']));
// load the header
$this->header();
switch ( $step ) {
case 0 :
$this->greet();
break;
case 1 :
check_admin_referer('import-btt');
$this->check_post_keyword( true );
break;
case 2 :
check_admin_referer('import-btt');
$this->check_post_keyword( false );
break;
case 3:
$this->done();
break;
}
// load the footer
$this->footer();
}
function check_post_keyword($precheck = true) {
global $wpdb;
echo '<div class="narrow">';
echo '<p><h3>'.__('Reading Bunny&#8217;s Technorati Tags&#8230;').'</h3></p>';
// import Bunny's Keywords tags
$metakeys = $wpdb->get_results("SELECT post_id, meta_id, meta_key, meta_value FROM $wpdb->postmeta WHERE $wpdb->postmeta.meta_key = 'tags'");
if ( !is_array($metakeys)) {
echo '<p>' . __('No Tags Found!') . '</p>';
return false;
} else {
$count = count($metakeys);
echo '<p>' . sprintf( __('Done! <strong>%s</strong> posts with tags were read.'), $count ) . '<br /></p>';
echo '<ul>';
foreach ( $metakeys as $post_meta ) {
if ( $post_meta->meta_value != '' ) {
$post_keys = explode(' ', $post_meta->meta_value);
foreach ( $post_keys as $keyword ) {
$keyword = addslashes(trim(str_replace('+',' ',$keyword)));
if ( '' != $keyword ) {
echo '<li>' . $post_meta->post_id . '&nbsp;-&nbsp;' . $keyword . '</li>';
if ( !$precheck )
wp_add_post_tags($post_meta->post_id, $keyword);
}
}
}
if ( !$precheck )
delete_post_meta($post_meta->post_id, 'tags');
}
echo '</ul>';
}
echo '<form action="admin.php?import=btt&amp;step='.($precheck? 2:3).'" method="post">';
wp_nonce_field('import-btt');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Next &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function done() {
echo '<div class="narrow">';
echo '<p><h3>'.__('Import Complete!').'</h3></p>';
echo '</div>';
}
function BunnyTags_Import() {
}
}
// create the import object
$btt_import = new BunnyTags_Import();
// add it to the import page!
register_importer('btt', 'Bunny&#8217;s Technorati Tags', __('Import Bunny&#8217;s Technorati Tags into the new native tagging structure.'), array($btt_import, 'dispatch'));
?>

View File

@@ -1,19 +1,12 @@
<?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'))
{
@@ -24,15 +17,6 @@ if(!function_exists('get_comment_count'))
}
}
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)
@@ -55,57 +39,58 @@ if(!function_exists('link_exists'))
//
// 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_1byte($char) {
if(!is_int($char)) return false;
return ($char & 0x80) == 0x00;
}
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 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)) {
@@ -124,89 +109,90 @@ function textconv ($s) {
**/
class Dotclear_Import {
function header()
function header()
{
echo '<div class="wrap">';
echo '<h2>'.__('Import Dotclear').'</h2>';
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()
function footer()
{
echo '</div>';
}
function greet()
function greet()
{
echo '<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 '<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 '<input type="submit" name="submit" value="'.__('Import Categories').'" />';
echo '</form>';
echo '<p class="submit"><input type="submit" name="submit" value="'.attribute_escape(__('Import Categories &raquo;')).'" /></p>';
echo '</form></div>';
}
function get_dc_cats()
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);
$prefix = get_option('tpre');
$dbprefix = get_option('dcdbprefix');
// Get Categories
return $dcdb->get_results('SELECT * FROM dc_categorie', ARRAY_A);
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);
$prefix = get_option('tpre');
$dbprefix = get_option('dcdbprefix');
// Get Users
return $dcdb->get_results('SELECT * FROM dc_user', ARRAY_A);
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);
$prefix = get_option('tpre');
$dbprefix = get_option('dcdbprefix');
// Get Posts
return $dcdb->get_results('SELECT dc_post.*, dc_categorie.cat_libelle_url AS post_cat_name
FROM dc_post INNER JOIN dc_categorie
ON dc_post.cat_id = dc_categorie.cat_id', ARRAY_A);
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);
$prefix = get_option('tpre');
$dbprefix = get_option('dcdbprefix');
// Get Comments
return $dcdb->get_results('SELECT * FROM dc_comment', ARRAY_A);
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);
$prefix = get_option('tpre');
$dbprefix = get_option('dcdbprefix');
return $dcdb->get_results('SELECT * FROM dc_link ORDER BY position', ARRAY_A);
return $dcdb->get_results('SELECT * FROM '.$dbprefix.'link ORDER BY position', ARRAY_A);
}
function cat2wp($categories='')
function cat2wp($categories='')
{
// General Housekeeping
global $wpdb;
@@ -216,11 +202,11 @@ class Dotclear_Import {
if(is_array($categories))
{
echo '<p>'.__('Importing Categories...').'<br /><br /></p>';
foreach ($categories as $category)
foreach ($categories as $category)
{
$count++;
extract($category);
// Make Nice Variables
$name = $wpdb->escape($cat_libelle_url);
$title = $wpdb->escape(csc ($cat_libelle));
@@ -236,7 +222,7 @@ class Dotclear_Import {
}
$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>';
@@ -245,14 +231,14 @@ class Dotclear_Import {
echo __('No Categories to Import!');
return false;
}
function users2wp($users='')
{
// General Housekeeping
global $wpdb;
$count = 0;
$dcid2wpid = array();
// Midnight Mojo
if(is_array($users))
{
@@ -261,14 +247,14 @@ class Dotclear_Import {
{
$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,
@@ -278,7 +264,7 @@ class Dotclear_Import {
'display_name' => $Realname)
);
}
else
else
{
$ret_id = wp_insert_user(array(
'user_login' => $user_id,
@@ -289,9 +275,9 @@ class Dotclear_Import {
);
}
$dcid2wpid[$user_id] = $ret_id;
// Set Dotclear-to-WordPress permissions translation
// Set DotClear-to-WordPress permissions translation
// Update Usermeta Data
$user = new WP_User($ret_id);
$wp_perms = $user_level + 1;
@@ -302,26 +288,26 @@ class Dotclear_Import {
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
@@ -338,17 +324,18 @@ class Dotclear_Import {
{
$count++;
extract($post);
// Set Dotclear-to-WordPress status translation
// 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;
@@ -356,9 +343,9 @@ class Dotclear_Import {
$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(
@@ -377,8 +364,10 @@ class Dotclear_Import {
'ping_status' => $comment_status_map[$post_open_tb],
'comment_count' => $post_nb_comment + $post_nb_trackback)
);
if ( is_wp_error( $ret_id ) )
return $ret_id;
}
else
else
{
$ret_id = wp_insert_post(array(
'post_author' => $authorid,
@@ -395,23 +384,28 @@ class Dotclear_Import {
'ping_status' => $comment_status_map[$post_open_tb],
'comment_count' => $post_nb_comment + $post_nb_trackback)
);
if ( is_wp_error( $ret_id ) )
return $ret_id;
}
$dcposts2wpposts[$post_id] = $ret_id;
// Make Post-to-Category associations
$cats = array();
if($cat1 = get_catbynicename($post_cat_name)) { $cats[1] = $cat1; }
$category1 = get_category_by_slug($post_cat_name);
$category1 = $category1->term_id;
if(!empty($cats)) { wp_set_post_cats('', $ret_id, $cats); }
if($cat1 = $category1) { $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;
return true;
}
function comments2wp($comments='')
{
// General Housekeeping
@@ -419,7 +413,7 @@ class Dotclear_Import {
$count = 0;
$dccm2wpcm = array();
$postarr = get_option('dcposts2wpposts');
// Magic Mojo
if(is_array($comments))
{
@@ -428,16 +422,16 @@ class Dotclear_Import {
{
$count++;
extract($comment);
// WordPressify Data
$comment_ID = ltrim($comment_id, '0');
$comment_post_ID = $postarr[$post_id];
$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
@@ -454,7 +448,7 @@ class Dotclear_Import {
'comment_approved' => $comment_approved)
);
}
else
else
{
// Insert comments
$ret_id = wp_insert_comment(array(
@@ -472,25 +466,25 @@ class Dotclear_Import {
$dccm2wpcm[$comment_ID] = $ret_id;
}
// Store Comment ID translation for future use
add_option('dccm2wpcm', $dccm2wpcm);
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))
{
@@ -499,19 +493,18 @@ class Dotclear_Import {
{
$count++;
extract($link);
if ($title != "") {
if ($cinfo = link_cat_exists (csc ($title))) {
$category = $cinfo;
if ($cinfo = is_term(csc ($title), 'link_category')) {
$category = $cinfo['term_id'];
} else {
$wpdb->query ("INSERT INTO $wpdb->linkcategories (cat_name) VALUES ('".
$wpdb->escape (csc ($title))."')");
$category = $wpdb->insert_id;
$category = wp_insert_term($wpdb->escape (csc ($title)), 'link_category');
$category = $category['term_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,
@@ -540,70 +533,77 @@ class Dotclear_Import {
echo __('No Links to Import!');
return false;
}
function import_categories()
{
// Category Import
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">';
printf('<input type="submit" name="submit" value="%s" />', __('Import Users'));
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();
$users = $this->get_dc_users();
$this->users2wp($users);
echo '<form action="admin.php?import=dotclear&amp;step=3" method="post">';
printf('<input type="submit" name="submit" value="%s" />', __('Import Posts'));
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);
$result = $this->posts2wp($posts);
if ( is_wp_error( $result ) )
return $result;
echo '<form action="admin.php?import=dotclear&amp;step=4" method="post">';
printf('<input type="submit" name="submit" value="%s" />', __('Import Comments'));
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">';
printf('<input type="submit" name="submit" value="%s" />', __('Import Links'));
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">';
printf('<input type="submit" name="submit" value="%s" />', __('Finish'));
wp_nonce_field('import-dotclear');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Finish')));
echo '</form>';
}
function cleanup_dcimport()
{
delete_option('tpre');
delete_option('dcdbprefix');
delete_option('dc_cats');
delete_option('dcid2wpid');
delete_option('dccat2wpcat');
@@ -617,39 +617,39 @@ class Dotclear_Import {
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 '<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 '<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/2004/04/19/wordpress-plugin-textile-20/">Textile for WordPress</a>. Trust me... You\'ll want it.').'</p>';
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').'</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>';
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 '<ul>';
printf('<li><label for="dbuser">%s</label> <input type="text" name="dbuser" /></li>', __('Dotclear Database User:'));
printf('<li><label for="dbpass">%s</label> <input type="password" name="dbpass" /></li>', __('Dotclear Database Password:'));
printf('<li><label for="dbname">%s</label> <input type="text" name="dbname" /></li>', __('Dotclear Database Name:'));
printf('<li><label for="dbhost">%s</label> <input type="text" name="dbhost" value="localhost" /></li>', __('Dotclear Database Host:'));
/* printf('<li><label for="dbprefix">%s</label> <input type="text" name="dbprefix" /></li>', __('Dotclear Table prefix (if any):')); */
printf('<li><label for="dccharset">%s</label> <input type="text" name="dccharset" value="ISO-8859-15"/></li>', __('Originating character set:'));
echo '</ul>';
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()
function dispatch()
{
if (empty ($_GET['step']))
@@ -657,51 +657,53 @@ class Dotclear_Import {
else
$step = (int) $_GET['step'];
$this->header();
if ( $step > 0 )
if ( $step > 0 )
{
check_admin_referer('import-dotclear');
if($_POST['dbuser'])
{
if(get_option('dcuser'))
delete_option('dcuser');
add_option('dcuser',$_POST['dbuser']);
delete_option('dcuser');
add_option('dcuser', sanitize_user($_POST['dbuser'], true));
}
if($_POST['dbpass'])
{
if(get_option('dcpass'))
delete_option('dcpass');
add_option('dcpass',$_POST['dbpass']);
delete_option('dcpass');
add_option('dcpass', sanitize_user($_POST['dbpass'], true));
}
if($_POST['dbname'])
{
if(get_option('dcname'))
delete_option('dcname');
add_option('dcname',$_POST['dbname']);
delete_option('dcname');
add_option('dcname', sanitize_user($_POST['dbname'], true));
}
if($_POST['dbhost'])
{
if(get_option('dchost'))
delete_option('dchost');
add_option('dchost',$_POST['dbhost']);
add_option('dchost', sanitize_user($_POST['dbhost'], true));
}
if($_POST['dccharset'])
{
if(get_option('dccharset'))
delete_option('dccharset');
add_option('dccharset',$_POST['dccharset']);
}
add_option('dccharset', sanitize_user($_POST['dccharset'], true));
}
if($_POST['dbprefix'])
{
if(get_option('tpre'))
delete_option('tpre');
add_option('tpre',$_POST['dbprefix']);
}
if(get_option('dcdbprefix'))
delete_option('dcdbprefix');
add_option('dcdbprefix', sanitize_user($_POST['dbprefix'], true));
}
}
switch ($step)
switch ($step)
{
default:
case 0 :
@@ -714,7 +716,9 @@ class Dotclear_Import {
$this->import_users();
break;
case 3 :
$this->import_posts();
$result = $this->import_posts();
if ( is_wp_error( $result ) )
echo $result->get_error_message();
break;
case 4 :
$this->import_comments();
@@ -726,16 +730,16 @@ class Dotclear_Import {
$this->cleanup_dcimport();
break;
}
$this->footer();
}
function Dotclear_Import()
function Dotclear_Import()
{
// Nothing.
// Nothing.
}
}
$dc_import = new Dotclear_Import();
register_importer('dotclear', 'Dotclear', __('Import posts from a Dotclear Blog'), array ($dc_import, 'dispatch'));
register_importer('dotclear', __('DotClear'), __('Import categories, users, posts, comments, and links from a DotClear blog'), array ($dc_import, 'dispatch'));
?>

View File

@@ -0,0 +1,322 @@
<?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);
if ( is_wp_error( $post_ID ) )
return $post_ID;
}
$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();
return;
}
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');
$result = $this->import();
if ( is_wp_error( $result ) )
echo $result->get_error_message();
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'));
?>

178
wp-admin/import/jkw.php Normal file
View File

@@ -0,0 +1,178 @@
<?php
class JeromesKeyword_Import {
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import Jerome&#8217;s Keywords').'</h2>';
echo '<p>'.__('Steps may take a few minutes depending on the size of your database. Please be patient.').'<br /><br /></p>';
}
function footer() {
echo '</div>';
}
function greet() {
echo '<div class="narrow">';
echo '<p>'.__('Howdy! This imports tags from an existing Jerome&#8217;s Keywords installation into this blog using the new WordPress native tagging structure.').'</p>';
echo '<p>'.__('This is suitable for Jerome&#8217;s Keywords version 1.x and 2.0a.').'</p>';
echo '<p><strong>'.__('All existing Jerome&#8217;s Keywords will be removed after import.').'</strong></p>';
echo '<p><strong>'.__('Don&#8217;t be stupid - backup your database before proceeding!').'</strong></p>';
echo '<form action="admin.php?import=jkw&amp;step=1" method="post">';
wp_nonce_field('import-jkw');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Import Version 1.x &raquo;').'" /></p>';
echo '</form>';
echo '<form action="admin.php?import=jkw&amp;step=3" method="post">';
wp_nonce_field('import-jkw');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Import Version 2.0a &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function dispatch() {
if ( empty($_GET['step']) )
$step = 0;
else
$step = abs(intval($_GET['step']));
// load the header
$this->header();
switch ( $step ) {
case 0 :
$this->greet();
break;
case 1 :
check_admin_referer('import-jkw');
$this->check_V1_post_keyword( true );
break;
case 2 :
check_admin_referer('import-jkw');
$this->check_V1_post_keyword( false );
break;
case 3 :
check_admin_referer('import-jkw');
$this->check_V2_post_keyword( true );
break;
case 4 :
check_admin_referer('import-jkw');
$this->check_V2_post_keyword( false );
break;
case 5:
check_admin_referer('import-jkw');
$this->cleanup_V2_import();
break;
case 6:
$this->done();
break;
}
// load the footer
$this->footer();
}
function check_V1_post_keyword($precheck = true) {
global $wpdb;
echo '<div class="narrow">';
echo '<p><h3>'.__('Reading Jerome&#8217;s Keywords Tags&#8230;').'</h3></p>';
// import Jerome's Keywords tags
$metakeys = $wpdb->get_results("SELECT post_id, meta_id, meta_key, meta_value FROM $wpdb->postmeta WHERE $wpdb->postmeta.meta_key = 'keywords'");
if ( !is_array($metakeys)) {
echo '<p>' . __('No Tags Found!') . '</p>';
return false;
} else {
$count = count($metakeys);
echo '<p>' . sprintf( __('Done! <strong>%s</strong> posts with tags were read.'), $count ) . '<br /></p>';
echo '<ul>';
foreach ( $metakeys as $post_meta ) {
if ( $post_meta->meta_value != '' ) {
$post_keys = explode(',', $post_meta->meta_value);
foreach ( $post_keys as $keyword ) {
$keyword = addslashes(trim($keyword));
if ( '' != $keyword ) {
echo '<li>' . $post_meta->post_id . '&nbsp;-&nbsp;' . $keyword . '</li>';
if ( !$precheck )
wp_add_post_tags($post_meta->post_id, $keyword);
}
}
}
if ( !$precheck )
delete_post_meta($post_meta->post_id, 'keywords');
}
echo '</ul>';
}
echo '<form action="admin.php?import=jkw&amp;step='.($precheck? 2:6).'" method="post">';
wp_nonce_field('import-jkw');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Next &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function check_V2_post_keyword($precheck = true) {
global $wpdb;
echo '<div class="narrow">';
echo '<p><h3>'.__('Reading Jerome&#8217;s Keywords Tags&#8230;').'</h3></p>';
// import Jerome's Keywords tags
$tablename = $wpdb->prefix . substr(get_option('jkeywords_keywords_table'), 1, -1);
$metakeys = $wpdb->get_results("SELECT post_id, tag_name FROM $tablename");
if ( !is_array($metakeys) ) {
echo '<p>' . __('No Tags Found!') . '</p>';
return false;
} else {
$count = count($metakeys);
echo '<p>' . sprintf( __('Done! <strong>%s</strong> tags were read.'), $count ) . '<br /></p>';
echo '<ul>';
foreach ( $metakeys as $post_meta ) {
$keyword = addslashes(trim($post_meta->tag_name));
if ( $keyword != '' ) {
echo '<li>' . $post_meta->post_id . '&nbsp;-&nbsp;' . $keyword . '</li>';
if ( !$precheck )
wp_add_post_tags($post_meta->post_id, $keyword);
}
}
echo '</ul>';
}
echo '<form action="admin.php?import=jkw&amp;step='.($precheck? 4:5).'" method="post">';
wp_nonce_field('import-jkw');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Next &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function cleanup_V2_import() {
global $wpdb;
/* options from V2.0a (jeromes-keywords.php) */
$options = array('version', 'keywords_table', 'query_varname', 'template', 'meta_always_include', 'meta_includecats', 'meta_autoheader', 'search_strict', 'use_feed_cats', 'post_linkformat', 'post_tagseparator', 'post_includecats', 'post_notagstext', 'cloud_linkformat', 'cloud_tagseparator', 'cloud_includecats', 'cloud_sortorder', 'cloud_displaymax', 'cloud_displaymin', 'cloud_scalemax', 'cloud_scalemin');
$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . substr(get_option('jkeywords_keywords_table'), 1, -1));
foreach ( $options as $o )
delete_option('jkeywords_' . $o);
$this->done();
}
function done() {
echo '<div class="narrow">';
echo '<p><h3>'.__('Import Complete!').'</h3></p>';
echo '</div>';
}
function JeromesKeyword_Import() {
}
}
// create the import object
$jkw_import = new JeromesKeyword_Import();
// add it to the import page!
register_importer('jkw', 'Jerome&#8217;s Keywords', __('Import Jerome&#8217;s Keywords into the new native tagging structure.'), array($jkw_import, 'dispatch'));
?>

View File

@@ -18,15 +18,18 @@ class LJ_Import {
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
function greet() {
echo '<p>'.__('Howdy! This importer allows you to extract posts from LiveJournal XML export file into your blog. Pick a LiveJournal file to upload and click Import.').'</p>';
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
@@ -35,9 +38,8 @@ class LJ_Import {
preg_match_all('|<entry>(.*?)</entry>|is', $importdata, $posts);
$posts = $posts[1];
unset($importdata);
echo '<ol>';
echo '<ol>';
foreach ($posts as $post) {
flush();
preg_match('|<subject>(.*?)</subject>|is', $post, $post_title);
$post_title = $wpdb->escape(trim($post_title[1]));
if ( empty($post_title) ) {
@@ -47,7 +49,7 @@ class LJ_Import {
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);
$post_date = date('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]));
@@ -69,6 +71,8 @@ class LJ_Import {
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 ( is_wp_error( $post_id ) )
return $post_id;
if (!$post_id) {
_e("Couldn't get post ID");
echo '</li>';
@@ -78,9 +82,9 @@ class LJ_Import {
preg_match_all('|<comment>(.*?)</comment>|is', $post, $comments);
$comments = $comments[1];
if ( $comments ) {
$comment_post_ID = $post_id;
$comment_post_ID = (int) $post_id;
$num_comments = 0;
foreach ($comments as $comment) {
preg_match('|<event>(.*?)</event>|is', $comment, $comment_content);
@@ -118,8 +122,6 @@ class LJ_Import {
printf(__('(%s comments)'), $num_comments);
}
echo '</li>';
flush();
ob_flush();
}
echo '</ol>';
}
@@ -132,9 +134,11 @@ class LJ_Import {
}
$this->file = $file['file'];
$this->import_posts();
$result = $this->import_posts();
if ( is_wp_error( $result ) )
return $result;
wp_import_cleanup($file['id']);
echo '<h3>';
printf(__('All done. <a href="%s">Have fun!</a>'), get_option('home'));
echo '</h3>';
@@ -147,25 +151,28 @@ class LJ_Import {
$step = (int) $_GET['step'];
$this->header();
switch ($step) {
case 0 :
$this->greet();
break;
case 1 :
$this->import();
check_admin_referer('import-upload');
$result = $this->import();
if ( is_wp_error( $result ) )
echo $result->get_error_message();
break;
}
$this->footer();
}
function LJ_Import() {
// Nothing.
// Nothing.
}
}
$livejournal_import = new LJ_Import();
register_importer('livejournal', 'LiveJournal', __('Import posts from LiveJournal'), array ($livejournal_import, 'dispatch'));
register_importer('livejournal', __('LiveJournal'), __('Import posts from a LiveJournal XML export file'), array ($livejournal_import, 'dispatch'));
?>

View File

@@ -11,7 +11,7 @@ class MT_Import {
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import Movable Type').'</h2>';
echo '<h2>'.__('Import Movable Type or TypePad').'</h2>';
}
function footer() {
@@ -21,9 +21,20 @@ class MT_Import {
function greet() {
$this->header();
?>
<p><?php _e('Howdy! We&#8217;re about to begin the process to import all of your Movable Type entries into WordPress. To begin, select a file to upload and click Import.'); ?></p>
<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, either choose a file to upload and click "Upload file and import," or use FTP to upload your MT export file as <code>mt-export.txt</code> in your <code>/wp-content/</code> directory and then click "Import mt-export.txt"'); ?></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>
<form method="post" action="<?php echo add_query_arg('step', 1); ?>" class="import-upload-form">
<?php wp_nonce_field('import-upload'); ?>
<p>
<input type="hidden" name="upload_type" value="ftp" />
<?php _e('Or use <code>mt-export.txt</code> in your <code>/wp-content/</code> directory'); ?></p>
<p class="submit">
<input type="submit" value="<?php echo attribute_escape(__('Import mt-export.txt &raquo;')); ?>" />
</p>
</form>
<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();
}
@@ -32,7 +43,7 @@ class MT_Import {
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>
<option value="#NONE#"><?php _e('- Select -') ?></option>
<?php
@@ -53,9 +64,9 @@ class MT_Import {
$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
$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 (!$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.
@@ -73,25 +84,27 @@ class MT_Import {
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
}
$temp = array();
$authors = array();
$handle = fopen($this->file, 'r');
if ( $handle == null )
return false;
$in_comment = false;
while ( $line = fgets($handle) ) {
$line = trim($line);
if ( 'COMMENT:' == $line )
$in_comment = true;
else if ( '-----' == $line )
$in_comment = false;
if ( $in_comment || 0 !== strpos($line,"AUTHOR:") )
continue;
$temp[] = trim( substr($line, strlen("AUTHOR:")) );
}
//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.
@@ -103,6 +116,8 @@ class MT_Import {
array_push($authors, "$next");
}
fclose($handle);
return $authors;
}
@@ -134,7 +149,9 @@ class MT_Import {
function mt_authors_form() {
?>
<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>
<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 admin\'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
@@ -143,261 +160,268 @@ class MT_Import {
$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><i>'.$author.'</i><br />'.'<input type="text" value="'.$author.'" name="'.'user[]'.'" maxlength="30">';
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 '<input type="submit" value="'.__('Submit').'">'.'<br />';
echo '</form>';
echo '</ol>';
echo '</ol></div>';
flush();
}
function select_authors() {
$file = wp_import_handle_upload();
if ( $_POST['upload_type'] === 'ftp' ) {
$file['file'] = ABSPATH . 'wp-content/mt-export.txt';
if ( !file_exists($file['file']) )
$file['error'] = __('<code>mt-export.txt</code> does not exist');
} else {
$file = wp_import_handle_upload();
}
if ( isset($file['error']) ) {
echo $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 = $file['id'];
$this->id = (int) $file['id'];
$this->get_entries();
$this->mt_authors_form();
}
function save_post(&$post, &$comments, &$pings) {
// Reset the counter
set_time_limit(30);
$post = get_object_vars($post);
$post = add_magic_quotes($post);
$post = (object) $post;
if ( $post_id = post_exists($post->post_title, '', $post->post_date) ) {
echo '<li>';
printf(__('Post <i>%s</i> already exists.'), stripslashes($post->post_title));
} else {
echo '<li>';
printf(__('Importing post <i>%s</i>...'), stripslashes($post->post_title));
if ( '' != trim( $post->extended ) )
$post->post_content .= "\n<!--more-->\n$post->extended";
$post->post_author = $this->checkauthor($post->post_author); //just so that if a post already exists, new users are not created by checkauthor
$post_id = wp_insert_post($post);
if ( is_wp_error( $post_id ) )
return $post_id;
// Add categories.
if ( 0 != count($post->categories) ) {
wp_create_categories($post->categories, $post_id);
}
}
$num_comments = 0;
foreach ( $comments as $comment ) {
$comment = get_object_vars($comment);
$comment = add_magic_quotes($comment);
if ( !comment_exists($comment['comment_author'], $comment['comment_date'])) {
$comment['comment_post_ID'] = $post_id;
$comment = wp_filter_comment($comment);
wp_insert_comment($comment);
$num_comments++;
}
}
if ( $num_comments )
printf(' '.__('(%s comments)'), $num_comments);
$num_pings = 0;
foreach ( $pings as $ping ) {
$ping = get_object_vars($ping);
$ping = add_magic_quotes($ping);
if ( !comment_exists($ping['comment_author'], $ping['comment_date'])) {
$ping['comment_content'] = "<strong>{$ping['title']}</strong>\n\n{$ping['comment_content']}";
$ping['comment_post_ID'] = $post_id;
$ping = wp_filter_comment($ping);
wp_insert_comment($ping);
$num_pings++;
}
}
if ( $num_pings )
printf(' '.__('(%s pings)'), $num_pings);
echo "</li>";
//ob_flush();flush();
}
function process_posts() {
global $wpdb;
$i = -1;
echo "<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);
$handle = fopen($this->file, 'r');
if ( $handle == null )
return false;
// Then take the comments out
preg_match("|(-----\nCOMMENT:.*)|s", $post, $comments);
$post = preg_replace("|(-----\nCOMMENT:.*)|s", '', $post);
$context = '';
$post = new StdClass();
$comment = new StdClass();
$comments = array();
$ping = new StdClass();
$pings = array();
// We ignore the keywords
$post = preg_replace("|(-----\nKEYWORDS:.*)|s", '', $post);
echo "<div class='wrap'><ol>";
// We want the excerpt
preg_match("|-----\nEXCERPT:(.*)|s", $post, $excerpt);
$excerpt = $wpdb->escape(trim($excerpt[1]));
$post = preg_replace("|(-----\nEXCERPT:.*)|s", '', $post);
while ( $line = fgets($handle) ) {
$line = trim($line);
// 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);
}
if ( '-----' == $line ) {
// Finishing a multi-line field
if ( 'comment' == $context ) {
$comments[] = $comment;
$comment = new StdClass();
} else if ( 'ping' == $context ) {
$pings[] = $ping;
$ping = new StdClass();
}
$comment_post_ID = $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++;
}
}
$context = '';
} else if ( '--------' == $line ) {
// Finishing a post.
$context = '';
$result = $this->save_post($post, $comments, $pings);
if ( is_wp_error( $result ) )
return $result;
$post = new StdClass;
$comment = new StdClass();
$ping = new StdClass();
$comments = array();
$pings = array();
} else if ( 'BODY:' == $line ) {
$context = 'body';
} else if ( 'EXTENDED BODY:' == $line ) {
$context = 'extended';
} else if ( 'EXCERPT:' == $line ) {
$context = 'excerpt';
} else if ( 'KEYWORDS:' == $line ) {
$context = 'keywords';
} else if ( 'COMMENT:' == $line ) {
$context = 'comment';
} else if ( 'PING:' == $line ) {
$context = 'ping';
} else if ( 0 === strpos($line, "AUTHOR:") ) {
$author = trim( substr($line, strlen("AUTHOR:")) );
if ( '' == $context )
$post->post_author = $author;
else if ( 'comment' == $context )
$comment->comment_author = $author;
} else if ( 0 === strpos($line, "TITLE:") ) {
$title = trim( substr($line, strlen("TITLE:")) );
if ( '' == $context )
$post->post_title = $title;
else if ( 'ping' == $context )
$ping->title = $title;
} else if ( 0 === strpos($line, "STATUS:") ) {
$status = trim( substr($line, strlen("STATUS:")) );
if ( empty($status) )
$status = 'publish';
$post->post_status = $status;
} else if ( 0 === strpos($line, "ALLOW COMMENTS:") ) {
$allow = trim( substr($line, strlen("ALLOW COMMENTS:")) );
if ( $allow == 1 )
$post->comment_status = 'open';
else
$post->comment_status = 'closed';
} else if ( 0 === strpos($line, "ALLOW PINGS:") ) {
$allow = trim( substr($line, strlen("ALLOW PINGS:")) );
if ( $allow == 1 )
$post->ping_status = 'open';
else
$post->ping_status = 'closed';
} else if ( 0 === strpos($line, "CATEGORY:") ) {
$category = trim( substr($line, strlen("CATEGORY:")) );
if ( '' != $category )
$post->categories[] = $category;
} else if ( 0 === strpos($line, "PRIMARY CATEGORY:") ) {
$category = trim( substr($line, strlen("PRIMARY CATEGORY:")) );
if ( '' != $category )
$post->categories[] = $category;
} else if ( 0 === strpos($line, "DATE:") ) {
$date = trim( substr($line, strlen("DATE:")) );
$date = strtotime($date);
$date = date('Y-m-d H:i:s', $date);
$date_gmt = get_gmt_from_date($date);
if ( '' == $context ) {
$post->post_modified = $date;
$post->post_modified_gmt = $date_gmt;
$post->post_date = $date;
$post->post_date_gmt = $date_gmt;
} else if ( 'comment' == $context ) {
$comment->comment_date = $date;
} else if ( 'ping' == $context ) {
$ping->comment_date = $date;
}
if ( $num_comments )
printf(__('(%s comments)'), $num_comments);
} else if ( 0 === strpos($line, "EMAIL:") ) {
$email = trim( substr($line, strlen("EMAIL:")) );
if ( 'comment' == $context )
$comment->comment_author_email = $email;
else
$ping->comment_author_email = '';
} else if ( 0 === strpos($line, "IP:") ) {
$ip = trim( substr($line, strlen("IP:")) );
if ( 'comment' == $context )
$comment->comment_author_IP = $ip;
else
$ping->comment_author_IP = $ip;
} else if ( 0 === strpos($line, "URL:") ) {
$url = trim( substr($line, strlen("URL:")) );
if ( 'comment' == $context )
$comment->comment_author_url = $url;
else
$ping->comment_author_url = $url;
} else if ( 0 === strpos($line, "BLOG NAME:") ) {
$blog = trim( substr($line, strlen("BLOG NAME:")) );
$ping->comment_author = $blog;
} else {
// Processing multi-line field, check context.
// 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++;
}
}
$line .= "\n";
if ( 'body' == $context ) {
$post->post_content .= $line;
} else if ( 'extended' == $context ) {
$post->extended .= $line;
} else if ( 'excerpt' == $context ) {
$post->post_excerpt .= $line;
} else if ( 'comment' == $context ) {
$comment->comment_content .= $line;
} else if ( 'ping' == $context ) {
$ping->comment_content .= $line;
}
if ( $num_pings )
printf(__('(%s pings)'), $num_pings);
echo "</li>";
}
flush();
}
echo '</ol>';
wp_import_cleanup($this->id);
do_action('import_done', 'mt');
echo '<h3>'.sprintf(__('All done. <a href="%s">Have fun!</a>'), get_option('home')).'</h3>';
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);
if ( $this->id == 0 )
$this->file = ABSPATH . 'wp-content/mt-export.txt';
else
$this->file = get_attached_file($this->id);
$this->get_authors_from_post();
$this->get_entries();
$this->process_posts();
$result = $this->process_posts();
if ( is_wp_error( $result ) )
return $result;
}
function dispatch() {
@@ -411,20 +435,24 @@ class MT_Import {
$this->greet();
break;
case 1 :
check_admin_referer('import-upload');
$this->select_authors();
break;
case 2:
$this->import();
check_admin_referer('import-mt');
$result = $this->import();
if ( is_wp_error( $result ) )
echo $result->get_error_message();
break;
}
}
function MT_Import() {
// Nothing.
// Nothing.
}
}
$mt_import = new MT_Import();
register_importer('mt', 'Movable Type', __('Import posts and comments from your Movable Type blog'), array ($mt_import, 'dispatch'));
register_importer('mt', __('Movable Type and TypePad'), __('Import posts and comments from a Movable Type or Typepad blog'), array ($mt_import, 'dispatch'));
?>

View File

@@ -19,15 +19,17 @@ class RSS_Import {
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
function greet() {
echo '<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. Pick an RSS file to upload and click Import.').'</p>';
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
@@ -38,21 +40,22 @@ class RSS_Import {
$index = 0;
foreach ($this->posts as $post) {
preg_match('|<title>(.*?)</title>|is', $post, $post_title);
$post_title = $wpdb->escape(trim($post_title[1]));
$post_title = str_replace(array('<![CDATA[', ']]>'), '', $wpdb->escape( trim($post_title[1]) ));
preg_match('|<pubdate>(.*?)</pubdate>|is', $post, $post_date);
preg_match('|<pubdate>(.*?)</pubdate>|is', $post, $post_date_gmt);
if ($post_date) {
$post_date = strtotime($post_date[1]);
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);
$post_date = preg_replace('|([-+])([0-9]+):([0-9]+)$|', '\1\2\3', $post_date[1]);
$post_date = str_replace('T', ' ', $post_date);
$post_date = strtotime($post_date);
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 = gmdate('Y-m-d H:i:s', $post_date);
$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];
@@ -90,7 +93,7 @@ class RSS_Import {
$post_author = 1;
$post_status = 'publish';
$this->posts[$index] = compact('post_author', 'post_date', 'post_content', 'post_title', 'post_status', 'guid', 'categories');
$this->posts[$index] = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_status', 'guid', 'categories');
$index++;
}
}
@@ -107,6 +110,8 @@ class RSS_Import {
_e('Post already imported');
} else {
$post_id = wp_insert_post($post);
if ( is_wp_error( $post_id ) )
return $post_id;
if (!$post_id) {
_e("Couldn't get post ID");
return;
@@ -132,9 +137,11 @@ class RSS_Import {
$this->file = $file['file'];
$this->get_posts();
$this->import_posts();
$result = $this->import_posts();
if ( is_wp_error( $result ) )
return $result;
wp_import_cleanup($file['id']);
echo '<h3>';
printf(__('All done. <a href="%s">Have fun!</a>'), get_option('home'));
echo '</h3>';
@@ -147,25 +154,28 @@ class RSS_Import {
$step = (int) $_GET['step'];
$this->header();
switch ($step) {
case 0 :
$this->greet();
break;
case 1 :
$this->import();
check_admin_referer('import-upload');
$result = $this->import();
if ( is_wp_error( $result ) )
echo $result->get_error_message();
break;
}
$this->footer();
}
function RSS_Import() {
// Nothing.
// Nothing.
}
}
$rss_import = new RSS_Import();
register_importer('rss', 'RSS', __('Import posts from an RSS feed'), array ($rss_import, 'dispatch'));
register_importer('rss', __('RSS'), __('Import posts from an RSS feed'), array ($rss_import, 'dispatch'));
?>

155
wp-admin/import/stp.php Normal file
View File

@@ -0,0 +1,155 @@
<?php
class STP_Import {
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import Simple Tagging').'</h2>';
echo '<p>'.__('Steps may take a few minutes depending on the size of your database. Please be patient.').'<br /><br /></p>';
}
function footer() {
echo '</div>';
}
function greet() {
echo '<div class="narrow">';
echo '<p>'.__('Howdy! This imports tags from an existing Simple Tagging 1.6.2 installation into this blog using the new WordPress native tagging structure.').'</p>';
echo '<p>'.__('This has not been tested on any other versions of Simple Tagging. Mileage may vary.').'</p>';
echo '<p>'.__('To accommodate larger databases for those tag-crazy authors out there, we have made this into an easy 4-step program to help you kick that nasty Simple Tagging habit. Just keep clicking along and we will let you know when you are in the clear!').'</p>';
echo '<p><strong>'.__('Don&#8217;t be stupid - backup your database before proceeding!').'</strong></p>';
echo '<form action="admin.php?import=stp&amp;step=1" method="post">';
wp_nonce_field('import-stp');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Step 1 &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function dispatch () {
if ( empty( $_GET['step'] ) ) {
$step = 0;
} else {
$step = (int) $_GET['step'];
}
// load the header
$this->header();
switch ( $step ) {
case 0 :
$this->greet();
break;
case 1 :
check_admin_referer('import-stp');
$this->import_posts();
break;
case 2:
check_admin_referer('import-stp');
$this->import_t2p();
break;
case 3:
check_admin_referer('import-stp');
$this->cleanup_import();
break;
}
// load the footer
$this->footer();
}
function import_posts ( ) {
echo '<div class="narrow">';
echo '<p><h3>'.__('Reading STP Post Tags&#8230;').'</h3></p>';
// read in all the STP tag -> post settings
$posts = $this->get_stp_posts();
// if we didn't get any tags back, that's all there is folks!
if ( !is_array($posts) ) {
echo '<p>' . __('No posts were found to have tags!') . '</p>';
return false;
}
else {
// if there's an existing entry, delete it
if ( get_option('stpimp_posts') ) {
delete_option('stpimp_posts');
}
add_option('stpimp_posts', $posts);
$count = count($posts);
echo '<p>' . sprintf( __('Done! <strong>%s</strong> tag to post relationships were read.'), $count ) . '<br /></p>';
}
echo '<form action="admin.php?import=stp&amp;step=2" method="post">';
wp_nonce_field('import-stp');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Step 2 &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function import_t2p ( ) {
echo '<div class="narrow">';
echo '<p><h3>'.__('Adding Tags to Posts&#8230;').'</h3></p>';
// run that funky magic!
$tags_added = $this->tag2post();
echo '<p>' . sprintf( __('Done! <strong>%s</strong> tags where added!'), $tags_added ) . '<br /></p>';
echo '<form action="admin.php?import=stp&amp;step=3" method="post">';
wp_nonce_field('import-stp');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Step 3 &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function get_stp_posts ( ) {
global $wpdb;
// read in all the posts from the STP post->tag table: should be wp_post2tag
$posts_query = "SELECT post_id, tag_name FROM " . $wpdb->prefix . "stp_tags";
$posts = $wpdb->get_results($posts_query);
return $posts;
}
function tag2post ( ) {
global $wpdb;
// get the tags and posts we imported in the last 2 steps
$posts = get_option('stpimp_posts');
// null out our results
$tags_added = 0;
// loop through each post and add its tags to the db
foreach ( $posts as $this_post ) {
$the_post = (int) $this_post->post_id;
$the_tag = $wpdb->escape($this_post->tag_name);
// try to add the tag
wp_add_post_tags($the_post, $the_tag);
$tags_added++;
}
// that's it, all posts should be linked to their tags properly, pending any errors we just spit out!
return $tags_added;
}
function cleanup_import ( ) {
delete_option('stpimp_posts');
$this->done();
}
function done ( ) {
echo '<div class="narrow">';
echo '<p><h3>'.__('Import Complete!').'</h3></p>';
echo '<p>' . __('OK, so we lied about this being a 4-step program! You&#8217;re done!') . '</p>';
echo '<p>' . __('Now wasn&#8217;t that easy?') . '</p>';
echo '</div>';
}
function STP_Import ( ) {
// Nothing.
}
}
// create the import object
$stp_import = new STP_Import();
// add it to the import page!
register_importer('stp', 'Simple Tagging', __('Import Simple Tagging tags into the new native tagging structure.'), array($stp_import, 'dispatch'));
?>

View File

@@ -2,18 +2,6 @@
/**
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'))
{
@@ -38,26 +26,29 @@ if(!function_exists('link_exists'))
**/
class Textpattern_Import {
function header()
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()
function footer()
{
echo '</div>';
}
function greet()
{
echo '<p>'.__('Howdy! This importer allows you to extract posts from any Textpattern 4.0.2+ into your blog. This has not been tested on previous versions of Textpattern. Mileage may vary.').'</p>';
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 '<input type="submit" name="submit" value="'.__('Import Categories').'" />';
echo '<p class="submit"><input type="submit" name="submit" value="'.attribute_escape(__('Import Categories &raquo;')).'" /></p>';
echo '</form>';
echo '</div>';
}
function get_txp_cats()
@@ -67,17 +58,17 @@ class Textpattern_Import {
$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);
return $txpdb->get_results('SELECT
id,
name,
title
FROM '.$prefix.'txp_category
WHERE type = "article"',
ARRAY_A);
}
function get_txp_users()
{
global $wpdb;
@@ -85,44 +76,44 @@ class Textpattern_Import {
$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);
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);
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;
@@ -130,30 +121,30 @@ class Textpattern_Import {
$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);
return $txpdb->get_results('SELECT
id,
date,
category,
url,
linkname,
description
FROM '.$prefix.'txp_link',
ARRAY_A);
}
function cat2wp($categories='')
function cat2wp($categories='')
{
// General Housekeeping
global $wpdb;
@@ -163,16 +154,16 @@ class Textpattern_Import {
if(is_array($categories))
{
echo '<p>'.__('Importing Categories...').'<br /><br /></p>';
foreach ($categories as $category)
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));
@@ -183,7 +174,7 @@ class Textpattern_Import {
}
$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>';
@@ -192,14 +183,14 @@ class Textpattern_Import {
echo __('No Categories to Import!');
return false;
}
function users2wp($users='')
{
// General Housekeeping
global $wpdb;
$count = 0;
$txpid2wpid = array();
// Midnight Mojo
if(is_array($users))
{
@@ -208,14 +199,14 @@ class Textpattern_Import {
{
$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,
@@ -225,7 +216,7 @@ class Textpattern_Import {
'display_name' => $name)
);
}
else
else
{
$ret_id = wp_insert_user(array(
'user_login' => $name,
@@ -236,10 +227,10 @@ class Textpattern_Import {
);
}
$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'); }
@@ -249,24 +240,24 @@ class Textpattern_Import {
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
@@ -283,10 +274,10 @@ class Textpattern_Import {
{
$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 ;
@@ -295,59 +286,67 @@ class Textpattern_Import {
$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)
);
'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)
);
if ( is_wp_error( $ret_id ) )
return $ret_id;
}
else
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)
);
'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)
);
if ( is_wp_error( $ret_id ) )
return $ret_id;
}
$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; }
$category1 = get_category_by_slug($Category1);
$category1 = $category1->term_id;
$category2 = get_category_by_slug($Category2);
$category2 = $category1->term_id;
if($cat1 = $category1) { $cats[1] = $cat1; }
if($cat2 = $category2) { $cats[2] = $cat2; }
if(!empty($cats)) { wp_set_post_cats('', $ret_id, $cats); }
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;
return true;
}
function comments2wp($comments='')
{
// General Housekeeping
@@ -355,7 +354,7 @@ class Textpattern_Import {
$count = 0;
$txpcm2wpcm = array();
$postarr = get_option('txpposts2wpposts');
// Magic Mojo
if(is_array($comments))
{
@@ -364,7 +363,7 @@ class Textpattern_Import {
{
$count++;
extract($comment);
// WordPressify Data
$comment_ID = ltrim($discussid, '0');
$comment_post_ID = $postarr[$parentid];
@@ -373,57 +372,57 @@ class Textpattern_Import {
$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)
);
'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
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)
);
'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);
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))
{
@@ -432,12 +431,12 @@ class Textpattern_Import {
{
$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(
@@ -449,7 +448,7 @@ class Textpattern_Import {
'link_updated' => $date)
);
}
else
else
{
$ret_id = wp_insert_link(array(
'link_url' => $url,
@@ -470,67 +469,74 @@ class Textpattern_Import {
echo __('No Links to Import!');
return false;
}
function import_categories()
{
// Category Import
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">';
printf('<input type="submit" name="submit" value="%s" />', __('Import Users'));
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();
$users = $this->get_txp_users();
$this->users2wp($users);
echo '<form action="admin.php?import=textpattern&amp;step=3" method="post">';
printf('<input type="submit" name="submit" value="%s" />', __('Import Posts'));
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);
$result = $this->posts2wp($posts);
if ( is_wp_error( $result ) )
return $result;
echo '<form action="admin.php?import=textpattern&amp;step=4" method="post">';
printf('<input type="submit" name="submit" value="%s" />', __('Import Comments'));
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">';
printf('<input type="submit" name="submit" value="%s" />', __('Import Links'));
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">';
printf('<input type="submit" name="submit" value="%s" />', __('Finish'));
wp_nonce_field('import-textpattern');
printf('<input type="submit" name="submit" value="%s" />', attribute_escape(__('Finish')));
echo '</form>';
}
function cleanup_txpimport()
{
delete_option('tpre');
@@ -546,38 +552,38 @@ class Textpattern_Import {
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 '<p>'.sprintf(__('You have already setup WordPress and have been assigned an administrative login and password. Forget it. You didn&#8217;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.'), get_bloginfo( 'wpurl' ) . '/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/2004/04/19/wordpress-plugin-textile-20/">Textile for WordPress</a>. Trust me... You\'ll want it.').'</p>';
echo '<p>'.__('Also, since you&#8217;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&#8217;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').'</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>';
echo '<p>'.sprintf(__('That&#8217;s it! What are you waiting for? Go <a href="%1$s">login</a>!'), get_bloginfo( 'wpurl' ) . '/wp-login.php').'</p>';
}
function db_form()
{
echo '<ul>';
printf('<li><label for="dbuser">%s</label> <input type="text" name="dbuser" /></li>', __('Textpattern Database User:'));
printf('<li><label for="dbpass">%s</label> <input type="password" name="dbpass" /></li>', __('Textpattern Database Password:'));
printf('<li><label for="dbname">%s</label> <input type="text" name="dbname" /></li>', __('Textpattern Database Name:'));
printf('<li><label for="dbhost">%s</label> <input type="text" name="dbhost" value="localhost" /></li>', __('Textpattern Database Host:'));
printf('<li><label for="dbprefix">%s</label> <input type="text" name="dbprefix" /></li>', __('Textpattern Table prefix (if any):'));
echo '</ul>';
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()
function dispatch()
{
if (empty ($_GET['step']))
@@ -585,45 +591,47 @@ class Textpattern_Import {
else
$step = (int) $_GET['step'];
$this->header();
if ( $step > 0 )
if ( $step > 0 )
{
check_admin_referer('import-textpattern');
if($_POST['dbuser'])
{
if(get_option('txpuser'))
delete_option('txpuser');
add_option('txpuser',$_POST['dbuser']);
delete_option('txpuser');
add_option('txpuser', sanitize_user($_POST['dbuser'], true));
}
if($_POST['dbpass'])
{
if(get_option('txppass'))
delete_option('txppass');
add_option('txppass',$_POST['dbpass']);
delete_option('txppass');
add_option('txppass', sanitize_user($_POST['dbpass'], true));
}
if($_POST['dbname'])
{
if(get_option('txpname'))
delete_option('txpname');
add_option('txpname',$_POST['dbname']);
delete_option('txpname');
add_option('txpname', sanitize_user($_POST['dbname'], true));
}
if($_POST['dbhost'])
{
if(get_option('txphost'))
delete_option('txphost');
add_option('txphost',$_POST['dbhost']);
add_option('txphost', sanitize_user($_POST['dbhost'], true));
}
if($_POST['dbprefix'])
{
if(get_option('tpre'))
delete_option('tpre');
add_option('tpre',$_POST['dbprefix']);
}
add_option('tpre', sanitize_user($_POST['dbprefix']));
}
}
switch ($step)
switch ($step)
{
default:
case 0 :
@@ -636,7 +644,9 @@ class Textpattern_Import {
$this->import_users();
break;
case 3 :
$this->import_posts();
$result = $this->import_posts();
if ( is_wp_error( $result ) )
echo $result->get_error_message();
break;
case 4 :
$this->import_comments();
@@ -648,16 +658,16 @@ class Textpattern_Import {
$this->cleanup_txpimport();
break;
}
$this->footer();
}
function Textpattern_Import()
function Textpattern_Import()
{
// Nothing.
// Nothing.
}
}
$txp_import = new Textpattern_Import();
register_importer('textpattern', 'Textpattern', __('Import posts from a Textpattern Blog'), array ($txp_import, 'dispatch'));
register_importer('textpattern', __('Textpattern'), __('Import categories, users, posts, comments, and links from a Textpattern blog'), array ($txp_import, 'dispatch'));
?>

276
wp-admin/import/utw.php Normal file
View File

@@ -0,0 +1,276 @@
<?php
class UTW_Import {
function header() {
echo '<div class="wrap">';
echo '<h2>'.__('Import Ultimate Tag Warrior').'</h2>';
echo '<p>'.__('Steps may take a few minutes depending on the size of your database. Please be patient.').'<br /><br /></p>';
}
function footer() {
echo '</div>';
}
function greet() {
echo '<div class="narrow">';
echo '<p>'.__('Howdy! This imports tags from an existing Ultimate Tag Warrior 3 installation into this blog using the new WordPress native tagging structure.').'</p>';
echo '<p>'.__('This has not been tested on any other versions of Ultimate Tag Warrior. Mileage may vary.').'</p>';
echo '<p>'.__('To accommodate larger databases for those tag-crazy authors out there, we have made this into an easy 5-step program to help you kick that nasty UTW habit. Just keep clicking along and we will let you know when you are in the clear!').'</p>';
echo '<p><strong>'.__('Don&#8217;t be stupid - backup your database before proceeding!').'</strong></p>';
echo '<form action="admin.php?import=utw&amp;step=1" method="post">';
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Step 1 &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function dispatch () {
if ( empty( $_GET['step'] ) ) {
$step = 0;
} else {
$step = (int) $_GET['step'];
}
if ( $step > 1 )
check_admin_referer('import-utw');
// load the header
$this->header();
switch ( $step ) {
case 0 :
$this->greet();
break;
case 1 :
$this->import_tags();
break;
case 2 :
$this->import_posts();
break;
case 3:
$this->import_t2p();
break;
case 4:
$this->cleanup_import();
break;
}
// load the footer
$this->footer();
}
function import_tags ( ) {
echo '<div class="narrow">';
echo '<p><h3>'.__('Reading UTW Tags&#8230;').'</h3></p>';
$tags = $this->get_utw_tags();
// if we didn't get any tags back, that's all there is folks!
if ( !is_array($tags) ) {
echo '<p>' . __('No Tags Found!') . '</p>';
return false;
}
else {
// if there's an existing entry, delete it
if ( get_option('utwimp_tags') ) {
delete_option('utwimp_tags');
}
add_option('utwimp_tags', $tags);
$count = count($tags);
echo '<p>' . sprintf( __('Done! <strong>%s</strong> tags were read.'), $count ) . '<br /></p>';
echo '<p>' . __('The following tags were found:') . '</p>';
echo '<ul>';
foreach ( $tags as $tag_id => $tag_name ) {
echo '<li>' . $tag_name . '</li>';
}
echo '</ul>';
echo '<br />';
echo '<p>' . __('If you don&#8217;t want to import any of these tags, you should delete them from the UTW tag management page and then re-run this import.') . '</p>';
}
echo '<form action="admin.php?import=utw&amp;step=2" method="post">';
wp_nonce_field('import-utw');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Step 2 &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function import_posts ( ) {
echo '<div class="narrow">';
echo '<p><h3>'.__('Reading UTW Post Tags&#8230;').'</h3></p>';
// read in all the UTW tag -> post settings
$posts = $this->get_utw_posts();
// if we didn't get any tags back, that's all there is folks!
if ( !is_array($posts) ) {
echo '<p>' . __('No posts were found to have tags!') . '</p>';
return false;
}
else {
// if there's an existing entry, delete it
if ( get_option('utwimp_posts') ) {
delete_option('utwimp_posts');
}
add_option('utwimp_posts', $posts);
$count = count($posts);
echo '<p>' . sprintf( __('Done! <strong>%s</strong> tag to post relationships were read.'), $count ) . '<br /></p>';
}
echo '<form action="admin.php?import=utw&amp;step=3" method="post">';
wp_nonce_field('import-utw');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Step 3 &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function import_t2p ( ) {
echo '<div class="narrow">';
echo '<p><h3>'.__('Adding Tags to Posts&#8230;').'</h3></p>';
// run that funky magic!
$tags_added = $this->tag2post();
echo '<p>' . sprintf( __('Done! <strong>%s</strong> tags were added!'), $tags_added ) . '<br /></p>';
echo '<form action="admin.php?import=utw&amp;step=4" method="post">';
wp_nonce_field('import-utw');
echo '<p class="submit"><input type="submit" name="submit" value="'.__('Step 4 &raquo;').'" /></p>';
echo '</form>';
echo '</div>';
}
function get_utw_tags ( ) {
global $wpdb;
// read in all the tags from the UTW tags table: should be wp_tags
$tags_query = "SELECT tag_id, tag FROM " . $wpdb->prefix . "tags";
$tags = $wpdb->get_results($tags_query);
// rearrange these tags into something we can actually use
foreach ( $tags as $tag ) {
$new_tags[$tag->tag_id] = $tag->tag;
}
return $new_tags;
}
function get_utw_posts ( ) {
global $wpdb;
// read in all the posts from the UTW post->tag table: should be wp_post2tag
$posts_query = "SELECT tag_id, post_id FROM " . $wpdb->prefix . "post2tag";
$posts = $wpdb->get_results($posts_query);
return $posts;
}
function tag2post ( ) {
// get the tags and posts we imported in the last 2 steps
$tags = get_option('utwimp_tags');
$posts = get_option('utwimp_posts');
// null out our results
$tags_added = 0;
// loop through each post and add its tags to the db
foreach ( $posts as $this_post ) {
$the_post = (int) $this_post->post_id;
$the_tag = (int) $this_post->tag_id;
// what's the tag name for that id?
$the_tag = $tags[$the_tag];
// screw it, just try to add the tag
wp_add_post_tags($the_post, $the_tag);
$tags_added++;
}
// that's it, all posts should be linked to their tags properly, pending any errors we just spit out!
return $tags_added;
}
function cleanup_import ( ) {
delete_option('utwimp_tags');
delete_option('utwimp_posts');
$this->done();
}
function done ( ) {
echo '<div class="narrow">';
echo '<p><h3>'.__('Import Complete!').'</h3></p>';
echo '<p>' . __('OK, so we lied about this being a 5-step program! You&#8217;re done!') . '</p>';
echo '<p>' . __('Now wasn&#8217;t that easy?') . '</p>';
echo '</div>';
}
function UTW_Import ( ) {
// Nothing.
}
}
// create the import object
$utw_import = new UTW_Import();
// add it to the import page!
register_importer('utw', 'Ultimate Tag Warrior', __('Import Ultimate Tag Warrior tags into the new native tagging structure.'), array($utw_import, 'dispatch'));
?>

View File

@@ -0,0 +1,489 @@
<?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 user_login FROM $wpdb->users ORDER BY user_login");
?><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);
$this->posts = array();
$this->categories = array();
$this->tags = array();
$num = 0;
$doing_entry = false;
$fp = fopen($this->file, 'r');
if ($fp) {
while ( !feof($fp) ) {
$importline = rtrim(fgets($fp));
if ( false !== strpos($importline, '<wp:category>') ) {
preg_match('|<wp:category>(.*?)</wp:category>|is', $importline, $category);
$this->categories[] = $category[1];
continue;
}
if ( false !== strpos($importline, '<wp:tag>') ) {
preg_match('|<wp:tag>(.*?)</wp:tag>|is', $importline, $tag);
$this->tags[] = $tag[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;
}
}
fclose($fp);
}
}
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) get_terms('category', 'fields=names');
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_tags() {
global $wpdb;
$tag_names = (array) get_terms('post_tag', 'fields=names');
while ( $c = array_shift($this->tags) ) {
$tag_name = trim($this->get_tag( $c, 'wp:tag_name' ));
// If the category exists we leave it alone
if ( in_array($tag_name, $tag_names) )
continue;
$slug = $this->get_tag( $c, 'wp:tag_slug' );
$description = $this->get_tag( $c, 'wp:tag_description' );
$tagarr = compact('slug', 'description');
$tag_ID = wp_insert_term($tag_name, 'post_tag', $tagarr);
}
}
function process_posts() {
$i = -1;
echo '<ol>';
foreach ($this->posts as $post) {
$result = $this->process_post($post);
if ( is_wp_error( $result ) )
return $result;
}
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 domain="tag">(.*?)</category>|is', $post, $tags);
$tags = $tags[1];
$tag_index = 0;
foreach ($tags as $tag) {
$tags[$tag_index] = $wpdb->escape($this->unhtmlentities(str_replace(array ('<![CDATA[', ']]>'), '', $tag)));
$tag_index++;
}
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]) {
$result = $this->process_post($parent[0]); // If not yet, process the parent first.
if ( is_wp_error( $result ) )
return $result;
}
$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);
if ( is_wp_error( $post_id ) )
return $post_id;
// 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) {
$slug = sanitize_term_field('slug', $category, 0, 'category', 'db');
$cat = get_term_by('slug', $slug, 'category');
$cat_ID = 0;
if ( ! empty($cat) )
$cat_ID = $cat->term_id;
if ($cat_ID == 0) {
$category = $wpdb->escape($category);
$cat_ID = wp_insert_category(array('cat_name' => $category));
}
$post_cats[] = $cat_ID;
}
wp_set_post_categories($post_id, $post_cats);
}
// Add tags.
if (count($tags) > 0) {
$post_tags = array();
foreach ($tags as $tag) {
$slug = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
$tag_obj = get_term_by('slug', $slug, 'post_tag');
$tag_id = 0;
if ( ! empty($tag_obj) )
$tag_id = $tag_obj->term_id;
if ( $tag_id == 0 ) {
$tag = $wpdb->escape($tag);
$tag_id = wp_insert_term($tag, 'post_tag');
$tag_id = $tag_id['term_id'];
}
$post_tags[] = intval($tag_id);
}
wp_set_post_tags($post_id, $post_tags);
}
}
// 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_tags();
$result = $this->process_posts();
if ( is_wp_error( $result ) )
return $result;
}
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');
$result = $this->import();
if ( is_wp_error( $result ) )
echo $result->get_error_message();
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'));
?>

View File

@@ -0,0 +1,212 @@
<?php
class WP_Categories_to_Tags {
var $categories_to_convert = array();
var $all_categories = array();
function header() {
print '<div class="wrap">';
print '<h2>' . __('Convert Categories to Tags') . '</h2>';
}
function footer() {
print '</div>';
}
function populate_all_categories() {
global $wpdb;
$categories = get_categories('get=all');
foreach ( $categories as $category ) {
if ( !tag_exists($wpdb->escape($category->name)) )
$this->all_categories[] = $category;
}
}
function welcome() {
$this->populate_all_categories();
print '<div class="narrow">';
if (count($this->all_categories) > 0) {
print '<p>' . __('Howdy! This converter allows you to selectively convert existing categories to tags. To get started, check the checkboxes of the categories you wish to be converted, then click the Convert button.') . '</p>';
print '<p>' . __('Keep in mind that if you convert a category with child categories, those child categories get their parent setting removed, so they\'re in the root.') . '</p>';
$this->categories_form();
} else {
print '<p>'.__('You have no categories to convert!').'</p>';
}
print '</div>';
}
function categories_form() {
print '<form action="admin.php?import=wp-cat2tag&amp;step=2" method="post">';
wp_nonce_field('import-cat2tag');
print '<ul style="list-style:none">';
$hier = _get_term_hierarchy('category');
foreach ($this->all_categories as $category) {
$category = sanitize_term( $category, 'category', 'display' );
if ((int) $category->parent == 0) {
print '<li><label><input type="checkbox" name="cats_to_convert[]" value="' . intval($category->term_id) . '" /> ' . $category->name . ' (' . $category->count . ')</label>';
if (isset($hier[$category->term_id])) {
$this->_category_children($category, $hier);
}
print '</li>';
}
}
print '</ul>';
print '<p class="submit"><input type="submit" name="submit" value="' . __('Convert &raquo;') . '" /></p>';
print '</form>';
}
function _category_children($parent, $hier) {
print '<ul style="list-style:none">';
foreach ($hier[$parent->term_id] as $child_id) {
$child =& get_category($child_id);
print '<li><label><input type="checkbox" name="cats_to_convert[]" value="' . intval($child->term_id) . '" /> ' . $child->name . ' (' . $child->count . ')</label>';
if (isset($hier[$child->term_id])) {
$this->_category_children($child, $hier);
}
print '</li>';
}
print '</ul>';
}
function _category_exists($cat_id) {
global $wpdb;
$cat_id = (int) $cat_id;
$maybe_exists = category_exists($cat_id);
if ( $maybe_exists ) {
return true;
} else {
return false;
}
}
function convert_them() {
global $wpdb;
if ( (!isset($_POST['cats_to_convert']) || !is_array($_POST['cats_to_convert'])) && empty($this->categories_to_convert)) {
print '<div class="narrow">';
print '<p>' . sprintf(__('Uh, oh. Something didn\'t work. Please <a href="%s">try again</a>.'), 'admin.php?import=wp-cat2tag') . '</p>';
print '</div>';
return;
}
if ( empty($this->categories_to_convert) )
$this->categories_to_convert = $_POST['cats_to_convert'];
$hier = _get_term_hierarchy('category');
print '<ul>';
foreach ( (array) $this->categories_to_convert as $cat_id) {
$cat_id = (int) $cat_id;
print '<li>' . sprintf(__('Converting category #%s ... '), $cat_id);
if (!$this->_category_exists($cat_id)) {
_e('Category doesn\'t exist!');
} else {
$category =& get_category($cat_id);
if ( tag_exists($wpdb->escape($category->name)) ) {
_e('Category is already a tag.');
print '</li>';
continue;
}
// If the category is the default, leave category in place and create tag.
if ( get_option('default_category') == $category->term_id ) {
$id = wp_insert_term($category->name, 'post_tag', array('slug' => $category->slug));
$id = $id['term_taxonomy_id'];
$posts = get_objects_in_term($category->term_id, 'category');
foreach ( $posts as $post ) {
if ( !$wpdb->get_var("SELECT object_id FROM $wpdb->term_relationships WHERE object_id = '$post' AND term_taxonomy_id = '$id'") )
$wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES ('$post', '$id')");
clean_post_cache($post);
}
} else {
$tt_ids = $wpdb->get_col("SELECT term_taxonomy_id FROM $wpdb->term_taxonomy WHERE term_id = '{$category->term_id}' AND taxonomy = 'category'");
if ( $tt_ids ) {
$posts = $wpdb->get_col("SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id IN (" . join(',', $tt_ids) . ") GROUP BY object_id");
foreach ( (array) $posts as $post )
clean_post_cache($post);
}
// Change the category to a tag.
$wpdb->query("UPDATE $wpdb->term_taxonomy SET taxonomy = 'post_tag' WHERE term_id = '{$category->term_id}' AND taxonomy = 'category'");
$terms = $wpdb->get_col("SELECT term_id FROM $wpdb->term_taxonomy WHERE parent = '{$category->term_id}' AND taxonomy = 'category'");
foreach ( (array) $terms as $term )
clean_category_cache($term);
// Set all parents to 0 (root-level) if their parent was the converted tag
$wpdb->query("UPDATE $wpdb->term_taxonomy SET parent = 0 WHERE parent = '{$category->term_id}' AND taxonomy = 'category'");
}
// Clean the cache
clean_category_cache($category->term_id);
_e('Converted successfully.');
}
print '</li>';
}
print '</ul>';
}
function init() {
$step = (isset($_GET['step'])) ? (int) $_GET['step'] : 1;
$this->header();
if (!current_user_can('manage_categories')) {
print '<div class="narrow">';
print '<p>' . __('Cheatin&#8217; uh?') . '</p>';
print '</div>';
} else {
if ( $step > 1 )
check_admin_referer('import-cat2tag');
switch ($step) {
case 1 :
$this->welcome();
break;
case 2 :
$this->convert_them();
break;
}
}
$this->footer();
}
function WP_Categories_to_Tags() {
// Do nothing.
}
}
$wp_cat2tag_importer = new WP_Categories_to_Tags();
register_importer('wp-cat2tag', __('Categories to Tags Converter'), __('Convert existing categories to tags, selectively.'), array(&$wp_cat2tag_importer, 'init'));
?>

View File

@@ -0,0 +1,19 @@
<?php
require_once(ABSPATH . 'wp-admin/includes/bookmark.php');
require_once(ABSPATH . 'wp-admin/includes/comment.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
require_once(ABSPATH . 'wp-admin/includes/import.php');
require_once(ABSPATH . 'wp-admin/includes/misc.php');
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
require_once(ABSPATH . 'wp-admin/includes/post.php');
require_once(ABSPATH . 'wp-admin/includes/taxonomy.php');
require_once(ABSPATH . 'wp-admin/includes/template.php');
require_once(ABSPATH . 'wp-admin/includes/theme.php');
require_once(ABSPATH . 'wp-admin/includes/user.php');
require_once(ABSPATH . 'wp-admin/includes/update.php');
require_once(ABSPATH . WPINC . '/registration.php');
?>

View File

@@ -0,0 +1,177 @@
<?php
function add_link() {
return edit_link();
}
function edit_link( $link_id = '' ) {
if (!current_user_can( 'manage_links' ))
wp_die( __( 'Cheatin&#8217; uh?' ));
$_POST['link_url'] = wp_specialchars( $_POST['link_url'] );
$_POST['link_url'] = clean_url($_POST['link_url']);
$_POST['link_name'] = wp_specialchars( $_POST['link_name'] );
$_POST['link_image'] = wp_specialchars( $_POST['link_image'] );
$_POST['link_rss'] = clean_url($_POST['link_rss']);
if ( !empty( $link_id ) ) {
$_POST['link_id'] = $link_id;
return wp_update_link( $_POST);
} else {
return wp_insert_link( $_POST);
}
}
function get_default_link_to_edit() {
if ( isset( $_GET['linkurl'] ) )
$link->link_url = clean_url( $_GET['linkurl']);
else
$link->link_url = '';
if ( isset( $_GET['name'] ) )
$link->link_name = attribute_escape( $_GET['name']);
else
$link->link_name = '';
$link->link_visible = 'Y';
return $link;
}
function wp_delete_link($link_id) {
global $wpdb;
do_action('delete_link', $link_id);
wp_delete_object_term_relationships($link_id, 'link_category');
$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) {
$cats = wp_get_object_terms($link_id, 'link_category', 'fields=ids');
return array_unique($cats);
}
function get_link_to_edit( $link_id ) {
return get_link( $link_id, OBJECT, 'edit' );
}
function wp_insert_link($linkdata) {
global $wpdb, $current_user;
$defaults = array('link_id' => 0, 'link_name' => '', 'link_url' => '', 'link_rating' => 0 );
$linkdata = wp_parse_args($linkdata, $defaults);
$linkdata = sanitize_bookmark($linkdata, 'db');
extract($linkdata, EXTR_SKIP);
$update = false;
if ( !empty($link_id) )
$update = true;
if ( trim( $link_name ) == '' )
return 0;
if ( trim( $link_url ) == '' )
return 0;
if ( empty($link_rating) )
$link_rating = 0;
if ( empty($link_image) )
$link_image = '';
if ( empty($link_target) )
$link_target = '';
if ( empty($link_visible) )
$link_visible = 'Y';
if ( empty($link_owner) )
$link_owner = $current_user->id;
if ( empty($link_notes) )
$link_notes = '';
if ( empty($link_description) )
$link_description = '';
if ( empty($link_rss) )
$link_rss = '';
if ( empty($link_rel) )
$link_rel = '';
// Make sure we set a valid category
if (0 == count($link_category) || !is_array($link_category)) {
$link_category = array(get_option('default_link_category'));
}
if ( $update ) {
$wpdb->query("UPDATE $wpdb->links SET link_url='$link_url',
link_name='$link_name', link_image='$link_image',
link_target='$link_target',
link_visible='$link_visible', link_description='$link_description',
link_rating='$link_rating', link_rel='$link_rel',
link_notes='$link_notes', link_rss = '$link_rss'
WHERE link_id='$link_id'");
} else {
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_image, link_target, link_description, link_visible, link_owner, link_rating, link_rel, link_notes, link_rss) VALUES('$link_url','$link_name', '$link_image', '$link_target', '$link_description', '$link_visible', '$link_owner', '$link_rating', '$link_rel', '$link_notes', '$link_rss')");
$link_id = (int) $wpdb->insert_id;
}
wp_set_link_cats($link_id, $link_category);
if ( $update )
do_action('edit_link', $link_id);
else
do_action('add_link', $link_id);
return $link_id;
}
function wp_set_link_cats($link_id = 0, $link_categories = array()) {
// If $link_categories isn't already an array, make it one:
if (!is_array($link_categories) || 0 == count($link_categories))
$link_categories = array(get_option('default_link_category'));
$link_categories = array_map('intval', $link_categories);
$link_categories = array_unique($link_categories);
wp_set_object_terms($link_id, $link_categories, 'link_category');
} // wp_set_link_cats()
function wp_update_link($linkdata) {
global $wpdb;
$link_id = (int) $linkdata['link_id'];
$link = get_link($link_id, ARRAY_A);
// Escape data pulled from DB.
$link = add_magic_quotes($link);
// Passed link category list overwrites existing category list if not empty.
if ( isset($linkdata['link_category']) && is_array($linkdata['link_category'])
&& 0 != count($linkdata['link_category']) )
$link_cats = $linkdata['link_category'];
else
$link_cats = $link['link_category'];
// Merge old and new fields with new fields overwriting old ones.
$linkdata = array_merge($link, $linkdata);
$linkdata['link_category'] = $link_cats;
return wp_insert_link($linkdata);
}
?>

View File

@@ -0,0 +1,68 @@
<?php
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'");
}
function edit_comment() {
global $user_ID;
$comment_ID = (int) $_POST['comment_ID'];
$comment_post_ID = (int) $_POST['comment_post_ID'];
if (!current_user_can( 'edit_post', $comment_post_ID ))
wp_die( __('You are not allowed to edit comments on this post, so you cannot edit this comment.' ));
$_POST['comment_author'] = $_POST['newcomment_author'];
$_POST['comment_author_email'] = $_POST['newcomment_author_email'];
$_POST['comment_author_url'] = $_POST['newcomment_author_url'];
$_POST['comment_approved'] = $_POST['comment_status'];
$_POST['comment_content'] = $_POST['content'];
$_POST['comment_ID'] = (int) $_POST['comment_ID'];
if (!empty ( $_POST['edit_date'] ) ) {
$aa = $_POST['aa'];
$mm = $_POST['mm'];
$jj = $_POST['jj'];
$hh = $_POST['hh'];
$mn = $_POST['mn'];
$ss = $_POST['ss'];
$jj = ($jj > 31 ) ? 31 : $jj;
$hh = ($hh > 23 ) ? $hh -24 : $hh;
$mn = ($mn > 59 ) ? $mn -60 : $mn;
$ss = ($ss > 59 ) ? $ss -60 : $ss;
$_POST['comment_date'] = "$aa-$mm-$jj $hh:$mn:$ss";
}
wp_update_comment( $_POST);
}
function get_comment_to_edit( $id ) {
if ( !$comment = get_comment($id) )
return false;
$comment->comment_ID = (int) $comment->comment_ID;
$comment->comment_post_ID = (int) $comment->comment_post_ID;
$comment->comment_content = format_to_edit( $comment->comment_content );
$comment->comment_content = apply_filters( 'comment_edit_pre', $comment->comment_content);
$comment->comment_author = format_to_edit( $comment->comment_author );
$comment->comment_author_email = format_to_edit( $comment->comment_author_email );
$comment->comment_author_url = clean_url($comment->comment_author_url);
$comment->comment_author_url = format_to_edit( $comment->comment_author_url );
return $comment;
}
function get_pending_comments_num( $post_id ) {
global $wpdb;
$post_id = (int) $post_id;
$pending = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_post_ID = $post_id AND comment_approved = '0'" );
return $pending;
}
?>

192
wp-admin/includes/file.php Normal file
View File

@@ -0,0 +1,192 @@
<?php
$wp_file_descriptions = array ('index.php' => __( 'Main Index Template' ), 'style.css' => __( 'Stylesheet' ), 'comments.php' => __( 'Comments' ), 'comments-popup.php' => __( 'Popup Comments' ), 'footer.php' => __( 'Footer' ), 'header.php' => __( 'Header' ), 'sidebar.php' => __( 'Sidebar' ), 'archive.php' => __( 'Archives' ), 'category.php' => __( 'Category Template' ), 'page.php' => __( 'Page Template' ), 'search.php' => __( 'Search Results' ), 'single.php' => __( 'Single Post' ), '404.php' => __( '404 Template' ), 'my-hacks.php' => __( 'my-hacks.php (legacy hacks support)' ), '.htaccess' => __( '.htaccess (for rewrite rules )' ),
// Deprecated files
'wp-layout.css' => __( 'Stylesheet' ), 'wp-comments.php' => __( 'Comments Template' ), 'wp-comments-popup.php' => __( 'Popup Comments Template' ));
function get_file_description( $file ) {
global $wp_file_descriptions;
if ( isset( $wp_file_descriptions[basename( $file )] ) ) {
return $wp_file_descriptions[basename( $file )];
}
elseif ( file_exists( ABSPATH . $file ) && is_file( ABSPATH . $file ) ) {
$template_data = implode( '', file( ABSPATH . $file ) );
if ( preg_match( "|Template Name:(.*)|i", $template_data, $name ))
return $name[1];
}
return basename( $file );
}
function get_home_path() {
$home = get_option( 'home' );
if ( $home != '' && $home != get_option( 'siteurl' ) ) {
$home_path = parse_url( $home );
$home_path = $home_path['path'];
$root = str_replace( $_SERVER["PHP_SELF"], '', $_SERVER["SCRIPT_FILENAME"] );
$home_path = trailingslashit( $root.$home_path );
} else {
$home_path = ABSPATH;
}
return $home_path;
}
function get_real_file_to_edit( $file ) {
if ('index.php' == $file || '.htaccess' == $file ) {
$real_file = get_home_path().$file;
} else {
$real_file = ABSPATH.$file;
}
return $real_file;
}
function validate_file( $file, $allowed_files = '' ) {
if ( false !== strpos( $file, '..' ))
return 1;
if ( false !== strpos( $file, './' ))
return 1;
if (':' == substr( $file, 1, 1 ))
return 2;
if (!empty ( $allowed_files ) && (!in_array( $file, $allowed_files ) ) )
return 3;
return 0;
}
function validate_file_to_edit( $file, $allowed_files = '' ) {
$file = stripslashes( $file );
$code = validate_file( $file, $allowed_files );
if (!$code )
return $file;
switch ( $code ) {
case 1 :
wp_die( __('Sorry, can&#8217;t edit files with ".." in the name. If you are trying to edit a file in your WordPress home directory, you can just type the name of the file in.' ));
case 2 :
wp_die( __('Sorry, can&#8217;t call files with their real path.' ));
case 3 :
wp_die( __('Sorry, that file cannot be edited.' ));
}
}
// array wp_handle_upload ( array &file [, array overrides] )
// file: reference to a single element of $_FILES. Call the function once for each uploaded file.
// overrides: an associative array of names=>values to override default variables with extract( $overrides, EXTR_OVERWRITE ).
// On success, returns an associative array of file attributes.
// On failure, returns $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ).
function wp_handle_upload( &$file, $overrides = false ) {
// The default error handler.
if (! function_exists( 'wp_handle_upload_error' ) ) {
function wp_handle_upload_error( &$file, $message ) {
return array( 'error'=>$message );
}
}
// You may define your own function and pass the name in $overrides['upload_error_handler']
$upload_error_handler = 'wp_handle_upload_error';
// $_POST['action'] must be set and its value must equal $overrides['action'] or this:
$action = 'wp_handle_upload';
// Courtesy of php.net, the strings that describe the error indicated in $_FILES[{form field}]['error'].
$upload_error_strings = array( false,
__( "The uploaded file exceeds the <code>upload_max_filesize</code> directive in <code>php.ini</code>." ),
__( "The uploaded file exceeds the <em>MAX_FILE_SIZE</em> directive that was specified in the HTML form." ),
__( "The uploaded file was only partially uploaded." ),
__( "No file was uploaded." ),
__( "Missing a temporary folder." ),
__( "Failed to write file to disk." ));
// All tests are on by default. Most can be turned off by $override[{test_name}] = false;
$test_form = true;
$test_size = true;
// If you override this, you must provide $ext and $type!!!!
$test_type = true;
// Install user overrides. Did we mention that this voids your warranty?
if ( is_array( $overrides ) )
extract( $overrides, EXTR_OVERWRITE );
// A correct form post will pass this test.
if ( $test_form && (!isset( $_POST['action'] ) || ($_POST['action'] != $action ) ) )
return $upload_error_handler( $file, __( 'Invalid form submission.' ));
// A successful upload will pass this test. It makes no sense to override this one.
if ( $file['error'] > 0 )
return $upload_error_handler( $file, $upload_error_strings[$file['error']] );
// A non-empty file will pass this test.
if ( $test_size && !($file['size'] > 0 ) )
return $upload_error_handler( $file, __( 'File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini.' ));
// A properly uploaded file will pass this test. There should be no reason to override this one.
if (! @ is_uploaded_file( $file['tmp_name'] ) )
return $upload_error_handler( $file, __( 'Specified file failed upload test.' ));
// A correct MIME type will pass this test. Override $mimes or use the upload_mimes filter.
if ( $test_type ) {
$wp_filetype = wp_check_filetype( $file['name'], $mimes );
extract( $wp_filetype );
if ( ( !$type || !$ext ) && !current_user_can( 'unfiltered_upload' ) )
return $upload_error_handler( $file, __( 'File type does not meet security guidelines. Try another.' ));
if ( !$ext )
$ext = ltrim(strrchr($file['name'], '.'), '.');
}
// A writable uploads dir will pass this test. Again, there's no point overriding this one.
if ( ! ( ( $uploads = wp_upload_dir() ) && false === $uploads['error'] ) )
return $upload_error_handler( $file, $uploads['error'] );
// Increment the file number until we have a unique file to save in $dir. Use $override['unique_filename_callback'] if supplied.
if ( isset( $unique_filename_callback ) && function_exists( $unique_filename_callback ) ) {
$filename = $unique_filename_callback( $uploads['path'], $file['name'] );
} else {
$number = '';
$filename = str_replace( '#', '_', $file['name'] );
$filename = str_replace( array( '\\', "'" ), '', $filename );
if ( empty( $ext) )
$ext = '';
else
$ext = ".$ext";
while ( file_exists( $uploads['path'] . "/$filename" ) ) {
if ( '' == "$number$ext" )
$filename = $filename . ++$number . $ext;
else
$filename = str_replace( "$number$ext", ++$number . $ext, $filename );
}
$filename = str_replace( $ext, '', $filename );
$filename = sanitize_title_with_dashes( $filename ) . $ext;
}
// Move the file to the uploads dir
$new_file = $uploads['path'] . "/$filename";
if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) )
wp_die( printf( __('The uploaded file could not be moved to %s.' ), $uploads['path'] ));
// Set correct file permissions
$stat = stat( dirname( $new_file ));
$perms = $stat['mode'] & 0000666;
@ chmod( $new_file, $perms );
// Compute the URL
$url = $uploads['url'] . "/$filename";
$return = apply_filters( 'wp_handle_upload', array( 'file' => $new_file, 'url' => $url, 'type' => $type ) );
return $return;
}
?>

192
wp-admin/includes/image.php Normal file
View File

@@ -0,0 +1,192 @@
<?php
function get_udims( $width, $height) {
if ( $height <= 96 && $width <= 128 )
return array( $width, $height);
elseif ( $width / $height > 4 / 3 )
return array( 128, (int) ($height / $width * 128 ));
else
return array( (int) ($width / $height * 96 ), 96 );
}
function wp_create_thumbnail( $file, $max_side, $effect = '' ) {
// 1 = GIF, 2 = JPEG, 3 = PNG
if ( file_exists( $file ) ) {
$type = getimagesize( $file );
// if the associated function doesn't exist - then it's not
// handle. duh. i hope.
if (!function_exists( 'imagegif' ) && $type[2] == 1 ) {
$error = __( 'Filetype not supported. Thumbnail not created.' );
}
elseif (!function_exists( 'imagejpeg' ) && $type[2] == 2 ) {
$error = __( 'Filetype not supported. Thumbnail not created.' );
}
elseif (!function_exists( 'imagepng' ) && $type[2] == 3 ) {
$error = __( 'Filetype not supported. Thumbnail not created.' );
} else {
// create the initial copy from the original file
if ( $type[2] == 1 ) {
$image = imagecreatefromgif( $file );
}
elseif ( $type[2] == 2 ) {
$image = imagecreatefromjpeg( $file );
}
elseif ( $type[2] == 3 ) {
$image = imagecreatefrompng( $file );
}
if ( function_exists( 'imageantialias' ))
imageantialias( $image, TRUE );
$image_attr = getimagesize( $file );
// figure out the longest side
if ( $image_attr[0] > $image_attr[1] ) {
$image_width = $image_attr[0];
$image_height = $image_attr[1];
$image_new_width = $max_side;
$image_ratio = $image_width / $image_new_width;
$image_new_height = $image_height / $image_ratio;
//width is > height
} else {
$image_width = $image_attr[0];
$image_height = $image_attr[1];
$image_new_height = $max_side;
$image_ratio = $image_height / $image_new_height;
$image_new_width = $image_width / $image_ratio;
//height > width
}
$thumbnail = imagecreatetruecolor( $image_new_width, $image_new_height);
@ imagecopyresampled( $thumbnail, $image, 0, 0, 0, 0, $image_new_width, $image_new_height, $image_attr[0], $image_attr[1] );
// If no filters change the filename, we'll do a default transformation.
if ( basename( $file ) == $thumb = apply_filters( 'thumbnail_filename', basename( $file ) ) )
$thumb = preg_replace( '!(\.[^.]+)?$!', '.thumbnail' . '$1', basename( $file ), 1 );
$thumbpath = str_replace( basename( $file ), $thumb, $file );
// move the thumbnail to its final destination
if ( $type[2] == 1 ) {
if (!imagegif( $thumbnail, $thumbpath ) ) {
$error = __( "Thumbnail path invalid" );
}
}
elseif ( $type[2] == 2 ) {
if (!imagejpeg( $thumbnail, $thumbpath ) ) {
$error = __( "Thumbnail path invalid" );
}
}
elseif ( $type[2] == 3 ) {
if (!imagepng( $thumbnail, $thumbpath ) ) {
$error = __( "Thumbnail path invalid" );
}
}
}
} else {
$error = __( 'File not found' );
}
if (!empty ( $error ) ) {
return $error;
} else {
return apply_filters( 'wp_create_thumbnail', $thumbpath );
}
}
function wp_crop_image( $src_file, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs = false, $dst_file = false ) {
if ( ctype_digit( $src_file ) ) // Handle int as attachment ID
$src_file = get_attached_file( $src_file );
$src = wp_load_image( $src_file );
if ( !is_resource( $src ))
return $src;
$dst = imagecreatetruecolor( $dst_w, $dst_h );
if ( $src_abs ) {
$src_w -= $src_x;
$src_h -= $src_y;
}
if (function_exists('imageantialias'))
imageantialias( $dst, true );
imagecopyresampled( $dst, $src, 0, 0, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h );
if ( !$dst_file )
$dst_file = str_replace( basename( $src_file ), 'cropped-'.basename( $src_file ), $src_file );
$dst_file = preg_replace( '/\\.[^\\.]+$/', '.jpg', $dst_file );
if ( imagejpeg( $dst, $dst_file ) )
return $dst_file;
else
return false;
}
function wp_generate_attachment_metadata( $attachment_id, $file ) {
$attachment = get_post( $attachment_id );
$metadata = array();
if ( preg_match('!^image/!', get_post_mime_type( $attachment )) ) {
$imagesize = getimagesize($file);
$metadata['width'] = $imagesize['0'];
$metadata['height'] = $imagesize['1'];
list($uwidth, $uheight) = get_udims($metadata['width'], $metadata['height']);
$metadata['hwstring_small'] = "height='$uheight' width='$uwidth'";
$metadata['file'] = $file;
$max = apply_filters( 'wp_thumbnail_creation_size_limit', 3 * 1024 * 1024, $attachment_id, $file );
if ( $max < 0 || $metadata['width'] * $metadata['height'] < $max ) {
$max_side = apply_filters( 'wp_thumbnail_max_side_length', 128, $attachment_id, $file );
$thumb = wp_create_thumbnail( $file, $max_side );
if ( @file_exists($thumb) )
$metadata['thumb'] = basename($thumb);
}
}
return apply_filters( 'wp_generate_attachment_metadata', $metadata );
}
function wp_load_image( $file ) {
if ( ctype_digit( $file ) )
$file = get_attached_file( $file );
if ( !file_exists( $file ) )
return sprintf(__("File '%s' doesn't exist?"), $file);
if ( ! function_exists('imagecreatefromstring') )
return __('The GD image library is not installed.');
$contents = file_get_contents( $file );
$image = imagecreatefromstring( $contents );
if ( !is_resource( $image ) )
return sprintf(__("File '%s' is not an image."), $file);
return $image;
}
function wp_shrink_dimensions( $width, $height, $wmax = 128, $hmax = 96 ) {
if ( $height <= $hmax && $width <= $wmax )
return array( $width, $height);
elseif ( $width / $height > $wmax / $hmax )
return array( $wmax, (int) ($height / $width * $wmax ));
else
return array( (int) ($width / $height * $hmax ), $hmax );
}
?>

View File

@@ -0,0 +1,45 @@
<?php
function get_importers() {
global $wp_importers;
uasort($wp_importers, create_function('$a, $b', 'return strcmp($a[0], $b[0]);'));
return $wp_importers;
}
function register_importer( $id, $name, $description, $callback ) {
global $wp_importers;
if ( is_wp_error( $callback ) )
return $callback;
$wp_importers[$id] = array ( $name, $description, $callback );
}
function wp_import_cleanup( $id ) {
wp_delete_attachment( $id );
}
function wp_import_handle_upload() {
$overrides = array( 'test_form' => false, 'test_type' => false );
$file = wp_handle_upload( $_FILES['import'], $overrides );
if ( isset( $file['error'] ) )
return $file;
$url = $file['url'];
$type = $file['type'];
$file = addslashes( $file['file'] );
$filename = basename( $file );
// Construct the object array
$object = array( 'post_title' => $filename,
'post_content' => $url,
'post_mime_type' => $type,
'guid' => $url
);
// Save the data
$id = wp_insert_attachment( $object, $file );
return array( 'file' => $file, 'id' => $id );
}
?>

177
wp-admin/includes/misc.php Normal file
View File

@@ -0,0 +1,177 @@
<?php
function got_mod_rewrite() {
global $is_apache;
// take 3 educated guesses as to whether or not mod_rewrite is available
if ( !$is_apache )
return false;
if ( function_exists( 'apache_get_modules' ) ) {
if ( !in_array( 'mod_rewrite', apache_get_modules() ) )
return false;
}
return true;
}
// Returns an array of strings from a file (.htaccess ) from between BEGIN
// and END markers.
function extract_from_markers( $filename, $marker ) {
$result = array ();
if (!file_exists( $filename ) ) {
return $result;
}
if ( $markerdata = explode( "\n", implode( '', file( $filename ) ) ));
{
$state = false;
foreach ( $markerdata as $markerline ) {
if (strpos($markerline, '# END ' . $marker) !== false)
$state = false;
if ( $state )
$result[] = $markerline;
if (strpos($markerline, '# BEGIN ' . $marker) !== false)
$state = true;
}
}
return $result;
}
// Inserts an array of strings into a file (.htaccess ), placing it between
// BEGIN and END markers. Replaces existing marked info. Retains surrounding
// data. Creates file if none exists.
// Returns true on write success, false on failure.
function insert_with_markers( $filename, $marker, $insertion ) {
if (!file_exists( $filename ) || is_writeable( $filename ) ) {
if (!file_exists( $filename ) ) {
$markerdata = '';
} else {
$markerdata = explode( "\n", implode( '', file( $filename ) ) );
}
$f = fopen( $filename, 'w' );
$foundit = false;
if ( $markerdata ) {
$state = true;
foreach ( $markerdata as $n => $markerline ) {
if (strpos($markerline, '# BEGIN ' . $marker) !== false)
$state = false;
if ( $state ) {
if ( $n + 1 < count( $markerdata ) )
fwrite( $f, "{$markerline}\n" );
else
fwrite( $f, "{$markerline}" );
}
if (strpos($markerline, '# END ' . $marker) !== false) {
fwrite( $f, "# BEGIN {$marker}\n" );
if ( is_array( $insertion ))
foreach ( $insertion as $insertline )
fwrite( $f, "{$insertline}\n" );
fwrite( $f, "# END {$marker}\n" );
$state = true;
$foundit = true;
}
}
}
if (!$foundit) {
fwrite( $f, "# BEGIN {$marker}\n" );
foreach ( $insertion as $insertline )
fwrite( $f, "{$insertline}\n" );
fwrite( $f, "# END {$marker}\n" );
}
fclose( $f );
return true;
} else {
return false;
}
}
/**
* Updates the htaccess file with the current rules if it is writable.
*
* Always writes to the file if it exists and is writable to ensure that we blank out old rules.
*/
function save_mod_rewrite_rules() {
global $wp_rewrite;
$home_path = get_home_path();
$htaccess_file = $home_path.'.htaccess';
// If the file doesn't already exists check for write access to the directory and whether of not we have some rules.
// else check for write access to the file.
if ((!file_exists($htaccess_file) && is_writable($home_path) && $wp_rewrite->using_mod_rewrite_permalinks()) || is_writable($htaccess_file)) {
if ( got_mod_rewrite() ) {
$rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() );
return insert_with_markers( $htaccess_file, 'WordPress', $rules );
}
}
return false;
}
function update_recently_edited( $file ) {
$oldfiles = (array ) get_option( 'recently_edited' );
if ( $oldfiles ) {
$oldfiles = array_reverse( $oldfiles );
$oldfiles[] = $file;
$oldfiles = array_reverse( $oldfiles );
$oldfiles = array_unique( $oldfiles );
if ( 5 < count( $oldfiles ))
array_pop( $oldfiles );
} else {
$oldfiles[] = $file;
}
update_option( 'recently_edited', $oldfiles );
}
// If siteurl or home changed, reset cookies and flush rewrite rules.
function update_home_siteurl( $old_value, $value ) {
global $wp_rewrite, $user_login, $user_pass_md5;
if ( defined( "WP_INSTALLING" ) )
return;
// If home changed, write rewrite rules to new location.
$wp_rewrite->flush_rules();
// Clear cookies for old paths.
wp_clearcookie();
// Set cookies for new paths.
wp_setcookie( $user_login, $user_pass_md5, true, get_option( 'home' ), get_option( 'siteurl' ));
}
add_action( 'update_option_home', 'update_home_siteurl', 10, 2 );
add_action( 'update_option_siteurl', 'update_home_siteurl', 10, 2 );
function url_shorten( $url ) {
$short_url = str_replace( 'http://', '', stripslashes( $url ));
$short_url = str_replace( 'www.', '', $short_url );
if ('/' == substr( $short_url, -1 ))
$short_url = substr( $short_url, 0, -1 );
if ( strlen( $short_url ) > 35 )
$short_url = substr( $short_url, 0, 32 ).'...';
return $short_url;
}
function wp_reset_vars( $vars ) {
for ( $i=0; $i<count( $vars ); $i += 1 ) {
$var = $vars[$i];
global $$var;
if (!isset( $$var ) ) {
if ( empty( $_POST["$var"] ) ) {
if ( empty( $_GET["$var"] ) )
$$var = '';
else
$$var = $_GET["$var"];
} else {
$$var = $_POST["$var"];
}
}
}
}
?>

View File

@@ -0,0 +1,382 @@
<?php
function get_plugin_data( $plugin_file ) {
$plugin_data = implode( '', file( $plugin_file ));
preg_match( '|Plugin Name:(.*)$|mi', $plugin_data, $plugin_name );
preg_match( '|Plugin URI:(.*)$|mi', $plugin_data, $plugin_uri );
preg_match( '|Description:(.*)$|mi', $plugin_data, $description );
preg_match( '|Author:(.*)$|mi', $plugin_data, $author_name );
preg_match( '|Author URI:(.*)$|mi', $plugin_data, $author_uri );
if ( preg_match( "|Version:(.*)|i", $plugin_data, $version ))
$version = trim( $version[1] );
else
$version = '';
$description = wptexturize( trim( $description[1] ));
$name = $plugin_name[1];
$name = trim( $name );
$plugin = $name;
if ('' != trim($plugin_uri[1]) && '' != $name ) {
$plugin = '<a href="' . trim( $plugin_uri[1] ) . '" title="'.__( 'Visit plugin homepage' ).'">'.$plugin.'</a>';
}
if ('' == $author_uri[1] ) {
$author = trim( $author_name[1] );
} else {
$author = '<a href="' . trim( $author_uri[1] ) . '" title="'.__( 'Visit author homepage' ).'">' . trim( $author_name[1] ) . '</a>';
}
return array('Name' => $name, 'Title' => $plugin, 'Description' => $description, 'Author' => $author, 'Version' => $version);
}
function get_plugins() {
global $wp_plugins;
if ( isset( $wp_plugins ) ) {
return $wp_plugins;
}
$wp_plugins = array ();
$plugin_root = ABSPATH . PLUGINDIR;
// Files in wp-content/plugins directory
$plugins_dir = @ opendir( $plugin_root);
if ( $plugins_dir ) {
while (($file = readdir( $plugins_dir ) ) !== false ) {
if ( substr($file, 0, 1) == '.' )
continue;
if ( is_dir( $plugin_root.'/'.$file ) ) {
$plugins_subdir = @ opendir( $plugin_root.'/'.$file );
if ( $plugins_subdir ) {
while (($subfile = readdir( $plugins_subdir ) ) !== false ) {
if ( substr($subfile, 0, 1) == '.' )
continue;
if ( substr($subfile, -4) == '.php' )
$plugin_files[] = "$file/$subfile";
}
}
} else {
if ( substr($file, -4) == '.php' )
$plugin_files[] = $file;
}
}
}
@closedir( $plugins_dir );
@closedir( $plugins_subdir );
if ( !$plugins_dir || !$plugin_files )
return $wp_plugins;
foreach ( $plugin_files as $plugin_file ) {
if ( !is_readable( "$plugin_root/$plugin_file" ) )
continue;
$plugin_data = get_plugin_data( "$plugin_root/$plugin_file" );
if ( empty ( $plugin_data['Name'] ) )
continue;
$wp_plugins[plugin_basename( $plugin_file )] = $plugin_data;
}
uasort( $wp_plugins, create_function( '$a, $b', 'return strnatcasecmp( $a["Name"], $b["Name"] );' ));
return $wp_plugins;
}
//
// Menu
//
function add_menu_page( $page_title, $menu_title, $access_level, $file, $function = '' ) {
global $menu, $admin_page_hooks;
$file = plugin_basename( $file );
$menu[] = array ( $menu_title, $access_level, $file, $page_title );
$admin_page_hooks[$file] = sanitize_title( $menu_title );
$hookname = get_plugin_page_hookname( $file, '' );
if (!empty ( $function ) && !empty ( $hookname ))
add_action( $hookname, $function );
return $hookname;
}
function add_submenu_page( $parent, $page_title, $menu_title, $access_level, $file, $function = '' ) {
global $submenu;
global $menu;
global $_wp_real_parent_file;
global $_wp_submenu_nopriv;
global $_wp_menu_nopriv;
$file = plugin_basename( $file );
$parent = plugin_basename( $parent);
if ( isset( $_wp_real_parent_file[$parent] ) )
$parent = $_wp_real_parent_file[$parent];
if ( !current_user_can( $access_level ) ) {
$_wp_submenu_nopriv[$parent][$file] = true;
return false;
}
// If the parent doesn't already have a submenu, add a link to the parent
// as the first item in the submenu. If the submenu file is the same as the
// parent file someone is trying to link back to the parent manually. In
// this case, don't automatically add a link back to avoid duplication.
if (!isset( $submenu[$parent] ) && $file != $parent ) {
foreach ( $menu as $parent_menu ) {
if ( $parent_menu[2] == $parent && current_user_can( $parent_menu[1] ) )
$submenu[$parent][] = $parent_menu;
}
}
$submenu[$parent][] = array ( $menu_title, $access_level, $file, $page_title );
$hookname = get_plugin_page_hookname( $file, $parent);
if (!empty ( $function ) && !empty ( $hookname ))
add_action( $hookname, $function );
return $hookname;
}
function add_management_page( $page_title, $menu_title, $access_level, $file, $function = '' ) {
return add_submenu_page( 'edit.php', $page_title, $menu_title, $access_level, $file, $function );
}
function add_options_page( $page_title, $menu_title, $access_level, $file, $function = '' ) {
return add_submenu_page( 'options-general.php', $page_title, $menu_title, $access_level, $file, $function );
}
function add_theme_page( $page_title, $menu_title, $access_level, $file, $function = '' ) {
return add_submenu_page( 'themes.php', $page_title, $menu_title, $access_level, $file, $function );
}
function add_users_page( $page_title, $menu_title, $access_level, $file, $function = '' ) {
if ( current_user_can('edit_users') )
$parent = 'users.php';
else
$parent = 'profile.php';
return add_submenu_page( $parent, $page_title, $menu_title, $access_level, $file, $function );
}
//
// Pluggable Menu Support -- Private
//
function get_admin_page_parent() {
global $parent_file;
global $menu;
global $submenu;
global $pagenow;
global $plugin_page;
global $_wp_real_parent_file;
global $_wp_menu_nopriv;
global $_wp_submenu_nopriv;
if ( !empty ( $parent_file ) ) {
if ( isset( $_wp_real_parent_file[$parent_file] ) )
$parent_file = $_wp_real_parent_file[$parent_file];
return $parent_file;
}
if ( $pagenow == 'admin.php' && isset( $plugin_page ) ) {
foreach ( $menu as $parent_menu ) {
if ( $parent_menu[2] == $plugin_page ) {
$parent_file = $plugin_page;
if ( isset( $_wp_real_parent_file[$parent_file] ) )
$parent_file = $_wp_real_parent_file[$parent_file];
return $parent_file;
}
}
if ( isset( $_wp_menu_nopriv[$plugin_page] ) ) {
$parent_file = $plugin_page;
if ( isset( $_wp_real_parent_file[$parent_file] ) )
$parent_file = $_wp_real_parent_file[$parent_file];
return $parent_file;
}
}
if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) ) {
$parent_file = $pagenow;
if ( isset( $_wp_real_parent_file[$parent_file] ) )
$parent_file = $_wp_real_parent_file[$parent_file];
return $parent_file;
}
foreach (array_keys( $submenu ) as $parent) {
foreach ( $submenu[$parent] as $submenu_array ) {
if ( isset( $_wp_real_parent_file[$parent] ) )
$parent = $_wp_real_parent_file[$parent];
if ( $submenu_array[2] == $pagenow ) {
$parent_file = $parent;
return $parent;
} else
if ( isset( $plugin_page ) && ($plugin_page == $submenu_array[2] ) ) {
$parent_file = $parent;
return $parent;
}
}
}
$parent_file = '';
return '';
}
function get_admin_page_title() {
global $title;
global $menu;
global $submenu;
global $pagenow;
global $plugin_page;
if ( isset( $title ) && !empty ( $title ) ) {
return $title;
}
$hook = get_plugin_page_hook( $plugin_page, $pagenow );
$parent = $parent1 = get_admin_page_parent();
if ( empty ( $parent) ) {
foreach ( $menu as $menu_array ) {
if ( isset( $menu_array[3] ) ) {
if ( $menu_array[2] == $pagenow ) {
$title = $menu_array[3];
return $menu_array[3];
} else
if ( isset( $plugin_page ) && ($plugin_page == $menu_array[2] ) && ($hook == $menu_array[3] ) ) {
$title = $menu_array[3];
return $menu_array[3];
}
} else {
$title = $menu_array[0];
return $title;
}
}
} else {
foreach (array_keys( $submenu ) as $parent) {
foreach ( $submenu[$parent] as $submenu_array ) {
if ( isset( $plugin_page ) &&
($plugin_page == $submenu_array[2] ) &&
(($parent == $pagenow ) || ($parent == $plugin_page ) || ($plugin_page == $hook ) || (($pagenow == 'admin.php' ) && ($parent1 != $submenu_array[2] ) ) )
) {
$title = $submenu_array[3];
return $submenu_array[3];
}
if ( $submenu_array[2] != $pagenow || isset( $_GET['page'] ) ) // not the current page
continue;
if ( isset( $submenu_array[3] ) ) {
$title = $submenu_array[3];
return $submenu_array[3];
} else {
$title = $submenu_array[0];
return $title;
}
}
}
}
return $title;
}
function get_plugin_page_hook( $plugin_page, $parent_page ) {
global $wp_filter;
$hook = get_plugin_page_hookname( $plugin_page, $parent_page );
if ( isset( $wp_filter[$hook] ))
return $hook;
else
return null;
}
function get_plugin_page_hookname( $plugin_page, $parent_page ) {
global $admin_page_hooks;
$parent = get_admin_page_parent();
if ( empty ( $parent_page ) || 'admin.php' == $parent_page ) {
if ( isset( $admin_page_hooks[$plugin_page] ))
$page_type = 'toplevel';
else
if ( isset( $admin_page_hooks[$parent] ))
$page_type = $admin_page_hooks[$parent];
} else
if ( isset( $admin_page_hooks[$parent_page] ) ) {
$page_type = $admin_page_hooks[$parent_page];
} else {
$page_type = 'admin';
}
$plugin_name = preg_replace( '!\.php!', '', $plugin_page );
return $page_type.'_page_'.$plugin_name;
}
function user_can_access_admin_page() {
global $pagenow;
global $menu;
global $submenu;
global $_wp_menu_nopriv;
global $_wp_submenu_nopriv;
global $plugin_page;
$parent = get_admin_page_parent();
if ( isset( $_wp_submenu_nopriv[$parent][$pagenow] ) )
return false;
if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$parent][$plugin_page] ) )
return false;
if ( empty( $parent) ) {
if ( isset( $_wp_menu_nopriv[$pagenow] ) )
return false;
if ( isset( $_wp_submenu_nopriv[$pagenow][$pagenow] ) )
return false;
if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) )
return false;
foreach (array_keys( $_wp_submenu_nopriv ) as $key ) {
if ( isset( $_wp_submenu_nopriv[$key][$pagenow] ) )
return false;
if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$key][$plugin_page] ) )
return false;
}
return true;
}
if ( isset( $submenu[$parent] ) ) {
foreach ( $submenu[$parent] as $submenu_array ) {
if ( isset( $plugin_page ) && ( $submenu_array[2] == $plugin_page ) ) {
if ( current_user_can( $submenu_array[1] ))
return true;
else
return false;
} else if ( $submenu_array[2] == $pagenow ) {
if ( current_user_can( $submenu_array[1] ))
return true;
else
return false;
}
}
}
foreach ( $menu as $menu_array ) {
if ( $menu_array[2] == $parent) {
if ( current_user_can( $menu_array[1] ))
return true;
else
return false;
}
}
return true;
}
?>

471
wp-admin/includes/post.php Normal file
View File

@@ -0,0 +1,471 @@
<?php
// Update an existing post with values provided in $_POST.
function edit_post() {
global $user_ID;
$post_ID = (int) $_POST['post_ID'];
if ( 'page' == $_POST['post_type'] ) {
if ( !current_user_can( 'edit_page', $post_ID ) )
wp_die( __('You are not allowed to edit this page.' ));
} else {
if ( !current_user_can( 'edit_post', $post_ID ) )
wp_die( __('You are not allowed to edit this post.' ));
}
// Autosave shouldn't save too soon after a real save
if ( 'autosave' == $_POST['action'] ) {
$post =& get_post( $post_ID );
$now = time();
$then = strtotime($post->post_date_gmt . ' +0000');
// Keep autosave_interval in sync with autosave-js.php.
$delta = apply_filters( 'autosave_interval', 120 ) / 2;
if ( ($now - $then) < $delta )
return $post_ID;
}
// Rename.
$_POST['ID'] = (int) $_POST['post_ID'];
$_POST['post_content'] = $_POST['content'];
$_POST['post_excerpt'] = $_POST['excerpt'];
$_POST['post_parent'] = $_POST['parent_id'];
$_POST['to_ping'] = $_POST['trackback_url'];
if (!empty ( $_POST['post_author_override'] ) ) {
$_POST['post_author'] = (int) $_POST['post_author_override'];
} else
if (!empty ( $_POST['post_author'] ) ) {
$_POST['post_author'] = (int) $_POST['post_author'];
} else {
$_POST['post_author'] = (int) $_POST['user_ID'];
}
if ( $_POST['post_author'] != $_POST['user_ID'] ) {
if ( 'page' == $_POST['post_type'] ) {
if ( !current_user_can( 'edit_others_pages' ) )
wp_die( __('You are not allowed to edit pages as this user.' ));
} else {
if ( !current_user_can( 'edit_others_posts' ) )
wp_die( __('You are not allowed to edit posts as this user.' ));
}
}
// What to do based on which button they pressed
if ('' != $_POST['saveasdraft'] )
$_POST['post_status'] = 'draft';
if ('' != $_POST['saveasprivate'] )
$_POST['post_status'] = 'private';
if ('' != $_POST['publish'] )
$_POST['post_status'] = 'publish';
if ('' != $_POST['advanced'] )
$_POST['post_status'] = 'draft';
if ( 'page' == $_POST['post_type'] ) {
if ('publish' == $_POST['post_status'] && !current_user_can( 'edit_published_pages' ))
$_POST['post_status'] = 'pending';
} else {
if ('publish' == $_POST['post_status'] && !current_user_can( 'edit_published_posts' ))
$_POST['post_status'] = 'pending';
}
if (!isset( $_POST['comment_status'] ))
$_POST['comment_status'] = 'closed';
if (!isset( $_POST['ping_status'] ))
$_POST['ping_status'] = 'closed';
if (!empty ( $_POST['edit_date'] ) ) {
$aa = $_POST['aa'];
$mm = $_POST['mm'];
$jj = $_POST['jj'];
$hh = $_POST['hh'];
$mn = $_POST['mn'];
$ss = $_POST['ss'];
$jj = ($jj > 31 ) ? 31 : $jj;
$hh = ($hh > 23 ) ? $hh -24 : $hh;
$mn = ($mn > 59 ) ? $mn -60 : $mn;
$ss = ($ss > 59 ) ? $ss -60 : $ss;
$_POST['post_date'] = "$aa-$mm-$jj $hh:$mn:$ss";
$_POST['post_date_gmt'] = get_gmt_from_date( "$aa-$mm-$jj $hh:$mn:$ss" );
}
// Meta Stuff
if ( $_POST['meta'] ) {
foreach ( $_POST['meta'] as $key => $value )
update_meta( $key, $value['key'], $value['value'] );
}
if ( $_POST['deletemeta'] ) {
foreach ( $_POST['deletemeta'] as $key => $value )
delete_meta( $key );
}
add_meta( $post_ID );
wp_update_post( $_POST );
// Reunite any orphaned attachments with their parent
if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) )
$draft_ids = array();
if ( $draft_temp_id = (int) array_search( $post_ID, $draft_ids ) )
_relocate_children( $draft_temp_id, $post_ID );
// Now that we have an ID we can fix any attachment anchor hrefs
_fix_attachment_links( $post_ID );
return $post_ID;
}
// Default post information to use when populating the "Write Post" form.
function get_default_post_to_edit() {
if ( !empty( $_REQUEST['post_title'] ) )
$post_title = wp_specialchars( stripslashes( $_REQUEST['post_title'] ));
else if ( !empty( $_REQUEST['popuptitle'] ) ) {
$post_title = wp_specialchars( stripslashes( $_REQUEST['popuptitle'] ));
$post_title = funky_javascript_fix( $post_title );
} else {
$post_title = '';
}
if ( !empty( $_REQUEST['content'] ) )
$post_content = wp_specialchars( stripslashes( $_REQUEST['content'] ));
else if ( !empty( $post_title ) ) {
$text = wp_specialchars( stripslashes( urldecode( $_REQUEST['text'] ) ) );
$text = funky_javascript_fix( $text);
$popupurl = clean_url($_REQUEST['popupurl']);
$post_content = '<a href="'.$popupurl.'">'.$post_title.'</a>'."\n$text";
}
if ( !empty( $_REQUEST['excerpt'] ) )
$post_excerpt = wp_specialchars( stripslashes( $_REQUEST['excerpt'] ));
else
$post_excerpt = '';
$post->post_status = 'draft';
$post->comment_status = get_option( 'default_comment_status' );
$post->ping_status = get_option( 'default_ping_status' );
$post->post_pingback = get_option( 'default_pingback_flag' );
$post->post_category = get_option( 'default_category' );
$post->post_content = apply_filters( 'default_content', $post_content);
$post->post_title = apply_filters( 'default_title', $post_title );
$post->post_excerpt = apply_filters( 'default_excerpt', $post_excerpt);
$post->page_template = 'default';
$post->post_parent = 0;
$post->menu_order = 0;
return $post;
}
// Get an existing post and format it for editing.
function get_post_to_edit( $id ) {
$post = get_post( $id, OBJECT, 'edit' );
if ( $post->post_type == 'page' )
$post->page_template = get_post_meta( $id, '_wp_page_template', true );
return $post;
}
function post_exists($title, $content = '', $post_date = '') {
global $wpdb;
if (!empty ($post_date))
$post_date = "AND post_date = '$post_date'";
if (!empty ($title))
return $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = '$title' $post_date");
else
if (!empty ($content))
return $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_content = '$content' $post_date");
return 0;
}
// Creates a new post from the "Write Post" form using $_POST information.
function wp_write_post() {
global $user_ID;
if ( 'page' == $_POST['post_type'] ) {
if ( !current_user_can( 'edit_pages' ) )
return new WP_Error( 'edit_pages', __( 'You are not allowed to create pages on this blog.' ) );
} else {
if ( !current_user_can( 'edit_posts' ) )
return new WP_Error( 'edit_posts', __( 'You are not allowed to create posts or drafts on this blog.' ) );
}
// Check for autosave collisions
$temp_id = false;
if ( isset($_POST['temp_ID']) ) {
$temp_id = (int) $_POST['temp_ID'];
if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) )
$draft_ids = array();
foreach ( $draft_ids as $temp => $real )
if ( time() + $temp > 86400 ) // 1 day: $temp is equal to -1 * time( then )
unset($draft_ids[$temp]);
if ( isset($draft_ids[$temp_id]) ) { // Edit, don't write
$_POST['post_ID'] = $draft_ids[$temp_id];
unset($_POST['temp_ID']);
update_user_option( $user_ID, 'autosave_draft_ids', $draft_ids );
return edit_post();
}
}
// Rename.
$_POST['post_content'] = $_POST['content'];
$_POST['post_excerpt'] = $_POST['excerpt'];
$_POST['post_parent'] = $_POST['parent_id'];
$_POST['to_ping'] = $_POST['trackback_url'];
if (!empty ( $_POST['post_author_override'] ) ) {
$_POST['post_author'] = (int) $_POST['post_author_override'];
} else {
if (!empty ( $_POST['post_author'] ) ) {
$_POST['post_author'] = (int) $_POST['post_author'];
} else {
$_POST['post_author'] = (int) $_POST['user_ID'];
}
}
if ( $_POST['post_author'] != $_POST['user_ID'] ) {
if ( 'page' == $_POST['post_type'] ) {
if ( !current_user_can( 'edit_others_pages' ) )
return new WP_Error( 'edit_others_pages', __( 'You are not allowed to create pages as this user.' ) );
} else {
if ( !current_user_can( 'edit_others_posts' ) )
return new WP_Error( 'edit_others_posts', __( 'You are not allowed to post as this user.' ) );
}
}
// What to do based on which button they pressed
if ('' != $_POST['saveasdraft'] )
$_POST['post_status'] = 'draft';
if ('' != $_POST['saveasprivate'] )
$_POST['post_status'] = 'private';
if ('' != $_POST['publish'] )
$_POST['post_status'] = 'publish';
if ('' != $_POST['advanced'] )
$_POST['post_status'] = 'draft';
if ( 'page' == $_POST['post_type'] ) {
if ('publish' == $_POST['post_status'] && !current_user_can( 'publish_pages' ) )
$_POST['post_status'] = 'pending';
} else {
if ('publish' == $_POST['post_status'] && !current_user_can( 'publish_posts' ) )
$_POST['post_status'] = 'pending';
}
if (!isset( $_POST['comment_status'] ))
$_POST['comment_status'] = 'closed';
if (!isset( $_POST['ping_status'] ))
$_POST['ping_status'] = 'closed';
if (!empty ( $_POST['edit_date'] ) ) {
$aa = $_POST['aa'];
$mm = $_POST['mm'];
$jj = $_POST['jj'];
$hh = $_POST['hh'];
$mn = $_POST['mn'];
$ss = $_POST['ss'];
$jj = ($jj > 31 ) ? 31 : $jj;
$hh = ($hh > 23 ) ? $hh -24 : $hh;
$mn = ($mn > 59 ) ? $mn -60 : $mn;
$ss = ($ss > 59 ) ? $ss -60 : $ss;
$_POST['post_date'] = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $aa, $mm, $jj, $hh, $mn, $ss );
$_POST['post_date_gmt'] = get_gmt_from_date( $_POST['post_date'] );
}
// Create the post.
$post_ID = wp_insert_post( $_POST );
if ( is_wp_error( $post_ID ) )
return $post_ID;
if ( empty($post_ID) )
return 0;
add_meta( $post_ID );
// Reunite any orphaned attachments with their parent
if ( !$draft_ids = get_user_option( 'autosave_draft_ids' ) )
$draft_ids = array();
if ( $draft_temp_id = (int) array_search( $post_ID, $draft_ids ) )
_relocate_children( $draft_temp_id, $post_ID );
if ( $temp_id && $temp_id != $draft_temp_id )
_relocate_children( $temp_id, $post_ID );
// Update autosave collision detection
if ( $temp_id ) {
$draft_ids[$temp_id] = $post_ID;
update_user_option( $user_ID, 'autosave_draft_ids', $draft_ids );
}
// Now that we have an ID we can fix any attachment anchor hrefs
_fix_attachment_links( $post_ID );
return $post_ID;
}
function write_post() {
$result = wp_write_post();
if( is_wp_error( $result ) )
wp_die( $result->get_error_message() );
else
return $result;
}
//
// Post Meta
//
function add_meta( $post_ID ) {
global $wpdb;
$post_ID = (int) $post_ID;
$protected = array( '_wp_attached_file', '_wp_attachment_metadata', '_wp_old_slug', '_wp_page_template' );
$metakeyselect = $wpdb->escape( stripslashes( trim( $_POST['metakeyselect'] ) ) );
$metakeyinput = $wpdb->escape( stripslashes( trim( $_POST['metakeyinput'] ) ) );
$metavalue = maybe_serialize( stripslashes( (trim( $_POST['metavalue'] ) ) ));
$metavalue = $wpdb->escape( $metavalue );
if ( ('0' === $metavalue || !empty ( $metavalue ) ) && ((('#NONE#' != $metakeyselect) && !empty ( $metakeyselect) ) || !empty ( $metakeyinput) ) ) {
// We have a key/value pair. If both the select and the
// input for the key have data, the input takes precedence:
if ('#NONE#' != $metakeyselect)
$metakey = $metakeyselect;
if ( $metakeyinput)
$metakey = $metakeyinput; // default
if ( in_array($metakey, $protected) )
return false;
$result = $wpdb->query( "
INSERT INTO $wpdb->postmeta
(post_id,meta_key,meta_value )
VALUES ('$post_ID','$metakey','$metavalue' )
" );
return $wpdb->insert_id;
}
return false;
} // add_meta
function delete_meta( $mid ) {
global $wpdb;
$mid = (int) $mid;
return $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_id = '$mid'" );
}
// Get a list of previously defined keys
function get_meta_keys() {
global $wpdb;
$keys = $wpdb->get_col( "
SELECT meta_key
FROM $wpdb->postmeta
GROUP BY meta_key
ORDER BY meta_key" );
return $keys;
}
function get_post_meta_by_id( $mid ) {
global $wpdb;
$mid = (int) $mid;
$meta = $wpdb->get_row( "SELECT * FROM $wpdb->postmeta WHERE meta_id = '$mid'" );
if ( is_serialized_string( $meta->meta_value ) )
$meta->meta_value = maybe_unserialize( $meta->meta_value );
return $meta;
}
// Some postmeta stuff
function has_meta( $postid ) {
global $wpdb;
return $wpdb->get_results( "
SELECT meta_key, meta_value, meta_id, post_id
FROM $wpdb->postmeta
WHERE post_id = '$postid'
ORDER BY meta_key,meta_id", ARRAY_A );
}
function update_meta( $mid, $mkey, $mvalue ) {
global $wpdb;
$protected = array( '_wp_attached_file', '_wp_attachment_metadata', '_wp_old_slug', '_wp_page_template' );
if ( in_array($mkey, $protected) )
return false;
$mvalue = maybe_serialize( stripslashes( $mvalue ));
$mvalue = $wpdb->escape( $mvalue );
$mid = (int) $mid;
return $wpdb->query( "UPDATE $wpdb->postmeta SET meta_key = '$mkey', meta_value = '$mvalue' WHERE meta_id = '$mid'" );
}
//
// Private
//
// Replace hrefs of attachment anchors with up-to-date permalinks.
function _fix_attachment_links( $post_ID ) {
global $wp_rewrite;
$post = & get_post( $post_ID, ARRAY_A );
$search = "#<a[^>]+rel=('|\")[^'\"]*attachment[^>]*>#ie";
// See if we have any rel="attachment" links
if ( 0 == preg_match_all( $search, $post['post_content'], $anchor_matches, PREG_PATTERN_ORDER ) )
return;
$i = 0;
$search = "#[\s]+rel=(\"|')(.*?)wp-att-(\d+)\\1#i";
foreach ( $anchor_matches[0] as $anchor ) {
if ( 0 == preg_match( $search, $anchor, $id_matches ) )
continue;
$id = (int) $id_matches[3];
// While we have the attachment ID, let's adopt any orphans.
$attachment = & get_post( $id, ARRAY_A );
if ( ! empty( $attachment) && ! is_object( get_post( $attachment['post_parent'] ) ) ) {
$attachment['post_parent'] = $post_ID;
// Escape data pulled from DB.
$attachment = add_magic_quotes( $attachment);
wp_update_post( $attachment);
}
$post_search[$i] = $anchor;
$post_replace[$i] = preg_replace( "#href=(\"|')[^'\"]*\\1#e", "stripslashes( 'href=\\1' ).get_attachment_link( $id ).stripslashes( '\\1' )", $anchor );
++$i;
}
$post['post_content'] = str_replace( $post_search, $post_replace, $post['post_content'] );
// Escape data pulled from DB.
$post = add_magic_quotes( $post);
return wp_update_post( $post);
}
// Move child posts to a new parent
function _relocate_children( $old_ID, $new_ID ) {
global $wpdb;
$old_ID = (int) $old_ID;
$new_ID = (int) $new_ID;
return $wpdb->query( "UPDATE $wpdb->posts SET post_parent = $new_ID WHERE post_parent = $old_ID" );
}
?>

View File

@@ -1,16 +1,39 @@
<?php
// Here we keep the DB structure and option values
$wp_queries="CREATE TABLE $wpdb->categories (
cat_ID bigint(20) NOT NULL auto_increment,
cat_name varchar(55) NOT NULL default '',
category_nicename varchar(200) NOT NULL default '',
category_description longtext NOT NULL,
category_parent bigint(20) NOT NULL default '0',
category_count bigint(20) NOT NULL default '0',
PRIMARY KEY (cat_ID),
KEY category_nicename (category_nicename)
);
$charset_collate = '';
if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) {
if ( ! empty($wpdb->charset) )
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
if ( ! empty($wpdb->collate) )
$charset_collate .= " COLLATE $wpdb->collate";
}
$wp_queries="CREATE TABLE $wpdb->terms (
term_id bigint(20) NOT NULL auto_increment,
name varchar(55) NOT NULL default '',
slug varchar(200) NOT NULL default '',
term_group bigint(10) NOT NULL default 0,
PRIMARY KEY (term_id),
UNIQUE KEY slug (slug)
) $charset_collate;
CREATE TABLE $wpdb->term_taxonomy (
term_taxonomy_id bigint(20) NOT NULL auto_increment,
term_id bigint(20) NOT NULL default 0,
taxonomy varchar(32) NOT NULL default '',
description longtext NOT NULL,
parent bigint(20) NOT NULL default 0,
count bigint(20) NOT NULL default 0,
PRIMARY KEY (term_taxonomy_id),
UNIQUE KEY term_id_taxonomy (term_id,taxonomy)
) $charset_collate;
CREATE TABLE $wpdb->term_relationships (
object_id bigint(20) NOT NULL default 0,
term_taxonomy_id bigint(20) NOT NULL default 0,
PRIMARY KEY (object_id,term_taxonomy_id),
KEY term_taxonomy_id (term_taxonomy_id)
) $charset_collate;
CREATE TABLE $wpdb->comments (
comment_ID bigint(20) unsigned NOT NULL auto_increment,
comment_post_ID int(11) NOT NULL default '0',
@@ -30,23 +53,7 @@ CREATE TABLE $wpdb->comments (
PRIMARY KEY (comment_ID),
KEY comment_approved (comment_approved),
KEY comment_post_ID (comment_post_ID)
);
CREATE TABLE $wpdb->linkcategories (
cat_id bigint(20) NOT NULL auto_increment,
cat_name tinytext NOT NULL,
auto_toggle enum('Y','N') NOT NULL default 'N',
show_images enum('Y','N') NOT NULL default 'Y',
show_description enum('Y','N') NOT NULL default 'N',
show_rating enum('Y','N') NOT NULL default 'Y',
show_updated enum('Y','N') NOT NULL default 'Y',
sort_order varchar(64) NOT NULL default 'rand',
sort_desc enum('Y','N') NOT NULL default 'N',
text_before_link varchar(128) NOT NULL default '<li>',
text_after_link varchar(128) NOT NULL default '<br />',
text_after_all varchar(128) NOT NULL default '</li>',
list_limit int(11) NOT NULL default '-1',
PRIMARY KEY (cat_id)
);
) $charset_collate;
CREATE TABLE $wpdb->links (
link_id bigint(20) NOT NULL auto_increment,
link_url varchar(255) NOT NULL default '',
@@ -65,29 +72,16 @@ CREATE TABLE $wpdb->links (
PRIMARY KEY (link_id),
KEY link_category (link_category),
KEY link_visible (link_visible)
);
) $charset_collate;
CREATE TABLE $wpdb->options (
option_id bigint(20) NOT NULL auto_increment,
blog_id int(11) NOT NULL default '0',
option_name varchar(64) NOT NULL default '',
option_can_override enum('Y','N') NOT NULL default 'Y',
option_type int(11) NOT NULL default '1',
option_value longtext NOT NULL,
option_width int(11) NOT NULL default '20',
option_height int(11) NOT NULL default '8',
option_description tinytext NOT NULL,
option_admin_level int(11) NOT NULL default '1',
autoload enum('yes','no') NOT NULL default 'yes',
PRIMARY KEY (option_id,blog_id,option_name),
KEY option_name (option_name)
);
CREATE TABLE $wpdb->post2cat (
rel_id bigint(20) NOT NULL auto_increment,
post_id bigint(20) NOT NULL default '0',
category_id bigint(20) NOT NULL default '0',
PRIMARY KEY (rel_id),
KEY post_id (post_id,category_id)
);
) $charset_collate;
CREATE TABLE $wpdb->postmeta (
meta_id bigint(20) NOT NULL auto_increment,
post_id bigint(20) NOT NULL default '0',
@@ -96,7 +90,7 @@ CREATE TABLE $wpdb->postmeta (
PRIMARY KEY (meta_id),
KEY post_id (post_id),
KEY meta_key (meta_key)
);
) $charset_collate;
CREATE TABLE $wpdb->posts (
ID bigint(20) unsigned NOT NULL auto_increment,
post_author bigint(20) NOT NULL default '0',
@@ -106,7 +100,7 @@ CREATE TABLE $wpdb->posts (
post_title text NOT NULL,
post_category int(4) NOT NULL default '0',
post_excerpt text NOT NULL,
post_status enum('publish','draft','private','static','object','attachment') NOT NULL default 'publish',
post_status enum('publish','draft','private','static','object','attachment','inherit','future', 'pending') NOT NULL default 'publish',
comment_status enum('open','closed','registered_only') NOT NULL default 'open',
ping_status enum('open','closed') NOT NULL default 'open',
post_password varchar(20) NOT NULL default '',
@@ -119,12 +113,13 @@ CREATE TABLE $wpdb->posts (
post_parent bigint(20) NOT NULL default '0',
guid varchar(255) NOT NULL default '',
menu_order int(11) NOT NULL default '0',
post_type varchar(100) NOT NULL default '',
post_type varchar(20) NOT NULL default 'post',
post_mime_type varchar(100) NOT NULL default '',
comment_count bigint(20) NOT NULL default '0',
PRIMARY KEY (ID),
KEY post_name (post_name)
);
KEY post_name (post_name),
KEY type_status_date (post_type,post_status,post_date,ID)
) $charset_collate;
CREATE TABLE $wpdb->users (
ID bigint(20) unsigned NOT NULL auto_increment,
user_login varchar(60) NOT NULL default '',
@@ -137,8 +132,9 @@ CREATE TABLE $wpdb->users (
user_status int(11) NOT NULL default '0',
display_name varchar(250) NOT NULL default '',
PRIMARY KEY (ID),
KEY user_login_key (user_login)
);
KEY user_login_key (user_login),
KEY user_nicename (user_nicename)
) $charset_collate;
CREATE TABLE $wpdb->usermeta (
umeta_id bigint(20) NOT NULL auto_increment,
user_id bigint(20) NOT NULL default '0',
@@ -147,17 +143,16 @@ CREATE TABLE $wpdb->usermeta (
PRIMARY KEY (umeta_id),
KEY user_id (user_id),
KEY meta_key (meta_key)
);";
) $charset_collate;";
function populate_options() {
global $wpdb, $wp_db_version;
$schema = ( isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ) ? 'https://' : 'http://';
$guessurl = preg_replace('|/wp-admin/.*|i', '', $schema . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
add_option('siteurl', $guessurl, __('WordPress web address'));
add_option('blogname', __('My Weblog'), __('Blog title'));
add_option('blogdescription', __('Just another WordPress weblog'), __('Short tagline'));
add_option('new_users_can_blog', 0);
add_option('siteurl', $guessurl);
add_option('blogname', __('My Blog'));
add_option('blogdescription', __('Just another WordPress weblog'));
add_option('users_can_register', 0);
add_option('admin_email', 'you@example.com');
add_option('start_of_week', 1);
@@ -202,7 +197,7 @@ function populate_options() {
add_option('comment_max_links', 2);
add_option('gmt_offset', date('Z') / 3600);
// 1.5
add_option('default_email_category', 1, __('Posts by email go to this category'));
add_option('default_email_category', 1);
add_option('recently_edited');
add_option('use_linksupdate', 0);
add_option('template', 'default');
@@ -211,14 +206,12 @@ function populate_options() {
add_option('page_uris');
add_option('blacklist_keys');
add_option('comment_registration', 0);
add_option('open_proxy_check', 1);
add_option('rss_language', 'en');
add_option('html_type', 'text/html');
// 1.5.1
add_option('use_trackback', 0);
// 2.0
add_option('default_role', 'subscriber');
add_option('rich_editing', 'true');
add_option('db_version', $wp_db_version);
// 2.0.1
if ( ini_get('safe_mode') ) {
@@ -230,8 +223,19 @@ function populate_options() {
add_option('upload_path', 'wp-content/uploads');
}
// 2.0.3
add_option('secret', md5(uniqid(microtime())));
// 2.1
add_option('blog_public', '1');
add_option('default_link_category', 2);
add_option('show_on_front', 'posts');
// 2.2
add_option('tag_base');
// Delete unused options
$unusedoptions = array ('blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'fileupload_allowedusers', 'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference', 'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char', 'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1', 'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5', 'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9', 'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat', 'default_geourl_lon', 'use_default_geourl', 'weblogs_xml_url', 'new_users_can_blog');
$unusedoptions = array ('blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'fileupload_allowedusers', 'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference', 'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char', 'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1', 'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5', 'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9', 'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat', 'default_geourl_lon', 'use_default_geourl', 'weblogs_xml_url', 'new_users_can_blog', '_wpnonce', '_wp_http_referer', 'Update', 'action', 'rich_editing');
foreach ($unusedoptions as $option) :
delete_option($option);
endforeach;
@@ -244,7 +248,9 @@ function populate_options() {
}
function populate_roles() {
populate_roles_160();
populate_roles_160();
populate_roles_210();
populate_roles_230();
}
function populate_roles_160() {
@@ -256,7 +262,7 @@ function populate_roles_160() {
add_role('author', __('Author'));
add_role('contributor', __('Contributor'));
add_role('subscriber', __('Subscriber'));
// Add caps for Administrator role
$role = get_role('administrator');
$role->add_cap('switch_themes');
@@ -289,7 +295,7 @@ function populate_roles_160() {
$role->add_cap('level_2');
$role->add_cap('level_1');
$role->add_cap('level_0');
// Add caps for Editor role
$role = get_role('editor');
$role->add_cap('moderate_comments');
@@ -311,7 +317,7 @@ function populate_roles_160() {
$role->add_cap('level_2');
$role->add_cap('level_1');
$role->add_cap('level_0');
// Add caps for Author role
$role = get_role('author');
$role->add_cap('upload_files');
@@ -322,18 +328,68 @@ function populate_roles_160() {
$role->add_cap('level_2');
$role->add_cap('level_1');
$role->add_cap('level_0');
// Add caps for Contributor role
$role = get_role('contributor');
$role->add_cap('edit_posts');
$role->add_cap('read');
$role->add_cap('level_1');
$role->add_cap('level_0');
// Add caps for Subscriber role
$role = get_role('subscriber');
$role->add_cap('read');
$role->add_cap('level_0');
}
function populate_roles_210() {
$roles = array('administrator', 'editor');
foreach ($roles as $role) {
$role = get_role($role);
if ( empty($role) )
continue;
$role->add_cap('edit_others_pages');
$role->add_cap('edit_published_pages');
$role->add_cap('publish_pages');
$role->add_cap('delete_pages');
$role->add_cap('delete_others_pages');
$role->add_cap('delete_published_pages');
$role->add_cap('delete_posts');
$role->add_cap('delete_others_posts');
$role->add_cap('delete_published_posts');
$role->add_cap('delete_private_posts');
$role->add_cap('edit_private_posts');
$role->add_cap('read_private_posts');
$role->add_cap('delete_private_pages');
$role->add_cap('edit_private_pages');
$role->add_cap('read_private_pages');
}
$role = get_role('administrator');
if ( ! empty($role) ) {
$role->add_cap('delete_users');
$role->add_cap('create_users');
}
$role = get_role('author');
if ( ! empty($role) ) {
$role->add_cap('delete_posts');
$role->add_cap('delete_published_posts');
}
$role = get_role('contributor');
if ( ! empty($role) ) {
$role->add_cap('delete_posts');
}
}
function populate_roles_230() {
$role = get_role( 'administrator' );
if ( !empty( $role ) ) {
$role->add_cap( 'unfiltered_upload' );
}
}
?>

View File

@@ -0,0 +1,148 @@
<?php
//
// Category
//
function category_exists($cat_name) {
$id = is_term($cat_name, 'category');
if ( is_array($id) )
$id = $id['term_id'];
return $id;
}
function get_category_to_edit( $id ) {
$category = get_category( $id, OBJECT, 'edit' );
return $category;
}
function wp_create_category($cat_name) {
if ( $id = category_exists($cat_name) )
return $id;
return wp_insert_category( array('cat_name' => $cat_name) );
}
function wp_create_categories($categories, $post_id = '') {
$cat_ids = array ();
foreach ($categories as $category) {
if ($id = category_exists($category))
$cat_ids[] = $id;
else
if ($id = wp_create_category($category))
$cat_ids[] = $id;
}
if ($post_id)
wp_set_post_categories($post_id, $cat_ids);
return $cat_ids;
}
function wp_delete_category($cat_ID) {
global $wpdb;
$cat_ID = (int) $cat_ID;
$default = get_option('default_category');
// Don't delete the default cat
if ( $cat_ID == $default )
return 0;
return wp_delete_term($cat_ID, 'category', "default=$default");
}
function wp_insert_category($catarr) {
global $wpdb;
extract($catarr, 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;
$name = $cat_name;
$description = $category_description;
$slug = $category_nicename;
$parent = $category_parent;
$parent = (int) $parent;
if ( empty($parent) || !category_exists( $parent ) || ($cat_ID && cat_is_ancestor_of($cat_ID, $parent) ) )
$parent = 0;
$args = compact('name', 'slug', 'parent', 'description');
if ( $update )
$cat_ID = wp_update_term($cat_ID, 'category', $args);
else
$cat_ID = wp_insert_term($cat_name, 'category', $args);
if ( is_wp_error($cat_ID) )
return 0;
return $cat_ID['term_id'];
}
function wp_update_category($catarr) {
global $wpdb;
$cat_ID = (int) $catarr['cat_ID'];
if ( $cat_ID == $catarr['category_parent'] )
return false;
// First, get all of the original fields
$category = get_category($cat_ID, ARRAY_A);
// Escape data pulled from DB.
$category = add_magic_quotes($category);
// Merge old and new fields with new fields overwriting old ones.
$catarr = array_merge($category, $catarr);
return wp_insert_category($catarr);
}
//
// Tags
//
function get_tags_to_edit( $post_id ) {
global $wpdb;
$post_id = (int) $post_id;
if ( !$post_id )
return false;
$tags = wp_get_post_tags($post_id);
if ( !$tags )
return false;
foreach ( $tags as $tag )
$tag_names[] = $tag->name;
$tags_to_edit = join( ', ', $tag_names );
$tags_to_edit = attribute_escape( $tags_to_edit );
$tags_to_edit = apply_filters( 'tags_to_edit', $tags_to_edit );
return $tags_to_edit;
}
function tag_exists($tag_name) {
return is_term($tag_name, 'post_tag');
}
function wp_create_tag($tag_name) {
if ( $id = tag_exists($tag_name) )
return $id;
return wp_insert_term($tag_name, 'post_tag');
}
?>

View File

@@ -0,0 +1,617 @@
<?php
//
// Big Mess
//
// Dandy new recursive multiple category stuff.
function cat_rows( $parent = 0, $level = 0, $categories = 0 ) {
if ( !$categories )
$categories = get_categories( 'hide_empty=0' );
$children = _get_term_hierarchy('category');
if ( $categories ) {
ob_start();
foreach ( $categories as $category ) {
if ( $category->parent == $parent) {
echo "\t" . _cat_row( $category, $level );
if ( isset($children[$category->term_id]) )
cat_rows( $category->term_id, $level +1, $categories );
}
}
$output = ob_get_contents();
ob_end_clean();
$output = apply_filters('cat_rows', $output);
echo $output;
} else {
return false;
}
}
function _cat_row( $category, $level, $name_override = false ) {
global $class;
$pad = str_repeat( '&#8212; ', $level );
if ( current_user_can( 'manage_categories' ) ) {
$edit = "<a href='categories.php?action=edit&amp;cat_ID=$category->term_id' class='edit'>".__( 'Edit' )."</a></td>";
$default_cat_id = (int) get_option( 'default_category' );
$default_link_cat_id = (int) get_option( 'default_link_category' );
if ( $category->term_id != $default_cat_id )
$edit .= "<td><a href='" . wp_nonce_url( "categories.php?action=delete&amp;cat_ID=$category->term_id", 'delete-category_' . $category->term_id ) . "' onclick=\"return deleteSomething( 'cat', $category->term_id, '" . js_escape(sprintf( __("You are about to delete the category '%s'.\nAll posts that were only assigned to this category will be assigned to the '%s' category.\nAll links that were only assigned to this category will be assigned to the '%s' category.\n'OK' to delete, 'Cancel' to stop." ), $category->name, get_catname( $default_cat_id ), get_catname( $default_link_cat_id ) )) . "' );\" class='delete'>".__( 'Delete' )."</a>";
else
$edit .= "<td style='text-align:center'>".__( "Default" );
} else
$edit = '';
$class = ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || " class='alternate'" == $class ) ? '' : " class='alternate'";
$category->count = number_format_i18n( $category->count );
$posts_count = ( $category->count > 0 ) ? "<a href='edit.php?cat=$category->term_id'>$category->count</a>" : $category->count;
$output = "<tr id='cat-$category->term_id'$class>
<th scope='row' style='text-align: center'>$category->term_id</th>
<td>" . ( $name_override ? $name_override : $pad . ' ' . $category->name ) . "</td>
<td>$category->description</td>
<td align='center'>$posts_count</td>
<td>$edit</td>\n\t</tr>\n";
return apply_filters('cat_row', $output);
}
function checked( $checked, $current) {
if ( $checked == $current)
echo ' checked="checked"';
}
// TODO: Remove?
function documentation_link( $for ) {
return;
}
function selected( $selected, $current) {
if ( $selected == $current)
echo ' selected="selected"';
}
//
// Nasty Category Stuff
//
function sort_cats( $cat1, $cat2 ) {
if ( $cat1['checked'] || $cat2['checked'] )
return ( $cat1['checked'] && !$cat2['checked'] ) ? -1 : 1;
else
return strcasecmp( $cat1['cat_name'], $cat2['cat_name'] );
}
function get_nested_categories( $default = 0, $parent = 0 ) {
global $post_ID, $mode, $wpdb, $checked_categories;
if ( empty($checked_categories) ) {
if ( $post_ID ) {
$checked_categories = wp_get_post_categories($post_ID);
if ( count( $checked_categories ) == 0 ) {
// No selected categories, strange
$checked_categories[] = $default;
}
} else {
$checked_categories[] = $default;
}
}
$cats = get_categories("parent=$parent&hide_empty=0&fields=ids");
$result = array ();
if ( is_array( $cats ) ) {
foreach ( $cats as $cat) {
$result[$cat]['children'] = get_nested_categories( $default, $cat);
$result[$cat]['cat_ID'] = $cat;
$result[$cat]['checked'] = in_array( $cat, $checked_categories );
$result[$cat]['cat_name'] = get_the_category_by_ID( $cat);
}
}
$result = apply_filters('get_nested_categories', $result);
usort( $result, 'sort_cats' );
return $result;
}
function write_nested_categories( $categories ) {
foreach ( $categories as $category ) {
echo '<li id="category-', $category['cat_ID'], '"><label for="in-category-', $category['cat_ID'], '" class="selectit"><input value="', $category['cat_ID'], '" type="checkbox" name="post_category[]" id="in-category-', $category['cat_ID'], '"', ($category['checked'] ? ' checked="checked"' : "" ), '/> ', wp_specialchars( apply_filters('the_category', $category['cat_name'] )), "</label></li>";
if ( $category['children'] ) {
echo "<ul>\n";
write_nested_categories( $category['children'] );
echo "</ul>\n";
}
}
}
function dropdown_categories( $default = 0 ) {
write_nested_categories( get_nested_categories( $default) );
}
function dropdown_link_categories( $default = 0 ) {
global $link_id;
if ( $link_id ) {
$checked_categories = wp_get_link_cats($link_id);
if ( count( $checked_categories ) == 0 ) {
// No selected categories, strange
$checked_categories[] = $default;
}
} else {
$checked_categories[] = $default;
}
$categories = get_terms('link_category', 'orderby=count&hide_empty=0');
if ( empty($categories) )
return;
foreach ( $categories as $category ) {
$cat_id = $category->term_id;
$name = wp_specialchars( apply_filters('the_category', $category->name));
$checked = in_array( $cat_id, $checked_categories );
echo '<li id="link-category-', $cat_id, '"><label for="in-link-category-', $cat_id, '" class="selectit"><input value="', $cat_id, '" type="checkbox" name="link_category[]" id="in-link-category-', $cat_id, '"', ($checked ? ' checked="checked"' : "" ), '/> ', $name, "</label></li>";
}
}
function page_rows( $parent = 0, $level = 0, $pages = 0, $hierarchy = true ) {
global $wpdb, $class, $post;
if (!$pages )
$pages = get_pages( 'sort_column=menu_order' );
if (! $pages )
return false;
foreach ( $pages as $post) {
setup_postdata( $post);
if ( $hierarchy && ($post->post_parent != $parent) )
continue;
$post->post_title = wp_specialchars( $post->post_title );
$pad = str_repeat( '&#8212; ', $level );
$id = (int) $post->ID;
$class = ('alternate' == $class ) ? '' : 'alternate';
?>
<tr id='page-<?php echo $id; ?>' class='<?php echo $class; ?>'>
<th scope="row" style="text-align: center"><?php echo $post->ID; ?></th>
<td>
<?php echo $pad; ?><?php the_title() ?>
</td>
<td><?php the_author() ?></td>
<td><?php if ( '0000-00-00 00:00:00' ==$post->post_modified ) _e('Unpublished'); else echo mysql2date( __('Y-m-d g:i a'), $post->post_modified ); ?></td>
<td><a href="<?php the_permalink(); ?>" rel="permalink" class="view"><?php _e( 'View' ); ?></a></td>
<td><?php if ( current_user_can( 'edit_page', $id ) ) { echo "<a href='page.php?action=edit&amp;post=$id' class='edit'>" . __( 'Edit' ) . "</a>"; } ?></td>
<td><?php if ( current_user_can( 'delete_page', $id ) ) { echo "<a href='" . wp_nonce_url( "page.php?action=delete&amp;post=$id", 'delete-page_' . $id ) . "' class='delete' onclick=\"return deleteSomething( 'page', " . $id . ", '" . js_escape(sprintf( __("You are about to delete the '%s' page.\n'OK' to delete, 'Cancel' to stop." ), get_the_title() ) ) . "' );\">" . __( 'Delete' ) . "</a>"; } ?></td>
</tr>
<?php
if ( $hierarchy ) page_rows( $id, $level + 1, $pages );
}
}
function user_row( $user_object, $style = '' ) {
if ( !(is_object( $user_object) && is_a( $user_object, 'WP_User' ) ) )
$user_object = new WP_User( (int) $user_object );
$email = $user_object->user_email;
$url = $user_object->user_url;
$short_url = str_replace( 'http://', '', $url );
$short_url = str_replace( 'www.', '', $short_url );
if ('/' == substr( $short_url, -1 ))
$short_url = substr( $short_url, 0, -1 );
if ( strlen( $short_url ) > 35 )
$short_url = substr( $short_url, 0, 32 ).'...';
$numposts = get_usernumposts( $user_object->ID );
$r = "<tr id='user-$user_object->ID'$style>
<td><input type='checkbox' name='users[]' id='user_{$user_object->ID}' value='{$user_object->ID}' /> <label for='user_{$user_object->ID}'>{$user_object->ID}</label></td>
<td><label for='user_{$user_object->ID}'><strong>$user_object->user_login</strong></label></td>
<td><label for='user_{$user_object->ID}'>$user_object->first_name $user_object->last_name</label></td>
<td><a href='mailto:$email' title='" . sprintf( __('e-mail: %s' ), $email ) . "'>$email</a></td>
<td><a href='$url' title='website: $url'>$short_url</a></td>";
$r .= "\n\t\t<td align='center'>";
if ( $numposts > 0 ) {
$r .= "<a href='edit.php?author=$user_object->ID' title='" . __( 'View posts by this author' ) . "' class='edit'>";
$r .= sprintf(__ngettext( 'View %s post', 'View %s posts', $numposts ), $numposts);
$r .= '</a>';
}
$r .= "</td>\n\t\t<td>";
if ( current_user_can( 'edit_user', $user_object->ID ) ) {
$edit_link = add_query_arg( 'wp_http_referer', urlencode( clean_url( stripslashes( $_SERVER['REQUEST_URI'] ) ) ), "user-edit.php?user_id=$user_object->ID" );
$r .= "<a href='$edit_link' class='edit'>".__( 'Edit' )."</a>";
}
$r .= "</td>\n\t</tr>";
return $r;
}
function _wp_get_comment_list( $s = false, $start, $num ) {
global $wpdb;
$start = abs( (int) $start );
$num = (int) $num;
if ( $s ) {
$s = $wpdb->escape($s);
$comments = $wpdb->get_results("SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->comments WHERE
(comment_author LIKE '%$s%' OR
comment_author_email LIKE '%$s%' OR
comment_author_url LIKE ('%$s%') OR
comment_author_IP LIKE ('%$s%') OR
comment_content LIKE ('%$s%') ) AND
comment_approved != 'spam'
ORDER BY comment_date DESC LIMIT $start, $num");
} else {
$comments = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->comments WHERE comment_approved = '0' OR comment_approved = '1' ORDER BY comment_date DESC LIMIT $start, $num" );
}
update_comment_cache($comments);
$total = $wpdb->get_var( "SELECT FOUND_ROWS()" );
return array($comments, $total);
}
function _wp_comment_list_item( $id, $alt = 0 ) {
global $authordata, $comment, $wpdb;
$id = (int) $id;
$comment =& get_comment( $id );
$class = '';
$post = get_post($comment->comment_post_ID);
$authordata = get_userdata($post->post_author);
$comment_status = wp_get_comment_status($comment->comment_ID);
if ( 'unapproved' == $comment_status )
$class .= ' unapproved';
if ( $alt % 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> ";
}
$post = get_post($comment->comment_post_ID, OBJECT, 'display');
$post_title = wp_specialchars( $post->post_title, 'double' );
$post_title = ('' == $post_title) ? "# $comment->comment_post_ID" : $post_title;
?>
] &#8212; <a href="<?php echo get_permalink($comment->comment_post_ID); ?>"><?php echo $post_title; ?></a></p>
</li>
<?php
}
function wp_dropdown_cats( $currentcat = 0, $currentparent = 0, $parent = 0, $level = 0, $categories = 0 ) {
global $wpdb;
if (!$categories )
$categories = get_categories( 'hide_empty=0' );
if ( $categories ) {
foreach ( $categories as $category ) {
if ( $currentcat != $category->term_id && $parent == $category->parent) {
$pad = str_repeat( '&#8211; ', $level );
$category->name = wp_specialchars( $category->name );
echo "\n\t<option value='$category->term_id'";
if ( $currentparent == $category->term_id )
echo " selected='selected'";
echo ">$pad$category->name</option>";
wp_dropdown_cats( $currentcat, $currentparent, $category->term_id, $level +1, $categories );
}
}
} else {
return false;
}
}
function list_meta( $meta ) {
global $post_ID;
// Exit if no meta
if (!$meta ) {
echo '<tbody id="the-list"><tr style="display: none;"><td>&nbsp;</td></tr></tbody>'; //TBODY needed for list-manipulation JS
return;
}
$count = 0;
?>
<thead>
<tr>
<th><?php _e( 'Key' ) ?></th>
<th><?php _e( 'Value' ) ?></th>
<th colspan='2'><?php _e( 'Action' ) ?></th>
</tr>
</thead>
<?php
$r ="\n\t<tbody id='the-list'>";
foreach ( $meta as $entry ) {
++ $count;
if ( $count % 2 )
$style = 'alternate';
else
$style = '';
if ('_' == $entry['meta_key'] { 0 } )
$style .= ' hidden';
if ( is_serialized( $entry['meta_value'] ) ) {
if ( is_serialized_string( $entry['meta_value'] ) ) {
// this is a serialized string, so we should display it
$entry['meta_value'] = maybe_unserialize( $entry['meta_value'] );
} else {
// this is a serialized array/object so we should NOT display it
--$count;
continue;
}
}
$key_js = js_escape( $entry['meta_key'] );
$entry['meta_key'] = attribute_escape($entry['meta_key']);
$entry['meta_value'] = attribute_escape($entry['meta_value']);
$entry['meta_id'] = (int) $entry['meta_id'];
$r .= "\n\t<tr id='meta-{$entry['meta_id']}' class='$style'>";
$r .= "\n\t\t<td valign='top'><input name='meta[{$entry['meta_id']}][key]' tabindex='6' type='text' size='20' value='{$entry['meta_key']}' /></td>";
$r .= "\n\t\t<td><textarea name='meta[{$entry['meta_id']}][value]' tabindex='6' rows='2' cols='30'>{$entry['meta_value']}</textarea></td>";
$r .= "\n\t\t<td align='center'><input name='updatemeta' type='submit' class='updatemeta' tabindex='6' value='".attribute_escape(__( 'Update' ))."' /><br />";
$r .= "\n\t\t<input name='deletemeta[{$entry['meta_id']}]' type='submit' onclick=\"return deleteSomething( 'meta', {$entry['meta_id']}, '";
$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>";
$r .= "\n\t</tr>";
}
echo $r;
echo "\n\t</tbody>";
}
function meta_form() {
global $wpdb;
$limit = (int) apply_filters( 'postmeta_form_limit', 30 );
$keys = $wpdb->get_col( "
SELECT meta_key
FROM $wpdb->postmeta
WHERE meta_key NOT LIKE '\_%'
GROUP BY meta_key
ORDER BY meta_id DESC
LIMIT $limit" );
if ( $keys )
natcasesort($keys);
?>
<h3><?php _e( 'Add a new custom field:' ) ?></h3>
<table id="newmeta" cellspacing="3" cellpadding="3">
<tr>
<th colspan="2"><?php _e( 'Key' ) ?></th>
<th><?php _e( 'Value' ) ?></th>
</tr>
<tr valign="top">
<td align="right" width="18%">
<?php if ( $keys ) : ?>
<select id="metakeyselect" name="metakeyselect" tabindex="7">
<option value="#NONE#"><?php _e( '- Select -' ); ?></option>
<?php
foreach ( $keys as $key ) {
$key = attribute_escape( $key );
echo "\n\t<option value='$key'>$key</option>";
}
?>
</select> <?php _e( 'or' ); ?>
<?php endif; ?>
</td>
<td><input type="text" id="metakeyinput" name="metakeyinput" tabindex="7" /></td>
<td><textarea id="metavalue" name="metavalue" rows="3" cols="25" tabindex="8"></textarea></td>
</tr>
</table>
<p class="submit"><input type="submit" id="updatemetasub" name="updatemeta" tabindex="9" value="<?php _e( 'Add Custom Field &raquo;' ) ?>" /></p>
<?php
}
function touch_time( $edit = 1, $for_post = 1, $tab_index = 0 ) {
global $wp_locale, $post, $comment;
if ( $for_post )
$edit = ( in_array($post->post_status, array('draft', 'pending') ) && (!$post->post_date || '0000-00-00 00:00:00' == $post->post_date ) ) ? false : true;
$tab_index_attribute = '';
if ( (int) $tab_index > 0 )
$tab_index_attribute = " tabindex=\"$tab_index\"";
echo '<fieldset><legend><input type="checkbox" class="checkbox" name="edit_date" value="1" id="timestamp"'.$tab_index_attribute.' /> <label for="timestamp">'.__( 'Edit timestamp' ).'</label></legend>';
$time_adj = time() + (get_option( 'gmt_offset' ) * 3600 );
$post_date = ($for_post) ? $post->post_date : $comment->comment_date;
$jj = ($edit) ? mysql2date( 'd', $post_date ) : gmdate( 'd', $time_adj );
$mm = ($edit) ? mysql2date( 'm', $post_date ) : gmdate( 'm', $time_adj );
$aa = ($edit) ? mysql2date( 'Y', $post_date ) : gmdate( 'Y', $time_adj );
$hh = ($edit) ? mysql2date( 'H', $post_date ) : gmdate( 'H', $time_adj );
$mn = ($edit) ? mysql2date( 'i', $post_date ) : gmdate( 'i', $time_adj );
$ss = ($edit) ? mysql2date( 's', $post_date ) : gmdate( 's', $time_adj );
echo "<select name=\"mm\" onchange=\"edit_date.checked=true\"$tab_index_attribute>\n";
for ( $i = 1; $i < 13; $i = $i +1 ) {
echo "\t\t\t<option value=\"$i\"";
if ( $i == $mm )
echo ' selected="selected"';
echo '>' . $wp_locale->get_month( $i ) . "</option>\n";
}
?>
</select>
<input type="text" id="jj" name="jj" value="<?php echo $jj; ?>" size="2" maxlength="2" onchange="edit_date.checked=true"<?php echo $tab_index_attribute ?> />
<input type="text" id="aa" name="aa" value="<?php echo $aa ?>" size="4" maxlength="5" onchange="edit_date.checked=true"<?php echo $tab_index_attribute ?> /> @
<input type="text" id="hh" name="hh" value="<?php echo $hh ?>" size="2" maxlength="2" onchange="edit_date.checked=true"<?php echo $tab_index_attribute ?> /> :
<input type="text" id="mn" name="mn" value="<?php echo $mn ?>" size="2" maxlength="2" onchange="edit_date.checked=true"<?php echo $tab_index_attribute ?> />
<input type="hidden" id="ss" name="ss" value="<?php echo $ss ?>" size="2" maxlength="2" onchange="edit_date.checked=true" />
<?php
if ( $edit ) {
printf( _c( 'Existing timestamp: %1$s %2$s, %3$s @ %4$s:%5$s|1: month, 2: month string, 3: full year, 4: hours, 5: minutes' ), $wp_locale->get_month( $mm ), $jj, $aa, $hh, $mn );
}
?>
</fieldset>
<?php
}
function page_template_dropdown( $default = '' ) {
$templates = get_page_templates();
ksort( $templates );
foreach (array_keys( $templates ) as $template )
: if ( $default == $templates[$template] )
$selected = " selected='selected'";
else
$selected = '';
echo "\n\t<option value='".$templates[$template]."' $selected>$template</option>";
endforeach;
}
function parent_dropdown( $default = 0, $parent = 0, $level = 0 ) {
global $wpdb, $post_ID;
$items = $wpdb->get_results( "SELECT ID, post_parent, post_title FROM $wpdb->posts WHERE post_parent = $parent AND post_type = 'page' ORDER BY menu_order" );
if ( $items ) {
foreach ( $items as $item ) {
// A page cannot be its own parent.
if (!empty ( $post_ID ) ) {
if ( $item->ID == $post_ID ) {
continue;
}
}
$pad = str_repeat( '&nbsp;', $level * 3 );
if ( $item->ID == $default)
$current = ' selected="selected"';
else
$current = '';
echo "\n\t<option value='$item->ID'$current>$pad " . wp_specialchars($item->post_title) . "</option>";
parent_dropdown( $default, $item->ID, $level +1 );
}
} else {
return false;
}
}
function browse_happy() {
$getit = __( 'WordPress recommends a better browser' );
echo '
<p id="bh" style="text-align: center;"><a href="http://browsehappy.com/" title="'.$getit.'"><img src="images/browse-happy.gif" alt="Browse Happy" /></a></p>
';
}
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false)
add_action( 'admin_footer', 'browse_happy' );
function the_attachment_links( $id = false ) {
$id = (int) $id;
$post = & get_post( $id );
if ( $post->post_type != 'attachment' )
return false;
$icon = get_attachment_icon( $post->ID );
$attachment_data = wp_get_attachment_metadata( $id );
$thumb = isset( $attachment_data['thumb'] );
?>
<form id="the-attachment-links">
<table>
<col />
<col class="widefat" />
<tr>
<th scope="row"><?php _e( 'URL' ) ?></th>
<td><textarea rows="1" cols="40" type="text" class="attachmentlinks" readonly="readonly"><?php echo wp_get_attachment_url(); ?></textarea></td>
</tr>
<?php if ( $icon ) : ?>
<tr>
<th scope="row"><?php $thumb ? _e( 'Thumbnail linked to file' ) : _e( 'Image linked to file' ); ?></th>
<td><textarea rows="1" cols="40" type="text" class="attachmentlinks" readonly="readonly"><a href="<?php echo wp_get_attachment_url(); ?>"><?php echo $icon ?></a></textarea></td>
</tr>
<tr>
<th scope="row"><?php $thumb ? _e( 'Thumbnail linked to page' ) : _e( 'Image linked to page' ); ?></th>
<td><textarea rows="1" cols="40" type="text" class="attachmentlinks" readonly="readonly"><a href="<?php echo get_attachment_link( $post->ID ) ?>" rel="attachment wp-att-<?php echo $post->ID; ?>"><?php echo $icon ?></a></textarea></td>
</tr>
<?php else : ?>
<tr>
<th scope="row"><?php _e( 'Link to file' ) ?></th>
<td><textarea rows="1" cols="40" type="text" class="attachmentlinks" readonly="readonly"><a href="<?php echo wp_get_attachment_url(); ?>" class="attachmentlink"><?php echo basename( wp_get_attachment_url() ); ?></a></textarea></td>
</tr>
<tr>
<th scope="row"><?php _e( 'Link to page' ) ?></th>
<td><textarea rows="1" cols="40" type="text" class="attachmentlinks" readonly="readonly"><a href="<?php echo get_attachment_link( $post->ID ) ?>" rel="attachment wp-att-<?php echo $post->ID ?>"><?php the_title(); ?></a></textarea></td>
</tr>
<?php endif; ?>
</table>
</form>
<?php
}
function wp_dropdown_roles( $default = false ) {
global $wp_roles;
$r = '';
foreach( $wp_roles->role_names as $role => $name )
if ( $default == $role ) // Make default first in list
$p = "\n\t<option selected='selected' value='$role'>$name</option>";
else
$r .= "\n\t<option value='$role'>$name</option>";
echo $p . $r;
}
function wp_convert_hr_to_bytes( $size ) {
$size = strtolower($size);
$bytes = (int) $size;
if ( strpos($size, 'k') !== false )
$bytes = intval($size) * 1024;
elseif ( strpos($size, 'm') !== false )
$bytes = intval($size) * 1024 * 1024;
elseif ( strpos($size, 'g') !== false )
$bytes = intval($size) * 1024 * 1024 * 1024;
return $bytes;
}
function wp_convert_bytes_to_hr( $bytes ) {
$units = array( 0 => 'B', 1 => 'kB', 2 => 'MB', 3 => 'GB' );
$log = log( $bytes, 1024 );
$power = (int) $log;
$size = pow(1024, $log - $power);
return $size . $units[$power];
}
function wp_import_upload_form( $action ) {
$u_bytes = wp_convert_hr_to_bytes( ini_get( 'upload_max_filesize' ) );
$p_bytes = wp_convert_hr_to_bytes( ini_get( 'post_max_size' ) );
$bytes = apply_filters( 'import_upload_size_limit', min($u_bytes, $p_bytes), $u_bytes, $p_bytes );
$size = wp_convert_bytes_to_hr( $bytes );
?>
<form enctype="multipart/form-data" id="import-upload-form" method="post" action="<?php echo attribute_escape($action) ?>">
<p>
<?php wp_nonce_field('import-upload'); ?>
<label for="upload"><?php _e( 'Choose a file from your computer:' ); ?></label> (<?php printf( __('Maximum size: %s' ), $size ); ?>)
<input type="file" id="upload" name="import" size="25" />
<input type="hidden" name="action" value="save" />
<input type="hidden" name="max_file_size" value="<?php echo $bytes; ?>" />
</p>
<p class="submit">
<input type="submit" value="<?php _e( 'Upload file and import &raquo;' ); ?>" />
</p>
</form>
<?php
}
function wp_remember_old_slug() {
global $post;
$name = attribute_escape($post->post_name); // just in case
if ( strlen($name) )
echo '<input type="hidden" id="wp-old-slug" name="wp-old-slug" value="' . $name . '" />';
}
?>

View File

@@ -0,0 +1,52 @@
<?php
function current_theme_info() {
$themes = get_themes();
$current_theme = get_current_theme();
$ct->name = $current_theme;
$ct->title = $themes[$current_theme]['Title'];
$ct->version = $themes[$current_theme]['Version'];
$ct->parent_theme = $themes[$current_theme]['Parent Theme'];
$ct->template_dir = $themes[$current_theme]['Template Dir'];
$ct->stylesheet_dir = $themes[$current_theme]['Stylesheet Dir'];
$ct->template = $themes[$current_theme]['Template'];
$ct->stylesheet = $themes[$current_theme]['Stylesheet'];
$ct->screenshot = $themes[$current_theme]['Screenshot'];
$ct->description = $themes[$current_theme]['Description'];
$ct->author = $themes[$current_theme]['Author'];
return $ct;
}
function get_broken_themes() {
global $wp_broken_themes;
get_themes();
return $wp_broken_themes;
}
function get_page_templates() {
$themes = get_themes();
$theme = get_current_theme();
$templates = $themes[$theme]['Template Files'];
$page_templates = array ();
if ( is_array( $templates ) ) {
foreach ( $templates as $template ) {
$template_data = implode( '', file( ABSPATH.$template ));
preg_match( '|Template Name:(.*)$|mi', $template_data, $name );
preg_match( '|Description:(.*)$|mi', $template_data, $description );
$name = $name[1];
$description = $description[1];
if ( !empty( $name ) ) {
$page_templates[trim( $name )] = basename( $template );
}
}
}
return $page_templates;
}
?>

View File

@@ -0,0 +1,122 @@
<?php
// The admin side of our 1.0 update system
function core_update_footer( $msg ) {
if ( !current_user_can('manage_options') )
return sprintf( '| '.__( 'Version %s' ), $GLOBALS['wp_version'] );
$cur = get_option( 'update_core' );
switch ( $cur->response ) {
case 'development' :
return sprintf( '| '.__( 'You are using a development version (%s). Cool! Please <a href="%s">stay updated</a>.' ), $GLOBALS['wp_version'], 'http://wordpress.org/download/svn/' );
break;
case 'upgrade' :
return sprintf( '| <strong>'.__( 'Your WordPress %s is out of date. <a href="%s">Please update</a>.' ).'</strong>', $GLOBALS['wp_version'], $cur->url );
break;
case 'latest' :
default :
return sprintf( '| '.__( 'Version %s' ), $GLOBALS['wp_version'] );
break;
}
}
add_filter( 'update_footer', 'core_update_footer' );
function update_nag() {
$cur = get_option( 'update_core' );
if ( ! isset( $cur->response ) || $cur->response != 'upgrade' )
return false;
if ( current_user_can('manage_options') )
$msg = sprintf( __('A new version of WordPress is available! <a href="%s">Please update now</a>.'), $cur->url );
else
$msg = __('A new version of WordPress is available! Please notify the site administrator.');
echo "<div id='update-nag'>$msg</div>";
}
add_action( 'admin_notices', 'update_nag', 3 );
function wp_update_plugins() {
global $wp_version;
if ( !function_exists('fsockopen') )
return false;
$plugins = get_plugins();
$active = get_option( 'active_plugins' );
$current = get_option( 'update_plugins' );
$new_option = '';
$new_option->last_checked = time();
$plugin_changed = false;
foreach ( $plugins as $file => $p ) {
$new_option->checked[ $file ] = $p['Version'];
if ( !isset( $current->checked[ $file ] ) ) {
$plugin_changed = true;
continue;
}
if ( $current->checked[ $file ] != $p['Version'] )
$plugin_changed = true;
}
if (
isset( $current->last_checked ) &&
43200 > ( time() - $current->last_checked ) &&
!$plugin_changed
)
return false;
$to_send->plugins = $plugins;
$to_send->active = $active;
$send = serialize( $to_send );
$request = 'plugins=' . urlencode( $send );
$http_request = "POST /plugins/update-check/1.0/ HTTP/1.0\r\n";
$http_request .= "Host: api.wordpress.org\r\n";
$http_request .= "Content-Type: application/x-www-form-urlencoded; charset=" . get_option('blog_charset') . "\r\n";
$http_request .= "Content-Length: " . strlen($request) . "\r\n";
$http_request .= 'User-Agent: WordPress/' . $wp_version . '; ' . get_bloginfo('url') . "\r\n";
$http_request .= "\r\n";
$http_request .= $request;
$response = '';
if( false != ( $fs = @fsockopen( 'api.wordpress.org', 80, $errno, $errstr, 3) ) && is_resource($fs) ) {
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);
}
$response = unserialize( $response[1] );
if ( $response )
$new_option->response = $response;
update_option( 'update_plugins', $new_option );
}
add_action( 'load-plugins.php', 'wp_update_plugins' );
function wp_plugin_update_row( $file ) {
global $plugin_data;
$current = get_option( 'update_plugins' );
if ( !isset( $current->response[ $file ] ) )
return false;
$r = $current->response[ $file ];
echo "<tr><td colspan='5' class='plugin-update'>";
printf( __('There is a new version of %s available. <a href="%s">Download version %s here</a>.'), $plugin_data['Name'], $r->url, $r->new_version );
echo "</td></tr>";
}
add_action( 'after_plugin_row', 'wp_plugin_update_row' );
?>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,358 @@
<?php
function wp_upload_display( $dims = false, $href = '' ) {
global $post;
$id = get_the_ID();
$attachment_data = wp_get_attachment_metadata( $id );
$is_image = (int) wp_attachment_is_image();
$filesystem_path = get_attached_file( $id );
if ( !isset($attachment_data['width']) && $is_image ) {
if ( $image_data = getimagesize( $filesystem_path ) ) {
$attachment_data['width'] = $image_data[0];
$attachment_data['height'] = $image_data[1];
wp_update_attachment_metadata( $id, $attachment_data );
}
}
if ( isset($attachment_data['width']) )
list($width,$height) = wp_shrink_dimensions($attachment_data['width'], $attachment_data['height'], 171, 128);
$post_title = attribute_escape( the_title( '', '', false ) );
$post_content = attribute_escape(apply_filters( 'content_edit_pre', $post->post_content ));
$class = 'text';
$innerHTML = get_attachment_innerHTML( $id, false, $dims );
if ( $image_src = get_attachment_icon_src() ) {
$image_rel = wp_make_link_relative($image_src);
$innerHTML = '&nbsp;' . str_replace($image_src, $image_rel, $innerHTML);
$class = 'image';
}
$src_base = wp_get_attachment_url();
$src = wp_make_link_relative( $src_base );
$src_base = str_replace($src, '', $src_base);
if ( !trim($post_title) )
$post_title = basename($src);
$r = '';
if ( $href )
$r .= "<a id='file-link-$id' href='$href' title='$post_title' class='file-link $class'>\n";
if ( $href || $image_src )
$r .= "\t\t\t$innerHTML";
if ( $href )
$r .= "</a>\n";
$size = @filesize($filesystem_path);
if ( !empty($size) )
$r .= "\t\t\t\t<span class='upload-file-size'>".size_format($size)."</span>\n";
$r .= "\n\t\t<div class='upload-file-data'>\n\t\t\t<p>\n";
$r .= "\t\t\t\t<input type='hidden' name='attachment-url-$id' id='attachment-url-$id' value='$src' />\n";
$r .= "\t\t\t\t<input type='hidden' name='attachment-url-base-$id' id='attachment-url-base-$id' value='$src_base' />\n";
if ( !$thumb_base = wp_get_attachment_thumb_url() )
$thumb_base = wp_mime_type_icon();
if ( $thumb_base ) {
$thumb_rel = wp_make_link_relative( $thumb_base );
$thumb_base = str_replace( $thumb_rel, '', $thumb_base );
$r .= "\t\t\t\t<input type='hidden' name='attachment-thumb-url-$id' id='attachment-thumb-url-$id' value='$thumb_rel' />\n";
$r .= "\t\t\t\t<input type='hidden' name='attachment-thumb-url-base-$id' id='attachment-thumb-url-base-$id' value='$thumb_base' />\n";
}
$r .= "\t\t\t\t<input type='hidden' name='attachment-is-image-$id' id='attachment-is-image-$id' value='$is_image' />\n";
if ( isset($width) ) {
$r .= "\t\t\t\t<input type='hidden' name='attachment-width-$id' id='attachment-width-$id' value='$width' />\n";
$r .= "\t\t\t\t<input type='hidden' name='attachment-height-$id' id='attachment-height-$id' value='$height' />\n";
}
$r .= "\t\t\t\t<input type='hidden' name='attachment-page-url-$id' id='attachment-page-url-$id' value='" . get_attachment_link( $id ) . "' />\n";
$r .= "\t\t\t\t<input type='hidden' name='attachment-title-$id' id='attachment-title-$id' value='$post_title' />\n";
$r .= "\t\t\t\t<input type='hidden' name='attachment-description-$id' id='attachment-description-$id' value='$post_content' />\n";
$r .= "\t\t\t</p>\n\t\t</div>\n";
return $r;
}
function wp_upload_view() {
global $style, $post_id, $style;
$id = get_the_ID();
$attachment_data = wp_get_attachment_metadata( $id );
?>
<div id="upload-file">
<div id="file-title">
<h2><?php if ( !isset($attachment_data['width']) && 'inline' != $style )
echo "<a href='" . wp_get_attachment_url() . "' title='" . __('Direct link to file') . "'>";
the_title();
if ( !isset($attachment_data['width']) && 'inline' != $style )
echo '</a>';
?></h2>
<span><?php
echo '[&nbsp;';
echo '<a href="' . get_permalink() . '">' . __('view') . '</a>';
echo '&nbsp;|&nbsp;';
echo '<a href="' . clean_url(add_query_arg('action', 'edit')) . '" title="' . __('Edit this file') . '">' . __('edit') . '</a>';
echo '&nbsp;|&nbsp;';
echo '<a href="' . clean_url(remove_query_arg(array('action', 'ID'))) . '" title="' . __('Browse your files') . '">' . __('cancel') . '</a>';
echo '&nbsp;]'; ?></span>
</div>
<div id="upload-file-view" class="alignleft">
<?php if ( isset($attachment_data['width']) && 'inline' != $style )
echo "<a href='" . wp_get_attachment_url() . "' title='" . __('Direct link to file') . "'>";
echo wp_upload_display( array(171, 128) );
if ( isset($attachment_data['width']) && 'inline' != $style )
echo '</a>'; ?>
</div>
<?php the_attachment_links( $id ); ?>
</div>
<?php echo "<form action='' id='browse-form'><input type='hidden' id='nonce-value' value='" . wp_create_nonce( 'inlineuploading' ) . "' /></form>\n";
}
function wp_upload_form() {
$id = get_the_ID();
global $post_id, $tab, $style;
$enctype = $id ? '' : ' enctype="multipart/form-data"';
$post_id = (int) $post_id;
?>
<form<?php echo $enctype; ?> id="upload-file" method="post" action="<?php echo get_option('siteurl') . '/wp-admin/upload.php?style=' . attribute_escape($style . '&amp;tab=upload&amp;post_id=' . $post_id); ?>">
<?php
if ( $id ) :
$attachment = get_post_to_edit( $id );
$attachment_data = wp_get_attachment_metadata( $id );
?>
<div id="file-title">
<h2><?php if ( !isset($attachment_data['width']) && 'inline' != $style )
echo "<a href='" . wp_get_attachment_url() . "' title='" . __('Direct link to file') . "'>";
the_title();
if ( !isset($attachment_data['width']) && 'inline' != $style )
echo '</a>';
?></h2>
<span><?php
echo '[&nbsp;';
echo '<a href="' . get_permalink() . '">' . __('view') . '</a>';
echo '&nbsp;|&nbsp;';
echo '<a href="' . clean_url(add_query_arg('action', 'view')) . '">' . __('links') . '</a>';
echo '&nbsp;|&nbsp;';
echo '<a href="' . clean_url(remove_query_arg(array('action','ID'))) . '" title="' . __('Browse your files') . '">' . __('cancel') . '</a>';
echo '&nbsp;]'; ?></span>
</div>
<div id="upload-file-view" class="alignleft">
<?php if ( isset($attachment_data['width']) && 'inline' != $style )
echo "<a href='" . wp_get_attachment_url() . "' title='" . __('Direct link to file') . "'>";
echo wp_upload_display( array(171, 128) );
if ( isset($attachment_data['width']) && 'inline' != $style )
echo '</a>'; ?>
</div>
<?php endif; ?>
<table><col /><col class="widefat" />
<?php if ( $id ): ?>
<tr>
<th scope="row"><label for="url"><?php _e('URL'); ?></label></th>
<td><input type="text" id="url" class="readonly" value="<?php echo wp_get_attachment_url(); ?>" readonly="readonly" /></td>
</tr>
<?php else : ?>
<tr>
<th scope="row"><label for="upload"><?php _e('File'); ?></label></th>
<td><input type="file" id="upload" name="image" /></td>
</tr>
<?php endif; ?>
<tr>
<th scope="row"><label for="post_title"><?php _e('Title'); ?></label></th>
<td><input type="text" id="post_title" name="post_title" value="<?php echo $attachment->post_title; ?>" /></td>
</tr>
<tr>
<th scope="row"><label for="post_content"><?php _e('Description'); ?></label></th>
<td><textarea name="post_content" id="post_content"><?php echo $attachment->post_content; ?></textarea></td>
</tr>
<tr id="buttons" class="submit">
<td colspan='2'>
<?php if ( $id ) : ?>
<input type="submit" name="delete" id="delete" class="delete alignleft" value="<?php _e('Delete File'); ?>" />
<?php endif; ?>
<input type="hidden" name="from_tab" value="<?php echo $tab; ?>" />
<input type="hidden" name="action" value="<?php echo $id ? 'save' : 'upload'; ?>" />
<?php if ( $post_id ) : ?>
<input type="hidden" name="post_id" value="<?php echo $post_id; ?>" />
<?php endif; if ( $id ) : ?>
<input type="hidden" name="ID" value="<?php echo $id; ?>" />
<?php endif; ?>
<?php wp_nonce_field( 'inlineuploading' ); ?>
<div class="submit">
<input type="submit" value="<?php $id ? _e('Save &raquo;') : _e('Upload &raquo;'); ?>" />
</div>
</td>
</tr>
</table>
</form>
<?php
}
function wp_upload_tab_upload() {
wp_upload_form();
}
function wp_upload_tab_upload_action() {
global $action;
if ( isset($_POST['delete']) )
$action = 'delete';
switch ( $action ) :
case 'upload' :
global $from_tab, $post_id, $style;
if ( !$from_tab )
$from_tab = 'upload';
check_admin_referer( 'inlineuploading' );
global $post_id, $post_title, $post_content;
if ( !current_user_can( 'upload_files' ) )
wp_die( __('You are not allowed to upload files.')
. " <a href='" . get_option('siteurl') . "/wp-admin/upload.php?style=" . attribute_escape($style . "&amp;tab=browse-all&amp;post_id=$post_id") . "'>"
. __('Browse Files') . '</a>'
);
$overrides = array('action'=>'upload');
$file = wp_handle_upload($_FILES['image'], $overrides);
if ( isset($file['error']) )
wp_die($file['error'] . "<br /><a href='" . get_option('siteurl')
. "/wp-admin/upload.php?style=" . attribute_escape($style . "&amp;tab=$from_tab&amp;post_id=$post_id") . "'>" . __('Back to Image Uploading') . '</a>'
);
$url = $file['url'];
$type = $file['type'];
$file = $file['file'];
$filename = basename($file);
// Construct the attachment array
$attachment = array(
'post_title' => $post_title,
'post_content' => $post_content,
'post_type' => 'attachment',
'post_parent' => $post_id,
'post_mime_type' => $type,
'guid' => $url
);
// Save the data
$id = wp_insert_attachment($attachment, $file, $post_id);
wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
wp_redirect( get_option('siteurl') . "/wp-admin/upload.php?style=$style&tab=browse&action=view&ID=$id&post_id=$post_id");
die;
break;
case 'save' :
global $from_tab, $post_id, $style;
if ( !$from_tab )
$from_tab = 'upload';
check_admin_referer( 'inlineuploading' );
wp_update_post($_POST);
wp_redirect( get_option('siteurl') . "/wp-admin/upload.php?style=$style&tab=$from_tab&post_id=$post_id");
die;
break;
case 'delete' :
global $ID, $post_id, $from_tab, $style;
if ( !$from_tab )
$from_tab = 'upload';
check_admin_referer( 'inlineuploading' );
if ( !current_user_can('edit_post', (int) $ID) )
wp_die( __('You are not allowed to delete this attachment.')
. " <a href='" . get_option('siteurl') . "/wp-admin/upload.php?style=" . attribute_escape($style . "&amp;tab=$from_tab&amp;post_id=$post_id") . "'>"
. __('Go back') . '</a>'
);
wp_delete_attachment($ID);
wp_redirect( get_option('siteurl') . "/wp-admin/upload.php?style=$style&tab=$from_tab&post_id=$post_id" );
die;
break;
endswitch;
}
add_action( 'upload_files_upload', 'wp_upload_tab_upload_action' );
function wp_upload_grab_attachments( $obj ) {
$obj->is_attachment = true;
}
function wp_upload_posts_where( $where ) {
global $post_id;
return $where . " AND post_parent = '" . (int) $post_id . "'";
}
function wp_upload_tab_browse() {
global $action, $paged;
$old_vars = compact( 'paged' );
switch ( $action ) :
case 'edit' :
case 'view' :
global $ID;
$attachments = query_posts("attachment_id=$ID");
if ( have_posts() ) : while ( have_posts() ) : the_post();
'edit' == $action ? wp_upload_form() : wp_upload_view();
endwhile; endif;
break;
default :
global $tab, $post_id, $style;
add_action( 'pre_get_posts', 'wp_upload_grab_attachments' );
if ( 'browse' == $tab && $post_id )
add_filter( 'posts_where', 'wp_upload_posts_where' );
$attachments = query_posts("what_to_show=posts&post_status=any&posts_per_page=10&paged=$paged");
echo "<ul id='upload-files'>\n";
if ( have_posts() ) : while ( have_posts() ) : the_post();
$href = wp_specialchars( add_query_arg( array(
'action' => 'inline' == $style ? 'view' : 'edit',
'ID' => get_the_ID())
), 1 );
echo "\t<li id='file-";
the_ID();
echo "' class='alignleft'>\n";
echo wp_upload_display( array(128,128), $href );
echo "\t</li>\n";
endwhile;
else :
echo "\t<li>" . __('There are no attachments to show.') . "</li>\n";
endif;
echo "</ul>\n\n";
echo "<form action='' id='browse-form'><input type='hidden' id='nonce-value' value='" . wp_create_nonce( 'inlineuploading' ) . "' /></form>\n";
break;
endswitch;
extract($old_vars);
}
function wp_upload_tab_browse_action() {
global $style;
if ( 'inline' == $style )
wp_enqueue_script('upload');
}
add_action( 'upload_files_browse', 'wp_upload_tab_browse_action' );
add_action( 'upload_files_browse-all', 'wp_upload_tab_browse_action' );
function wp_upload_admin_head() {
wp_admin_css( 'css/upload' );
if ( 'inline' == @$_GET['style'] ) {
echo "<style type='text/css' media='screen'>\n";
echo "\t#upload-menu { position: absolute; z-index: 2; }\n";
echo "\tbody > #upload-menu { position: fixed; }\n";
echo "\t#upload-content { top: 2em; }\n";
echo "\t#upload-file { position: absolute; top: 15px; }\n";
echo "</style>";
}
}
?>

282
wp-admin/includes/user.php Normal file
View File

@@ -0,0 +1,282 @@
<?php
// Creates a new user from the "Users" form using $_POST information.
function add_user() {
if ( func_num_args() ) { // The hackiest hack that ever did hack
global $current_user, $wp_roles;
$user_id = (int) func_get_arg( 0 );
if ( isset( $_POST['role'] ) ) {
if( $user_id != $current_user->id || $wp_roles->role_objects[$_POST['role']]->has_cap( 'edit_users' ) ) {
$user = new WP_User( $user_id );
$user->set_role( $_POST['role'] );
}
}
} else {
add_action( 'user_register', 'add_user' ); // See above
return edit_user();
}
}
function edit_user( $user_id = 0 ) {
global $current_user, $wp_roles, $wpdb;
if ( $user_id != 0 ) {
$update = true;
$user->ID = (int) $user_id;
$userdata = get_userdata( $user_id );
$user->user_login = $wpdb->escape( $userdata->user_login );
} else {
$update = false;
$user = '';
}
if ( isset( $_POST['user_login'] ))
$user->user_login = wp_specialchars( trim( $_POST['user_login'] ));
$pass1 = $pass2 = '';
if ( isset( $_POST['pass1'] ))
$pass1 = $_POST['pass1'];
if ( isset( $_POST['pass2'] ))
$pass2 = $_POST['pass2'];
if ( isset( $_POST['role'] ) && current_user_can( 'edit_users' ) ) {
if( $user_id != $current_user->id || $wp_roles->role_objects[$_POST['role']]->has_cap( 'edit_users' ))
$user->role = $_POST['role'];
}
if ( isset( $_POST['email'] ))
$user->user_email = wp_specialchars( trim( $_POST['email'] ));
if ( isset( $_POST['url'] ) ) {
$user->user_url = clean_url( trim( $_POST['url'] ));
$user->user_url = preg_match('/^(https?|ftps?|mailto|news|irc|gopher|nntp|feed|telnet):/is', $user->user_url) ? $user->user_url : 'http://'.$user->user_url;
}
if ( isset( $_POST['first_name'] ))
$user->first_name = wp_specialchars( trim( $_POST['first_name'] ));
if ( isset( $_POST['last_name'] ))
$user->last_name = wp_specialchars( trim( $_POST['last_name'] ));
if ( isset( $_POST['nickname'] ))
$user->nickname = wp_specialchars( trim( $_POST['nickname'] ));
if ( isset( $_POST['display_name'] ))
$user->display_name = wp_specialchars( trim( $_POST['display_name'] ));
if ( isset( $_POST['description'] ))
$user->description = trim( $_POST['description'] );
if ( isset( $_POST['jabber'] ))
$user->jabber = wp_specialchars( trim( $_POST['jabber'] ));
if ( isset( $_POST['aim'] ))
$user->aim = wp_specialchars( trim( $_POST['aim'] ));
if ( isset( $_POST['yim'] ))
$user->yim = wp_specialchars( trim( $_POST['yim'] ));
if ( !$update )
$user->rich_editing = 'true'; // Default to true for new users.
else if ( isset( $_POST['rich_editing'] ) )
$user->rich_editing = $_POST['rich_editing'];
else
$user->rich_editing = 'false';
$errors = new WP_Error();
/* checking that username has been typed */
if ( $user->user_login == '' )
$errors->add( 'user_login', __( '<strong>ERROR</strong>: Please enter a username.' ));
/* checking the password has been typed twice */
do_action_ref_array( 'check_passwords', array ( $user->user_login, & $pass1, & $pass2 ));
if (!$update ) {
if ( $pass1 == '' || $pass2 == '' )
$errors->add( 'pass', __( '<strong>ERROR</strong>: Please enter your password twice.' ));
} else {
if ((empty ( $pass1 ) && !empty ( $pass2 ) ) || (empty ( $pass2 ) && !empty ( $pass1 ) ) )
$errors->add( 'pass', __( "<strong>ERROR</strong>: you typed your new password only once." ));
}
/* Check for "\" in password */
if( strpos( " ".$pass1, "\\" ) )
$errors->add( 'pass', __( '<strong>ERROR</strong>: Passwords may not contain the character "\\".' ));
/* checking the password has been typed twice the same */
if ( $pass1 != $pass2 )
$errors->add( 'pass', __( '<strong>ERROR</strong>: Please type the same password in the two password fields.' ));
if (!empty ( $pass1 ))
$user->user_pass = $pass1;
if ( !$update && !validate_username( $user->user_login ) )
$errors->add( 'user_login', __( '<strong>ERROR</strong>: This username is invalid. Please enter a valid username.' ));
if (!$update && username_exists( $user->user_login ))
$errors->add( 'user_login', __( '<strong>ERROR</strong>: This username is already registered, please choose another one.' ));
/* checking e-mail address */
if ( empty ( $user->user_email ) ) {
$errors->add( 'user_email', __( "<strong>ERROR</strong>: please type an e-mail address" ));
} else
if (!is_email( $user->user_email ) ) {
$errors->add( 'user_email', __( "<strong>ERROR</strong>: the email address isn't correct" ));
}
if ( $errors->get_error_codes() )
return $errors;
if ( $update ) {
$user_id = wp_update_user( get_object_vars( $user ));
} else {
$user_id = wp_insert_user( get_object_vars( $user ));
wp_new_user_notification( $user_id );
}
return $user_id;
}
function get_author_user_ids() {
global $wpdb;
$level_key = $wpdb->prefix . 'user_level';
$query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value != '0'";
return $wpdb->get_col( $query );
}
function get_editable_authors( $user_id ) {
global $wpdb;
$editable = get_editable_user_ids( $user_id );
if( !$editable ) {
return false;
} else {
$editable = join(',', $editable);
$authors = $wpdb->get_results( "SELECT * FROM $wpdb->users WHERE ID IN ($editable) ORDER BY display_name" );
}
return apply_filters('get_editable_authors', $authors);
}
function get_editable_user_ids( $user_id, $exclude_zeros = true ) {
global $wpdb;
$user = new WP_User( $user_id );
if ( ! $user->has_cap('edit_others_posts') ) {
if ( $user->has_cap('edit_posts') || $exclude_zeros == false )
return array($user->id);
else
return false;
}
$level_key = $wpdb->prefix . 'user_level';
$query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'";
if ( $exclude_zeros )
$query .= " AND meta_value != '0'";
return $wpdb->get_col( $query );
}
function get_nonauthor_user_ids() {
global $wpdb;
$level_key = $wpdb->prefix . 'user_level';
$query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key' AND meta_value = '0'";
return $wpdb->get_col( $query );
}
function get_others_unpublished_posts($user_id, $type='any') {
global $wpdb;
$user = get_userdata( $user_id );
$level_key = $wpdb->prefix . 'user_level';
$editable = get_editable_user_ids( $user_id );
if ( in_array($type, array('draft', 'pending')) )
$type_sql = " post_status = '$type' ";
else
$type_sql = " ( post_status = 'draft' OR post_status = 'pending' ) ";
$dir = ( 'pending' == $type ) ? 'ASC' : 'DESC';
if( !$editable ) {
$other_unpubs = '';
} else {
$editable = join(',', $editable);
$other_unpubs = $wpdb->get_results("SELECT ID, post_title, post_author FROM $wpdb->posts WHERE post_type = 'post' AND $type_sql AND post_author IN ($editable) AND post_author != '$user_id' ORDER BY post_modified $dir");
}
return apply_filters('get_others_drafts', $other_unpubs);
}
function get_others_drafts($user_id) {
return get_others_unpublished_posts($user_id, 'draft');
}
function get_others_pending($user_id) {
return get_others_unpublished_posts($user_id, 'pending');
}
function get_user_to_edit( $user_id ) {
$user = new WP_User( $user_id );
$user->user_login = attribute_escape($user->user_login);
$user->user_email = attribute_escape($user->user_email);
$user->user_url = clean_url($user->user_url);
$user->first_name = attribute_escape($user->first_name);
$user->last_name = attribute_escape($user->last_name);
$user->display_name = attribute_escape($user->display_name);
$user->nickname = attribute_escape($user->nickname);
$user->aim = attribute_escape($user->aim);
$user->yim = attribute_escape($user->yim);
$user->jabber = attribute_escape($user->jabber);
$user->description = wp_specialchars($user->description);
return $user;
}
function get_users_drafts( $user_id ) {
global $wpdb;
$user_id = (int) $user_id;
$query = "SELECT ID, post_title FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'draft' AND post_author = $user_id ORDER BY post_modified DESC";
$query = apply_filters('get_users_drafts', $query);
return $wpdb->get_results( $query );
}
function wp_delete_user($id, $reassign = 'novalue') {
global $wpdb;
$id = (int) $id;
$user = get_userdata($id);
if ($reassign == 'novalue') {
$post_ids = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_author = $id");
if ($post_ids) {
foreach ($post_ids as $post_id)
wp_delete_post($post_id);
}
// Clean links
$wpdb->query("DELETE FROM $wpdb->links WHERE link_owner = $id");
} else {
$reassign = (int) $reassign;
$wpdb->query("UPDATE $wpdb->posts SET post_author = {$reassign} WHERE post_author = {$id}");
$wpdb->query("UPDATE $wpdb->links SET link_owner = {$reassign} WHERE link_owner = {$id}");
}
// FINALLY, delete user
do_action('delete_user', $id);
$wpdb->query("DELETE FROM $wpdb->users WHERE ID = $id");
$wpdb->query("DELETE FROM $wpdb->usermeta WHERE user_id = '$id'");
wp_cache_delete($id, 'users');
wp_cache_delete($user->user_login, 'userlogins');
return true;
}
function wp_revoke_user($id) {
$id = (int) $id;
$user = new WP_User($id);
$user->remove_all_caps();
}
?>

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

@@ -0,0 +1,73 @@
<?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_feed = apply_filters( 'dashboard_incoming_links_feed', 'http://blogsearch.google.com/blogsearch_feeds?hl=en&scoring=d&ie=utf-8&num=10&output=rss&partner=wordpress&q=link:' . trailingslashit( get_option('home') ) );
$more_link = apply_filters( 'dashboard_incoming_links_link', 'http://blogsearch.google.com/blogsearch?hl=en&scoring=d&partner=wordpress&q=link:' . trailingslashit( get_option('home') ) );
$rss = @fetch_rss( $rss_feed );
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="<?php echo htmlspecialchars( $more_link ); ?>"><?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(apply_filters( 'dashboard_primary_feed', 'http://wordpress.org/development/feed/' ));
if ( isset($rss->items) && 0 != count($rss->items) ) {
?>
<h3><?php echo apply_filters( 'dashboard_primary_title', __('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(apply_filters( 'dashboard_secondary_feed', 'http://planet.wordpress.org/feed/' ));
if ( isset($rss->items) && 0 != count($rss->items) ) {
?>
<h3><?php echo apply_filters( 'dashboard_secondary_title', __('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="<?php echo apply_filters( 'dashboard_secondary_link', 'http://planet.wordpress.org/' ); ?>"><?php _e('Read more &raquo;'); ?></a></p>
<?php
}
break;
}
?>

View File

@@ -1,35 +1,36 @@
<?php
require_once('admin.php');
$title = __('Dashboard');
require_once('admin.php');
function index_js() {
?>
<script type="text/javascript">
jQuery(function() {
jQuery('#incominglinks').load('index-extra.php?jax=incominglinks');
jQuery('#devnews').load('index-extra.php?jax=devnews');
jQuery('#planetnews').load('index-extra.php?jax=planetnews');
});
</script>
<?php
}
add_action( 'admin_head', 'index_js' );
wp_enqueue_script( 'jquery' );
$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('Dashboard'); ?></h2>
<h2><?php _e('Welcome to WordPress'); ?></h2>
<div id="zeitgeist">
<h2><?php _e('Latest Activity'); ?></h2>
<?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/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 wp_specialchars($item['title']); ?></a></li>
<?php } ?>
</ul>
</div>
<?php } ?>
<div id="incominglinks"></div>
<?php
$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");
@@ -38,32 +39,31 @@ $numcomments = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE commen
if ( $comments || $numcomments ) :
?>
<div>
<h3><?php _e('Comments'); ?> <a href="edit-comments.php" title="<?php _e('More comments...'); ?>">&raquo;</a></h3>
<h3><?php printf( __( 'Comments <a href="%s" title="More comments&#8230;">&raquo;</a>' ), 'edit-comments.php' ); ?></h3>
<?php if ( $numcomments ) : ?>
<p><strong><a href="moderation.php"><?php echo sprintf(__('Comments in moderation (%s)'), number_format($numcomments) ); ?> &raquo;</a></strong></p>
<p><strong><a href="moderation.php"><?php echo sprintf(__('Comments in moderation (%s) &raquo;'), number_format_i18n($numcomments) ); ?></a></strong></p>
<?php endif; ?>
</div>
<ul>
<?php
<?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 . '">' . get_the_title($comment->comment_post_ID) . '</a>');
edit_comment_link(__("Edit"), ' <small>(', ')</small>');
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_status = 'publish' AND post_date_gmt < '$today' ORDER BY post_date DESC LIMIT 5") ) :
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>
<h3><?php printf( __( 'Posts <a href="%s" title="More posts&#8230;">&raquo;</a>' ), 'edit.php' ); ?></h3>
<ul>
<?php
foreach ($recentposts as $post) {
@@ -79,8 +79,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' ORDER BY post_date ASC") ) :
?>
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>
@@ -90,7 +90,7 @@ 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; ?>
@@ -98,70 +98,43 @@ foreach ($scheduled as $post) {
<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 = wp_count_terms('category');
$numtags = wp_count_terms('post_tag');
$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_i18n($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_i18n($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_i18n($numcats), 'categories.php');
$tag_str = sprintf(__ngettext('%1$s tag', '%1$s tags', $numtags), number_format_i18n($numtags));
?>
<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 and %4$s.'), $post_str, $comm_str, $cat_str, $tag_str); ?></p>
</div>
<?php do_action('activity_box_end'); ?>
</div>
<h3><?php _e('Welcome to WordPress'); ?></h3>
<p><?php _e('Use these links to get started:'); ?></p>
<ul>
<li><a href="post.php"><?php _e('Write a post'); ?></a></li>
<li><a href="profile.php"><?php _e('Update your profile or change your password'); ?></a></li>
<li><a href="link-add.php"><?php _e('Add a link to your blogroll'); ?></a></li>
<li><a href="themes.php"><?php _e('Change your site&#8217;s look or theme'); ?></a></li>
<?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>
<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>
<p><?php _e("Below is the latest news from the official WordPress development blog, click on a title to read the full entry. If you need help with WordPress please see our <a href='http://codex.wordpress.org/'>great documentation</a> or if that doesn't help visit the <a href='http://wordpress.org/support/'>support forums</a>."); ?></p>
<?php
$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
}
}
?>
<div id="devnews"></div>
<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>

View File

@@ -1,715 +0,0 @@
<?php
require_once('admin.php');
header('Content-Type: text/html; charset=' . get_option('blog_charset'));
if (!current_user_can('upload_files'))
die(__('You do not have permission to upload files.'));
$wpvarstoreset = array('action', 'post', 'all', 'last', 'link', 'sort', 'start', 'imgtitle', 'descr', 'attachment');
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"];
}
}
}
$post = (int) $post;
$images_width = 1;
switch($action) {
case 'links':
// Do not pass GO.
break;
case 'delete':
if ( !current_user_can('edit_post', (int) $attachment) )
die(__('You are not allowed to delete this attachment.').' <a href="'.basename(__FILE__)."?post=$post&amp;all=$all&amp;action=upload\">".__('Go back').'</a>');
wp_delete_attachment($attachment);
header("Location: ".basename(__FILE__)."?post=$post&all=$all&action=view&start=$start");
die;
case 'save':
$overrides = array('action'=>'save');
$file = wp_handle_upload($_FILES['image'], $overrides);
if ( isset($file['error']) )
die($file['error'] . '<br /><a href="' . basename(__FILE__) . '?action=upload&post=' . $post . '">'.__('Back to Image Uploading').'</a>');
$url = $file['url'];
$type = $file['type'];
$file = $file['file'];
$filename = basename($file);
// Construct the attachment array
$attachment = array(
'post_title' => $imgtitle ? $imgtitle : $filename,
'post_content' => $descr,
'post_status' => 'attachment',
'post_parent' => $post,
'post_mime_type' => $type,
'guid' => $url
);
// Save the data
$id = wp_insert_attachment($attachment, $file, $post);
if ( preg_match('!^image/!', $attachment['post_mime_type']) ) {
// Generate the attachment's postmeta.
$imagesize = getimagesize($file);
$imagedata['width'] = $imagesize['0'];
$imagedata['height'] = $imagesize['1'];
list($uwidth, $uheight) = get_udims($imagedata['width'], $imagedata['height']);
$imagedata['hwstring_small'] = "height='$uheight' width='$uwidth'";
$imagedata['file'] = $file;
add_post_meta($id, '_wp_attachment_metadata', $imagedata);
if ( $imagedata['width'] * $imagedata['height'] < 3 * 1024 * 1024 ) {
if ( $imagedata['width'] > 128 && $imagedata['width'] >= $imagedata['height'] * 4 / 3 )
$thumb = wp_create_thumbnail($file, 128);
elseif ( $imagedata['height'] > 96 )
$thumb = wp_create_thumbnail($file, 96);
if ( @file_exists($thumb) ) {
$newdata = $imagedata;
$newdata['thumb'] = basename($thumb);
update_post_meta($id, '_wp_attachment_metadata', $newdata, $imagedata);
} else {
$error = $thumb;
}
}
} else {
add_post_meta($id, '_wp_attachment_metadata', array());
}
header("Location: ".basename(__FILE__)."?post=$post&all=$all&action=view&start=0");
die();
case 'upload':
$current_1 = ' class="current"';
$back = $next = false;
break;
case 'view':
// How many images do we show? How many do we query?
$num = 5;
$double = $num * 2;
if ( $post && (empty($all) || $all == 'false') ) {
$and_post = "AND post_parent = '$post'";
$current_2 = ' class="current"';
} else {
$current_3 = ' class="current"';
}
if (! current_user_can('edit_others_posts') )
$and_user = "AND post_author = " . $user_ID;
if ( $last )
$start = $wpdb->get_var("SELECT count(ID) FROM $wpdb->posts WHERE post_status = 'attachment' $and_user $and_post") - $num;
else
$start = (int) $start;
if ( $start < 0 )
$start = 0;
if ( '' == $sort )
$sort = "post_date_gmt DESC";
$attachments = $wpdb->get_results("SELECT ID, post_date, post_title, post_mime_type, guid FROM $wpdb->posts WHERE post_status = 'attachment' $and_type $and_post $and_user ORDER BY $sort LIMIT $start, $double", ARRAY_A);
if ( count($attachments) == 0 ) {
header("Location: ".basename(__FILE__)."?post=$post&action=upload");
die;
} elseif ( count($attachments) > $num ) {
$next = $start + count($attachments) - $num;
} else {
$next = false;
}
if ( $start > 0 ) {
$back = $start - $num;
if ( $back < 1 )
$back = '0';
} else {
$back = false;
}
$uwidth_sum = 0;
$html = '';
$popups = '';
$style = '';
$script = '';
if ( count($attachments) > 0 ) {
$attachments = array_slice( $attachments, 0, $num );
$__delete = __('Delete');
$__not_linked = __('Not Linked');
$__linked_to_page = __('Linked to Page');
$__linked_to_image = __('Linked to Image');
$__linked_to_file = __('Linked to File');
$__using_thumbnail = __('Using Thumbnail');
$__using_original = __('Using Original');
$__using_title = __('Using Title');
$__using_filename = __('Using Filename');
$__using_icon = __('Using Icon');
$__no_thumbnail = '<del>'.__('No Thumbnail').'</del>';
$__send_to_editor = __('Send to editor');
$__close = __('Close Options');
$__confirmdelete = __('Delete this file from the server?');
$__nothumb = __('There is no thumbnail associated with this photo.');
$script .= "notlinked = '$__not_linked';
linkedtoimage = '$__linked_to_image';
linkedtopage = '$__linked_to_page';
linkedtofile = '$__linked_to_file';
usingthumbnail = '$__using_thumbnail';
usingoriginal = '$__using_original';
usingtitle = '$__using_title';
usingfilename = '$__using_filename';
usingicon = '$__using_icon';
var aa = new Array();
var ab = new Array();
var imga = new Array();
var imgb = new Array();
var srca = new Array();
var srcb = new Array();
var title = new Array();
var filename = new Array();
var icon = new Array();
";
foreach ( $attachments as $key => $attachment ) {
$ID = $attachment['ID'];
$href = get_attachment_link($ID);
$meta = get_post_meta($ID, '_wp_attachment_metadata', true);
if (!is_array($meta)) {
$meta = get_post_meta($ID, 'imagedata', true); // Try 1.6 Alpha meta key
if (!is_array($meta)) {
$meta = array();
}
add_post_meta($ID, '_wp_attachment_metadata', $meta);
}
$attachment = array_merge($attachment, $meta);
$noscript = "<noscript>
<div class='caption'><a href=\"".basename(__FILE__)."?action=links&amp;attachment={$ID}&amp;post={$post}&amp;all={$all}&amp;start={$start}\">Choose Links</a></div>
</noscript>
";
$send_delete_cancel = "<a onclick=\"sendToEditor({$ID});return false;\" href=\"javascript:void()\">$__send_to_editor</a>
<a onclick=\"return confirm('$__confirmdelete')\" href=\"".basename(__FILE__)."?action=delete&amp;attachment={$ID}&amp;all=$all&amp;start=$start&amp;post=$post\">$__delete</a>
<a onclick=\"popup.style.display='none';return false;\" href=\"javascript:void()\">$__close</a>
";
$uwidth_sum += 128;
if ( preg_match('!^image/!', $attachment['post_mime_type'] ) ) {
$image = & $attachment;
if ( ($image['width'] > 128 || $image['height'] > 96) && !empty($image['thumb']) && file_exists(dirname($image['file']).'/'.$image['thumb']) ) {
$src = str_replace(basename($image['guid']), $image['thumb'], $image['guid']);
$script .= "srca[{$ID}] = '$src';
srcb[{$ID}] = '{$image['guid']}';
";
$thumb = 'true';
$thumbtext = $__using_thumbnail;
} else {
$src = $image['guid'];
$thumb = 'false';
$thumbtext = $__no_thumbnail;
}
list($image['uwidth'], $image['uheight']) = get_udims($image['width'], $image['height']);
$height_width = 'height="'.$image['uheight'].'" width="'.$image['uwidth'].'"';
$xpadding = (128 - $image['uwidth']) / 2;
$ypadding = (96 - $image['uheight']) / 2;
$style .= "#target{$ID} img { padding: {$ypadding}px {$xpadding}px; }\n";
$title = htmlentities($image['post_title'], ENT_QUOTES);
$script .= "aa[{$ID}] = '<a id=\"p{$ID}\" rel=\"attachment\" class=\"imagelink\" href=\"$href\" onclick=\"doPopup({$ID});return false;\" title=\"{$title}\">';
ab[{$ID}] = '<a class=\"imagelink\" href=\"{$image['guid']}\" onclick=\"doPopup({$ID});return false;\" title=\"{$title}\">';
imga[{$ID}] = '<img id=\"image{$ID}\" src=\"$src\" alt=\"{$title}\" $height_width />';
imgb[{$ID}] = '<img id=\"image{$ID}\" src=\"{$image['guid']}\" alt=\"{$title}\" $height_width />';
";
$html .= "<div id='target{$ID}' class='attwrap left'>
<div id='div{$ID}' class='imagewrap' onclick=\"doPopup({$ID});\">
<img id=\"image{$ID}\" src=\"$src\" alt=\"{$title}\" $height_width />
</div>
{$noscript}
</div>
";
$popups .= "<div id='popup{$ID}' class='popup'>
<a id=\"I{$ID}\" onclick=\"if($thumb)toggleImage({$ID});else alert('$__nothumb');return false;\" href=\"javascript:void()\">$thumbtext</a>
<a id=\"L{$ID}\" onclick=\"toggleLink({$ID});return false;\" href=\"javascript:void()\">$__not_linked</a>
{$send_delete_cancel}
</div>
";
} else {
$title = htmlentities($attachment['post_title'], ENT_QUOTES);
$filename = basename($attachment['guid']);
$icon = get_attachment_icon($ID);
$toggle_icon = "<a id=\"I{$ID}\" onclick=\"toggleOtherIcon({$ID});return false;\" href=\"javascript:void()\">$__using_title</a>";
$script .= "aa[{$ID}] = '<a id=\"p{$ID}\" rel=\"attachment\" href=\"$href\" onclick=\"doPopup({$ID});return false;\" title=\"{$title}\">';
ab[{$ID}] = '<a id=\"p{$ID}\" href=\"{$filename}\" onclick=\"doPopup({$ID});return false;\" title=\"{$title}\">';
title[{$ID}] = '{$title}';
filename[{$ID}] = '{$filename}';
icon[{$ID}] = '{$icon}';
";
$html .= "<div id='target{$ID}' class='attwrap left'>
<div id='div{$ID}' class='otherwrap usingtext' onmousedown=\"selectLink({$ID})\" onclick=\"doPopup({$ID});return false;\">
<a id=\"p{$ID}\" href=\"{$attachment['guid']}\" onmousedown=\"selectLink({$ID});\" onclick=\"return false;\">{$title}</a>
</div>
{$noscript}
</div>
";
$popups .= "<div id='popup{$ID}' class='popup'>
<div class='filetype'>".__('File Type:').' '.str_replace('/',"/\n",$attachment['post_mime_type'])."</div>
<a id=\"L{$ID}\" onclick=\"toggleOtherLink({$ID});return false;\" href=\"javascript:void()\">$__linked_to_file</a>
{$toggle_icon}
{$send_delete_cancel}
</div>
";
}
}
}
$images_width = $uwidth_sum + ( count($images) * 6 ) + 35;
break;
default:
die(__('This script was not meant to be called directly.'));
}
?>
<!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>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_settings('blog_charset'); ?>" />
<meta http-equiv="imagetoolbar" content="no" />
<script type="text/javascript">
/* Define any variables we'll need, such as alternate URLs. */
<?php echo $script; ?>
function htmldecode(st) {
o = document.getElementById('htmldecode');
if (! o) {
o = document.createElement("A");
o.id = "htmldecode"
}
o.innerHTML = st;
r = o.innerHTML;
return r;
}
function cancelUpload() {
o = document.getElementById('uploadForm');
o.method = 'GET';
o.action.value = 'view';
o.submit();
}
function doPopup(i) {
if ( popup )
popup.style.display = 'none';
target = document.getElementById('target'+i);
popup = document.getElementById('popup'+i);
popup.style.left = (target.offsetLeft) + 'px';
popup.style.top = (target.offsetTop) + 'px';
popup.style.display = 'block';
}
popup = false;
function selectLink(n) {
o=document.getElementById('div'+n);
if ( typeof document.body.createTextRange == 'undefined' || typeof win.tinyMCE == 'undefined' || win.tinyMCE.configs.length < 1 )
return;
r = document.body.createTextRange();
if ( typeof r != 'undefined' ) {
r.moveToElementText(o);
r.select();
}
}
function toggleLink(n) {
ol=document.getElementById('L'+n);
if ( ol.innerHTML == htmldecode(notlinked) ) {
ol.innerHTML = linkedtoimage;
} else if ( ol.innerHTML == htmldecode(linkedtoimage) ) {
ol.innerHTML = linkedtopage;
} else {
ol.innerHTML = notlinked;
}
updateImage(n);
}
function toggleOtherLink(n) {
ol=document.getElementById('L'+n);
if ( ol.innerHTML == htmldecode(linkedtofile) ) {
ol.innerHTML = linkedtopage;
} else {
ol.innerHTML = linkedtofile;
}
updateOtherIcon(n);
}
function toggleImage(n) {
oi = document.getElementById('I'+n);
if ( oi.innerHTML == htmldecode(usingthumbnail) ) {
oi.innerHTML = usingoriginal;
} else {
oi.innerHTML = usingthumbnail;
}
updateImage(n);
}
function toggleOtherIcon(n) {
od = document.getElementById('div'+n);
oi = document.getElementById('I'+n);
if ( oi.innerHTML == htmldecode(usingtitle) ) {
oi.innerHTML = usingfilename;
od.className = 'otherwrap usingtext';
} else if ( oi.innerHTML == htmldecode(usingfilename) && icon[n] != '' ) {
oi.innerHTML = usingicon;
od.className = 'otherwrap usingicon';
} else {
oi.innerHTML = usingtitle;
od.className = 'otherwrap usingtext';
}
updateOtherIcon(n);
}
function updateImage(n) {
od=document.getElementById('div'+n);
ol=document.getElementById('L'+n);
oi=document.getElementById('I'+n);
if ( oi.innerHTML == htmldecode(usingthumbnail) ) {
img = imga[n];
} else {
img = imgb[n];
}
if ( ol.innerHTML == htmldecode(linkedtoimage) ) {
od.innerHTML = ab[n]+img+'</a>';
} else if ( ol.innerHTML == htmldecode(linkedtopage) ) {
od.innerHTML = aa[n]+img+'</a>';
} else {
od.innerHTML = img;
}
}
function updateOtherIcon(n) {
od=document.getElementById('div'+n);
ol=document.getElementById('L'+n);
oi=document.getElementById('I'+n);
if ( oi.innerHTML == htmldecode(usingfilename) ) {
txt = filename[n];
} else if ( oi.innerHTML == htmldecode(usingicon) ) {
txt = icon[n];
} else {
txt = title[n];
}
if ( ol.innerHTML == htmldecode(linkedtofile) ) {
od.innerHTML = ab[n]+txt+'</a>';
} else if ( ol.innerHTML == htmldecode(linkedtopage) ) {
od.innerHTML = aa[n]+txt+'</a>';
} else {
od.innerHTML = txt;
}
}
var win = window.opener ? window.opener : window.dialogArguments;
if (!win) win = top;
tinyMCE = win.tinyMCE;
richedit = ( typeof tinyMCE == 'object' && tinyMCE.configs.length > 0 );
function sendToEditor(n) {
o = document.getElementById('div'+n);
h = o.innerHTML.replace(new RegExp('^\\s*(.*?)\\s*$', ''), '$1'); // Trim
h = h.replace(new RegExp(' (class|title|width|height|id|onclick|onmousedown)=([^\'"][^ ]*)( |/|>)', 'g'), ' $1="$2"$3'); // Enclose attribs in quotes
h = h.replace(new RegExp(' (width|height)=".*?"', 'g'), ''); // Drop size constraints
h = h.replace(new RegExp(' on(click|mousedown)="[^"]*"', 'g'), ''); // Drop menu events
h = h.replace(new RegExp('<(/?)A', 'g'), '<$1a'); // Lowercase tagnames
h = h.replace(new RegExp('<IMG', 'g'), '<img'); // Lowercase again
h = h.replace(new RegExp('(<img .+?")>', 'g'), '$1 />'); // XHTML
if ( richedit )
win.tinyMCE.execCommand('mceInsertContent', false, h);
else
win.edInsertContent(win.edCanvas, h);
}
</script>
<style type="text/css">
<?php if ( $action == 'links' ) : ?>
* html { overflow-x: hidden; }
<?php else : ?>
* html { overflow-y: hidden; }
<?php endif; ?>
body {
font: 13px "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana;
border: none;
margin: 0px;
height: 150px;
background: #dfe8f1;
}
form {
margin: 3px 2px 0px 6px;
}
#wrap {
clear: both;
padding: 0px;
width: 100%;
}
#images {
position: absolute;
clear: both;
margin: 0px;
padding: 15px 15px;
width: <?php echo $images_width; ?>px;
}
#images img {
background-color: rgb(209, 226, 239);
}
<?php echo $style; ?>
.attwrap, .attwrap * {
margin: 0px;
padding: 0px;
border: 0px;
}
.imagewrap {
margin-right: 5px;
overflow: hidden;
width: 128px;
}
.otherwrap {
margin-right: 5px;
overflow: hidden;
background-color: #f9fcfe;
}
.otherwrap a {
display: block;
}
.otherwrap a, .otherwrap a:hover, .otherwrap a:active, .otherwrap a:visited {
color: blue;
}
.usingicon {
padding: 0px;
height: 96px;
text-align: center;
width: 128px;
}
.usingtext {
padding: 3px;
height: 90px;
text-align: left;
width: 122px;
}
.filetype {
font-size: 80%;
border-bottom: 3px double #89a
}
.imagewrap, .imagewrap img, .imagewrap a, .imagewrap a img, .imagewrap a:hover img, .imagewrap a:visited img, .imagewrap a:active img {
text-decoration: none;
}
#upload-menu {
background: #fff;
margin: 0px;
padding: 0;
list-style: none;
height: 2em;
border-bottom: 1px solid #448abd;
width: 100%;
}
#upload-menu li {
float: left;
margin: 0 0 0 .75em;
}
#upload-menu a {
display: block;
padding: 5px;
text-decoration: none;
color: #000;
border-top: 3px solid #fff;
}
#upload-menu .current a {
background: #dfe8f1;
border-right: 2px solid #448abd;
}
#upload-menu a:hover {
background: #dfe8f1;
color: #000;
}
.tip {
color: rgb(68, 138, 189);
padding: 2px 1em;
}
.inactive {
color: #fff;
padding: 1px 3px;
}
.left {
float: left;
}
.right {
float: right;
}
.center {
text-align: center;
}
#upload-menu li.spacer {
margin-left: 40px;
}
#title, #descr {
width: 99%;
margin-top: 1px;
}
th {
width: 4.5em;
}
#descr {
height: 36px;
}
#buttons {
margin-top: 2px;
text-align: right;
}
.popup {
margin: 4px 4px;
padding: 1px;
position: absolute;
width: 114px;
display: none;
background-color: rgb(240, 240, 238);
border-top: 2px solid #fff;
border-right: 2px solid #ddd;
border-bottom: 2px solid #ddd;
border-left: 2px solid #fff;
text-align: center;
}
.imagewrap .popup {
opacity: .90;
filter:alpha(opacity=90);
}
.otherwrap .popup {
padding-top: 20px;
}
.popup a, .popup a:visited, .popup a:active {
background-color: transparent;
display: block;
width: 100%;
text-decoration: none;
color: #246;
}
.popup a:hover {
background-color: #fff;
color: #000;
}
.caption {
text-align: center;
}
#submit {
margin: 1px;
width: 99%;
}
#submit input, #submit input:focus {
background: url( images/fade-butt.png );
border: 3px double #999;
border-left-color: #ccc;
border-top-color: #ccc;
color: #333;
padding: 0.25em;
}
#submit input:active {
background: #f4f4f4;
border: 3px double #ccc;
border-left-color: #999;
border-top-color: #999;
}
.zerosize {
width: 0px;
height: 0px;
overflow: hidden;
position: absolute;
}
#links {
margin: 3px 8px;
line-height: 2em;
}
#links textarea {
width: 95%;
height: 4.5em;
}
</style>
</head>
<body>
<ul id="upload-menu">
<li<?php echo $current_1; ?>><a href="<?php echo basename(__FILE__); ?>?action=upload&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=<?php echo $start; ?>"><?php _e('Upload'); ?></a></li>
<?php if ( $attachments = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_parent = '$post'") ) { ?>
<li<?php echo $current_2; ?>><a href="<?php echo basename(__FILE__); ?>?action=view&amp;post=<?php echo $post; ?>&amp;all=false"><?php _e('Browse'); ?></a></li>
<?php } ?>
<?php if ($wpdb->get_var("SELECT count(ID) FROM $wpdb->posts WHERE post_status = 'attachment'")) { ?>
<li<?php echo $current_3; ?>><a href="<?php echo basename(__FILE__); ?>?action=view&amp;post=<?php echo $post; ?>&amp;all=true"><?php _e('Browse All'); ?></a></li>
<?php } ?>
<li> </li>
<?php if ( $action == 'view' ) { ?>
<?php if ( false !== $back ) : ?>
<li class="spacer"><a href="<?php echo basename(__FILE__); ?>?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=0" title="<?php _e('First'); ?>">|&laquo;</a></li>
<li><a href="<?php echo basename(__FILE__); ?>?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=<?php echo $back; ?>"">&laquo; <?php _e('Back'); ?></a></li>
<?php else : ?>
<li class="inactive spacer">|&laquo;</li>
<li class="inactive">&laquo; <?php _e('Back'); ?></li>
<?php endif; ?>
<?php if ( false !== $next ) : ?>
<li><a href="<?php echo basename(__FILE__); ?>?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;start=<?php echo $next; ?>"><?php _e('Next'); ?> &raquo;</a></li>
<li><a href="<?php echo basename(__FILE__); ?>?action=<?php echo $action; ?>&amp;post=<?php echo $post; ?>&amp;all=<?php echo $all; ?>&amp;last=true" title="<?php _e('Last'); ?>">&raquo;|</a></li>
<?php else : ?>
<li class="inactive"><?php _e('Next'); ?> &raquo;</li>
<li class="inactive">&raquo;|</li>
<?php endif; ?>
<?php } // endif not upload?>
</ul>
<?php if ( $action == 'view' ) : ?>
<div id="wrap">
<!--<div class="tip"><?php _e('You can drag and drop these items into your post. Click on one for more options.'); ?></div>-->
<div id="images">
<?php echo $html; ?>
<?php echo $popups; ?>
</div>
</div>
<?php elseif ( $action == 'upload' ) : ?>
<div class="tip"></div>
<form enctype="multipart/form-data" id="uploadForm" method="POST" action="<?php echo basename(__FILE__); ?>">
<table style="width:99%;">
<tr>
<th scope="row" align="right"><label for="upload"><?php _e('File:'); ?></label></th>
<td><input type="file" id="upload" name="image" /></td>
</tr>
<tr>
<th scope="row" align="right"><label for="title"><?php _e('Title:'); ?></label></th>
<td><input type="text" id="title" name="imgtitle" /></td>
</tr>
<tr>
<th scope="row" align="right"><label for="descr"><?php _e('Description:'); ?></label></th>
<td><input type="textarea" name="descr" id="descr" value="" /></td>
</tr>
<tr id="buttons">
<th></th>
<td>
<input type="hidden" name="action" value="save" />
<input type="hidden" name="post" value="<?php echo $post; ?>" />
<input type="hidden" name="all" value="<?php echo $all; ?>" />
<input type="hidden" name="start" value="<?php echo $start; ?>" />
<div id="submit">
<input type="submit" value="<?php _e('Upload'); ?>" />
<?php if ( !empty($all) ) : ?>
<input type="button" value="<?php _e('Cancel'); ?>" onclick="cancelUpload()" />
<?php endif; ?>
</div>
</td>
</tr>
</table>
</div>
</form>
<?php elseif ( $action == 'links' ) : ?>
<div id="links">
<?php the_attachment_links($attachment); ?>
</div>
<?php endif; ?>
</body>
</html>

View File

@@ -1,5 +1,5 @@
<?php
require_once('../wp-config.php');
require_once(dirname(dirname(__FILE__)).'/wp-config.php');
$debug = 0;
/**
@@ -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,15 +138,15 @@ $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>";
*/
?>
?>

View File

@@ -1,226 +1,113 @@
<?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/compat.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');
$schema = ( isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ) ? 'https://' : 'http://';
$guessurl = str_replace('/wp-admin/install.php?step=2', '', $schema . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) );
require_once('./includes/upgrade.php');
if (isset($_GET['step']))
$step = $_GET['step'];
else
$step = 0;
function display_header(){
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>
<?php wp_admin_css( 'css/install' ); ?>
</head>
<body>
<h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png" /></h1>
<?php
}//end function display_header();
// 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() ) {display_header(); 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:
case 1: // in case people are directly linking to this
display_header();
?>
<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>
<?php
break;
<h1><?php _e('Welcome'); ?></h1>
<p><?php printf(__('Welcome to the famous five minute WordPress installation process! You may want to browse the <a href="%s">ReadMe documentation</a> at your leisure. Otherwise, just fill in the information below and you\'ll be on your way to using the most extendable and powerful personal publishing platform in the world.'), '../readme.html'); ?></p>
<!--<h2 class="step"><a href="install.php?step=1"><?php _e('First Step &raquo;'); ?></a></h2>-->
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>
<h1><?php _e('Information needed'); ?></h1>
<p><?php _e("Please provide the following information. Don't worry, you can always change these settings 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('Blog 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>
<td>&nbsp;</td>
<td><label><input type="checkbox" name="blog_public" value="1" checked="checked" /> <?php _e('Allow my blog to appear in search engines like Google and Technorati.'); ?></label></td>
</tr>
</table>
<p><em><?php _e('Double-check your email address before continuing.'); ?></em></p>
<h2 class="step"><input type="submit" name="Submit" value="<?php _e('Install WordPress &raquo;'); ?>" /></h2>
</form>
<?php
break;
break;
case 2:
if ( !empty($wpdb->error) )
wp_die($wpdb->error->get_error_message());
// Fill in the data we gathered
$weblog_title = stripslashes($_POST['weblog_title']);
$admin_email = stripslashes($_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>
display_header();
// 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)) {
// TODO: poka-yoke
die(__("<strong>ERROR</strong>: you must provide an e-mail address"));
} else if (!is_email($admin_email)) {
// TODO: poka-yoke
die(__('<strong>ERROR</strong>: that isn\'t a valid e-mail address. E-mail addresses look like: <code>username@example.com</code>'));
}
<?php
flush();
// Set everything up
wp_cache_flush();
make_db_current_silent();
populate_options();
populate_roles();
update_option('blogname', $weblog_title);
update_option('admin_email', $admin_email);
// Now drop in some default links
$wpdb->query("INSERT INTO $wpdb->linkcategories (cat_id, cat_name) VALUES (1, '".$wpdb->escape(__('Blogroll'))."')");
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) 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, link_notes) 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, link_notes) VALUES ('http://boren.nu/', 'Ryan', 1, 'http://boren.nu/feed/', '');");
$wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) 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, link_notes) 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, link_notes) 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, link_notes) 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, category_count, category_description) VALUES ('0', '".$wpdb->escape(__('Uncategorized'))."', '".sanitize_title(__('Uncategorized'))."', '1', '')");
// 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 ('1', '$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 posts\' 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, to_ping, pinged, post_content_filtered) VALUES ('1', '$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', 'static', '', '', '')");
$wp_rewrite->flush_rules();
// Set up admin user
$random_password = substr(md5(uniqid(microtime())), 0, 6);
$display_name_array = explode('@', $admin_email);
$display_name = $display_name_array[0];
$wpdb->query("INSERT INTO $wpdb->users (ID, user_login, user_pass, user_email, user_registered, display_name, user_nicename) VALUES ( '1', 'admin', MD5('$random_password'), '$admin_email', NOW(), '$display_name', 'admin')");
$wpdb->query("INSERT INTO $wpdb->usermeta (user_id, meta_key, meta_value) VALUES ({$wpdb->insert_id}, '{$table_prefix}user_level', '10');");
$admin_caps = serialize(array('administrator' => true));
$wpdb->query("INSERT INTO $wpdb->usermeta (user_id, meta_key, meta_value) VALUES ({$wpdb->insert_id}, '{$table_prefix}capabilities', '{$admin_caps}');");
$message_headers = 'From: ' . $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);
@wp_mail($admin_email, __('New WordPress Blog'), $message, $message_headers);
wp_cache_flush();
$wpdb->show_errors();
$result = wp_install($weblog_title, 'admin', $admin_email, $public);
extract($result, EXTR_SKIP);
?>
<p><em><?php _e('Finished!'); ?></em></p>
<h1><?php _e('Success!'); ?></h1>
<p><?php printf(__('WordPress has been installed. 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.'); ?></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>
<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>
<p><?php _e('Were you expecting more steps? Sorry to disappoint. :)'); ?></p>
<?php
break;
break;
}
?>
<p id="footer"><?php _e('<a href="http://wordpress.org/">WordPress</a>, personal publishing platform.'); ?></p>
</body>
</html>
</html>

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

@@ -0,0 +1,11 @@
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;
// These multiple blank hidden inputs are needed: https://bugzilla.mozilla.org/show_bug.cgi?id=377815 , #3895 , #4664
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"/><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/js/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

@@ -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); };
}

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,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);
}
});

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

@@ -0,0 +1,10 @@
addLoadEvent(function(){linkcatList=new listMan('linkcategorychecklist');linkcatList.ajaxRespEl='jaxcat';linkcatList.topAdder=1;linkcatList.alt=0;linkcatList.showLink=0;});
addLoadEvent(newLinkCatAddIn);
function newLinkCatAddIn() {
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="' + linkcatL10n.add + '"/><input type="hidden"/><span id="howto">' + linkcatL10n.how + '</span></span>');
$('newcat').onkeypress = function(e) { return killSubmit("linkcatList.ajaxAdder('link-category','jaxcat');", e); };
$('catadd').onclick = function() { linkcatList.ajaxAdder('link-category', 'jaxcat'); };
}

295
wp-admin/js/upload.js Normal file
View File

@@ -0,0 +1,295 @@
addLoadEvent( function() {
theFileList = {
currentImage: {ID: 0},
nonce: '',
tab: '',
postID: 0,
toQueryParams: function(qryStrOrig) {
var params = new Object();
var qryStr = qryStrOrig;
var i = 0;
do {
params[qryStr.split("=")[0].replace(/&/, "")] = ( qryStr.split("=")[1] ) ? qryStr.split("=")[1].split(/&|$/)[0] : '';
qryStr = ( qryStr.split("=")[1] ) ? qryStr.split(qryStr.split("=")[1].split(/&|$/)[0])[1] : '';
i++;
}
while(i < (qryStrOrig.split("=").length - 1));
return params;
},
toQueryString: function(params) {
var qryStr = '';
for ( var key in params )
qryStr += key + '=' + params[key] + '&';
return qryStr;
},
initializeVars: function() {
this.urlData = document.location.href.split('?');
this.params = this.toQueryParams(this.urlData[1]);
this.postID = this.params['post_id'];
this.tab = this.params['tab'];
this.style = this.params['style'];
this.ID = this.params['ID'];
if ( !this.style )
this.style = 'default';
var nonceEl = jQuery('#nonce-value');
if ( nonceEl )
this.nonce = jQuery(nonceEl).val();
if ( this.ID ) {
this.grabImageData( this.ID );
this.imageView( this.ID );
}
},
initializeLinks: function() {
if ( this.ID )
return;
jQuery('a.file-link').each(function() {
var id = jQuery(this).attr('id').split('-').pop();
jQuery(this).attr('href','javascript:void(0)').click(function(e) {
theFileList[ 'inline' == theFileList.style ? 'imageView' : 'editView' ](id, e);
});
});
},
grabImageData: function(id) {
if ( id == this.currentImage.ID )
return;
var thumbEl = jQuery('#attachment-thumb-url-' + id);
if ( thumbEl ) {
this.currentImage.thumb = ( 0 == id ? '' : jQuery(thumbEl).val() );
this.currentImage.thumbBase = ( 0 == id ? '' : jQuery('#attachment-thumb-url-base-' + id).val() );
} else {
this.currentImage.thumb = false;
}
this.currentImage.src = ( 0 == id ? '' : jQuery('#attachment-url-' + id).val() );
this.currentImage.srcBase = ( 0 == id ? '' : jQuery('#attachment-url-base-' + id).val() );
this.currentImage.page = ( 0 == id ? '' : jQuery('#attachment-page-url-' + id).val() );
this.currentImage.title = ( 0 == id ? '' : jQuery('#attachment-title-' + id).val() );
this.currentImage.description = ( 0 == id ? '' : jQuery('#attachment-description-' + id).val() );
var widthEl = jQuery('#attachment-width-' + id);
if ( widthEl ) {
this.currentImage.width = ( 0 == id ? '' : jQuery(widthEl).val() );
this.currentImage.height = ( 0 == id ? '' : jQuery('#attachment-height-' + id).val() );
} else {
this.currentImage.width = false;
this.currentImage.height = false;
}
this.currentImage.isImage = ( 0 == id ? 0 : jQuery('#attachment-is-image-' + id).val() );
this.currentImage.ID = id;
},
imageView: function(id, e) {
this.prepView(id);
var h = '';
h += "<div id='upload-file'>"
if ( this.ID ) {
var params = this.params;
params.ID = '';
params.action = '';
h += "<a href='" + this.urlData[0] + '?' + this.toQueryString(params) + "'";
} else {
h += "<a href='#' onclick='return theFileList.cancelView();'";
}
h += " title='" + this.browseTitle + "' class='back'>" + this.back + "</a>";
h += "<div id='file-title'>"
if ( 0 == this.currentImage.isImage )
h += "<h2><a href='" + this.currentImage.srcBase + this.currentImage.src + "' onclick='return false;' title='" + this.directTitle + "'>" + this.currentImage.title + "</a></h2>";
else
h += "<h2>" + this.currentImage.title + "</h2>";
h += " &#8212; <span>";
h += "<a href='#' onclick='return theFileList.editView(" + id + ");'>" + this.edit + "</a>"
h += "</span>";
h += '</div>'
h += "<div id='upload-file-view' class='alignleft'>";
if ( 1 == this.currentImage.isImage ) {
h += "<a href='" + this.currentImage.srcBase + this.currentImage.src + "' onclick='return false;' title='" + this.directTitle + "'>";
h += "<img src='" + ( this.currentImage.thumb ? this.currentImage.thumb : this.currentImage.src ) + "' alt='" + this.currentImage.title + "' width='" + this.currentImage.width + "' height='" + this.currentImage.height + "' />";
h += "</a>";
} else
h += '&nbsp;';
h += "</div>";
h += "<form name='uploadoptions' id='uploadoptions' class='alignleft'>";
h += "<table>";
var display = [];
var checked = 'display-title';
if ( 1 == this.currentImage.isImage ) {
checked = 'display-full';
if ( this.currentImage.thumb ) {
display.push("<label for='display-thumb'><input type='radio' name='display' id='display-thumb' value='thumb' /> " + this.thumb + "</label><br />");
checked = 'display-thumb';
}
display.push("<label for='display-full'><input type='radio' name='display' id='display-full' value='full' /> " + this.full + "</label>");
} else if ( this.currentImage.thumb ) {
display.push("<label for='display-thumb'><input type='radio' name='display' id='display-thumb' value='thumb' /> " + this.icon + "</label>");
}
if ( display.length ) {
display.push("<br /><label for='display-title'><input type='radio' name='display' id='display-title' value='title' /> " + this.title + "</label>");
h += "<tr><th style='padding-bottom:.5em'>" + this.show + "</th><td style='padding-bottom:.5em'>";
jQuery(display).each( function() { h += this; } );
h += "</td></tr>";
}
h += "<tr><th>" + this.link + "</th><td>";
h += "<label for='link-file'><input type='radio' name='link' id='link-file' value='file' checked='checked'/> " + this.file + "</label><br />";
h += "<label for='link-page'><input type='radio' name='link' id='link-page' value='page' /> " + this.page + "</label><br />";
h += "<label for='link-none'><input type='radio' name='link' id='link-none' value='none' /> " + this.none + "</label>";
h += "</td></tr>";
h += "<tr><td colspan='2'><p class='submit'>";
h += "<input type='button' class='button' name='send' onclick='theFileList.sendToEditor(" + id + ")' value='" + this.editorText + "' />";
h += "</p></td></tr></table>";
h += "</form>";
h += "</div>";
jQuery(h).prependTo('#upload-content');
jQuery('#' + checked).attr('checked','checked');
if (e) return e.stopPropagation();
return false;
},
editView: function(id, e) {
this.prepView(id);
var h = '';
var action = 'upload.php?style=' + this.style + '&amp;tab=upload';
if ( this.postID )
action += '&amp;post_id=' + this.postID;
h += "<form id='upload-file' method='post' action='" + action + "'>";
if ( this.ID ) {
var params = this.params;
params.ID = '';
params.action = '';
h += "<a href='" + this.urlData[0] + '?' + this.toQueryString(params) + "'";
} else {
h += "<a href='#' onclick='return theFileList.cancelView();'";
}
h += " title='" + this.browseTitle + "' class='back'>" + this.back + "</a>";
h += "<div id='file-title'>"
if ( 0 == this.currentImage.isImage )
h += "<h2><a href='" + this.currentImage.srcBase + this.currentImage.src + "' onclick='return false;' title='" + this.directTitle + "'>" + this.currentImage.title + "</a></h2>";
else
h += "<h2>" + this.currentImage.title + "</h2>";
h += " &#8212; <span>";
h += "<a href='#' onclick='return theFileList.imageView(" + id + ");'>" + this.insert + "</a>";
h += "</span>";
h += '</div>'
h += "<div id='upload-file-view' class='alignleft'>";
if ( 1 == this.currentImage.isImage ) {
h += "<a href='" + this.currentImage.srcBase + this.currentImage.src + "' onclick='return false;' title='" + this.directTitle + "'>";
h += "<img src='" + ( this.currentImage.thumb ? this.currentImage.thumb : this.currentImage.src ) + "' alt='" + this.currentImage.title + "' width='" + this.currentImage.width + "' height='" + this.currentImage.height + "' />";
h += "</a>";
} else
h += '&nbsp;';
h += "</div>";
h += "<table><col /><col class='widefat' /><tr>";
h += "<th scope='row'><label for='url'>" + this.urlText + "</label></th>";
h += "<td><input type='text' id='url' class='readonly' value='" + this.currentImage.srcBase + this.currentImage.src + "' readonly='readonly' /></td>";
h += "</tr><tr>";
h += "<th scope='row'><label for='post_title'>" + this.title + "</label></th>";
h += "<td><input type='text' id='post_title' name='post_title' value='" + this.currentImage.title + "' /></td>";
h += "</tr><tr>";
h += "<th scope='row'><label for='post_content'>" + this.desc + "</label></th>";
h += "<td><textarea name='post_content' id='post_content'>" + this.currentImage.description + "</textarea></td>";
h += "</tr><tr id='buttons' class='submit'><td colspan='2'><input type='button' id='delete' name='delete' class='delete alignleft' value='" + this.deleteText + "' onclick='theFileList.deleteFile(" + id + ");' />";
h += "<input type='hidden' name='from_tab' value='" + this.tab + "' />";
h += "<input type='hidden' name='post_parent' value='" + parseInt(this.postID,10) + "' />";
h += "<input type='hidden' name='action' id='action-value' value='save' />";
h += "<input type='hidden' name='ID' value='" + id + "' />";
h += "<input type='hidden' name='_wpnonce' value='" + this.nonce + "' />";
h += "<div class='submit'><input type='submit' value='" + this.saveText + "' /></div>";
h += "</td></tr></table></form>";
jQuery(h).prependTo('#upload-content');
if (e) e.stopPropagation();
return false;
},
prepView: function(id) {
this.cancelView( true );
var filesEl = jQuery('#upload-files');
if ( filesEl )
filesEl.hide();
var navEl = jQuery('#current-tab-nav');
if ( navEl )
navEl.hide();
this.grabImageData(id);
},
cancelView: function( prep ) {
if ( !prep ) {
var filesEl = jQuery('#upload-files');
if ( filesEl )
jQuery(filesEl).show();
var navEl = jQuery('#current-tab-nav');
if ( navEl )
jQuery(navEl).show();
}
if ( !this.ID )
this.grabImageData(0);
var div = jQuery('#upload-file');
if ( div )
jQuery(div).remove();
return false;
},
sendToEditor: function(id) {
this.grabImageData(id);
var link = '';
var display = '';
var h = '';
link = jQuery('input[@type=radio][@name="link"][@checked]','#uploadoptions').val();
displayEl = jQuery('input[@type=radio][@name="display"][@checked]','#uploadoptions');
if ( displayEl )
display = jQuery(displayEl).val();
else if ( 1 == this.currentImage.isImage )
display = 'full';
if ( 'none' != link )
h += "<a href='" + ( 'file' == link ? ( this.currentImage.srcBase + this.currentImage.src ) : ( this.currentImage.page + "' rel='attachment wp-att-" + this.currentImage.ID ) ) + "' title='" + this.currentImage.title + "'>";
if ( display && 'title' != display )
h += "<img src='" + ( 'thumb' == display ? ( this.currentImage.thumbBase + this.currentImage.thumb ) : ( this.currentImage.srcBase + this.currentImage.src ) ) + "' alt='" + this.currentImage.title + "' />";
else
h += this.currentImage.title;
if ( 'none' != link )
h += "</a>";
var win = window.opener ? window.opener : window.dialogArguments;
if ( !win )
win = top;
tinyMCE = win.tinyMCE;
if ( typeof tinyMCE != 'undefined' && tinyMCE.getInstanceById('content') ) {
tinyMCE.selectedInstance.getWin().focus();
tinyMCE.execCommand('mceInsertContent', false, h);
} else
win.edInsertContent(win.edCanvas, h);
if ( !this.ID )
this.cancelView();
return false;
},
deleteFile: function(id) {
if ( confirm( this.confirmText.replace(/%title%/g, this.currentImage.title) ) ) {
jQuery('#action-value').attr('value','delete');
jQuery('#upload-file').submit();
return true;
}
return false;
}
};
for ( var property in uploadL10n )
theFileList[property] = uploadL10n[property];
theFileList.initializeVars();
theFileList.initializeLinks();
} );

21
wp-admin/js/users.js Normal file
View File

@@ -0,0 +1,21 @@
addLoadEvent(function() {
theListEls = document.getElementsByTagName('tbody');
theUserLists = new Array();
for ( var l = 0; l < theListEls.length; l++ ) {
if ( theListEls[l].id )
theUserLists[theListEls[l].id] = new listMan(theListEls[l].id);
}
addUserInputs = document.getElementById('adduser').getElementsByTagName('input');
for ( var i = 0; i < addUserInputs.length; i++ ) {
addUserInputs[i].onkeypress = function(e) { return killSubmit('addUserSubmit();', e); }
}
document.getElementById('addusersub').onclick = function(e) { return killSubmit('addUserSubmit();', e); }
}
);
function addUserSubmit() {
var roleEl = document.getElementById('role');
var role = roleEl.options[roleEl.selectedIndex].value;
if ( !theUserLists['role-' + role] ) return true;
return theUserLists['role-' + role].ajaxAdder('user', 'adduser');
}

View File

@@ -10,10 +10,10 @@ function GetElementsWithClassName(elementName, className) {
}
function meChecked() {
var undefined;
var eMe = document.getElementById('me');
if (eMe == undefined) return false;
else return eMe.checked;
var undefined;
var eMe = document.getElementById('me');
if (eMe == undefined) return false;
else return eMe.checked;
}
function upit() {
@@ -38,7 +38,7 @@ function blurry() {
var aInputs = document.getElementsByTagName('input');
for (var i = 0; i < aInputs.length; i++) {
for (var i = 0; i < aInputs.length; i++) {
aInputs[i].onclick = aInputs[i].onkeyup = upit;
}
}

View File

@@ -6,30 +6,18 @@ $this_file = 'link-manager.php';
$parent_file = 'link-manager.php';
$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"];
}
}
}
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[]'));
$xfn_js = true;
wp_enqueue_script( array('xfn', 'dbx-admin-key?pagenow=link.php') );
if ( current_user_can( 'manage_categories' ) )
wp_enqueue_script( 'ajaxlinkcat' );
require('admin-header.php');
?>
<?php if ($_GET['added']) : ?>
<?php if ($_GET['added'] && '' != $_POST['link_name']) : ?>
<div id="message" class="updated fade"><p><?php _e('Link added.'); ?></p></div>
<?php endif; ?>
@@ -38,8 +26,10 @@ require('admin-header.php');
include('edit-link-form.php');
?>
<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,455 +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';
$list_js = true;
$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 ( !current_user_can('manage_links') )
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 = $_POST['text_before_link'];
$text_after_link = $_POST['text_after_link'];
$text_after_all = $_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 ( !current_user_can('manage_links') )
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 ( !current_user_can('manage_links') )
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 = $_POST["text_before_link"];
$text_after_link = $_POST["text_after_link"];
$text_after_all = $_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 ( !current_user_can('manage_links') )
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 id="the-list" 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 id="link-category-<?php echo $row->cat_id; ?>" 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 deleteSomething( 'link category', <?php echo $row->cat_id . ", '" . sprintf(__("You are about to delete the &quot;%s&quot; link category.\\n&quot;Cancel&quot; to stop, &quot;OK&quot; to delete."), wp_specialchars($row->cat_name,1)); ?>' );" 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 id="ajax-response"></div>
</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>
<p><?php printf(__('Deleting a link category does not delete links from that category.<br />It will just set them back to the default category <strong>%s</strong>.'), get_linkcatname(1)) ?></p>
</div>
<?php
break;
} // end default
} // end case
?>
<?php include('admin-footer.php'); ?>

View File

@@ -0,0 +1,71 @@
<?php
require_once('admin.php');
wp_reset_vars(array('action', 'cat'));
switch($action) {
case 'addcat':
check_admin_referer('add-link-category');
if ( !current_user_can('manage_categories') )
wp_die(__('Cheatin&#8217; uh?'));
if ( wp_insert_term($_POST['name'], 'link_category', $_POST ) ) {
wp_redirect('edit-link-categories.php?message=1#addcat');
} else {
wp_redirect('edit-link-categories.php?message=4#addcat');
}
exit;
break;
case 'delete':
$cat_ID = (int) $_GET['cat_ID'];
check_admin_referer('delete-link-category_' . $cat_ID);
if ( !current_user_can('manage_categories') )
wp_die(__('Cheatin&#8217; uh?'));
$cat_name = get_term_field('name', $cat_ID, 'link_category');
// Don't delete the default cats.
if ( $cat_ID == get_option('default_link_category') )
wp_die(sprintf(__("Can&#8217;t delete the <strong>%s</strong> category: this is the default one"), $cat_name));
wp_delete_term($cat_ID, 'link_category');
wp_redirect('edit-link-categories.php?message=2');
exit;
break;
case 'edit':
$title = __('Categories');
$parent_file = 'link-manager.php';
$submenu_file = 'edit-link-categories.php';
require_once ('admin-header.php');
$cat_ID = (int) $_GET['cat_ID'];
$category = get_term_to_edit($cat_ID, 'link_category');
include('edit-link-category-form.php');
include('admin-footer.php');
exit;
break;
case 'editedcat':
$cat_ID = (int) $_POST['cat_ID'];
check_admin_referer('update-link-category_' . $cat_ID);
if ( !current_user_can('manage_categories') )
wp_die(__('Cheatin&#8217; uh?'));
if ( wp_update_term($cat_ID, 'link_category', $_POST) )
wp_redirect('edit-link-categories.php?message=3');
else
wp_redirect('edit-link-categories.php?message=5');
exit;
break;
}
?>

View File

@@ -12,20 +12,21 @@ if (!$step) $step = 0;
?>
<?php
switch ($step) {
case 0:
{
include_once('admin-header.php');
if ( !current_user_can('manage_links') )
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 enctype="multipart/form-data" action="link-import.php" method="post" name="blogroll">
<?php wp_nonce_field('import-bookmarks') ?>
<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><?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" />
@@ -39,94 +40,98 @@ switch ($step) {
<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");
$categories = get_terms('link_category', 'get=all');
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->term_id; ?>"><?php echo wp_specialchars(apply_filters('link_category', $category->name)); ?></option>
<?php
} // end foreach
?>
</select></p>
<p class="submit"><input type="submit" name="submit" value="<?php _e('Import OPML File') ?> &raquo;" /></p>
<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 ( !current_user_can('manage_links') )
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 != '' && $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);
$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 ( isset($file['error']) )
die($file['error']);
if ( isset($file['error']) )
wp_die($file['error']);
$url = $file['url'];
$opml_url = $file['file'];
$blogrolling = false;
}
$url = $file['url'];
$opml_url = $file['file'];
$blogrolling = false;
}
if (isset($opml_url) && $opml_url != '') {
$opml = wp_remote_fopen($opml_url);
include_once('link-parse-opml.php');
if ( isset($opml_url) && $opml_url != '' ) {
if ( $blogrolling === true ) {
$opml = wp_remote_fopen($opml_url);
} else {
$opml = file_get_contents($opml_url);
}
$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] = '';
// FIXME: Use wp_insert_link().
$query = "INSERT INTO $wpdb->links (link_url, link_name, link_target, link_category, link_description, link_owner, link_rss)
VALUES('{$urls[$i]}', '".$wpdb->escape($names[$i])."', '', $cat_id, '".$wpdb->escape($descriptions[$i])."', $user_ID, '{$feeds[$i]}')\n";
$result = $wpdb->query($query);
echo sprintf('<p>'.__('Inserted <strong>%s</strong>').'</p>', $names[$i]);
}
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
if ( ! $blogrolling )
@unlink($opml_url);
<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
include('admin-footer.php');
?>
?>

View File

@@ -1,253 +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';
$list_js = true;
include_once ("./admin-header.php");
$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[]');
if (!current_user_can('manage_links'))
wp_die(__("You do not have sufficient permissions to edit the links for this blog."));
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 ($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;
}
$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 ( !current_user_can('manage_links') )
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 FROM $wpdb->links LEFT JOIN $wpdb->users ON link_owner = ID WHERE link_id in ($all_links)");
foreach ($results as $row) {
$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 ( !current_user_can('manage_links') )
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 ( !current_user_can('manage_links') )
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();
add_link();
header('Location: ' . $_SERVER['HTTP_REFERER'] . '?added=true');
break;
} // end Add
case 'editlink':
{
check_admin_referer();
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;
$link_id = (int) $_POST['link_id'];
edit_link($link_id);
setcookie('links_show_cat_id_' . COOKIEHASH, $links_show_cat_id, time()+600);
wp_redirect($this_file);
break;
} // end Save
case 'Delete':
{
check_admin_referer();
if ( !current_user_can('manage_links') )
die (__("Cheatin' uh ?"));
$link_id = (int) $_GET['link_id'];
wp_delete_link($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_js = true;
include_once ('admin-header.php');
if ( !current_user_can('manage_links') )
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) )
die( __('Link not found.') );
include('edit-link-form.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 ( !current_user_can('manage_links') )
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">
<!--
@@ -265,181 +61,146 @@ 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 id="the-list-x" 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>
<?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
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 ";
<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_terms('link_category', "hide_empty=1");
$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->term_id . '"' . (($cat->term_id == $cat_id) ? " selected='selected'" : '') . '>' . sanitize_term_field('name', $cat->name, $cat->term_id, 'link_category', 'display') . "</option>\n";
$select_cat .= "</select>\n";
if (isset($cat_id) && ($cat_id != 'All')) {
$sql .= " WHERE link_category = $cat_id ";
}
$sql .= ' ORDER BY link_' . $sqlorderby;
$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";
// 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"';
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
$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 id="link-<?php echo $link->link_id; ?>" 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 ($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 deleteSomething( 'link', $link->link_id , '" . sprintf(__("You are about to delete the &quot;%s&quot; link to %s.\\n&quot;Cancel&quot; to stop, &quot;OK&quot; to delete."), wp_specialchars($link->link_name,1), wp_specialchars($link->link_url)) . '\' );" 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";
}
<?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 = sanitize_bookmark($link);
$link->link_name = attribute_escape($link->link_name);
$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 = get_term($category, 'link_category', OBJECT, 'display');
if ( is_wp_error( $cat ) )
echo $cat->get_error_message();
$cat_name = $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 id="ajax-response"></div>
</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 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:'); link_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,9 +55,9 @@ $xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!xml_parse($xml_parser, $opml, true)) {
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)));
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

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

@@ -0,0 +1,106 @@
<?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 ( ! current_user_can('manage_links') )
wp_die( __('You do not have sufficient permissions to edit the links for this blog.') );
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');
//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');
//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);
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( 'ajaxlinkcat' );
$parent_file = 'link-manager.php';
$submenu_file = 'link-manager.php';
$title = __('Edit Link');
$link_id = (int) $_GET['link_id'];
if (!$link = get_link_to_edit($link_id))
wp_die(__('Link not found.'));
include_once ('admin-header.php');
include ('edit-link-form.php');
include ('admin-footer.php');
break;
default :
break;
}
?>

View File

@@ -1,96 +0,0 @@
var listItems;
var reg_color = '#FFFFFF';
var alt_color = '#F1F1F1';
addLoadEvent(getListItems);
function deleteSomething( what, id, message ) {
what.replace('-', ' ');
if (!message) message = 'Are you sure you want to delete this ' + what + '?';
if ( confirm(message) ) {
return ajaxDelete( what.replace(' ', '-'), id );
} else {
return false;
}
}
function getResponseElement() {
var p = document.getElementById('ajax-response-p');
if (!p) {
p = document.createElement('p');
p.id = 'ajax-response-p';
document.getElementById('ajax-response').appendChild(p);
return p;
}
}
function ajaxDelete(what, id) {
ajaxDel = new sack('list-manipulation.php');
if ( ajaxDel.failed ) return true;
ajaxDel.myResponseElement = getResponseElement();
ajaxDel.method = 'POST';
ajaxDel.onLoading = function() { ajaxDel.myResponseElement.innerHTML = 'Sending Data...'; };
ajaxDel.onLoaded = function() { ajaxDel.myResponseElement.innerHTML = 'Data Sent...'; };
ajaxDel.onInteractive = function() { ajaxDel.myResponseElement.innerHTML = 'Processing Data...'; };
ajaxDel.onCompletion = function() { removeThisItem( what + '-' + id ); };
ajaxDel.runAJAX('action=delete-' + what + '&id=' + id);
return false;
}
function removeThisItem(id) {
var response = ajaxDel.response;
if ( isNaN(response) ) { alert(response); }
response = parseInt(response, 10);
if ( -1 == response ) { ajaxDel.myResponseElement.innerHTML = "You don't have permission to do that."; }
else if ( 0 == response ) { ajaxDel.myResponseElement.interHTML = "Something odd happened. Try refreshing the page? Either that or what you tried to delete never existed in the first place."; }
else if ( 1 == response ) {
theItem = document.getElementById(id);
Fat.fade_element(id,null,700,'#FF3333');
setTimeout('theItem.parentNode.removeChild(theItem)', 705);
var pos = getListPos(id);
listItems.splice(pos,1);
recolorList(pos);
ajaxDel.myResponseElement.parentNode.removeChild(ajaxDel.myResponseElement);
}
}
function getListPos(id) {
for (var i = 0; i < listItems.length; i++) {
if (id == listItems[i]) {
var pos = i;
break;
}
}
return pos;
}
function getListItems() {
if (list) return;
listItems = new Array();
var extra = false;
var list = document.getElementById('the-list');
if (!list) { var list = document.getElementById('the-list-x'); extra = true; }
if (list) {
var items = list.getElementsByTagName('tr');
if (!items[0]) { items = list.getElementsByTagName('li'); }
for (var i=0; i<items.length; i++) { listItems.push(items[i].id); }
if (extra) { listItems.splice(0,1); }
}
}
function recolorList(pos,dur,from) {
if (!pos) pos = 0;
if (!from) {
reg_from = alt_color;
alt_from = reg_color;
} else {
reg_from = from;
alt_from = from;
}
for (var i = pos; i < listItems.length; i++) {
if (i % 2 == 1) Fat.fade_element(listItems[i],null,dur,reg_from,reg_color);
else Fat.fade_element(listItems[i],null,dur,alt_from,alt_color);
}
}

View File

@@ -1,81 +0,0 @@
<?php
require_once('../wp-config.php');
require_once('admin-functions.php');
require_once('admin-db.php');
get_currentuserinfo();
if ( !is_user_logged_in() )
die('-1');
function grab_results() {
global $ajax_results;
$ajax_results = func_get_arg(0);
}
function get_out_now() { exit; }
add_action('shutdown', 'get_out_now', -1);
// check_admin_referer();
switch ( $_POST['action'] ) :
case 'delete-link' :
$id = (int) $_POST['id'];
if ( !current_user_can('manage_links') )
die ('-1');
if ( $wpdb->query("DELETE FROM $wpdb->links WHERE link_id = '$id'") )
die('1');
else die('0');
break;
case 'delete-post' :
case 'delete-page' :
$id = (int) $_POST['id'];
if ( !current_user_can('edit_post', $id) ) {
die('-1');
}
if ( wp_delete_post($id) ) {
die('1');
} else die('0');
break;
case 'delete-cat' :
if ( !current_user_can('manage_categories') )
die ('-1');
$id = (int) $_POST['id'];
$cat_name = get_catname($cat_ID);
if ( wp_delete_category($id) )
die('1');
else die('0');
break;
case 'delete-comment' :
$id = (int) $_POST['id'];
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-link-category' :
$id = (int) $_POST['id'];
if ( 1 == $id )
die('0');
if ( !current_user_can('manage_links') )
die('-1');
if ( $wpdb->query("DELETE FROM $wpdb->linkcategories WHERE cat_id='$id'") ) {
$wpdb->query("UPDATE $wpdb->links SET link_category=1 WHERE link_category='$id'");
die('1');
} else {
die('0');
}
break;
endswitch;
?>

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