Changeset 467608
- Timestamp:
- 11/26/2011 01:14:47 AM (14 years ago)
- Location:
- revision-cleaner/trunk
- Files:
-
- 4 edited
-
po/revision-cleaner-zh_CN.mo (modified) (previous)
-
po/revision-cleaner-zh_CN.po (modified) (6 diffs)
-
readme.txt (modified) (3 diffs)
-
revision-cleaner.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
revision-cleaner/trunk/po/revision-cleaner-zh_CN.po
r465022 r467608 3 3 "Project-Id-Version: abv\n" 4 4 "Report-Msgid-Bugs-To: \n" 5 "POT-Creation-Date: 2011-11- 19 18:52+0800\n"5 "POT-Creation-Date: 2011-11-25 19:13+0800\n" 6 6 "PO-Revision-Date: \n" 7 7 "Last-Translator: mengzhuo <[email protected]>\n" … … 17 17 "X-Poedit-SearchPath-0: /home/meng/revision-cleaner\n" 18 18 19 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:98 19 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:67 20 msgid "No! Avada Kedavra!" 21 msgstr "不!阿瓦达索命!" 22 23 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:68 24 msgid "Sir! Some dead revisions had became zombies!" 25 msgstr "长官!有些死掉的修订版本变成僵尸活过来了!" 26 27 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:69 28 msgid "Awe! I'm just go CRAZY!" 29 msgstr "啊!我只是疯掉了!" 30 31 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:70 32 msgid "Hi, Stranger! Petrificus Totalus!" 33 msgstr "嗨!陌生人!统统石化(Petrificus Totalus)!" 34 35 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:71 36 msgid "Bee...I can't find Neo in the Matrix" 37 msgstr "哔…我在Matrix里找不到Neo" 38 39 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:72 40 msgid "Captain! The data been EATEN by Blackhole!" 41 msgstr "船长!数据被黑洞吃了!" 42 43 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:75 44 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:77 45 msgid "Revision Cleaner CRAZED!" 46 msgstr "修订版本清理器疯掉了!" 47 48 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:75 49 msgid "Version" 50 msgstr "版本" 51 52 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:76 53 msgid "crazy_type" 54 msgstr "疯狂代码" 55 56 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:282 57 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:98 58 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:98 59 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:98 20 60 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:78 21 61 msgid "Success!" 22 62 msgstr "保存成功!" 23 63 24 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:103 25 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:116 26 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:124 64 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:292 65 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:103 66 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:116 67 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:124 68 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:103 69 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:116 70 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:124 71 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:103 72 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:116 73 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:124 27 74 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:82 28 75 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:88 … … 30 77 msgstr "保存失败" 31 78 32 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:148 33 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:191 79 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:326 80 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:418 81 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:466 82 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:148 83 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:191 84 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:148 85 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:191 86 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:148 87 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:191 34 88 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:109 35 89 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:132 … … 37 91 msgstr "修订版本清理器" 38 92 39 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:150 40 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:113 41 msgid "Simple Settings" 42 msgstr "简单设定" 43 44 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:153 45 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:170 93 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:341 94 msgid "Global Settings" 95 msgstr "全局设定" 96 97 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:344 98 msgid "Multi-Users" 99 msgstr "多用户支持" 100 101 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:346 102 msgid "Allow each user set their own interval" 103 msgstr "允许每个用户设置自己的时间间隔" 104 105 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:351 106 #, php-format 107 msgid "As Multi-users on, You can set your interval at <a href='%s'>your profile</a>" 108 msgstr "已开启多用户支持,您可以在<a href='%s'>个人资料</a>设置您的清理时间间隔" 109 110 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:356 111 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:158 112 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:158 113 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:158 114 msgid "Statistic" 115 msgstr "统计" 116 117 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:359 118 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:371 119 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:161 120 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:161 121 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:161 122 msgid "Extant Revision" 123 msgstr "现存版本数" 124 125 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:360 126 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:162 127 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:162 128 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:162 129 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:123 130 msgid "Cleaned Revision" 131 msgstr "已清理修订版本" 132 133 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:364 134 msgid "Users Setting Overview" 135 msgstr "用户设置总览" 136 137 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:370 138 msgid "Username" 139 msgstr "用户名" 140 141 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:372 142 msgid "Interval" 143 msgstr "清除时间间隔" 144 145 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:373 146 msgid "Keep draft's" 147 msgstr "保存草稿的版本" 148 149 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:374 150 msgid "Keep latest" 151 msgstr "保存最新的版本" 152 153 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:412 154 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:185 155 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:185 156 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:185 157 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:126 158 msgid "Save Changes" 159 msgstr "保存设置" 160 161 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:467 162 msgid "Error:No Javascript support, can't show simple setting" 163 msgstr "错误:没有Javascript,无法显示高级选项" 164 165 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:470 166 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:487 167 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:153 168 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:170 169 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:153 170 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:170 171 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:153 172 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:170 46 173 msgid "Time Settings" 47 174 msgstr "时间设定" 48 175 49 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:153 50 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:172 176 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:470 177 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:489 178 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:153 179 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:172 180 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:153 181 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:172 182 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:153 183 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:172 51 184 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:113 52 185 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:119 … … 54 187 msgstr "修订版本保持" 55 188 56 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:154 189 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:471 190 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:154 191 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:154 192 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:154 57 193 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:114 58 194 msgid "day" 59 195 msgstr "天" 60 196 61 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:155 197 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:472 198 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:155 199 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:155 200 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:155 62 201 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:115 63 202 msgid "hour" 64 203 msgstr "小时" 65 204 66 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:158 67 msgid "Statistic" 68 msgstr "统计" 69 70 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:161 71 msgid "Extant Revision" 72 msgstr "现存版本数" 73 74 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:162 75 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:123 76 msgid "Cleaned Revision" 77 msgstr "已清理修订版本" 78 79 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:165 205 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:474 206 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:165 207 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:165 208 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:165 80 209 msgid "Advanced Options" 81 210 msgstr "高级选项" 82 211 83 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:173 212 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:490 213 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:173 214 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:173 215 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:173 84 216 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:120 85 217 msgid "Seconds" 86 218 msgstr "秒" 87 219 88 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:176 220 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:493 221 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:176 222 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:176 223 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:176 89 224 msgid "Misc" 90 225 msgstr "杂项" 91 226 92 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:177 227 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:494 228 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:177 229 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:177 230 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:177 93 231 msgid "Always keep the last revision" 94 232 msgstr "总是保存最新的修订版本" 95 233 96 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:181 234 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:498 235 msgid "Always keep draft's revisions" 236 msgstr "总是保存草稿的修订版本" 237 238 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:150 239 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:150 240 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:150 241 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:113 242 msgid "Simple Settings" 243 msgstr "简单设定" 244 245 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:181 246 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:181 247 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:181 97 248 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:122 98 249 msgid "Clean post author's revision only" 99 250 msgstr "每个作者互不干扰地清除" 100 251 101 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:185 102 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:126 103 msgid "Save Changes" 104 msgstr "保存设置" 105 106 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:206 252 #: /home/meng/revision-cleaner/tags/1.1/revision-cleaner.php:206 253 #: /home/meng/revision-cleaner/tags/1.2/revision-cleaner.php:206 254 #: /home/meng/revision-cleaner/tags/1.0/revision-cleaner.php:206 107 255 #: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:137 108 256 msgid "Wow!Plugin:Revision Cleaner Conflicted with something" … … 113 261 msgstr "高级选项" 114 262 263 #~ msgid "Wow! I'v a brother name like me in here! But I don't like him." 264 #~ msgstr "哇! 在这里有个兄弟和我有一样的名字,可我不喜欢他。" 265 266 #~ msgid "Bowwow! Stop! Stranger!" 267 #~ msgstr "汪!陌生人站住!" -
revision-cleaner/trunk/readme.txt
r465037 r467608 2 2 Contributors: allarem 3 3 Tags: revision,cleaner,admin 4 Requires at least: 3. 04 Requires at least: 3.1 5 5 Tested up to: 3.2 6 6 Stable tag: 1.2 7 7 License: GPLv2 or later 8 8 9 Auto clean up your revisions, once setup, enjoyyour writing.9 This plugin will clean up your revisions AUTOMATICALLY (each authors can set their own interval). Once setup, ENJOY your writing. 10 10 11 11 == Description == 12 12 13 Revision is a very useful function when you experienced an unexpected power failure or keyboard got peed by your cat while writing an article, but after you've "lucky" posted your article the revisions still there, consuming your SQL database. To save your database space, clean the revisions is essential and this is what Revision Cleaner do in AUTOMATIC. FYI:This plugin won't delete any draft :)13 Revision is a very useful stuff when you experienced an unexpected power failure or keyboard got peed by your cat while writing an article or just simply revise what you've wrote. After you've "finally" posted your article, the revisions, still consuming your SQL database as long as the database last. To save your database storage, wipe out the revisions is necessary and this is what Revision Cleaner do in AUTOMATICALLY and safely (won't delete any draft :) ). "Clean interval" setting support multiple-users, they can set their own clean interval (admin can control it and assimilated everyone of course). 14 14 15 15 == Installation == … … 20 20 == Screenshots == 21 21 22 1. Screenshot in General Setting 23 2. i18n including Chineses22 1. Screenshot in General Setting(For Administrator) 23 2. Each user can set their own clean interval in Profile. 24 24 25 25 == Changelog == 26 26 27 = 0.1 = 28 Brand New start 27 = 2.0 = 28 This is an BETA version 29 You can IGNORE this upgrade if your wordpress has only one author 30 This is version makes it brand new plugin! 31 * Multiple sites & authors supported 32 * Add option on delete draft's revision 33 * Optimized data structure 34 * require JavaScript this version 35 36 = 1.2 = 37 Fixed some bugs 29 38 30 39 = 1.1 = … … 32 41 * added "keep last revision" 33 42 * enhanced UI 43 44 = 0.1 = 45 Brand New start 46 -
revision-cleaner/trunk/revision-cleaner.php
r465037 r467608 6 6 Plugin Name: Revision Cleaner 7 7 Plugin URI: http://mengzhuo.org/lab/RevisionC/ 8 Description: Auto clean your revisions 9 Version: 1.28 Description: Auto clean your revisions while you don't needed any more 9 Version: 2.0 10 10 Author: Meng Zhuo 11 11 Author URI: http://mengzhuo.org 12 12 License: GPLv2 or later 13 14 13 */ 15 14 … … 29 28 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 30 29 */ 31 32 define('REVISIONCLEANER_VERSION', '1.0'); 30 //definition goes here... 31 define('REVISION_CLEANER_VERSION', '2.0'); 32 define('RevC_DEBUG',FALSE); 33 //definition end. 34 33 35 load_plugin_textdomain('revision-cleaner', false, dirname( plugin_basename( __FILE__ ) ) . '/po/'); 34 36 … … 38 40 exit; 39 41 } 40 if (!function_exists('Revis_Cleaner')): 42 if (!function_exists('Revis_Cleaner')){ 43 44 function Revis_new_user_action($user_id){ 45 46 $admin_setting = get_user_meta(1,'Revis_Setting'); 47 if ($admin_setting[0]['interval'] > 3600 ){ 48 update_user_meta( $user_id, 'Revis_Setting', $admin_setting[0] ); 49 return TRUE; 50 } 51 Revis_crazy_type(5,__FUNCTION__); 52 } 53 54 function Revis_debug($function_name,$msg){ 55 if (RevC_DEBUG){ 56 57 return printf("<!-- RevC-function:%s'-->\n<!--('%s') -->\n",$function_name,$msg); 58 } 59 return FALSE; 60 } 61 62 /*Oh Plugin go crazed 63 * @param Int $code_id 64 */ 65 function Revis_crazy_type($code_id,$addition_msg = FALSE){ 66 $Revis_Error_ID = array( 67 1=>__("No! Avada Kedavra!"), 68 2=>__("Sir! Some dead revisions had became zombies!"), 69 3=>__("Awe! I'm just go CRAZY!"), 70 4=>__("Hi, Stranger! Petrificus Totalus!"), 71 5=>__("Bee...I can't find Neo in the Matrix"), 72 6=>__("Captain! The data been EATEN by Blackhole!") 73 ); 74 $version = REVISION_CLEANER_VERSION; 75 $msg = __("Revision Cleaner CRAZED!",'revision-cleaner').'<br/>'.__("Version").": $version | "; 76 $msg .= __("crazy_type")." :$code_id -> $addition_msg".'<br/>'; 77 wp_die($msg.$Revis_Error_ID[$code_id],__('Revision Cleaner CRAZED!','revision-cleaner')); 78 } 79 function Revis_save_user_profile_fields( $user_id ) { 80 81 if ( current_user_can( 'edit_user', $user_id ) ) { 82 83 $user_setting_filters = array( 84 'interval' => FILTER_VALIDATE_INT, 85 'keep_last' => FILTER_VALIDATE_BOOLEAN, 86 'keep_draft_revision' => FILTER_VALIDATE_BOOLEAN 87 ); 88 $update_setting = filter_var_array($_POST, $user_setting_filters); 89 90 if ( Revis_update_author( $user_id,$update_setting ) ){ 91 return TRUE; 92 } 93 } 94 Revis_crazy_type(4); 95 } 96 /* 97 * This is will clear author setting, use it with cautions 98 * @param Int $user_id 99 * @param Array|FALSE $revis_setting_array default FALSE if FALSE, the admin's setting will replace user setting 100 * @return Boolean to show whether operation is successes. 101 */ 102 function Revis_update_author($user_id,$revis_setting_array = FALSE){ 103 if ( current_user_can( 'edit_user', $user_id ) ) { 104 105 $admin_setting = get_user_meta(1, 'Revis_Setting'); 106 if ($admin_setting == NULL){ 107 //set to default is NULL, It maybe eaten by Mon 108 $admin_setting = array( 109 'interval' => 864000, 110 'keep_last' => TRUE, 111 'keep_draft_revision' => TRUE 112 ); 113 add_user_meta( 1, 'Revis_Setting', $admin_setting); 114 } 115 116 $user_setting = get_user_meta($user_id, 'Revis_Setting'); 117 118 if ($user_setting == NULL ){ 119 //set to default is NULL, It maybe eaten by Mon 120 update_user_meta($user_id,'Revis_Setting',$admin_setting); 121 } 122 123 $setting_to_set = ($revis_setting_array)?$revis_setting_array:$admin_setting; 124 125 126 if (is_array($setting_to_set)){ 127 128 if (update_user_meta( $user_id, 'Revis_Setting', $setting_to_set)){ 129 return TRUE; 130 } 131 } 132 } 133 return FALSE; 134 } 135 /* 136 * 137 **/ 138 function Revis_execute( $user_id , $setting_array,$multi_user = TRUE) { 139 global $wpdb; 140 /* 141 * will extract there variables. 142 * 'interval' => FILTER_VALIDATE_INT, 143 * 'keep_last' => FILTER_VALIDATE_BOOLEAN, 144 * 'keep_draft_revision' => FILTER_VALIDATE_BOOLEAN 145 */ 146 if (!$setting_array){ 147 Revis_new_user_action($user_id); 148 } 149 extract($setting_array[0]); 150 //get Interval 151 $current_gmt = time(); 152 $time_between = date("\"Y-m-d H:i:s\"",$current_gmt-$interval); 153 154 $multi_user_query = ($multi_user)?"AND `post_author` = $user_id":NULL; 155 156 $keep_draft_revision_query = ($keep_draft_revision==1)?"AND `post_parent` != 0":NULL; 157 158 $keep_last_query = ($keep_last==1)?" 159 NOT IN (SELECT * 160 FROM $wpdb->posts 161 WHERE `post_type` = 'revision' 162 $multi_user_query 163 $keep_draft_revision_query 164 ORDER BY `post_date_gmt` DESC 165 LIMIT 1) 166 ":NULL; 167 $clean_query = " 168 DELETE FROM $wpdb->posts 169 WHERE `post_type` = 'revision' 170 $keep_draft_revision_query 171 $multi_user_query 172 AND `post_date_gmt` < $time_between 173 $keep_last_query 174 "; 175 $clean_time = $wpdb->query($clean_query); 176 177 /*--For Debug start--*/ 178 if (RevC_DEBUG){ 179 Revis_debug('$keep_last',$keep_last); 180 Revis_debug(__FUNCTION__ ,$clean_query); 181 } 182 /*--For Debug end--*/ 183 184 return $clean_time; 185 } 186 41 187 function Revis_Cleaner() { 42 if (get_option('Revis_interval')){ 43 44 global $wpdb; 45 $revis_ctop = get_option('Revis_ctop'); 46 if ($revis_ctop == 1 ){ 47 $current_user = wp_get_current_user(); 48 $ctop = ' AND `post_author`='.$current_user->data->ID.' '; 188 if (get_option('Revis_Cleaned')){ 189 190 global $wpdb,$current_user; 191 192 //----For those users immigrant from 1.2---- 193 194 if (get_option('Revis_ctop') != FALSE ){ 195 //get what is set in old version 196 $revis_interval = get_option('Revis_interval'); 197 $revis_keeplast = get_option('Revis_keeplast'); 198 $revis_ddr = get_option('Revis_delete_draft_revision'); 199 200 // update it into new form 201 $admin_setting_array = array( 202 'interval' => $revis_interval, 203 'keep_last'=> $revis_keeplast, 204 'keep_draft_revision' => TRUE 205 ); 206 update_user_meta( 1, 'Revis_Setting', $user_settting_array ); 207 208 //delete the old version's data 209 delete_option('Revis_interval'); 210 delete_option('Revis_ctop'); 211 delete_option('Revis_keeplast'); 212 delete_option('Revis_ctop'); 213 214 //set new Setting, default multi_user is FALSE 215 $initial_array = array( 216 'multi_user' => FALSE, 217 'version' => REVISION_CLEANER_VERSION 218 ); 219 add_option('Revis_Setting',$initial_array,'','yes'); 220 221 //initial other user's setting 222 $wp_user_search = new WP_User_Query( array( 'exclude'=>array('id'=>1) ) ); 223 $authors = $wp_user_search->get_results(); 224 if ($authors[0]->ID != 1){ 225 foreach ( $authors as $author){ 226 Revis_update_author($author->ID,FALSE,TRUE); 227 } 228 } 229 else{ 230 Revis_crazy_type(6,__FUNCTION__); 231 } 232 } 233 //-----immigrant block end----- 234 235 //Initializing... 236 $global_setting = get_option('Revis_Setting'); 237 238 //Check on Multi-user 239 $multiuser = $global_setting['multi_user']; 240 241 $user_setting = get_user_meta($current_user->data->ID, 'Revis_Setting'); 242 if (!$user_setting[0]['interval']){ 243 Revis_new_user_action($current_user->data->ID); 244 $user_setting = get_user_meta($current_user->data->ID, 'Revis_Setting'); 245 } 246 247 if ($multiuser && current_user_can( 'edit_user', $current_user->data->ID ) ){ 248 $clean_time = Revis_execute($current_user->data->ID,$user_setting); 49 249 } 50 250 else{ 51 $ctop = NULL; 52 } 53 $revis_keeplast = get_option('Revis_keeplast'); 54 55 $revis_keeplast_query = ($revis_keeplast == 1)?" 56 NOT IN (SELECT * 57 FROM $wpdb->posts 58 WHERE `post_type` = 'revision' 59 $ctop 60 ORDER BY `post_date_gmt` DESC 61 LIMIT 1) 62 ":NULL; 63 64 65 $current_gmt = time(); 66 $revis_interval = get_option('Revis_interval'); 67 $time_between = date("\"Y-m-d H:i:s\"",$current_gmt-$revis_interval); 68 69 70 $clean_time = $wpdb->query(" 71 DELETE FROM $wpdb->posts 72 WHERE `post_type` = 'revision' 73 $ctop 74 AND `post_date_gmt` < $time_between 75 $revis_keeplast_query 76 "); 77 78 251 $clean_time = Revis_execute(1,get_user_meta(1,'Revis_Setting'),FALSE); 252 } 253 254 //update clean counter 79 255 $revis_cleaned = get_option('Revis_Cleaned'); 80 $revis_cleaned = $revis_cleaned+$clean_time; 81 update_option('Revis_Cleaned',$revis_cleaned); 256 if ($clean_time >= 0){ 257 $revis_cleaned = $revis_cleaned+$clean_time; 258 update_option('Revis_Cleaned',$revis_cleaned); 259 return TRUE; 260 } 261 Revis_crazy_type(2); 82 262 } 83 263 else{ 84 //init 85 add_option('Revis_interval',86400,'','yes'); 264 //Howdy new user! Initiating Data structure. 265 $initial_array = array( 266 'multi_user' => TRUE, 267 'version' => REVISION_CLEANER_VERSION 268 ); 269 add_option('Revis_Setting',$initial_array,'','yes'); 86 270 add_option('Revis_Cleaned',0,'','yes'); 87 add_option('Revis_ctop',TRUE,'','yes');88 add_option('Revis_keeplast',FALSE,'','yes');89 }271 return TRUE; 272 } 273 Revis_crazy_type(3,__FUNCTION__); 90 274 } 91 275 function Revis_Cleaner_callback(){ 92 $revis_interval = get_option('Revis_interval');93 276 $Revis_Cleaned = get_option('Revis_Cleaned'); 94 $revis_ctop = get_option('Revis_ctop'); 95 $revis_keeplast = get_option('Revis_keeplast'); 96 277 $Revis_Setting = get_option('Revis_Setting'); 278 279 global $current_user; 280 97 281 if (isset($_POST['submit']) != NULL){ 98 282 $message = __('Success!'); 99 283 $msg_class = 'updated'; 100 if ($_POST['revis_interval'] != $revis_interval){ 101 $revis_interval = $_POST['revis_interval']; 102 if(!update_option('Revis_interval',$revis_interval)){ 103 $message = __('Save failed').'<br/>Code:2'; 104 $msg_class = 'error'; 105 106 } 284 285 $update_setting_filters = array( 286 'multi_user'=>FILTER_VALIDATE_BOOLEAN 287 ); 288 289 $update_setting = filter_var_array( $_POST, $update_setting_filters); 290 if ($update_setting != $Revis_Setting){ 291 if(!update_option('Revis_Setting',$update_setting)){ 292 $message = __('Save failed').'<br/>Code:2'; 293 $msg_class = 'error'; 107 294 } 108 elseif($_POST['d'] || $_POST['h'] ){ 109 $revis_interval = (($_POST['d']?$_POST['d']:0)*86400)+(($_POST['h']?$_POST['h']:0)*3600); 110 update_option('Revis_interval',$revis_interval); 111 } 112 $_RP['revis_ctop'] = ($_POST['revis_ctop']=='on')?TRUE:FALSE; 113 if ($_RP['revis_ctop'] != $revis_ctop){ 114 $revis_ctop = $_RP['revis_ctop']; 115 if(!update_option('Revis_ctop',$revis_ctop)){ 116 $message = __('Save failed').'<br/>Code:3'; 117 $msg_class = 'error'; 118 } 119 } 120 $_RP['revis_keeplast'] = ($_POST['revis_keeplast']=='on')?TRUE:FALSE; 121 if ($_RP['revis_keeplast'] != $revis_keeplast){ 122 $revis_keeplast = $_RP['revis_keeplast']; 123 if(!update_option('Revis_keeplast',$revis_keeplast)){ 124 $message = __('Save failed').'<br/>Code:4'; 125 $msg_class = 'error'; 126 } 127 } 128 echo "<div class='$msg_class' id='revision_message'><strong><p>". $message . "</p></strong></div>"; 129 } 130 //FIXME 131 $revis_interval_rest = $revis_interval; 132 if ($revis_interval_rest >= 86400){ 133 $d = floor($revis_interval_rest/86400); 134 $revis_interval_rest -= $d*86400; 135 } 136 if ($revis_interval_rest >= 3600){ 137 $h = floor($revis_interval_rest/3600); 138 } 295 } 296 297 $Revis_Setting = $update_setting; 298 299 echo "<div class='$msg_class' id='revision_message'><strong><p>". $message . "</p></strong></div>"; 300 } 301 302 $multi_user = $Revis_Setting['multi_user']; 303 304 if (!$multi_user && $_POST['interval']){ 305 $admin_setting_filters = array( 306 'interval' => FILTER_VALIDATE_INT, 307 'keep_last' => FILTER_VALIDATE_BOOLEAN, 308 'keep_draft_revision' => FILTER_VALIDATE_BOOLEAN 309 ); 310 $admin_setting = filter_var_array( $_POST, $admin_setting_filters); 311 update_user_meta( 1, 'Revis_Setting', $admin_setting); 312 } 313 139 314 //statistic 140 315 global $wpdb; 141 316 $Revis_revisions_now = $wpdb->get_var( $wpdb->prepare(" 142 SELECT COUNT(*) FROM $wpdb->posts143 WHERE `post_type` = 'revision'317 SELECT COUNT(*) FROM $wpdb->posts 318 WHERE `post_type` = 'revision' 144 319 ")); 320 321 322 145 323 ?> 146 324 <div class="wrap"> … … 148 326 <h2><?php _e('Revision Cleaner','revision-cleaner'); ?></h2> 149 327 <form method='post' action=''> 150 <h3><?php _e('Simple Settings','revision-cleaner');?></h3> 328 <?php if (!$multi_user && current_user_can('administrator')){ 329 330 //well they don't like everyone has their interval 331 $wp_user_search = new WP_User_Query( array( 'orderby'=>'id','role'=>'administrator' ) ); 332 $admin = $wp_user_search->get_results(); 333 if ($admin[0]->ID == 1){ 334 Revis_profile_fields($admin[0]); 335 } 336 else{ 337 Revis_crazy_type(5); 338 } 339 } 340 ?> 341 <h3><?php _e('Global Settings','revision-cleaner');?></h3> 151 342 <table class="form-table"> 152 343 <tbody> 153 <tr><th><?php _e('Time Settings','revision-cleaner');?></th><td><p><?php _e('Revisions Last','revision-cleaner');?> 154 <input id='Revis_d' type='text' class="small-text" name='d' value="<?php echo $d;?>" /><?php _e('day','revision-cleaner')?> 155 <input id='Revis_h' type='text' class="small-text" name='h' value="<?php echo $h;?>"/><?php _e('hour','revision-cleaner')?></p></td></tr> 344 <tr><th><?php _e('Multi-Users','revision-cleaner');?></th> 345 <td> 346 <label for="revis_multiuser"><input type="checkbox" name="multi_user" id="revis_multiuser" <?php checked($Revis_Setting['multi_user'], TRUE) ?> /><?php _e("Allow each user set their own interval",'revision-cleaner');?></label> 347 <?php 348 if ($multi_user && $current_user->data->ID == 1){ 349 $blog_admin_profile_url = site_url().'/wp-admin/profile.php#revis_advanced'; 350 echo '<p>'; 351 printf(__("As Multi-users on, You can set your interval at <a href='%s'>your profile</a>",'revision-cleaner'), $blog_admin_profile_url); 352 echo '</p>'; }?> 353 </td></tr> 156 354 </tbody> 157 355 </table> … … 163 361 </tbody> 164 362 </table> 165 <h3 id='revis_advanced'><?php _e('Advanced Options','revision-cleaner');?> ▾</h3> 166 <div class="hidden" style="background:#e6e6e6;border:1px solid #ccc;"> 363 <h3 id='revis_users_overview'> 364 <?php _e('Users Setting Overview','revision-cleaner');?> 365 <a>▼</a><a class="hidden">▲</a> 366 </h3> 367 <div id="revis_users_overview_area" > 368 <table class="wp-list-table widefat fixed"> 369 <thead><tr> 370 <th class="manage-column column-username"><?php _e('Username');?></th> 371 <th class="manage-column num" ><?php _e('Extant Revision','revision-cleaner');?></th> 372 <th class="manage-column num column-posts"><?php _e('Interval','revision-cleaner');?></th> 373 <th class="manage-column column-role"><?php _e("Keep draft's",'revision-cleaner');?></th> 374 <th class="manage-column column-role"><?php _e("Keep latest",'revision-cleaner');?></th> 375 </tr></thead><tbody> 376 <?php 377 $wp_user_search = new WP_User_Query( array( 'orderby'=>'id') ); 378 $all_user = $wp_user_search->get_results(); 379 $index = 0; 380 foreach ($all_user as $user){ 381 382 383 $setting = get_user_meta($user->ID,'Revis_Setting'); 384 385 $setting = $setting[0]; 386 387 if ($setting['interval']){ 388 $even_odd = (($index++)%2 ==0)?'alternate':NULL; 389 $user_id = $user->ID; 390 $author_revisions_now = $wpdb->get_var( $wpdb->prepare(" 391 SELECT COUNT(*) FROM $wpdb->posts 392 WHERE `post_type` = 'revision' 393 AND `post_author` = $user_id 394 ")); 395 396 printf('<tr class="%s"> 397 <td class="manage-column" >%s</td> 398 <td class="manage-column num column-posts" >%d</td> 399 <td class="manage-column num column-posts" >%d</td> 400 <td><input type="checkbox" %s disabled="disabled" class="manage-column"/></td> 401 <td><input type="checkbox" %s disabled="disabled" class=" manage-column"/></td> 402 </tr>', 403 $even_odd, 404 $user->user_login, 405 $author_revisions_now, 406 $setting['interval'],checked($setting['keep_last'], TRUE,FALSE), 407 checked($setting['keep_draft_revision'], TRUE,FALSE) 408 ); 409 } 410 } 411 ?> 412 </tbody> 413 </table> 414 </div> 415 <p class="submit"><input type="submit" name="submit" id="submit" class="button-primary" value="<?php _e('Save Changes'); ?>"></p> 416 </form> 417 </div> 418 <?php 419 } 420 function Revis_Cleaner_menu(){ 421 add_options_page( __('Revision Cleaner','revision-cleaner'), __('Revision Cleaner','revision-cleaner'), 'manage_options', 'revision-cleaner-control-menu', 'Revis_Cleaner_callback'); 422 } 423 function Revis_js(){ ?> 424 <script type="text/javascript"> 425 /*Revision Cleaner*/ 426 function reviso_interval_change(){ 427 revis_interval = (jQuery("#revis_interval").val()==NaN)?0:jQuery("#revis_interval").val(); 428 revis_d = Math.round(revis_interval/86400); 429 if (revis_interval-(revis_d*86400)>0){ 430 revis_h = Math.round((revis_interval-(revis_d*86400))/3600); 431 } 432 else{ 433 revis_h = 0; 434 } 435 jQuery("#revis_d").val(revis_d); 436 jQuery("#revis_h").val(revis_h); 437 } 438 jQuery(document).ready(function(){ 439 jQuery("#revis_advanced_area,#revis_no_js,#revis_users_overview_area").hide(0); 440 reviso_interval_change(); 441 jQuery('#revis_advanced,#revis_users_overview').click(function(){ 442 443 jQuery('#'+jQuery(this).attr('id')+"_area").slideToggle('slow'); 444 jQuery(this).children('a').toggle() 445 }) 446 jQuery("#revis_d,#revis_h").change(function(){ 447 jQuery('#revis_interval').val(jQuery("#revis_d").val()*86400+jQuery("#revis_h").val()*3600); 448 }) 449 jQuery('#revis_interval').change(function(){ 450 if (jQuery(this).val() < 3600 || jQuery(this).val() ==""){ 451 jQuery(this).val(3600) 452 } 453 else if (jQuery(this).val() > 730*24*3600){ 454 jQuery(this).val(730*24*3600) 455 } 456 reviso_interval_change(); 457 }) 458 459 }); 460 </script> 461 <?php } 462 function Revis_profile_fields($user){ 463 $setting = get_user_meta($user->ID,'Revis_Setting'); 464 if (!$setting[0]){ 465 Revis_new_user_action($user->ID); 466 } 467 extract($setting[0]); 468 ?> 469 <h3><?php _e('Revision Cleaner','revision-cleaner');?></h3> 470 <div id="revis_no_js"><?php _e("Error:No Javascript support, can't show simple setting");?></div> 471 <table class="form-table"> 472 <tbody> 473 <tr><th><?php _e('Time Settings','revision-cleaner');?></th><td><p><?php _e('Revisions Last','revision-cleaner');?> 474 <input id='revis_d' type='text' class="small-text" /><?php _e('day','revision-cleaner')?> 475 <input id='revis_h' type='text' class="small-text" /><?php _e('hour','revision-cleaner')?></p></td></tr> 476 477 <tr><th id='revis_advanced'><?php _e('Advanced Options','revision-cleaner');?> 478 <a>▼</a><a class="hidden">▲</a></th> 479 <td></td> 480 </tr> 481 </tbody> 482 </table> 483 <div id="revis_advanced_area" style="background:#f1f1f1;border:1px solid #ccc; 484 -webkit-box-shadow: inset 0 2px 2px #ddd; 485 -moz-box-shadow: inset 0 2px 2px #ddd; 486 box-shadow: inset 0 2px 2px #ddd;"> 167 487 <table class="form-table" > 168 488 <tbody > 169 489 <tr valign="top"> 170 490 <th scope="row"><?php _e('Time Settings','revision-cleaner');?></th> 171 <td><label for="revis ion_last_time">172 <?php _e('Revisions Last','revision-cleaner');?><input name=" revis_interval" type="text" id="revision_last_time"173 value="<?php echo $ revis_interval; ?>" class="big-text"><?php _e('Seconds','revision-cleaner'); ?></label>491 <td><label for="revis_interval"> 492 <?php _e('Revisions Last','revision-cleaner');?><input name="interval" type="text" id="revis_interval" 493 value="<?php echo $interval; ?>" class="big-text"><?php _e('Seconds','revision-cleaner'); ?></label> 174 494 </td> 175 495 </tr> 176 496 <tr><th><?php _e("Misc",'revision-cleaner');?></th><td> 177 <label for="keep last"><input type="checkbox" name="revis_keeplast" id="keeplast" <?php checked($revis_keeplast, TRUE) ?> /><?php _e("Always keep the last revision",'revision-cleaner');?></label>497 <label for="keep_last"><input type="checkbox" name="keep_last" id="keep_last" <?php checked($keep_last, TRUE) ?> /><?php _e("Always keep the last revision",'revision-cleaner');?></label> 178 498 179 499 <br/> 180 500 181 <label for="ctop"><input type="checkbox" name="revis_ctop" id="ctop" <?php checked($revis_ctop, TRUE) ?> /><?php _e("Clean post author's revision only",'revision-cleaner');?></label></td></tr> 501 <label for="keep_draft_revision"><input type="checkbox" name="keep_draft_revision" id="keep_draft_revision" <?php checked($keep_draft_revision, TRUE) ?> /><?php _e("Always keep draft's revisions",'revision-cleaner');?></label> 502 </td></tr> 182 503 </tbody> 183 504 </table> 184 505 </div> 185 <p class="submit"><input type="submit" name="submit" id="submit" class="button-primary" value="<?php _e('Save Changes'); ?>"></p>186 </form>187 </div>188 <?php189 }190 function Revis_Cleaner_menu(){191 add_options_page( __('Revision Cleaner','revision-cleaner'), __('Revision Cleaner','revision-cleaner'), 'manage_options', 'revision-cleaner-control-menu', 'Revis_Cleaner_callback');192 }193 function Revis_js(){ ?>194 <script type="text/javascript">jQuery(document).ready(function(){195 jQuery('#revision_message').delay(1000).fadeOut('fast');196 jQuery('#revis_advanced').click(function(){197 jQuery(this).next().slideToggle('slow');198 })199 });200 </script>201 506 <?php } 507 202 508 add_action('admin_menu','Revis_Cleaner'); 203 509 add_action('admin_menu','Revis_Cleaner_menu'); 204 510 add_action('admin_head','Revis_js'); 205 else: 206 wp_die(__('Wow!Plugin:Revision Cleaner Conflicted with something')); 207 endif; 208 511 add_action('user_register','Revis_new_user_action'); 512 513 $Revis_Setting = get_option('Revis_Setting'); 514 if ( $Revis_Setting['multi_user']){ 515 add_action('show_user_profile', 'Revis_profile_fields'); 516 add_action('edit_user_profile', 'Revis_profile_fields'); 517 add_action('personal_options_update', 'Revis_save_user_profile_fields' ); 518 add_action('edit_user_profile_update', 'Revis_save_user_profile_fields' ); 519 } 520 } 521 else{ Revis_crazy_type(1);} 209 522 ?>
Note: See TracChangeset
for help on using the changeset viewer.