109
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2 |
/* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
3 |
Plugin Name: Twitter Tools |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
4 |
Plugin URI: http://alexking.org/projects/wordpress |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
5 |
Description: A complete integration between your WordPress blog and <a href="http://twitter.com">Twitter</a>. Bring your tweets into your blog and pass your blog posts to Twitter. Show your tweets in your sidebar, and post tweets from your WordPress admin. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
6 |
Version: 2.0 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
7 |
Author: Alex King |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
8 |
Author URI: http://alexking.org |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
9 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
10 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
11 |
// Copyright (c) 2007-2009 Crowd Favorite, Ltd., Alex King. All rights reserved. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
12 |
// |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
13 |
// Released under the GPL license |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
14 |
// http://www.opensource.org/licenses/gpl-license.php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
15 |
// |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
16 |
// This is an add-on for WordPress |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
17 |
// http://wordpress.org/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
18 |
// |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
19 |
// Thanks to John Ford ( http://www.aldenta.com ) for his contributions. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
20 |
// Thanks to Dougal Campbell ( http://dougal.gunters.org ) for his contributions. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
21 |
// Thanks to Silas Sewell ( http://silas.sewell.ch ) for his contributions. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
22 |
// Thanks to Greg Grubbs for his contributions. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
23 |
// |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
24 |
// ********************************************************************** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
25 |
// This program is distributed in the hope that it will be useful, but |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
26 |
// WITHOUT ANY WARRANTY; without even the implied warranty of |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
27 |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
28 |
// ********************************************************************** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
29 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
30 |
load_plugin_textdomain('twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
31 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
32 |
if (!defined('PLUGINDIR')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
33 |
define('PLUGINDIR','wp-content/plugins'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
34 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
35 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
36 |
if (is_file(trailingslashit(ABSPATH.PLUGINDIR).'twitter-tools.php')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
37 |
define('AKTT_FILE', trailingslashit(ABSPATH.PLUGINDIR).'twitter-tools.php'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
38 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
39 |
else if (is_file(trailingslashit(ABSPATH.PLUGINDIR).'twitter-tools/twitter-tools.php')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
40 |
define('AKTT_FILE', trailingslashit(ABSPATH.PLUGINDIR).'twitter-tools/twitter-tools.php'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
41 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
42 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
43 |
if (!function_exists('wp_prototype_before_jquery')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
44 |
function wp_prototype_before_jquery( $js_array ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
45 |
if ( false === $jquery = array_search( 'jquery', $js_array ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
46 |
return $js_array; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
47 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
48 |
if ( false === $prototype = array_search( 'prototype', $js_array ) ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
49 |
return $js_array; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
50 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
51 |
if ( $prototype < $jquery ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
52 |
return $js_array; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
53 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
54 |
unset($js_array[$prototype]); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
55 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
56 |
array_splice( $js_array, $jquery, 0, 'prototype' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
57 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
58 |
return $js_array; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
59 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
60 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
61 |
add_filter( 'print_scripts_array', 'wp_prototype_before_jquery' ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
62 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
63 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
64 |
define('AKTT_API_POST_STATUS', 'http://twitter.com/statuses/update.json'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
65 |
define('AKTT_API_USER_TIMELINE', 'http://twitter.com/statuses/user_timeline.json'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
66 |
define('AKTT_API_STATUS_SHOW', 'http://twitter.com/statuses/show/###ID###.json'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
67 |
define('AKTT_PROFILE_URL', 'http://twitter.com/###USERNAME###'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
68 |
define('AKTT_STATUS_URL', 'http://twitter.com/###USERNAME###/statuses/###STATUS###'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
69 |
define('AKTT_HASHTAG_URL', 'http://search.twitter.com/search?q=###HASHTAG###'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
70 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
71 |
function aktt_install() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
72 |
global $wpdb; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
73 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
74 |
$aktt_install = new twitter_tools; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
75 |
$wpdb->aktt = $wpdb->prefix.'ak_twitter'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
76 |
$charset_collate = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
77 |
if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
78 |
if (!empty($wpdb->charset)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
79 |
$charset_collate .= " DEFAULT CHARACTER SET $wpdb->charset"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
80 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
81 |
if (!empty($wpdb->collate)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
82 |
$charset_collate .= " COLLATE $wpdb->collate"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
83 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
84 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
85 |
$result = $wpdb->query(" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
86 |
CREATE TABLE `$wpdb->aktt` ( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
87 |
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
88 |
`tw_id` VARCHAR( 255 ) NOT NULL , |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
89 |
`tw_text` VARCHAR( 255 ) NOT NULL , |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
90 |
`tw_reply_username` VARCHAR( 255 ) DEFAULT NULL , |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
91 |
`tw_reply_tweet` VARCHAR( 255 ) DEFAULT NULL , |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
92 |
`tw_created_at` DATETIME NOT NULL , |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
93 |
`modified` DATETIME NOT NULL , |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
94 |
INDEX ( `tw_id` ) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
95 |
) $charset_collate |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
96 |
"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
97 |
foreach ($aktt_install->options as $option) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
98 |
add_option('aktt_'.$option, $aktt_install->$option); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
99 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
100 |
add_option('aktt_update_hash', ''); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
101 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
102 |
register_activation_hook(AKTT_FILE, 'aktt_install'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
103 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
104 |
class twitter_tools { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
105 |
function twitter_tools() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
106 |
$this->options = array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
107 |
'twitter_username' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
108 |
, 'twitter_password' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
109 |
, 'create_blog_posts' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
110 |
, 'create_digest' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
111 |
, 'create_digest_weekly' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
112 |
, 'digest_daily_time' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
113 |
, 'digest_weekly_time' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
114 |
, 'digest_weekly_day' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
115 |
, 'digest_title' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
116 |
, 'digest_title_weekly' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
117 |
, 'blog_post_author' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
118 |
, 'blog_post_category' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
119 |
, 'blog_post_tags' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
120 |
, 'notify_twitter' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
121 |
, 'sidebar_tweet_count' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
122 |
, 'tweet_from_sidebar' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
123 |
, 'give_tt_credit' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
124 |
, 'exclude_reply_tweets' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
125 |
, 'tweet_prefix' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
126 |
, 'last_tweet_download' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
127 |
, 'doing_tweet_download' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
128 |
, 'doing_digest_post' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
129 |
, 'install_date' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
130 |
, 'js_lib' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
131 |
, 'digest_tweet_order' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
132 |
, 'notify_twitter_default' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
133 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
134 |
$this->twitter_username = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
135 |
$this->twitter_password = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
136 |
$this->create_blog_posts = '0'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
137 |
$this->create_digest = '0'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
138 |
$this->create_digest_weekly = '0'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
139 |
$this->digest_daily_time = null; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
140 |
$this->digest_weekly_time = null; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
141 |
$this->digest_weekly_day = null; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
142 |
$this->digest_title = __("Twitter Updates for %s", 'twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
143 |
$this->digest_title_weekly = __("Twitter Weekly Updates for %s", 'twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
144 |
$this->blog_post_author = '1'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
145 |
$this->blog_post_category = '1'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
146 |
$this->blog_post_tags = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
147 |
$this->notify_twitter = '0'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
148 |
$this->notify_twitter_default = '0'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
149 |
$this->sidebar_tweet_count = '3'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
150 |
$this->tweet_from_sidebar = '1'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
151 |
$this->give_tt_credit = '1'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
152 |
$this->exclude_reply_tweets = '0'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
153 |
$this->install_date = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
154 |
$this->js_lib = 'jquery'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
155 |
$this->digest_tweet_order = 'ASC'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
156 |
$this->tweet_prefix = 'New blog post'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
157 |
// not included in options |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
158 |
$this->update_hash = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
159 |
$this->tweet_format = $this->tweet_prefix.': %s %s'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
160 |
$this->last_digest_post = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
161 |
$this->last_tweet_download = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
162 |
$this->doing_tweet_download = '0'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
163 |
$this->doing_digest_post = '0'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
164 |
$this->version = '1.6'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
165 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
166 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
167 |
function upgrade() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
168 |
global $wpdb; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
169 |
$wpdb->aktt = $wpdb->prefix.'ak_twitter'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
170 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
171 |
$col_data = $wpdb->get_results(" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
172 |
SHOW COLUMNS FROM $wpdb->aktt |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
173 |
"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
174 |
$cols = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
175 |
foreach ($col_data as $col) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
176 |
$cols[] = $col->Field; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
177 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
178 |
// 1.2 schema upgrade |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
179 |
if (!in_array('tw_reply_username', $cols)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
180 |
$wpdb->query(" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
181 |
ALTER TABLE `$wpdb->aktt` |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
182 |
ADD `tw_reply_username` VARCHAR( 255 ) DEFAULT NULL |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
183 |
AFTER `tw_text` |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
184 |
"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
185 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
186 |
if (!in_array('tw_reply_tweet', $cols)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
187 |
$wpdb->query(" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
188 |
ALTER TABLE `$wpdb->aktt` |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
189 |
ADD `tw_reply_tweet` VARCHAR( 255 ) DEFAULT NULL |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
190 |
AFTER `tw_reply_username` |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
191 |
"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
192 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
193 |
$this->upgrade_default_tweet_prefix(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
194 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
195 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
196 |
function upgrade_default_tweet_prefix() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
197 |
$prefix = get_option('aktt_tweet_prefix'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
198 |
if (empty($prefix)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
199 |
$aktt_defaults = new twitter_tools; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
200 |
update_option('aktt_tweet_prefix', $aktt_defaults->tweet_prefix); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
201 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
202 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
203 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
204 |
function get_settings() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
205 |
foreach ($this->options as $option) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
206 |
$value = get_option('aktt_'.$option); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
207 |
if ($option != 'tweet_prefix' || !empty($value)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
208 |
$this->$option = $value; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
209 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
210 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
211 |
$this->tweet_format = $this->tweet_prefix.': %s %s'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
212 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
213 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
214 |
// puts post fields into object propps |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
215 |
function populate_settings() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
216 |
foreach ($this->options as $option) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
217 |
$value = stripslashes($_POST['aktt_'.$option]); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
218 |
if (isset($_POST['aktt_'.$option]) && ($option != 'tweet_prefix' || !empty($value))) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
219 |
$this->$option = $value; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
220 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
221 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
222 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
223 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
224 |
// puts object props into wp option storage |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
225 |
function update_settings() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
226 |
if (current_user_can('manage_options')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
227 |
$this->sidebar_tweet_count = intval($this->sidebar_tweet_count); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
228 |
if ($this->sidebar_tweet_count == 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
229 |
$this->sidebar_tweet_count = '3'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
230 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
231 |
foreach ($this->options as $option) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
232 |
update_option('aktt_'.$option, $this->$option); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
233 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
234 |
if (empty($this->install_date)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
235 |
update_option('aktt_install_date', current_time('mysql')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
236 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
237 |
$this->initiate_digests(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
238 |
$this->upgrade(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
239 |
$this->upgrade_default_tweet_prefix(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
240 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
241 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
242 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
243 |
// figure out when the next weekly and daily digests will be |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
244 |
function initiate_digests() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
245 |
$next = ($this->create_digest) ? $this->calculate_next_daily_digest() : null; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
246 |
$this->next_daily_digest = $next; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
247 |
update_option('aktt_next_daily_digest', $next); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
248 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
249 |
$next = ($this->create_digest_weekly) ? $this->calculate_next_weekly_digest() : null; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
250 |
$this->next_weekly_digest = $next; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
251 |
update_option('aktt_next_weekly_digest', $next); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
252 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
253 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
254 |
function calculate_next_daily_digest() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
255 |
$optionDate = strtotime($this->digest_daily_time); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
256 |
$hour_offset = date("G", $optionDate); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
257 |
$minute_offset = date("i", $optionDate); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
258 |
$next = mktime($hour_offset, $minute_offset, 0); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
259 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
260 |
// may have to move to next day |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
261 |
$now = time(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
262 |
while($next < $now) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
263 |
$next += 60 * 60 * 24; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
264 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
265 |
return $next; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
266 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
267 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
268 |
function calculate_next_weekly_digest() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
269 |
$optionDate = strtotime($this->digest_weekly_time); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
270 |
$hour_offset = date("G", $optionDate); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
271 |
$minute_offset = date("i", $optionDate); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
272 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
273 |
$current_day_of_month = date("j"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
274 |
$current_day_of_week = date("w"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
275 |
$current_month = date("n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
276 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
277 |
// if this week's day is less than today, go for next week |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
278 |
$nextDay = $current_day_of_month - $current_day_of_week + $this->digest_weekly_day; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
279 |
$next = mktime($hour_offset, $minute_offset, 0, $current_month, $nextDay); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
280 |
if ($this->digest_weekly_day <= $current_day_of_week) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
281 |
$next = strtotime('+1 week', $next); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
282 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
283 |
return $next; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
284 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
285 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
286 |
function ping_digests() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
287 |
// still busy |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
288 |
if (get_option('aktt_doing_digest_post') == '1') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
289 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
290 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
291 |
// check all the digest schedules |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
292 |
if ($this->create_digest == 1) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
293 |
$this->ping_digest('aktt_next_daily_digest', 'aktt_last_digest_post', $this->digest_title, 60 * 60 * 24 * 1); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
294 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
295 |
if ($this->create_digest_weekly == 1) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
296 |
$this->ping_digest('aktt_next_weekly_digest', 'aktt_last_digest_post_weekly', $this->digest_title_weekly, 60 * 60 * 24 * 7); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
297 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
298 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
299 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
300 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
301 |
function ping_digest($nextDateField, $lastDateField, $title, $defaultDuration) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
302 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
303 |
$next = get_option($nextDateField); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
304 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
305 |
if ($next) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
306 |
$next = $this->validateDate($next); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
307 |
$rightNow = time(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
308 |
if ($rightNow >= $next) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
309 |
$start = get_option($lastDateField); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
310 |
$start = $this->validateDate($start, $rightNow - $defaultDuration); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
311 |
if ($this->do_digest_post($start, $next, $title)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
312 |
update_option($lastDateField, $rightNow); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
313 |
update_option($nextDateField, $next + $defaultDuration); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
314 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
315 |
update_option($lastDateField, null); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
316 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
317 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
318 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
319 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
320 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
321 |
function validateDate($in, $default = 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
322 |
if (!is_numeric($in)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
323 |
// try to convert what they gave us into a date |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
324 |
$out = strtotime($in); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
325 |
// if that doesn't work, return the default |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
326 |
if (!is_numeric($out)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
327 |
return $default; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
328 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
329 |
return $out; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
330 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
331 |
return $in; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
332 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
333 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
334 |
function do_digest_post($start, $end, $title) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
335 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
336 |
if (!$start || !$end) return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
337 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
338 |
// flag us as busy |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
339 |
update_option('aktt_doing_digest_post', '1'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
340 |
remove_action('publish_post', 'aktt_notify_twitter', 99); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
341 |
remove_action('publish_post', 'aktt_store_post_options', 1, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
342 |
remove_action('save_post', 'aktt_store_post_options', 1, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
343 |
// see if there's any tweets in the time range |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
344 |
global $wpdb; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
345 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
346 |
$startGMT = gmdate("Y-m-d H:i:s", $start); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
347 |
$endGMT = gmdate("Y-m-d H:i:s", $end); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
348 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
349 |
// build sql |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
350 |
$conditions = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
351 |
$conditions[] = "tw_created_at >= '{$startGMT}'"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
352 |
$conditions[] = "tw_created_at <= '{$endGMT}'"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
353 |
$conditions[] = "tw_text NOT LIKE '$this->tweet_prefix%'"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
354 |
if ($this->exclude_reply_tweets) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
355 |
$conditions[] = "tw_text NOT LIKE '@%'"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
356 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
357 |
$where = implode(' AND ', $conditions); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
358 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
359 |
$sql = " |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
360 |
SELECT * FROM {$wpdb->aktt} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
361 |
WHERE {$where} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
362 |
GROUP BY tw_id |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
363 |
ORDER BY tw_created_at {$this->digest_tweet_order} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
364 |
"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
365 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
366 |
$tweets = $wpdb->get_results($sql); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
367 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
368 |
if (count($tweets) > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
369 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
370 |
$tweets_to_post = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
371 |
foreach ($tweets as $data) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
372 |
$tweet = new aktt_tweet; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
373 |
$tweet->tw_text = $data->tw_text; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
374 |
$tweet->tw_reply_tweet = $data->tw_reply_tweet; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
375 |
if (!$tweet->tweet_is_post_notification() || ($tweet->tweet_is_reply() && $this->exclude_reply_tweets)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
376 |
$tweets_to_post[] = $data; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
377 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
378 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
379 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
380 |
$tweets_to_post = apply_filters('aktt_tweets_to_digest_post', $tweets_to_post); // here's your chance to alter the tweet list that will be posted as the digest |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
381 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
382 |
if (count($tweets_to_post) > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
383 |
$content = '<ul class="aktt_tweet_digest">'."\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
384 |
foreach ($tweets_to_post as $tweet) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
385 |
$content .= ' <li>'.aktt_tweet_display($tweet, 'absolute').'</li>'."\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
386 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
387 |
$content .= '</ul>'."\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
388 |
if ($this->give_tt_credit == '1') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
389 |
$content .= '<p class="aktt_credit">'.__('Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a>', 'twitter-tools').'</p>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
390 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
391 |
$post_data = array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
392 |
'post_content' => $wpdb->escape($content), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
393 |
'post_title' => $wpdb->escape(sprintf($title, date('Y-m-d'))), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
394 |
'post_date' => date('Y-m-d H:i:s', $end), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
395 |
'post_category' => array($this->blog_post_category), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
396 |
'post_status' => 'publish', |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
397 |
'post_author' => $wpdb->escape($this->blog_post_author) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
398 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
399 |
$post_data = apply_filters('aktt_digest_post_data', $post_data); // last chance to alter the digest content |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
400 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
401 |
$post_id = wp_insert_post($post_data); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
402 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
403 |
add_post_meta($post_id, 'aktt_tweeted', '1', true); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
404 |
wp_set_post_tags($post_id, $this->blog_post_tags); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
405 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
406 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
407 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
408 |
add_action('publish_post', 'aktt_notify_twitter', 99); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
409 |
add_action('publish_post', 'aktt_store_post_options', 1, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
410 |
add_action('save_post', 'aktt_store_post_options', 1, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
411 |
update_option('aktt_doing_digest_post', '0'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
412 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
413 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
414 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
415 |
function tweet_download_interval() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
416 |
return 600; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
417 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
418 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
419 |
function do_tweet($tweet = '') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
420 |
if (empty($this->twitter_username) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
421 |
|| empty($this->twitter_password) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
422 |
|| empty($tweet) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
423 |
|| empty($tweet->tw_text) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
424 |
) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
425 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
426 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
427 |
$tweet = apply_filters('aktt_do_tweet', $tweet); // return false here to not tweet |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
428 |
if (!$tweet) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
429 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
430 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
431 |
require_once(ABSPATH.WPINC.'/class-snoopy.php'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
432 |
$snoop = new Snoopy; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
433 |
$snoop->agent = 'Twitter Tools http://alexking.org/projects/wordpress'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
434 |
$snoop->rawheaders = array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
435 |
'X-Twitter-Client' => 'Twitter Tools' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
436 |
, 'X-Twitter-Client-Version' => $this->version |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
437 |
, 'X-Twitter-Client-URL' => 'http://alexking.org/projects/wordpress/twitter-tools.xml' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
438 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
439 |
$snoop->user = $this->twitter_username; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
440 |
$snoop->pass = $this->twitter_password; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
441 |
$snoop->submit( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
442 |
AKTT_API_POST_STATUS |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
443 |
, array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
444 |
'status' => $tweet->tw_text |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
445 |
, 'source' => 'twittertools' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
446 |
) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
447 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
448 |
if (strpos($snoop->response_code, '200')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
449 |
update_option('aktt_last_tweet_download', strtotime('-28 minutes')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
450 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
451 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
452 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
453 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
454 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
455 |
function do_blog_post_tweet($post_id = 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
456 |
// this is only called on the publish_post hook |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
457 |
if ($this->notify_twitter == '0' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
458 |
|| $post_id == 0 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
459 |
|| get_post_meta($post_id, 'aktt_tweeted', true) == '1' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
460 |
|| get_post_meta($post_id, 'aktt_notify_twitter', true) == 'no' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
461 |
) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
462 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
463 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
464 |
$post = get_post($post_id); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
465 |
// check for an edited post before TT was installed |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
466 |
if ($post->post_date <= $this->install_date) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
467 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
468 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
469 |
// check for private posts |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
470 |
if ($post->post_status == 'private') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
471 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
472 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
473 |
$tweet = new aktt_tweet; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
474 |
$url = apply_filters('tweet_blog_post_url', get_permalink($post_id)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
475 |
$tweet->tw_text = sprintf(__($this->tweet_format, 'twitter-tools'), @html_entity_decode($post->post_title, ENT_COMPAT, 'UTF-8'), $url); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
476 |
$tweet = apply_filters('aktt_do_blog_post_tweet', $tweet, $post); // return false here to not tweet |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
477 |
if (!$tweet) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
478 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
479 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
480 |
$this->do_tweet($tweet); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
481 |
add_post_meta($post_id, 'aktt_tweeted', '1', true); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
482 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
483 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
484 |
function do_tweet_post($tweet) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
485 |
global $wpdb; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
486 |
remove_action('publish_post', 'aktt_notify_twitter', 99); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
487 |
$data = array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
488 |
'post_content' => $wpdb->escape(aktt_make_clickable($tweet->tw_text)) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
489 |
, 'post_title' => $wpdb->escape(trim_add_elipsis($tweet->tw_text, 30)) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
490 |
, 'post_date' => get_date_from_gmt(date('Y-m-d H:i:s', $tweet->tw_created_at)) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
491 |
, 'post_category' => array($this->blog_post_category) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
492 |
, 'post_status' => 'publish' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
493 |
, 'post_author' => $wpdb->escape($this->blog_post_author) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
494 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
495 |
$data = apply_filters('aktt_do_tweet_post', $data, $tweet); // return false here to not make a blog post |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
496 |
if (!$data) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
497 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
498 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
499 |
$post_id = wp_insert_post($data); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
500 |
add_post_meta($post_id, 'aktt_twitter_id', $tweet->tw_id, true); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
501 |
wp_set_post_tags($post_id, $this->blog_post_tags); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
502 |
add_action('publish_post', 'aktt_notify_twitter', 99); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
503 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
504 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
505 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
506 |
class aktt_tweet { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
507 |
function aktt_tweet( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
508 |
$tw_id = '' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
509 |
, $tw_text = '' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
510 |
, $tw_created_at = '' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
511 |
, $tw_reply_username = null |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
512 |
, $tw_reply_tweet = null |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
513 |
) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
514 |
$this->id = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
515 |
$this->modified = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
516 |
$this->tw_created_at = $tw_created_at; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
517 |
$this->tw_text = $tw_text; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
518 |
$this->tw_reply_username = $tw_reply_username; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
519 |
$this->tw_reply_tweet = $tw_reply_tweet; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
520 |
$this->tw_id = $tw_id; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
521 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
522 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
523 |
function twdate_to_time($date) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
524 |
$parts = explode(' ', $date); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
525 |
$date = strtotime($parts[1].' '.$parts[2].', '.$parts[5].' '.$parts[3]); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
526 |
return $date; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
527 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
528 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
529 |
function tweet_post_exists() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
530 |
global $wpdb; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
531 |
$test = $wpdb->get_results(" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
532 |
SELECT * |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
533 |
FROM $wpdb->postmeta |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
534 |
WHERE meta_key = 'aktt_twitter_id' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
535 |
AND meta_value = '".$wpdb->escape($this->tw_id)."' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
536 |
"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
537 |
if (count($test) > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
538 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
539 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
540 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
541 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
542 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
543 |
function tweet_is_post_notification() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
544 |
global $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
545 |
if (substr($this->tw_text, 0, strlen($aktt->tweet_prefix)) == $aktt->tweet_prefix) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
546 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
547 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
548 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
549 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
550 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
551 |
function tweet_is_reply() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
552 |
// Twitter data changed - users still expect anything starting with @ is a reply |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
553 |
// return !empty($this->tw_reply_tweet); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
554 |
return (substr($this->tw_text, 0, 1) == '@'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
555 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
556 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
557 |
function add() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
558 |
global $wpdb, $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
559 |
$wpdb->query(" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
560 |
INSERT |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
561 |
INTO $wpdb->aktt |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
562 |
( tw_id |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
563 |
, tw_text |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
564 |
, tw_reply_username |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
565 |
, tw_reply_tweet |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
566 |
, tw_created_at |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
567 |
, modified |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
568 |
) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
569 |
VALUES |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
570 |
( '".$wpdb->escape($this->tw_id)."' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
571 |
, '".$wpdb->escape($this->tw_text)."' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
572 |
, '".$wpdb->escape($this->tw_reply_username)."' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
573 |
, '".$wpdb->escape($this->tw_reply_tweet)."' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
574 |
, '".date('Y-m-d H:i:s', $this->tw_created_at)."' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
575 |
, NOW() |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
576 |
) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
577 |
"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
578 |
do_action('aktt_add_tweet', $this); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
579 |
if ($aktt->create_blog_posts == '1' && !$this->tweet_post_exists() && !$this->tweet_is_post_notification() && (!$aktt->exclude_reply_tweets || !$this->tweet_is_reply())) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
580 |
$aktt->do_tweet_post($this); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
581 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
582 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
583 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
584 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
585 |
function aktt_api_status_show_url($id) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
586 |
return str_replace('###ID###', $id, AKTT_API_STATUS_SHOW); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
587 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
588 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
589 |
function aktt_profile_url($username) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
590 |
return str_replace('###USERNAME###', $username, AKTT_PROFILE_URL); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
591 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
592 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
593 |
function aktt_profile_link($username, $prefix = '', $suffix = '') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
594 |
return $prefix.'<a href="'.aktt_profile_url($username).'" class="aktt_username">'.$username.'</a>'.$suffix; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
595 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
596 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
597 |
function aktt_hashtag_url($hashtag) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
598 |
$hashtag = urlencode('#'.$hashtag); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
599 |
return str_replace('###HASHTAG###', $hashtag, AKTT_HASHTAG_URL); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
600 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
601 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
602 |
function aktt_hashtag_link($hashtag, $prefix = '', $suffix = '') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
603 |
return $prefix.'<a href="'.aktt_hashtag_url($hashtag).'" class="aktt_hashtag">'.htmlspecialchars($hashtag).'</a>'.$suffix; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
604 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
605 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
606 |
function aktt_status_url($username, $status) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
607 |
return str_replace( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
608 |
array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
609 |
'###USERNAME###' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
610 |
, '###STATUS###' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
611 |
) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
612 |
, array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
613 |
$username |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
614 |
, $status |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
615 |
) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
616 |
, AKTT_STATUS_URL |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
617 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
618 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
619 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
620 |
function aktt_login_test($username, $password) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
621 |
require_once(ABSPATH.WPINC.'/class-snoopy.php'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
622 |
$snoop = new Snoopy; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
623 |
$snoop->agent = 'Twitter Tools http://alexking.org/projects/wordpress'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
624 |
$snoop->user = $username; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
625 |
$snoop->pass = $password; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
626 |
$snoop->fetch(AKTT_API_USER_TIMELINE); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
627 |
if (strpos($snoop->response_code, '200')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
628 |
return __("Login succeeded, you're good to go.", 'twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
629 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
630 |
$json = new Services_JSON(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
631 |
$results = $json->decode($snoop->results); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
632 |
return sprintf(__('Sorry, login failed. Error message from Twitter: %s', 'twitter-tools'), $results->error); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
633 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
634 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
635 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
636 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
637 |
function aktt_ping_digests() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
638 |
global $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
639 |
$aktt->ping_digests(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
640 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
641 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
642 |
function aktt_update_tweets() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
643 |
global $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
644 |
// let the last update run for 10 minutes |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
645 |
if (time() - intval(get_option('aktt_doing_tweet_download')) < $aktt->tweet_download_interval()) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
646 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
647 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
648 |
// wait 10 min between downloads |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
649 |
if (time() - intval(get_option('aktt_last_tweet_download')) < $aktt->tweet_download_interval()) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
650 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
651 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
652 |
update_option('aktt_doing_tweet_download', time()); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
653 |
global $wpdb, $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
654 |
if (empty($aktt->twitter_username) || empty($aktt->twitter_password)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
655 |
update_option('aktt_doing_tweet_download', '0'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
656 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
657 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
658 |
require_once(ABSPATH.WPINC.'/class-snoopy.php'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
659 |
$snoop = new Snoopy; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
660 |
$snoop->agent = 'Twitter Tools http://alexking.org/projects/wordpress'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
661 |
$snoop->user = $aktt->twitter_username; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
662 |
$snoop->pass = $aktt->twitter_password; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
663 |
$snoop->fetch(AKTT_API_USER_TIMELINE); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
664 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
665 |
if (!strpos($snoop->response_code, '200')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
666 |
update_option('aktt_doing_tweet_download', '0'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
667 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
668 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
669 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
670 |
$data = $snoop->results; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
671 |
// hash results to see if they're any different than the last update, if so, return |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
672 |
$hash = md5($data); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
673 |
if ($hash == get_option('aktt_update_hash')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
674 |
update_option('aktt_last_tweet_download', time()); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
675 |
update_option('aktt_doing_tweet_download', '0'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
676 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
677 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
678 |
$json = new Services_JSON(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
679 |
$tweets = $json->decode($data); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
680 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
681 |
if (is_array($tweets) && count($tweets) > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
682 |
$tweet_ids = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
683 |
foreach ($tweets as $tweet) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
684 |
$tweet_ids[] = $wpdb->escape($tweet->id); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
685 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
686 |
$existing_ids = $wpdb->get_col(" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
687 |
SELECT tw_id |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
688 |
FROM $wpdb->aktt |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
689 |
WHERE tw_id |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
690 |
IN ('".implode("', '", $tweet_ids)."') |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
691 |
"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
692 |
$new_tweets = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
693 |
foreach ($tweets as $tw_data) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
694 |
if (!$existing_ids || !in_array($tw_data->id, $existing_ids)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
695 |
$tweet = new aktt_tweet( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
696 |
$tw_data->id |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
697 |
, $tw_data->text |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
698 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
699 |
$tweet->tw_created_at = $tweet->twdate_to_time($tw_data->created_at); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
700 |
if (!empty($tw_data->in_reply_to_status_id)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
701 |
$tweet->tw_reply_tweet = $tw_data->in_reply_to_status_id; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
702 |
$url = aktt_api_status_show_url($tw_data->in_reply_to_status_id); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
703 |
$snoop->fetch($url); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
704 |
if (strpos($snoop->response_code, '200') !== false) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
705 |
$data = $snoop->results; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
706 |
$status = $json->decode($data); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
707 |
$tweet->tw_reply_username = $status->user->screen_name; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
708 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
709 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
710 |
// make sure we haven't downloaded someone else's tweets - happens sometimes due to Twitter hiccups |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
711 |
if (strtolower($tw_data->user->screen_name) == strtolower($aktt->twitter_username)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
712 |
$new_tweets[] = $tweet; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
713 |
$tweet->add(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
714 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
715 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
716 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
717 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
718 |
aktt_reset_tweet_checking($hash, time()); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
719 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
720 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
721 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
722 |
function aktt_reset_tweet_checking($hash = '', $time = 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
723 |
if (!current_user_can('manage_options')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
724 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
725 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
726 |
update_option('aktt_update_hash', $hash); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
727 |
update_option('aktt_last_tweet_download', $time); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
728 |
update_option('aktt_doing_tweet_download', '0'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
729 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
730 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
731 |
function aktt_reset_digests() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
732 |
if (!current_user_can('manage_options')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
733 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
734 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
735 |
update_option('aktt_doing_digest_post', '0'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
736 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
737 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
738 |
function aktt_notify_twitter($post_id) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
739 |
global $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
740 |
$aktt->do_blog_post_tweet($post_id); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
741 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
742 |
add_action('publish_post', 'aktt_notify_twitter', 99); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
743 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
744 |
function aktt_sidebar_tweets() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
745 |
global $wpdb, $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
746 |
if ($aktt->exclude_reply_tweets) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
747 |
$where = "AND tw_text NOT LIKE '@%' "; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
748 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
749 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
750 |
$where = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
751 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
752 |
$tweets = $wpdb->get_results(" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
753 |
SELECT * |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
754 |
FROM $wpdb->aktt |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
755 |
WHERE tw_text NOT LIKE '$aktt->tweet_prefix%' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
756 |
$where |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
757 |
GROUP BY tw_id |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
758 |
ORDER BY tw_created_at DESC |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
759 |
LIMIT $aktt->sidebar_tweet_count |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
760 |
"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
761 |
$output = '<div class="aktt_tweets">'."\n" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
762 |
.' <ul>'."\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
763 |
if (count($tweets) > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
764 |
foreach ($tweets as $tweet) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
765 |
$output .= ' <li>'.aktt_tweet_display($tweet).'</li>'."\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
766 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
767 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
768 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
769 |
$output .= ' <li>'.__('No tweets available at the moment.', 'twitter-tools').'</li>'."\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
770 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
771 |
if (!empty($aktt->twitter_username)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
772 |
$output .= ' <li class="aktt_more_updates"><a href="'.aktt_profile_url($aktt->twitter_username).'">'.__('More updates...', 'twitter-tools').'</a></li>'."\n"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
773 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
774 |
$output .= '</ul>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
775 |
if ($aktt->tweet_from_sidebar == '1' && !empty($aktt->twitter_username) && !empty($aktt->twitter_password)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
776 |
$output .= aktt_tweet_form('input', 'onsubmit="akttPostTweet(); return false;"'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
777 |
$output .= ' <p id="aktt_tweet_posted_msg">'.__('Posting tweet...', 'twitter-tools').'</p>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
778 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
779 |
if ($aktt->give_tt_credit == '1') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
780 |
$output .= '<p class="aktt_credit">'.__('Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a>', 'twitter-tools').'</p>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
781 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
782 |
$output .= '</div>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
783 |
print($output); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
784 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
785 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
786 |
function aktt_latest_tweet() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
787 |
global $wpdb, $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
788 |
$tweets = $wpdb->get_results(" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
789 |
SELECT * |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
790 |
FROM $wpdb->aktt |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
791 |
WHERE tw_text NOT LIKE '$aktt->tweet_prefix%' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
792 |
GROUP BY tw_id |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
793 |
ORDER BY tw_created_at DESC |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
794 |
LIMIT 1 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
795 |
"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
796 |
if (count($tweets) == 1) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
797 |
foreach ($tweets as $tweet) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
798 |
$output = aktt_tweet_display($tweet); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
799 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
800 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
801 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
802 |
$output = __('No tweets available at the moment.', 'twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
803 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
804 |
print($output); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
805 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
806 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
807 |
function aktt_tweet_display($tweet, $time = 'relative') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
808 |
global $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
809 |
$output = aktt_make_clickable(wp_specialchars($tweet->tw_text)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
810 |
if (!empty($tweet->tw_reply_username)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
811 |
$output .= ' <a href="'.aktt_status_url($tweet->tw_reply_username, $tweet->tw_reply_tweet).'" class="aktt_tweet_reply">'.sprintf(__('in reply to %s', 'twitter-tools'), $tweet->tw_reply_username).'</a>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
812 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
813 |
switch ($time) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
814 |
case 'relative': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
815 |
$time_display = aktt_relativeTime($tweet->tw_created_at, 3); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
816 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
817 |
case 'absolute': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
818 |
$time_display = '#'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
819 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
820 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
821 |
$output .= ' <a href="'.aktt_status_url($aktt->twitter_username, $tweet->tw_id).'" class="aktt_tweet_time">'.$time_display.'</a>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
822 |
$output = apply_filters('aktt_tweet_display', $output, $tweet); // allows you to alter the tweet display output |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
823 |
return $output; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
824 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
825 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
826 |
function aktt_make_clickable($tweet) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
827 |
$tweet .= ' '; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
828 |
$tweet = preg_replace_callback( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
829 |
'/@([a-zA-Z0-9_]{1,15})([) ])/' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
830 |
, create_function( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
831 |
'$matches' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
832 |
, 'return aktt_profile_link($matches[1], \'@\', $matches[2]);' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
833 |
) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
834 |
, $tweet |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
835 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
836 |
$tweet = preg_replace_callback( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
837 |
'/\ #([a-zA-Z0-9_]{1,15})/' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
838 |
, create_function( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
839 |
'$matches' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
840 |
, 'return aktt_hashtag_link($matches[1], \' #\', \'\');' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
841 |
) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
842 |
, $tweet |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
843 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
844 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
845 |
if (function_exists('make_chunky')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
846 |
return make_chunky($tweet); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
847 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
848 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
849 |
return make_clickable($tweet); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
850 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
851 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
852 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
853 |
function aktt_tweet_form($type = 'input', $extra = '') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
854 |
$output = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
855 |
if (current_user_can('publish_posts')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
856 |
$output .= ' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
857 |
<form action="'.get_bloginfo('wpurl').'/index.php" method="post" id="aktt_tweet_form" '.$extra.'> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
858 |
<fieldset> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
859 |
'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
860 |
switch ($type) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
861 |
case 'input': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
862 |
$output .= ' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
863 |
<p><input type="text" size="20" maxlength="140" id="aktt_tweet_text" name="aktt_tweet_text" onkeyup="akttCharCount();" /></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
864 |
<input type="hidden" name="ak_action" value="aktt_post_tweet_sidebar" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
865 |
<script type="text/javascript"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
866 |
//<![CDATA[ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
867 |
function akttCharCount() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
868 |
var count = document.getElementById("aktt_tweet_text").value.length; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
869 |
if (count > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
870 |
document.getElementById("aktt_char_count").innerHTML = 140 - count; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
871 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
872 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
873 |
document.getElementById("aktt_char_count").innerHTML = ""; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
874 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
875 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
876 |
setTimeout("akttCharCount();", 500); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
877 |
document.getElementById("aktt_tweet_form").setAttribute("autocomplete", "off"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
878 |
//]]> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
879 |
</script> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
880 |
'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
881 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
882 |
case 'textarea': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
883 |
$output .= ' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
884 |
<p><textarea type="text" cols="60" rows="5" maxlength="140" id="aktt_tweet_text" name="aktt_tweet_text" onkeyup="akttCharCount();"></textarea></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
885 |
<input type="hidden" name="ak_action" value="aktt_post_tweet_admin" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
886 |
<script type="text/javascript"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
887 |
//<![CDATA[ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
888 |
function akttCharCount() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
889 |
var count = document.getElementById("aktt_tweet_text").value.length; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
890 |
if (count > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
891 |
document.getElementById("aktt_char_count").innerHTML = (140 - count) + "'.__(' characters remaining', 'twitter-tools').'"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
892 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
893 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
894 |
document.getElementById("aktt_char_count").innerHTML = ""; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
895 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
896 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
897 |
setTimeout("akttCharCount();", 500); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
898 |
document.getElementById("aktt_tweet_form").setAttribute("autocomplete", "off"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
899 |
//]]> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
900 |
</script> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
901 |
'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
902 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
903 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
904 |
$output .= ' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
905 |
<p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
906 |
<input type="submit" id="aktt_tweet_submit" name="aktt_tweet_submit" value="'.__('Post Tweet!', 'twitter-tools').'" class="button-primary" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
907 |
<span id="aktt_char_count"></span> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
908 |
</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
909 |
<div class="clear"></div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
910 |
</fieldset> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
911 |
</form> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
912 |
'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
913 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
914 |
return $output; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
915 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
916 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
917 |
function aktt_widget_init() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
918 |
if (!function_exists('register_sidebar_widget')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
919 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
920 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
921 |
function aktt_widget($args) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
922 |
extract($args); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
923 |
$options = get_option('aktt_widget'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
924 |
$title = $options['title']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
925 |
if (empty($title)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
926 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
927 |
echo $before_widget . $before_title . $title . $after_title; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
928 |
aktt_sidebar_tweets(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
929 |
echo $after_widget; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
930 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
931 |
register_sidebar_widget(array(__('Twitter Tools', 'twitter-tools'), 'widgets'), 'aktt_widget'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
932 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
933 |
function aktt_widget_control() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
934 |
$options = get_option('aktt_widget'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
935 |
if (!is_array($options)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
936 |
$options = array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
937 |
'title' => __("What I'm Doing...", 'twitter-tools') |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
938 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
939 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
940 |
if (isset($_POST['ak_action']) && $_POST['ak_action'] == 'aktt_update_widget_options') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
941 |
$options['title'] = strip_tags(stripslashes($_POST['aktt_widget_title'])); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
942 |
update_option('aktt_widget', $options); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
943 |
// reset checking so that sidebar isn't blank if this is the first time activating |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
944 |
aktt_reset_tweet_checking(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
945 |
aktt_update_tweets(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
946 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
947 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
948 |
// Be sure you format your options to be valid HTML attributes. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
949 |
$title = htmlspecialchars($options['title'], ENT_QUOTES); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
950 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
951 |
// Here is our little form segment. Notice that we don't need a |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
952 |
// complete form. This will be embedded into the existing form. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
953 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
954 |
<p style="text-align:right;"><label for="aktt_widget_title">' . __('Title:') . ' <input style="width: 200px;" id="aktt_widget_title" name="aktt_widget_title" type="text" value="'.$title.'" /></label></p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
955 |
<p>'.__('Find additional Twitter Tools options on the <a href="options-general.php?page=twitter-tools.php">Twitter Tools Options page</a>.', 'twitter-tools').' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
956 |
<input type="hidden" id="ak_action" name="ak_action" value="aktt_update_widget_options" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
957 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
958 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
959 |
register_widget_control(array(__('Twitter Tools', 'twitter-tools'), 'widgets'), 'aktt_widget_control', 300, 100); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
960 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
961 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
962 |
add_action('widgets_init', 'aktt_widget_init'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
963 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
964 |
function aktt_init() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
965 |
global $wpdb, $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
966 |
$aktt = new twitter_tools; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
967 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
968 |
$wpdb->aktt = $wpdb->prefix.'ak_twitter'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
969 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
970 |
$aktt->get_settings(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
971 |
if (($aktt->last_tweet_download + $aktt->tweet_download_interval()) < time()) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
972 |
add_action('shutdown', 'aktt_update_tweets'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
973 |
add_action('shutdown', 'aktt_ping_digests'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
974 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
975 |
if (is_admin() || ($aktt->tweet_from_sidebar && current_user_can('publish_posts'))) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
976 |
switch ($aktt->js_lib) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
977 |
case 'jquery': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
978 |
wp_enqueue_script('jquery'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
979 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
980 |
case 'prototype': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
981 |
wp_enqueue_script('prototype'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
982 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
983 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
984 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
985 |
global $wp_version; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
986 |
if (isset($wp_version) && version_compare($wp_version, '2.5', '>=') && empty ($aktt->install_date)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
987 |
add_action('admin_notices', create_function( '', "echo '<div class=\"error\"><p>".sprintf(__('Please update your <a href="%s">Twitter Tools settings</a>', 'twitter-tools'), get_bloginfo('wpurl')."/wp-admin/options-general.php?page=twitter-tools.php")."</p></div>';" ) ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
988 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
989 |
if (!get_option('aktt_tweet_prefix')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
990 |
update_option('aktt_tweet_prefix', $aktt->tweet_prefix); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
991 |
add_action('admin_notices', create_function( '', "echo '<div class=\"error\"><p>".sprintf(__('Please update your <a href="%s">Twitter Tools settings</a>', 'twitter-tools'), get_bloginfo('wpurl')."/wp-admin/options-general.php?page=twitter-tools.php")."</p></div>';" ) ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
992 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
993 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
994 |
add_action('init', 'aktt_init'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
995 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
996 |
function aktt_head() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
997 |
global $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
998 |
if ($aktt->tweet_from_sidebar) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
999 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1000 |
<link rel="stylesheet" type="text/css" href="'.get_bloginfo('wpurl').'/index.php?ak_action=aktt_css" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1001 |
<script type="text/javascript" src="'.get_bloginfo('wpurl').'/index.php?ak_action=aktt_js"></script> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1002 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1003 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1004 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1005 |
add_action('wp_head', 'aktt_head'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1006 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1007 |
function aktt_head_admin() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1008 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1009 |
<link rel="stylesheet" type="text/css" href="'.get_bloginfo('wpurl').'/index.php?ak_action=aktt_css_admin" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1010 |
<script type="text/javascript" src="'.get_bloginfo('wpurl').'/index.php?ak_action=aktt_js_admin"></script> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1011 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1012 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1013 |
add_action('admin_head', 'aktt_head_admin'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1014 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1015 |
function aktt_request_handler() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1016 |
global $wpdb, $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1017 |
if (!empty($_GET['ak_action'])) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1018 |
switch($_GET['ak_action']) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1019 |
case 'aktt_update_tweets': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1020 |
aktt_update_tweets(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1021 |
wp_redirect(get_bloginfo('wpurl').'/wp-admin/options-general.php?page=twitter-tools.php&tweets-updated=true'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1022 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1023 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1024 |
case 'aktt_reset_tweet_checking': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1025 |
aktt_reset_tweet_checking(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1026 |
wp_redirect(get_bloginfo('wpurl').'/wp-admin/options-general.php?page=twitter-tools.php&tweet-checking-reset=true'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1027 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1028 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1029 |
case 'aktt_reset_tweet_checking': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1030 |
aktt_reset_digests(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1031 |
wp_redirect(get_bloginfo('wpurl').'/wp-admin/options-general.php?page=twitter-tools.php&digest-reset=true'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1032 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1033 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1034 |
case 'aktt_js': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1035 |
remove_action('shutdown', 'aktt_ping_digests'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1036 |
header("Content-type: text/javascript"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1037 |
switch ($aktt->js_lib) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1038 |
case 'jquery': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1039 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1040 |
function akttPostTweet() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1041 |
var tweet_field = jQuery('#aktt_tweet_text'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1042 |
var tweet_text = tweet_field.val(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1043 |
if (tweet_text == '') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1044 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1045 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1046 |
var tweet_msg = jQuery("#aktt_tweet_posted_msg"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1047 |
jQuery.post( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1048 |
"<?php bloginfo('wpurl'); ?>/index.php" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1049 |
, { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1050 |
ak_action: "aktt_post_tweet_sidebar" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1051 |
, aktt_tweet_text: tweet_text |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1052 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1053 |
, function(data) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1054 |
tweet_msg.html(data); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1055 |
akttSetReset(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1056 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1057 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1058 |
tweet_field.val('').focus(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1059 |
jQuery('#aktt_char_count').html(''); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1060 |
jQuery("#aktt_tweet_posted_msg").show(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1061 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1062 |
function akttSetReset() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1063 |
setTimeout('akttReset();', 2000); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1064 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1065 |
function akttReset() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1066 |
jQuery('#aktt_tweet_posted_msg').hide(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1067 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1068 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1069 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1070 |
case 'prototype': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1071 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1072 |
function akttPostTweet() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1073 |
var tweet_field = $('aktt_tweet_text'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1074 |
var tweet_text = tweet_field.value; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1075 |
if (tweet_text == '') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1076 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1077 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1078 |
var tweet_msg = $("aktt_tweet_posted_msg"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1079 |
var akttAjax = new Ajax.Updater( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1080 |
tweet_msg, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1081 |
"<?php bloginfo('wpurl'); ?>/index.php", |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1082 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1083 |
method: "post", |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1084 |
parameters: "ak_action=aktt_post_tweet_sidebar&aktt_tweet_text=" + tweet_text, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1085 |
onComplete: akttSetReset |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1086 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1087 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1088 |
tweet_field.value = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1089 |
tweet_field.focus(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1090 |
$('aktt_char_count').innerHTML = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1091 |
tweet_msg.style.display = 'block'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1092 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1093 |
function akttSetReset() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1094 |
setTimeout('akttReset();', 2000); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1095 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1096 |
function akttReset() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1097 |
$('aktt_tweet_posted_msg').style.display = 'none'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1098 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1099 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1100 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1101 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1102 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1103 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1104 |
case 'aktt_css': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1105 |
remove_action('shutdown', 'aktt_ping_digests'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1106 |
header("Content-Type: text/css"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1107 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1108 |
#aktt_tweet_form { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1109 |
margin: 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1110 |
padding: 5px 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1111 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1112 |
#aktt_tweet_form fieldset { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1113 |
border: 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1114 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1115 |
#aktt_tweet_form fieldset #aktt_tweet_submit { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1116 |
float: right; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1117 |
margin-right: 10px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1118 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1119 |
#aktt_tweet_form fieldset #aktt_char_count { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1120 |
color: #666; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1121 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1122 |
#aktt_tweet_posted_msg { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1123 |
background: #ffc; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1124 |
display: none; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1125 |
margin: 0 0 5px 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1126 |
padding: 5px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1127 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1128 |
#aktt_tweet_form div.clear { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1129 |
clear: both; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1130 |
float: none; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1131 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1132 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1133 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1134 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1135 |
case 'aktt_js_admin': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1136 |
remove_action('shutdown', 'aktt_ping_digests'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1137 |
header("Content-Type: text/javascript"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1138 |
switch ($aktt->js_lib) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1139 |
case 'jquery': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1140 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1141 |
function akttTestLogin() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1142 |
var result = jQuery('#aktt_login_test_result'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1143 |
result.show().addClass('aktt_login_result_wait').html('<?php _e('Testing...', 'twitter-tools'); ?>'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1144 |
jQuery.post( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1145 |
"<?php bloginfo('wpurl'); ?>/index.php" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1146 |
, { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1147 |
ak_action: "aktt_login_test" |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1148 |
, aktt_twitter_username: jQuery('#aktt_twitter_username').val() |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1149 |
, aktt_twitter_password: jQuery('#aktt_twitter_password').val() |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1150 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1151 |
, function(data) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1152 |
result.html(data).removeClass('aktt_login_result_wait'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1153 |
setTimeout('akttTestLoginResult();', 5000); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1154 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1155 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1156 |
}; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1157 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1158 |
function akttTestLoginResult() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1159 |
jQuery('#aktt_login_test_result').fadeOut('slow'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1160 |
}; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1161 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1162 |
(function($){ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1163 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1164 |
jQuery.fn.timepicker = function(){ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1165 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1166 |
var hrs = new Array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1167 |
for(var h = 1; h <= 12; hrs.push(h++)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1168 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1169 |
var mins = new Array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1170 |
for(var m = 0; m < 60; mins.push(m++)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1171 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1172 |
var ap = new Array('am', 'pm'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1173 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1174 |
function pad(n) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1175 |
n = n.toString(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1176 |
return n.length == 1 ? '0' + n : n; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1177 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1178 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1179 |
this.each(function() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1180 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1181 |
var v = $(this).val(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1182 |
if (!v) v = new Date(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1183 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1184 |
var d = new Date(v); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1185 |
var h = d.getHours(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1186 |
var m = d.getMinutes(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1187 |
var p = (h >= 12) ? "pm" : "am"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1188 |
h = (h > 12) ? h - 12 : h; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1189 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1190 |
var output = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1191 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1192 |
output += '<select id="h_' + this.id + '" class="timepicker">'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1193 |
for (var hr in hrs){ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1194 |
output += '<option value="' + pad(hrs[hr]) + '"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1195 |
if(parseInt(hrs[hr], 10) == h || (parseInt(hrs[hr], 10) == 12 && h == 0)) output += ' selected'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1196 |
output += '>' + pad(hrs[hr]) + '</option>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1197 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1198 |
output += '</select>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1199 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1200 |
output += '<select id="m_' + this.id + '" class="timepicker">'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1201 |
for (var mn in mins){ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1202 |
output += '<option value="' + pad(mins[mn]) + '"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1203 |
if(parseInt(mins[mn], 10) == m) output += ' selected'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1204 |
output += '>' + pad(mins[mn]) + '</option>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1205 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1206 |
output += '</select>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1207 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1208 |
output += '<select id="p_' + this.id + '" class="timepicker">'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1209 |
for(var pp in ap){ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1210 |
output += '<option value="' + ap[pp] + '"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1211 |
if(ap[pp] == p) output += ' selected'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1212 |
output += '>' + ap[pp] + '</option>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1213 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1214 |
output += '</select>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1215 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1216 |
$(this).after(output); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1217 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1218 |
var field = this; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1219 |
$(this).siblings('select.timepicker').change(function() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1220 |
var h = parseInt($('#h_' + field.id).val(), 10); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1221 |
var m = parseInt($('#m_' + field.id).val(), 10); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1222 |
var p = $('#p_' + field.id).val(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1223 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1224 |
if (p == "am") { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1225 |
if (h == 12) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1226 |
h = 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1227 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1228 |
} else if (p == "pm") { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1229 |
if (h < 12) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1230 |
h += 12; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1231 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1232 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1233 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1234 |
var d = new Date(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1235 |
d.setHours(h); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1236 |
d.setMinutes(m); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1237 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1238 |
$(field).val(d.toUTCString()); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1239 |
}).change(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1240 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1241 |
}); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1242 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1243 |
return this; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1244 |
}; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1245 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1246 |
jQuery.fn.daypicker = function() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1247 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1248 |
var days = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1249 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1250 |
this.each(function() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1251 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1252 |
var v = $(this).val(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1253 |
if (!v) v = 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1254 |
v = parseInt(v, 10); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1255 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1256 |
var output = ""; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1257 |
output += '<select id="d_' + this.id + '" class="daypicker">'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1258 |
for (var i = 0; i < days.length; i++) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1259 |
output += '<option value="' + i + '"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1260 |
if (v == i) output += ' selected'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1261 |
output += '>' + days[i] + '</option>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1262 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1263 |
output += '</select>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1264 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1265 |
$(this).after(output); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1266 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1267 |
var field = this; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1268 |
$(this).siblings('select.daypicker').change(function() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1269 |
$(field).val( $(this).val() ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1270 |
}).change(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1271 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1272 |
}); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1273 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1274 |
}; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1275 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1276 |
jQuery.fn.forceToggleClass = function(classNames, bOn) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1277 |
return this.each(function() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1278 |
jQuery(this)[ bOn ? "addClass" : "removeClass" ](classNames); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1279 |
}); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1280 |
}; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1281 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1282 |
})(jQuery); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1283 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1284 |
jQuery(function() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1285 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1286 |
// add in the time and day selects |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1287 |
jQuery('form#ak_twittertools input.time').timepicker(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1288 |
jQuery('form#ak_twittertools input.day').daypicker(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1289 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1290 |
// togglers |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1291 |
jQuery('.time_toggle .toggler').change(function() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1292 |
var theSelect = jQuery(this); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1293 |
theSelect.parent('.time_toggle').forceToggleClass('active', theSelect.val() === "1"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1294 |
}).change(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1295 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1296 |
}); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1297 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1298 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1299 |
case 'prototype': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1300 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1301 |
function akttTestLogin() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1302 |
var username = $('aktt_twitter_username').value; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1303 |
var password = $('aktt_twitter_password').value; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1304 |
var result = $('aktt_login_test_result'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1305 |
result.className = 'aktt_login_result_wait'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1306 |
result.innerHTML = '<?php _e('Testing...', 'twitter-tools'); ?>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1307 |
var akttAjax = new Ajax.Updater( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1308 |
result, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1309 |
"<?php bloginfo('wpurl'); ?>/index.php", |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1310 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1311 |
method: "post", |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1312 |
parameters: "ak_action=aktt_login_test&aktt_twitter_username=" + username + "&aktt_twitter_password=" + password, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1313 |
onComplete: akttTestLoginResult |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1314 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1315 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1316 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1317 |
function akttTestLoginResult() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1318 |
$('aktt_login_test_result').className = 'aktt_login_result'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1319 |
Fat.fade_element('aktt_login_test_result'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1320 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1321 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1322 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1323 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1324 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1325 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1326 |
case 'aktt_css_admin': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1327 |
remove_action('shutdown', 'aktt_ping_digests'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1328 |
header("Content-Type: text/css"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1329 |
?> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1330 |
#aktt_tweet_form { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1331 |
margin: 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1332 |
padding: 5px 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1333 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1334 |
#aktt_tweet_form fieldset { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1335 |
border: 0; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1336 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1337 |
#aktt_tweet_form fieldset textarea { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1338 |
width: 95%; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1339 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1340 |
#aktt_tweet_form fieldset #aktt_tweet_submit { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1341 |
float: right; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1342 |
margin-right: 50px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1343 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1344 |
#aktt_tweet_form fieldset #aktt_char_count { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1345 |
color: #666; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1346 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1347 |
#ak_readme { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1348 |
height: 300px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1349 |
width: 95%; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1350 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1351 |
#ak_twittertools .options { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1352 |
overflow: hidden; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1353 |
border: none; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1354 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1355 |
#ak_twittertools .option { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1356 |
overflow: hidden; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1357 |
padding-bottom: 9px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1358 |
padding-top: 9px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1359 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1360 |
#ak_twittertools .option label { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1361 |
display: block; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1362 |
float: left; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1363 |
width: 200px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1364 |
margin-right: 24px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1365 |
text-align: right; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1366 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1367 |
#ak_twittertools .option span { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1368 |
display: block; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1369 |
float: left; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1370 |
margin-left: 230px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1371 |
margin-top: 6px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1372 |
clear: left; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1373 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1374 |
#ak_twittertools select, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1375 |
#ak_twittertools input { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1376 |
float: left; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1377 |
display: block; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1378 |
margin-right: 6px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1379 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1380 |
#ak_twittertools p.submit { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1381 |
overflow: hidden; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1382 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1383 |
#ak_twittertools .option span { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1384 |
color: #666; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1385 |
display: block; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1386 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1387 |
#ak_twittertools #aktt_login_test_result { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1388 |
display: inline; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1389 |
padding: 3px; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1390 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1391 |
#ak_twittertools fieldset.options .option span.aktt_login_result_wait { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1392 |
background: #ffc; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1393 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1394 |
#ak_twittertools fieldset.options .option span.aktt_login_result { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1395 |
background: #CFEBF7; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1396 |
color: #000; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1397 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1398 |
#ak_twittertools .timepicker, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1399 |
#ak_twittertools .daypicker { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1400 |
display: none; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1401 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1402 |
#ak_twittertools .active .timepicker, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1403 |
#ak_twittertools .active .daypicker { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1404 |
display: block |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1405 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1406 |
<?php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1407 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1408 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1409 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1410 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1411 |
if (!empty($_POST['ak_action'])) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1412 |
switch($_POST['ak_action']) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1413 |
case 'aktt_update_settings': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1414 |
$aktt->populate_settings(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1415 |
$aktt->update_settings(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1416 |
wp_redirect(get_bloginfo('wpurl').'/wp-admin/options-general.php?page=twitter-tools.php&updated=true'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1417 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1418 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1419 |
case 'aktt_post_tweet_sidebar': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1420 |
if (!empty($_POST['aktt_tweet_text']) && current_user_can('publish_posts')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1421 |
$tweet = new aktt_tweet(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1422 |
$tweet->tw_text = stripslashes($_POST['aktt_tweet_text']); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1423 |
if ($aktt->do_tweet($tweet)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1424 |
die(__('Tweet posted.', 'twitter-tools')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1425 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1426 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1427 |
die(__('Tweet post failed.', 'twitter-tools')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1428 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1429 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1430 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1431 |
case 'aktt_post_tweet_admin': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1432 |
if (!empty($_POST['aktt_tweet_text']) && current_user_can('publish_posts')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1433 |
$tweet = new aktt_tweet(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1434 |
$tweet->tw_text = stripslashes($_POST['aktt_tweet_text']); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1435 |
if ($aktt->do_tweet($tweet)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1436 |
wp_redirect(get_bloginfo('wpurl').'/wp-admin/post-new.php?page=twitter-tools.php&tweet-posted=true'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1437 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1438 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1439 |
wp_die(__('Oops, your tweet was not posted. Please check your username and password and that Twitter is up and running happily.', 'twitter-tools')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1440 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1441 |
die(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1442 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1443 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1444 |
case 'aktt_login_test': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1445 |
$test = @aktt_login_test( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1446 |
@stripslashes($_POST['aktt_twitter_username']) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1447 |
, @stripslashes($_POST['aktt_twitter_password']) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1448 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1449 |
die(__($test, 'twitter-tools')); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1450 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1451 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1452 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1453 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1454 |
add_action('init', 'aktt_request_handler', 10); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1455 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1456 |
function aktt_admin_tweet_form() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1457 |
global $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1458 |
if ( $_GET['tweet-posted'] ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1459 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1460 |
<div id="message" class="updated fade"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1461 |
<p>'.__('Tweet posted.', 'twitter-tools').'</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1462 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1463 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1464 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1465 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1466 |
<div class="wrap" id="aktt_write_tweet"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1467 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1468 |
if (empty($aktt->twitter_username) || empty($aktt->twitter_password)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1469 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1470 |
<p>'.__('Please enter your <a href="http://twitter.com">Twitter</a> account information in your <a href="options-general.php?page=twitter-tools.php">Twitter Tools Options</a>.', 'twitter-tools').'</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1471 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1472 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1473 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1474 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1475 |
<h2>'.__('Write Tweet', 'twitter-tools').'</h2> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1476 |
<p>'.__('This will create a new \'tweet\' in <a href="http://twitter.com">Twitter</a> using the account information in your <a href="options-general.php?page=twitter-tools.php">Twitter Tools Options</a>.', 'twitter-tools').'</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1477 |
'.aktt_tweet_form('textarea').' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1478 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1479 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1480 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1481 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1482 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1483 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1484 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1485 |
function aktt_options_form() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1486 |
global $wpdb, $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1487 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1488 |
$categories = get_categories('hide_empty=0'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1489 |
$cat_options = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1490 |
foreach ($categories as $category) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1491 |
// WP < 2.3 compatibility |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1492 |
!empty($category->term_id) ? $cat_id = $category->term_id : $cat_id = $category->cat_ID; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1493 |
!empty($category->name) ? $cat_name = $category->name : $cat_name = $category->cat_name; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1494 |
if ($cat_id == $aktt->blog_post_category) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1495 |
$selected = 'selected="selected"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1496 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1497 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1498 |
$selected = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1499 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1500 |
$cat_options .= "\n\t<option value='$cat_id' $selected>$cat_name</option>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1501 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1502 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1503 |
$authors = get_users_of_blog(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1504 |
$author_options = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1505 |
foreach ($authors as $user) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1506 |
$usero = new WP_User($user->user_id); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1507 |
$author = $usero->data; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1508 |
// Only list users who are allowed to publish |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1509 |
if (! $usero->has_cap('publish_posts')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1510 |
continue; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1511 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1512 |
if ($author->ID == $aktt->blog_post_author) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1513 |
$selected = 'selected="selected"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1514 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1515 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1516 |
$selected = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1517 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1518 |
$author_options .= "\n\t<option value='$author->ID' $selected>$author->user_nicename</option>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1519 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1520 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1521 |
$js_libs = array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1522 |
'jquery' => 'jQuery' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1523 |
, 'prototype' => 'Prototype' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1524 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1525 |
$js_lib_options = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1526 |
foreach ($js_libs as $js_lib => $js_lib_display) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1527 |
if ($js_lib == $aktt->js_lib) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1528 |
$selected = 'selected="selected"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1529 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1530 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1531 |
$selected = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1532 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1533 |
$js_lib_options .= "\n\t<option value='$js_lib' $selected>$js_lib_display</option>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1534 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1535 |
$digest_tweet_orders = array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1536 |
'ASC' => __('Oldest first (Chronological order)', 'twitter-tools'), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1537 |
'DESC' => __('Newest first (Reverse-chronological order)', 'twitter-tools') |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1538 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1539 |
$digest_tweet_order_options = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1540 |
foreach ($digest_tweet_orders as $digest_tweet_order => $digest_tweet_order_display) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1541 |
if ($digest_tweet_order == $aktt->digest_tweet_order) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1542 |
$selected = 'selected="selected"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1543 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1544 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1545 |
$selected = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1546 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1547 |
$digest_tweet_order_options .= "\n\t<option value='$digest_tweet_order' $selected>$digest_tweet_order_display</option>"; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1548 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1549 |
$yes_no = array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1550 |
'create_blog_posts' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1551 |
, 'create_digest' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1552 |
, 'create_digest_weekly' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1553 |
, 'notify_twitter' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1554 |
, 'notify_twitter_default' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1555 |
, 'tweet_from_sidebar' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1556 |
, 'give_tt_credit' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1557 |
, 'exclude_reply_tweets' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1558 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1559 |
foreach ($yes_no as $key) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1560 |
$var = $key.'_options'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1561 |
if ($aktt->$key == '0') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1562 |
$$var = ' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1563 |
<option value="0" selected="selected">'.__('No', 'twitter-tools').'</option> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1564 |
<option value="1">'.__('Yes', 'twitter-tools').'</option> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1565 |
'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1566 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1567 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1568 |
$$var = ' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1569 |
<option value="0">'.__('No', 'twitter-tools').'</option> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1570 |
<option value="1" selected="selected">'.__('Yes', 'twitter-tools').'</option> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1571 |
'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1572 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1573 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1574 |
if ( $_GET['tweets-updated'] ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1575 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1576 |
<div id="message" class="updated fade"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1577 |
<p>'.__('Tweets updated.', 'twitter-tools').'</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1578 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1579 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1580 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1581 |
if ( $_GET['tweet-checking-reset'] ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1582 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1583 |
<div id="message" class="updated fade"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1584 |
<p>'.__('Tweet checking has been reset.', 'twitter-tools').'</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1585 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1586 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1587 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1588 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1589 |
<div class="wrap" id="aktt_options_page"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1590 |
<h2>'.__('Twitter Tools Options', 'twitter-tools').'</h2> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1591 |
<form id="ak_twittertools" name="ak_twittertools" action="'.get_bloginfo('wpurl').'/wp-admin/options-general.php" method="post"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1592 |
<fieldset class="options"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1593 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1594 |
<label for="aktt_twitter_username">'.__('Twitter Username', 'twitter-tools').'/'.__('Password', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1595 |
<input type="text" size="25" name="aktt_twitter_username" id="aktt_twitter_username" value="'.$aktt->twitter_username.'" autocomplete="off" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1596 |
<input type="password" size="25" name="aktt_twitter_password" id="aktt_twitter_password" value="'.$aktt->twitter_password.'" autocomplete="off" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1597 |
<input type="button" class="button" name="aktt_login_test" id="aktt_login_test" value="'.__('Test Login Info', 'twitter-tools').'" onclick="akttTestLogin(); return false;" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1598 |
<span id="aktt_login_test_result"></span> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1599 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1600 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1601 |
<label for="aktt_notify_twitter">'.__('Enable option to create a tweet when you post in your blog?', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1602 |
<select name="aktt_notify_twitter" id="aktt_notify_twitter">'.$notify_twitter_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1603 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1604 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1605 |
<label for="aktt_tweet_prefix">'.__('Tweet prefix for new blog posts:', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1606 |
<input type="text" size="30" name="aktt_tweet_prefix" id="aktt_tweet_prefix" value="'.$aktt->tweet_prefix.'" /><span>'.__('Cannot be left blank. Will result in <b>{Your prefix}: Title URL</b>', 'twitter-tools').'</span> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1607 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1608 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1609 |
<label for="aktt_notify_twitter_default">'.__('Set this on by default?', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1610 |
<select name="aktt_notify_twitter_default" id="aktt_notify_twitter_default">'.$notify_twitter_default_options.'</select><span>' .__('Also determines tweeting for posting via XML-RPC', 'twitter-tools').'</span> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1611 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1612 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1613 |
<label for="aktt_create_blog_posts">'.__('Create a blog post from each of your tweets?', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1614 |
<select name="aktt_create_blog_posts" id="aktt_create_blog_posts">'.$create_blog_posts_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1615 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1616 |
<div class="option time_toggle"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1617 |
<label>'.__('Create a daily digest blog post from your tweets?', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1618 |
<select name="aktt_create_digest" class="toggler">'.$create_digest_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1619 |
<input type="hidden" class="time" id="aktt_digest_daily_time" name="aktt_digest_daily_time" value="'.$aktt->digest_daily_time.'" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1620 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1621 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1622 |
<label for="aktt_digest_title">'.__('Title for daily digest posts:', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1623 |
<input type="text" size="30" name="aktt_digest_title" id="aktt_digest_title" value="'.$aktt->digest_title.'" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1624 |
<span>'.__('Include %s where you want the date. Example: Tweets on %s', 'twitter-tools').'</span> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1625 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1626 |
<div class="option time_toggle"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1627 |
<label>'.__('Create a weekly digest blog post from your tweets?', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1628 |
<select name="aktt_create_digest_weekly" class="toggler">'.$create_digest_weekly_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1629 |
<input type="hidden" class="time" name="aktt_digest_weekly_time" id="aktt_digest_weekly_time" value="'.$aktt->digest_weekly_time.'" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1630 |
<input type="hidden" class="day" name="aktt_digest_weekly_day" value="'.$aktt->digest_weekly_day.'" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1631 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1632 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1633 |
<label for="aktt_digest_title_weekly">'.__('Title for weekly digest posts:', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1634 |
<input type="text" size="30" name="aktt_digest_title_weekly" id="aktt_digest_title_weekly" value="'.$aktt->digest_title_weekly.'" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1635 |
<span>'.__('Include %s where you want the date. Example: Tweets on %s', 'twitter-tools').'</span> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1636 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1637 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1638 |
<label for="aktt_digest_tweet_order">'.__('Order of tweets in digest?', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1639 |
<select name="aktt_digest_tweet_order" id="aktt_digest_tweet_order">'.$digest_tweet_order_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1640 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1641 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1642 |
<label for="aktt_blog_post_category">'.__('Category for tweet posts:', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1643 |
<select name="aktt_blog_post_category" id="aktt_blog_post_category">'.$cat_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1644 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1645 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1646 |
<label for="aktt_blog_post_tags">'.__('Tag(s) for your tweet posts:', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1647 |
<input name="aktt_blog_post_tags" id="aktt_blog_post_tags" value="'.$aktt->blog_post_tags.'"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1648 |
<span>'.__('Separate multiple tags with commas. Example: tweets, twitter', 'twitter-tools').'</span> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1649 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1650 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1651 |
<label for="aktt_blog_post_author">'.__('Author for tweet posts:', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1652 |
<select name="aktt_blog_post_author" id="aktt_blog_post_author">'.$author_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1653 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1654 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1655 |
<label for="aktt_exclude_reply_tweets">'.__('Exclude @reply tweets in your sidebar, digests and created blog posts?', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1656 |
<select name="aktt_exclude_reply_tweets" id="aktt_exclude_reply_tweets">'.$exclude_reply_tweets_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1657 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1658 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1659 |
<label for="aktt_sidebar_tweet_count">'.__('Tweets to show in sidebar:', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1660 |
<input type="text" size="3" name="aktt_sidebar_tweet_count" id="aktt_sidebar_tweet_count" value="'.$aktt->sidebar_tweet_count.'" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1661 |
<span>'.__('Numbers only please.', 'twitter-tools').'</span> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1662 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1663 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1664 |
<label for="aktt_tweet_from_sidebar">'.__('Create tweets from your sidebar?', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1665 |
<select name="aktt_tweet_from_sidebar" id="aktt_tweet_from_sidebar">'.$tweet_from_sidebar_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1666 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1667 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1668 |
<label for="aktt_js_lib">'.__('JS Library to use?', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1669 |
<select name="aktt_js_lib" id="aktt_js_lib">'.$js_lib_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1670 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1671 |
<div class="option"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1672 |
<label for="aktt_give_tt_credit">'.__('Give Twitter Tools credit?', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1673 |
<select name="aktt_give_tt_credit" id="aktt_give_tt_credit">'.$give_tt_credit_options.'</select> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1674 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1675 |
</fieldset> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1676 |
<p class="submit"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1677 |
<input type="submit" name="submit" class="button-primary" value="'.__('Update Twitter Tools Options', 'twitter-tools').'" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1678 |
</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1679 |
<input type="hidden" name="ak_action" value="aktt_update_settings" class="hidden" style="display: none;" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1680 |
</form> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1681 |
<h2>'.__('Update Tweets / Reset Checking and Digests', 'twitter-tools').'</h2> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1682 |
<form name="ak_twittertools_updatetweets" action="'.get_bloginfo('wpurl').'/wp-admin/options-general.php" method="get"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1683 |
<p>'.__('Use these buttons to manually update your tweets or reset the checking settings.', 'twitter-tools').'</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1684 |
<p class="submit"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1685 |
<input type="submit" name="submit-button" value="'.__('Update Tweets', 'twitter-tools').'" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1686 |
<input type="submit" name="reset-button-1" value="'.__('Reset Tweet Checking', 'twitter-tools').'" onclick="document.getElementById(\'ak_action_2\').value = \'aktt_reset_tweet_checking\';" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1687 |
<input type="submit" name="reset-button-2" value="'.__('Reset Digests', 'twitter-tools').'" onclick="document.getElementById(\'ak_action_2\').value = \'aktt_reset_digests\';" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1688 |
<input type="hidden" name="ak_action" id="ak_action_2" value="aktt_update_tweets" /> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1689 |
</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1690 |
</form> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1691 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1692 |
do_action('aktt_options_form'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1693 |
print(' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1694 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1695 |
<h2>'.__('README', 'twitter-tools').'</h2> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1696 |
<p>'.__('Find answers to common questions here.', 'twitter-tools').'</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1697 |
<iframe id="ak_readme" src="http://alexking.org/projects/wordpress/readme?project=twitter-tools"></iframe> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1698 |
</div> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1699 |
'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1700 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1701 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1702 |
function aktt_post_options() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1703 |
global $aktt, $post; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1704 |
if ($aktt->notify_twitter) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1705 |
echo '<div class="postbox"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1706 |
<h3>'.__('Twitter Tools', 'twitter-tools').'</h3> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1707 |
<div class="inside"> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1708 |
<p>'.__('Notify Twitter about this post?', 'twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1709 |
$notify = get_post_meta($post->ID, 'aktt_notify_twitter', true); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1710 |
if ($notify == '') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1711 |
switch ($aktt->notify_twitter_default) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1712 |
case '1': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1713 |
$notify = 'yes'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1714 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1715 |
case '0': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1716 |
$notify = 'no'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1717 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1718 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1719 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1720 |
if ($notify == 'no') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1721 |
$yes = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1722 |
$no = 'checked="checked"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1723 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1724 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1725 |
$yes = 'checked="checked"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1726 |
$no = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1727 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1728 |
echo ' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1729 |
<input type="radio" name="aktt_notify_twitter" id="aktt_notify_twitter_yes" value="yes" '.$yes.' /> <label for="aktt_notify_twitter_yes">'.__('Yes', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1730 |
<input type="radio" name="aktt_notify_twitter" id="aktt_notify_twitter_no" value="no" '.$no.' /> <label for="aktt_notify_twitter_no">'.__('No', 'twitter-tools').'</label> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1731 |
'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1732 |
echo ' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1733 |
</p> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1734 |
'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1735 |
do_action('aktt_post_options'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1736 |
echo ' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1737 |
</div><!--.inside--> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1738 |
</div><!--.postbox--> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1739 |
'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1740 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1741 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1742 |
add_action('edit_form_advanced', 'aktt_post_options'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1743 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1744 |
function aktt_store_post_options($post_id, $post = false) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1745 |
global $aktt; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1746 |
$post = get_post($post_id); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1747 |
if (!$post || $post->post_type == 'revision') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1748 |
return; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1749 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1750 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1751 |
$notify_meta = get_post_meta($post_id, 'aktt_notify_twitter', true); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1752 |
$posted_meta = $_POST['aktt_notify_twitter']; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1753 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1754 |
$save = false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1755 |
if (!empty($posted_meta)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1756 |
$posted_meta == 'yes' ? $meta = 'yes' : $meta = 'no'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1757 |
$save = true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1758 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1759 |
else if (empty($notify_meta)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1760 |
$aktt->notify_twitter_default ? $meta = 'yes' : $meta = 'no'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1761 |
$save = true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1762 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1763 |
else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1764 |
$save = false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1765 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1766 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1767 |
if ($save) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1768 |
if (!update_post_meta($post_id, 'aktt_notify_twitter', $meta)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1769 |
add_post_meta($post_id, 'aktt_notify_twitter', $meta); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1770 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1771 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1772 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1773 |
add_action('draft_post', 'aktt_store_post_options', 1, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1774 |
add_action('publish_post', 'aktt_store_post_options', 1, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1775 |
add_action('save_post', 'aktt_store_post_options', 1, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1776 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1777 |
function aktt_menu_items() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1778 |
if (current_user_can('manage_options')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1779 |
add_options_page( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1780 |
__('Twitter Tools Options', 'twitter-tools') |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1781 |
, __('Twitter Tools', 'twitter-tools') |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1782 |
, 10 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1783 |
, basename(__FILE__) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1784 |
, 'aktt_options_form' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1785 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1786 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1787 |
if (current_user_can('publish_posts')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1788 |
add_submenu_page( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1789 |
'post-new.php' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1790 |
, __('New Tweet', 'twitter-tools') |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1791 |
, __('Tweet', 'twitter-tools') |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1792 |
, 2 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1793 |
, basename(__FILE__) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1794 |
, 'aktt_admin_tweet_form' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1795 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1796 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1797 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1798 |
add_action('admin_menu', 'aktt_menu_items'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1799 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1800 |
function aktt_plugin_action_links($links, $file) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1801 |
$plugin_file = basename(__FILE__); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1802 |
if (basename($file) == $plugin_file) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1803 |
$settings_link = '<a href="options-general.php?page='.$plugin_file.'">'.__('Settings', 'twitter-tools').'</a>'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1804 |
array_unshift($links, $settings_link); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1805 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1806 |
return $links; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1807 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1808 |
add_filter('plugin_action_links', 'aktt_plugin_action_links', 10, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1809 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1810 |
if (!function_exists('trim_add_elipsis')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1811 |
function trim_add_elipsis($string, $limit = 100) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1812 |
if (strlen($string) > $limit) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1813 |
$string = substr($string, 0, $limit)."..."; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1814 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1815 |
return $string; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1816 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1817 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1818 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1819 |
if (!function_exists('ak_gmmktime')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1820 |
function ak_gmmktime() { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1821 |
return gmmktime() - get_option('gmt_offset') * 3600; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1822 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1823 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1824 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1825 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1826 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1827 |
based on: http://www.gyford.com/phil/writing/2006/12/02/quick_twitter.php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1828 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1829 |
* Returns a relative date, eg "4 hrs ago". |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1830 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1831 |
* Assumes the passed-in can be parsed by strtotime. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1832 |
* Precision could be one of: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1833 |
* 1 5 hours, 3 minutes, 2 seconds ago (not yet implemented). |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1834 |
* 2 5 hours, 3 minutes |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1835 |
* 3 5 hours |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1836 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1837 |
* This is all a little overkill, but copied from other places I've used it. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1838 |
* Also superfluous, now I've noticed that the Twitter API includes something |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1839 |
* similar, but this version is more accurate and less verbose. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1840 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1841 |
* @access private. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1842 |
* @param string date In a format parseable by strtotime(). |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1843 |
* @param integer precision |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1844 |
* @return string |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1845 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1846 |
function aktt_relativeTime ($date, $precision=2) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1847 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1848 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1849 |
$now = time(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1850 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1851 |
$time = gmmktime( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1852 |
substr($date, 11, 2) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1853 |
, substr($date, 14, 2) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1854 |
, substr($date, 17, 2) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1855 |
, substr($date, 5, 2) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1856 |
, substr($date, 8, 2) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1857 |
, substr($date, 0, 4) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1858 |
); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1859 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1860 |
$time = strtotime(date('Y-m-d H:i:s', $time)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1861 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1862 |
$diff = $now - $time; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1863 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1864 |
$months = floor($diff/2419200); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1865 |
$diff -= $months * 2419200; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1866 |
$weeks = floor($diff/604800); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1867 |
$diff -= $weeks*604800; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1868 |
$days = floor($diff/86400); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1869 |
$diff -= $days * 86400; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1870 |
$hours = floor($diff/3600); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1871 |
$diff -= $hours * 3600; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1872 |
$minutes = floor($diff/60); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1873 |
$diff -= $minutes * 60; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1874 |
$seconds = $diff; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1875 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1876 |
if ($months > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1877 |
return date_i18n( __('Y-m-d', 'twitter-tools'), $time); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1878 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1879 |
$relative_date = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1880 |
if ($weeks > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1881 |
// Weeks and days |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1882 |
$relative_date .= ($relative_date?', ':'').$weeks.' '.__ngettext('week', 'weeks', $weeks, 'twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1883 |
if ($precision <= 2) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1884 |
$relative_date .= $days>0? ($relative_date?', ':'').$days.' '.__ngettext('day', 'days', $days, 'twitter-tools'):''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1885 |
if ($precision == 1) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1886 |
$relative_date .= $hours>0?($relative_date?', ':'').$hours.' '.__ngettext('hr', 'hrs', $hours, 'twitter-tools'):''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1887 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1888 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1889 |
} elseif ($days > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1890 |
// days and hours |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1891 |
$relative_date .= ($relative_date?', ':'').$days.' '.__ngettext('day', 'days', $days, 'twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1892 |
if ($precision <= 2) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1893 |
$relative_date .= $hours>0?($relative_date?', ':'').$hours.' '.__ngettext('hr', 'hrs', $hours, 'twitter-tools'):''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1894 |
if ($precision == 1) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1895 |
$relative_date .= $minutes>0?($relative_date?', ':'').$minutes.' '.__ngettext('min', 'mins', $minutes, 'twitter-tools'):''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1896 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1897 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1898 |
} elseif ($hours > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1899 |
// hours and minutes |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1900 |
$relative_date .= ($relative_date?', ':'').$hours.' '.__ngettext('hr', 'hrs', $hours, 'twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1901 |
if ($precision <= 2) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1902 |
$relative_date .= $minutes>0?($relative_date?', ':'').$minutes.' '.__ngettext('min', 'mins', $minutes, 'twitter-tools'):''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1903 |
if ($precision == 1) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1904 |
$relative_date .= $seconds>0?($relative_date?', ':'').$seconds.' '.__ngettext('sec', 'secs', $seconds, 'twitter-tools'):''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1905 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1906 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1907 |
} elseif ($minutes > 0) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1908 |
// minutes only |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1909 |
$relative_date .= ($relative_date?', ':'').$minutes.' '.__ngettext('min', 'mins', $minutes, 'twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1910 |
if ($precision == 1) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1911 |
$relative_date .= $seconds>0?($relative_date?', ':'').$seconds.' '.__ngettext('sec', 'secs', $seconds, 'twitter-tools'):''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1912 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1913 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1914 |
// seconds only |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1915 |
$relative_date .= ($relative_date?', ':'').$seconds.' '.__ngettext('sec', 'secs', $seconds, 'twitter-tools'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1916 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1917 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1918 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1919 |
// Return relative date and add proper verbiage |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1920 |
return sprintf(__('%s ago', 'twitter-tools'), $relative_date); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1921 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1922 |
if (!class_exists('Services_JSON')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1923 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1924 |
// PEAR JSON class |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1925 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1926 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1927 |
* Converts to and from JSON format. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1928 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1929 |
* JSON (JavaScript Object Notation) is a lightweight data-interchange |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1930 |
* format. It is easy for humans to read and write. It is easy for machines |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1931 |
* to parse and generate. It is based on a subset of the JavaScript |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1932 |
* Programming Language, Standard ECMA-262 3rd Edition - December 1999. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1933 |
* This feature can also be found in Python. JSON is a text format that is |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1934 |
* completely language independent but uses conventions that are familiar |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1935 |
* to programmers of the C-family of languages, including C, C++, C#, Java, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1936 |
* JavaScript, Perl, TCL, and many others. These properties make JSON an |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1937 |
* ideal data-interchange language. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1938 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1939 |
* This package provides a simple encoder and decoder for JSON notation. It |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1940 |
* is intended for use with client-side Javascript applications that make |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1941 |
* use of HTTPRequest to perform server communication functions - data can |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1942 |
* be encoded into JSON notation for use in a client-side javascript, or |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1943 |
* decoded from incoming Javascript requests. JSON format is native to |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1944 |
* Javascript, and can be directly eval()'ed with no further parsing |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1945 |
* overhead |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1946 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1947 |
* All strings should be in ASCII or UTF-8 format! |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1948 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1949 |
* LICENSE: Redistribution and use in source and binary forms, with or |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1950 |
* without modification, are permitted provided that the following |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1951 |
* conditions are met: Redistributions of source code must retain the |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1952 |
* above copyright notice, this list of conditions and the following |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1953 |
* disclaimer. Redistributions in binary form must reproduce the above |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1954 |
* copyright notice, this list of conditions and the following disclaimer |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1955 |
* in the documentation and/or other materials provided with the |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1956 |
* distribution. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1957 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1958 |
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1959 |
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1960 |
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1961 |
* NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1962 |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1963 |
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1964 |
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1965 |
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1966 |
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1967 |
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1968 |
* DAMAGE. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1969 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1970 |
* @category |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1971 |
* @package Services_JSON |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1972 |
* @author Michal Migurski <mike-json@teczno.com> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1973 |
* @author Matt Knapp <mdknapp[at]gmail[dot]com> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1974 |
* @author Brett Stimmerman <brettstimmerman[at]gmail[dot]com> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1975 |
* @copyright 2005 Michal Migurski |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1976 |
* @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1977 |
* @license http://www.opensource.org/licenses/bsd-license.php |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1978 |
* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1979 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1980 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1981 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1982 |
* Marker constant for Services_JSON::decode(), used to flag stack state |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1983 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1984 |
define('SERVICES_JSON_SLICE', 1); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1985 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1986 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1987 |
* Marker constant for Services_JSON::decode(), used to flag stack state |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1988 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1989 |
define('SERVICES_JSON_IN_STR', 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1990 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1991 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1992 |
* Marker constant for Services_JSON::decode(), used to flag stack state |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1993 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1994 |
define('SERVICES_JSON_IN_ARR', 3); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1995 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1996 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1997 |
* Marker constant for Services_JSON::decode(), used to flag stack state |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1998 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1999 |
define('SERVICES_JSON_IN_OBJ', 4); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2000 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2001 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2002 |
* Marker constant for Services_JSON::decode(), used to flag stack state |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2003 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2004 |
define('SERVICES_JSON_IN_CMT', 5); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2005 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2006 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2007 |
* Behavior switch for Services_JSON::decode() |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2008 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2009 |
define('SERVICES_JSON_LOOSE_TYPE', 16); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2010 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2011 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2012 |
* Behavior switch for Services_JSON::decode() |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2013 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2014 |
define('SERVICES_JSON_SUPPRESS_ERRORS', 32); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2015 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2016 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2017 |
* Converts to and from JSON format. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2018 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2019 |
* Brief example of use: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2020 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2021 |
* <code> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2022 |
* // create a new instance of Services_JSON |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2023 |
* $json = new Services_JSON(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2024 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2025 |
* // convert a complexe value to JSON notation, and send it to the browser |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2026 |
* $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4))); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2027 |
* $output = $json->encode($value); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2028 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2029 |
* print($output); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2030 |
* // prints: ["foo","bar",[1,2,"baz"],[3,[4]]] |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2031 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2032 |
* // accept incoming POST data, assumed to be in JSON notation |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2033 |
* $input = file_get_contents('php://input', 1000000); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2034 |
* $value = $json->decode($input); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2035 |
* </code> |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2036 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2037 |
class Services_JSON |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2038 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2039 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2040 |
* constructs a new JSON instance |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2041 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2042 |
* @param int $use object behavior flags; combine with boolean-OR |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2043 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2044 |
* possible values: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2045 |
* - SERVICES_JSON_LOOSE_TYPE: loose typing. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2046 |
* "{...}" syntax creates associative arrays |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2047 |
* instead of objects in decode(). |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2048 |
* - SERVICES_JSON_SUPPRESS_ERRORS: error suppression. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2049 |
* Values which can't be encoded (e.g. resources) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2050 |
* appear as NULL instead of throwing errors. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2051 |
* By default, a deeply-nested resource will |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2052 |
* bubble up with an error, so all return values |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2053 |
* from encode() should be checked with isError() |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2054 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2055 |
function Services_JSON($use = 0) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2056 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2057 |
$this->use = $use; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2058 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2059 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2060 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2061 |
* convert a string from one UTF-16 char to one UTF-8 char |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2062 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2063 |
* Normally should be handled by mb_convert_encoding, but |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2064 |
* provides a slower PHP-only method for installations |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2065 |
* that lack the multibye string extension. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2066 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2067 |
* @param string $utf16 UTF-16 character |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2068 |
* @return string UTF-8 character |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2069 |
* @access private |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2070 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2071 |
function utf162utf8($utf16) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2072 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2073 |
// oh please oh please oh please oh please oh please |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2074 |
if(function_exists('mb_convert_encoding')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2075 |
return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2076 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2077 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2078 |
$bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2079 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2080 |
switch(true) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2081 |
case ((0x7F & $bytes) == $bytes): |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2082 |
// this case should never be reached, because we are in ASCII range |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2083 |
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2084 |
return chr(0x7F & $bytes); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2085 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2086 |
case (0x07FF & $bytes) == $bytes: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2087 |
// return a 2-byte UTF-8 character |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2088 |
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2089 |
return chr(0xC0 | (($bytes >> 6) & 0x1F)) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2090 |
. chr(0x80 | ($bytes & 0x3F)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2091 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2092 |
case (0xFFFF & $bytes) == $bytes: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2093 |
// return a 3-byte UTF-8 character |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2094 |
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2095 |
return chr(0xE0 | (($bytes >> 12) & 0x0F)) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2096 |
. chr(0x80 | (($bytes >> 6) & 0x3F)) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2097 |
. chr(0x80 | ($bytes & 0x3F)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2098 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2099 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2100 |
// ignoring UTF-32 for now, sorry |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2101 |
return ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2102 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2103 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2104 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2105 |
* convert a string from one UTF-8 char to one UTF-16 char |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2106 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2107 |
* Normally should be handled by mb_convert_encoding, but |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2108 |
* provides a slower PHP-only method for installations |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2109 |
* that lack the multibye string extension. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2110 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2111 |
* @param string $utf8 UTF-8 character |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2112 |
* @return string UTF-16 character |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2113 |
* @access private |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2114 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2115 |
function utf82utf16($utf8) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2116 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2117 |
// oh please oh please oh please oh please oh please |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2118 |
if(function_exists('mb_convert_encoding')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2119 |
return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2120 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2121 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2122 |
switch(strlen($utf8)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2123 |
case 1: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2124 |
// this case should never be reached, because we are in ASCII range |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2125 |
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2126 |
return $utf8; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2127 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2128 |
case 2: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2129 |
// return a UTF-16 character from a 2-byte UTF-8 char |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2130 |
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2131 |
return chr(0x07 & (ord($utf8{0}) >> 2)) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2132 |
. chr((0xC0 & (ord($utf8{0}) << 6)) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2133 |
| (0x3F & ord($utf8{1}))); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2134 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2135 |
case 3: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2136 |
// return a UTF-16 character from a 3-byte UTF-8 char |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2137 |
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2138 |
return chr((0xF0 & (ord($utf8{0}) << 4)) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2139 |
| (0x0F & (ord($utf8{1}) >> 2))) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2140 |
. chr((0xC0 & (ord($utf8{1}) << 6)) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2141 |
| (0x7F & ord($utf8{2}))); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2142 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2143 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2144 |
// ignoring UTF-32 for now, sorry |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2145 |
return ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2146 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2147 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2148 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2149 |
* encodes an arbitrary variable into JSON format |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2150 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2151 |
* @param mixed $var any number, boolean, string, array, or object to be encoded. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2152 |
* see argument 1 to Services_JSON() above for array-parsing behavior. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2153 |
* if var is a strng, note that encode() always expects it |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2154 |
* to be in ASCII or UTF-8 format! |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2155 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2156 |
* @return mixed JSON string representation of input var or an error if a problem occurs |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2157 |
* @access public |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2158 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2159 |
function encode($var) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2160 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2161 |
switch (gettype($var)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2162 |
case 'boolean': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2163 |
return $var ? 'true' : 'false'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2164 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2165 |
case 'NULL': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2166 |
return 'null'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2167 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2168 |
case 'integer': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2169 |
return (int) $var; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2170 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2171 |
case 'double': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2172 |
case 'float': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2173 |
return (float) $var; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2174 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2175 |
case 'string': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2176 |
// STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2177 |
$ascii = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2178 |
$strlen_var = strlen($var); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2179 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2180 |
/* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2181 |
* Iterate over every character in the string, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2182 |
* escaping with a slash or encoding to UTF-8 where necessary |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2183 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2184 |
for ($c = 0; $c < $strlen_var; ++$c) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2185 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2186 |
$ord_var_c = ord($var{$c}); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2187 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2188 |
switch (true) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2189 |
case $ord_var_c == 0x08: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2190 |
$ascii .= '\b'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2191 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2192 |
case $ord_var_c == 0x09: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2193 |
$ascii .= '\t'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2194 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2195 |
case $ord_var_c == 0x0A: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2196 |
$ascii .= '\n'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2197 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2198 |
case $ord_var_c == 0x0C: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2199 |
$ascii .= '\f'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2200 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2201 |
case $ord_var_c == 0x0D: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2202 |
$ascii .= '\r'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2203 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2204 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2205 |
case $ord_var_c == 0x22: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2206 |
case $ord_var_c == 0x2F: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2207 |
case $ord_var_c == 0x5C: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2208 |
// double quote, slash, slosh |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2209 |
$ascii .= '\\'.$var{$c}; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2210 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2211 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2212 |
case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2213 |
// characters U-00000000 - U-0000007F (same as ASCII) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2214 |
$ascii .= $var{$c}; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2215 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2216 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2217 |
case (($ord_var_c & 0xE0) == 0xC0): |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2218 |
// characters U-00000080 - U-000007FF, mask 110XXXXX |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2219 |
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2220 |
$char = pack('C*', $ord_var_c, ord($var{$c + 1})); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2221 |
$c += 1; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2222 |
$utf16 = $this->utf82utf16($char); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2223 |
$ascii .= sprintf('\u%04s', bin2hex($utf16)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2224 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2225 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2226 |
case (($ord_var_c & 0xF0) == 0xE0): |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2227 |
// characters U-00000800 - U-0000FFFF, mask 1110XXXX |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2228 |
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2229 |
$char = pack('C*', $ord_var_c, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2230 |
ord($var{$c + 1}), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2231 |
ord($var{$c + 2})); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2232 |
$c += 2; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2233 |
$utf16 = $this->utf82utf16($char); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2234 |
$ascii .= sprintf('\u%04s', bin2hex($utf16)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2235 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2236 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2237 |
case (($ord_var_c & 0xF8) == 0xF0): |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2238 |
// characters U-00010000 - U-001FFFFF, mask 11110XXX |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2239 |
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2240 |
$char = pack('C*', $ord_var_c, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2241 |
ord($var{$c + 1}), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2242 |
ord($var{$c + 2}), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2243 |
ord($var{$c + 3})); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2244 |
$c += 3; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2245 |
$utf16 = $this->utf82utf16($char); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2246 |
$ascii .= sprintf('\u%04s', bin2hex($utf16)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2247 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2248 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2249 |
case (($ord_var_c & 0xFC) == 0xF8): |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2250 |
// characters U-00200000 - U-03FFFFFF, mask 111110XX |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2251 |
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2252 |
$char = pack('C*', $ord_var_c, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2253 |
ord($var{$c + 1}), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2254 |
ord($var{$c + 2}), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2255 |
ord($var{$c + 3}), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2256 |
ord($var{$c + 4})); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2257 |
$c += 4; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2258 |
$utf16 = $this->utf82utf16($char); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2259 |
$ascii .= sprintf('\u%04s', bin2hex($utf16)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2260 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2261 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2262 |
case (($ord_var_c & 0xFE) == 0xFC): |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2263 |
// characters U-04000000 - U-7FFFFFFF, mask 1111110X |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2264 |
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2265 |
$char = pack('C*', $ord_var_c, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2266 |
ord($var{$c + 1}), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2267 |
ord($var{$c + 2}), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2268 |
ord($var{$c + 3}), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2269 |
ord($var{$c + 4}), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2270 |
ord($var{$c + 5})); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2271 |
$c += 5; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2272 |
$utf16 = $this->utf82utf16($char); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2273 |
$ascii .= sprintf('\u%04s', bin2hex($utf16)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2274 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2275 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2276 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2277 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2278 |
return '"'.$ascii.'"'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2279 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2280 |
case 'array': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2281 |
/* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2282 |
* As per JSON spec if any array key is not an integer |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2283 |
* we must treat the the whole array as an object. We |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2284 |
* also try to catch a sparsely populated associative |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2285 |
* array with numeric keys here because some JS engines |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2286 |
* will create an array with empty indexes up to |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2287 |
* max_index which can cause memory issues and because |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2288 |
* the keys, which may be relevant, will be remapped |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2289 |
* otherwise. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2290 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2291 |
* As per the ECMA and JSON specification an object may |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2292 |
* have any string as a property. Unfortunately due to |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2293 |
* a hole in the ECMA specification if the key is a |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2294 |
* ECMA reserved word or starts with a digit the |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2295 |
* parameter is only accessible using ECMAScript's |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2296 |
* bracket notation. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2297 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2298 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2299 |
// treat as a JSON object |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2300 |
if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2301 |
$properties = array_map(array($this, 'name_value'), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2302 |
array_keys($var), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2303 |
array_values($var)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2304 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2305 |
foreach($properties as $property) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2306 |
if(Services_JSON::isError($property)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2307 |
return $property; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2308 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2309 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2310 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2311 |
return '{' . join(',', $properties) . '}'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2312 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2313 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2314 |
// treat it like a regular array |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2315 |
$elements = array_map(array($this, 'encode'), $var); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2316 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2317 |
foreach($elements as $element) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2318 |
if(Services_JSON::isError($element)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2319 |
return $element; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2320 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2321 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2322 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2323 |
return '[' . join(',', $elements) . ']'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2324 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2325 |
case 'object': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2326 |
$vars = get_object_vars($var); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2327 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2328 |
$properties = array_map(array($this, 'name_value'), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2329 |
array_keys($vars), |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2330 |
array_values($vars)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2331 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2332 |
foreach($properties as $property) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2333 |
if(Services_JSON::isError($property)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2334 |
return $property; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2335 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2336 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2337 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2338 |
return '{' . join(',', $properties) . '}'; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2339 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2340 |
default: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2341 |
return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2342 |
? 'null' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2343 |
: new Services_JSON_Error(gettype($var)." can not be encoded as JSON string"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2344 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2345 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2346 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2347 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2348 |
* array-walking function for use in generating JSON-formatted name-value pairs |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2349 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2350 |
* @param string $name name of key to use |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2351 |
* @param mixed $value reference to an array element to be encoded |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2352 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2353 |
* @return string JSON-formatted name-value pair, like '"name":value' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2354 |
* @access private |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2355 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2356 |
function name_value($name, $value) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2357 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2358 |
$encoded_value = $this->encode($value); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2359 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2360 |
if(Services_JSON::isError($encoded_value)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2361 |
return $encoded_value; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2362 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2363 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2364 |
return $this->encode(strval($name)) . ':' . $encoded_value; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2365 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2366 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2367 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2368 |
* reduce a string by removing leading and trailing comments and whitespace |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2369 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2370 |
* @param $str string string value to strip of comments and whitespace |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2371 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2372 |
* @return string string value stripped of comments and whitespace |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2373 |
* @access private |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2374 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2375 |
function reduce_string($str) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2376 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2377 |
$str = preg_replace(array( |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2378 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2379 |
// eliminate single line comments in '// ...' form |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2380 |
'#^\s*//(.+)$#m', |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2381 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2382 |
// eliminate multi-line comments in '/* ... */' form, at start of string |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2383 |
'#^\s*/\*(.+)\*/#Us', |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2384 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2385 |
// eliminate multi-line comments in '/* ... */' form, at end of string |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2386 |
'#/\*(.+)\*/\s*$#Us' |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2387 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2388 |
), '', $str); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2389 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2390 |
// eliminate extraneous space |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2391 |
return trim($str); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2392 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2393 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2394 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2395 |
* decodes a JSON string into appropriate variable |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2396 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2397 |
* @param string $str JSON-formatted string |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2398 |
* |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2399 |
* @return mixed number, boolean, string, array, or object |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2400 |
* corresponding to given JSON input string. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2401 |
* See argument 1 to Services_JSON() above for object-output behavior. |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2402 |
* Note that decode() always returns strings |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2403 |
* in ASCII or UTF-8 format! |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2404 |
* @access public |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2405 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2406 |
function decode($str) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2407 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2408 |
$str = $this->reduce_string($str); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2409 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2410 |
switch (strtolower($str)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2411 |
case 'true': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2412 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2413 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2414 |
case 'false': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2415 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2416 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2417 |
case 'null': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2418 |
return null; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2419 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2420 |
default: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2421 |
$m = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2422 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2423 |
if (is_numeric($str)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2424 |
// Lookie-loo, it's a number |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2425 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2426 |
// This would work on its own, but I'm trying to be |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2427 |
// good about returning integers where appropriate: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2428 |
// return (float)$str; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2429 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2430 |
// Return float or int, as appropriate |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2431 |
return ((float)$str == (integer)$str) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2432 |
? (integer)$str |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2433 |
: (float)$str; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2434 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2435 |
} elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2436 |
// STRINGS RETURNED IN UTF-8 FORMAT |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2437 |
$delim = substr($str, 0, 1); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2438 |
$chrs = substr($str, 1, -1); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2439 |
$utf8 = ''; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2440 |
$strlen_chrs = strlen($chrs); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2441 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2442 |
for ($c = 0; $c < $strlen_chrs; ++$c) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2443 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2444 |
$substr_chrs_c_2 = substr($chrs, $c, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2445 |
$ord_chrs_c = ord($chrs{$c}); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2446 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2447 |
switch (true) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2448 |
case $substr_chrs_c_2 == '\b': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2449 |
$utf8 .= chr(0x08); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2450 |
++$c; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2451 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2452 |
case $substr_chrs_c_2 == '\t': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2453 |
$utf8 .= chr(0x09); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2454 |
++$c; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2455 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2456 |
case $substr_chrs_c_2 == '\n': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2457 |
$utf8 .= chr(0x0A); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2458 |
++$c; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2459 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2460 |
case $substr_chrs_c_2 == '\f': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2461 |
$utf8 .= chr(0x0C); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2462 |
++$c; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2463 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2464 |
case $substr_chrs_c_2 == '\r': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2465 |
$utf8 .= chr(0x0D); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2466 |
++$c; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2467 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2468 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2469 |
case $substr_chrs_c_2 == '\\"': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2470 |
case $substr_chrs_c_2 == '\\\'': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2471 |
case $substr_chrs_c_2 == '\\\\': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2472 |
case $substr_chrs_c_2 == '\\/': |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2473 |
if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2474 |
($delim == "'" && $substr_chrs_c_2 != '\\"')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2475 |
$utf8 .= $chrs{++$c}; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2476 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2477 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2478 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2479 |
case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2480 |
// single, escaped unicode character |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2481 |
$utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2482 |
. chr(hexdec(substr($chrs, ($c + 4), 2))); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2483 |
$utf8 .= $this->utf162utf8($utf16); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2484 |
$c += 5; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2485 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2486 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2487 |
case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2488 |
$utf8 .= $chrs{$c}; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2489 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2490 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2491 |
case ($ord_chrs_c & 0xE0) == 0xC0: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2492 |
// characters U-00000080 - U-000007FF, mask 110XXXXX |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2493 |
//see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2494 |
$utf8 .= substr($chrs, $c, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2495 |
++$c; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2496 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2497 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2498 |
case ($ord_chrs_c & 0xF0) == 0xE0: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2499 |
// characters U-00000800 - U-0000FFFF, mask 1110XXXX |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2500 |
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2501 |
$utf8 .= substr($chrs, $c, 3); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2502 |
$c += 2; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2503 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2504 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2505 |
case ($ord_chrs_c & 0xF8) == 0xF0: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2506 |
// characters U-00010000 - U-001FFFFF, mask 11110XXX |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2507 |
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2508 |
$utf8 .= substr($chrs, $c, 4); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2509 |
$c += 3; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2510 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2511 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2512 |
case ($ord_chrs_c & 0xFC) == 0xF8: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2513 |
// characters U-00200000 - U-03FFFFFF, mask 111110XX |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2514 |
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2515 |
$utf8 .= substr($chrs, $c, 5); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2516 |
$c += 4; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2517 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2518 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2519 |
case ($ord_chrs_c & 0xFE) == 0xFC: |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2520 |
// characters U-04000000 - U-7FFFFFFF, mask 1111110X |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2521 |
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2522 |
$utf8 .= substr($chrs, $c, 6); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2523 |
$c += 5; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2524 |
break; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2525 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2526 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2527 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2528 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2529 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2530 |
return $utf8; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2531 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2532 |
} elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2533 |
// array, or object notation |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2534 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2535 |
if ($str{0} == '[') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2536 |
$stk = array(SERVICES_JSON_IN_ARR); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2537 |
$arr = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2538 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2539 |
if ($this->use & SERVICES_JSON_LOOSE_TYPE) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2540 |
$stk = array(SERVICES_JSON_IN_OBJ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2541 |
$obj = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2542 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2543 |
$stk = array(SERVICES_JSON_IN_OBJ); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2544 |
$obj = new stdClass(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2545 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2546 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2547 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2548 |
array_push($stk, array('what' => SERVICES_JSON_SLICE, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2549 |
'where' => 0, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2550 |
'delim' => false)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2551 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2552 |
$chrs = substr($str, 1, -1); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2553 |
$chrs = $this->reduce_string($chrs); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2554 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2555 |
if ($chrs == '') { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2556 |
if (reset($stk) == SERVICES_JSON_IN_ARR) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2557 |
return $arr; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2558 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2559 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2560 |
return $obj; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2561 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2562 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2563 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2564 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2565 |
//print("\nparsing {$chrs}\n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2566 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2567 |
$strlen_chrs = strlen($chrs); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2568 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2569 |
for ($c = 0; $c <= $strlen_chrs; ++$c) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2570 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2571 |
$top = end($stk); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2572 |
$substr_chrs_c_2 = substr($chrs, $c, 2); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2573 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2574 |
if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2575 |
// found a comma that is not inside a string, array, etc., |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2576 |
// OR we've reached the end of the character list |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2577 |
$slice = substr($chrs, $top['where'], ($c - $top['where'])); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2578 |
array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2579 |
//print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2580 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2581 |
if (reset($stk) == SERVICES_JSON_IN_ARR) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2582 |
// we are in an array, so just push an element onto the stack |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2583 |
array_push($arr, $this->decode($slice)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2584 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2585 |
} elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2586 |
// we are in an object, so figure |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2587 |
// out the property name and set an |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2588 |
// element in an associative array, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2589 |
// for now |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2590 |
$parts = array(); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2591 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2592 |
if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2593 |
// "name":value pair |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2594 |
$key = $this->decode($parts[1]); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2595 |
$val = $this->decode($parts[2]); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2596 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2597 |
if ($this->use & SERVICES_JSON_LOOSE_TYPE) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2598 |
$obj[$key] = $val; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2599 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2600 |
$obj->$key = $val; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2601 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2602 |
} elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2603 |
// name:value pair, where name is unquoted |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2604 |
$key = $parts[1]; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2605 |
$val = $this->decode($parts[2]); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2606 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2607 |
if ($this->use & SERVICES_JSON_LOOSE_TYPE) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2608 |
$obj[$key] = $val; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2609 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2610 |
$obj->$key = $val; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2611 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2612 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2613 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2614 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2615 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2616 |
} elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2617 |
// found a quote, and we are not inside a string |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2618 |
array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2619 |
//print("Found start of string at {$c}\n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2620 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2621 |
} elseif (($chrs{$c} == $top['delim']) && |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2622 |
($top['what'] == SERVICES_JSON_IN_STR) && |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2623 |
((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2624 |
// found a quote, we're in a string, and it's not escaped |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2625 |
// we know that it's not escaped becase there is _not_ an |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2626 |
// odd number of backslashes at the end of the string so far |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2627 |
array_pop($stk); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2628 |
//print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2629 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2630 |
} elseif (($chrs{$c} == '[') && |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2631 |
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2632 |
// found a left-bracket, and we are in an array, object, or slice |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2633 |
array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2634 |
//print("Found start of array at {$c}\n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2635 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2636 |
} elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2637 |
// found a right-bracket, and we're in an array |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2638 |
array_pop($stk); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2639 |
//print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2640 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2641 |
} elseif (($chrs{$c} == '{') && |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2642 |
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2643 |
// found a left-brace, and we are in an array, object, or slice |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2644 |
array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2645 |
//print("Found start of object at {$c}\n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2646 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2647 |
} elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2648 |
// found a right-brace, and we're in an object |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2649 |
array_pop($stk); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2650 |
//print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2651 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2652 |
} elseif (($substr_chrs_c_2 == '/*') && |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2653 |
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2654 |
// found a comment start, and we are in an array, object, or slice |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2655 |
array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2656 |
$c++; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2657 |
//print("Found start of comment at {$c}\n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2658 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2659 |
} elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2660 |
// found a comment end, and we're in one now |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2661 |
array_pop($stk); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2662 |
$c++; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2663 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2664 |
for ($i = $top['where']; $i <= $c; ++$i) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2665 |
$chrs = substr_replace($chrs, ' ', $i, 1); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2666 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2667 |
//print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2668 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2669 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2670 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2671 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2672 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2673 |
if (reset($stk) == SERVICES_JSON_IN_ARR) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2674 |
return $arr; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2675 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2676 |
} elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2677 |
return $obj; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2678 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2679 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2680 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2681 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2682 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2683 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2684 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2685 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2686 |
* @todo Ultimately, this should just call PEAR::isError() |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2687 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2688 |
function isError($data, $code = null) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2689 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2690 |
if (class_exists('pear')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2691 |
return PEAR::isError($data, $code); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2692 |
} elseif (is_object($data) && (get_class($data) == 'services_json_error' || |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2693 |
is_subclass_of($data, 'services_json_error'))) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2694 |
return true; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2695 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2696 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2697 |
return false; |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2698 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2699 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2700 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2701 |
if (class_exists('PEAR_Error')) { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2702 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2703 |
class Services_JSON_Error extends PEAR_Error |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2704 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2705 |
function Services_JSON_Error($message = 'unknown error', $code = null, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2706 |
$mode = null, $options = null, $userinfo = null) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2707 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2708 |
parent::PEAR_Error($message, $code, $mode, $options, $userinfo); |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2709 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2710 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2711 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2712 |
} else { |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2713 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2714 |
/** |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2715 |
* @todo Ultimately, this class shall be descended from PEAR_Error |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2716 |
*/ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2717 |
class Services_JSON_Error |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2718 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2719 |
function Services_JSON_Error($message = 'unknown error', $code = null, |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2720 |
$mode = null, $options = null, $userinfo = null) |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2721 |
{ |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2722 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2723 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2724 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2725 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2726 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2727 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2728 |
} |
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2729 |
|
hurons@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2730 |
?> |