Plugin Directory

Changeset 467608


Ignore:
Timestamp:
11/26/2011 01:14:47 AM (14 years ago)
Author:
allarem
Message:

upgrade 2.0 for beta

Location:
revision-cleaner/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • revision-cleaner/trunk/po/revision-cleaner-zh_CN.po

    r465022 r467608  
    33"Project-Id-Version: abv\n"
    44"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"
    66"PO-Revision-Date: \n"
    77"Last-Translator: mengzhuo <[email protected]>\n"
     
    1717"X-Poedit-SearchPath-0: /home/meng/revision-cleaner\n"
    1818
    19 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:98
     19#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:67
     20msgid "No! Avada Kedavra!"
     21msgstr "不!阿瓦达索命!"
     22
     23#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:68
     24msgid "Sir! Some dead revisions had became zombies!"
     25msgstr "长官!有些死掉的修订版本变成僵尸活过来了!"
     26
     27#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:69
     28msgid "Awe! I'm just go CRAZY!"
     29msgstr "啊!我只是疯掉了!"
     30
     31#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:70
     32msgid "Hi, Stranger! Petrificus Totalus!"
     33msgstr "嗨!陌生人!统统石化(Petrificus Totalus)!"
     34
     35#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:71
     36msgid "Bee...I can't find Neo in the Matrix"
     37msgstr "哔…我在Matrix里找不到Neo"
     38
     39#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:72
     40msgid "Captain! The data been EATEN by Blackhole!"
     41msgstr "船长!数据被黑洞吃了!"
     42
     43#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:75
     44#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:77
     45msgid "Revision Cleaner CRAZED!"
     46msgstr "修订版本清理器疯掉了!"
     47
     48#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:75
     49msgid "Version"
     50msgstr "版本"
     51
     52#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:76
     53msgid "crazy_type"
     54msgstr "疯狂代码"
     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
    2060#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:78
    2161msgid "Success!"
    2262msgstr "保存成功!"
    2363
    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
    2774#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:82
    2875#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:88
     
    3077msgstr "保存失败"
    3178
    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
    3488#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:109
    3589#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:132
     
    3791msgstr "修订版本清理器"
    3892
    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
     94msgid "Global Settings"
     95msgstr "全局设定"
     96
     97#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:344
     98msgid "Multi-Users"
     99msgstr "多用户支持"
     100
     101#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:346
     102msgid "Allow each user set their own interval"
     103msgstr "允许每个用户设置自己的时间间隔"
     104
     105#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:351
     106#, php-format
     107msgid "As Multi-users on, You can set your interval at <a href='%s'>your profile</a>"
     108msgstr "已开启多用户支持,您可以在<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
     114msgid "Statistic"
     115msgstr "统计"
     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
     122msgid "Extant Revision"
     123msgstr "现存版本数"
     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
     130msgid "Cleaned Revision"
     131msgstr "已清理修订版本"
     132
     133#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:364
     134msgid "Users Setting Overview"
     135msgstr "用户设置总览"
     136
     137#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:370
     138msgid "Username"
     139msgstr "用户名"
     140
     141#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:372
     142msgid "Interval"
     143msgstr "清除时间间隔"
     144
     145#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:373
     146msgid "Keep draft's"
     147msgstr "保存草稿的版本"
     148
     149#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:374
     150msgid "Keep latest"
     151msgstr "保存最新的版本"
     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
     158msgid "Save Changes"
     159msgstr "保存设置"
     160
     161#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:467
     162msgid "Error:No Javascript support, can't show simple setting"
     163msgstr "错误:没有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
    46173msgid "Time Settings"
    47174msgstr "时间设定"
    48175
    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
    51184#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:113
    52185#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:119
     
    54187msgstr "修订版本保持"
    55188
    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
    57193#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:114
    58194msgid "day"
    59195msgstr "天"
    60196
    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
    62201#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:115
    63202msgid "hour"
    64203msgstr "小时"
    65204
    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
    80209msgid "Advanced Options"
    81210msgstr "高级选项"
    82211
    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
    84216#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:120
    85217msgid "Seconds"
    86218msgstr "秒"
    87219
    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
    89224msgid "Misc"
    90225msgstr "杂项"
    91226
    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
    93231msgid "Always keep the last revision"
    94232msgstr "总是保存最新的修订版本"
    95233
    96 #: /home/meng/revision-cleaner/trunk/revision-cleaner.php:181
     234#: /home/meng/revision-cleaner/trunk/revision-cleaner.php:498
     235msgid "Always keep draft's revisions"
     236msgstr "总是保存草稿的修订版本"
     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
     242msgid "Simple Settings"
     243msgstr "简单设定"
     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
    97248#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:122
    98249msgid "Clean post author's revision only"
    99250msgstr "每个作者互不干扰地清除"
    100251
    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
    107255#: /home/meng/revision-cleaner/tags/0.1/revision-cleaner.php:137
    108256msgid "Wow!Plugin:Revision Cleaner Conflicted with something"
     
    113261msgstr "高级选项"
    114262
     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  
    22Contributors: allarem
    33Tags: revision,cleaner,admin
    4 Requires at least: 3.0
     4Requires at least: 3.1
    55Tested up to: 3.2
    66Stable tag: 1.2
    77License: GPLv2 or later
    88
    9 Auto clean up your revisions, once setup, enjoy your writing.
     9This plugin will clean up your revisions AUTOMATICALLY (each authors can set their own interval). Once setup, ENJOY your writing.
    1010
    1111== Description ==
    1212
    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 :)
     13Revision 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).
    1414
    1515== Installation ==
     
    2020== Screenshots ==
    2121
    22 1. Screenshot in General Setting
    23 2. i18n including Chineses
     221. Screenshot in General Setting(For Administrator)
     232. Each user can set their own clean interval in Profile.
    2424
    2525== Changelog ==
    2626
    27 = 0.1 =
    28 Brand New start
     27= 2.0 =
     28This is an BETA version
     29You can IGNORE this upgrade if your wordpress has only one author
     30This 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 =
     37Fixed some bugs
    2938
    3039= 1.1 =
     
    3241* added "keep last revision"
    3342* enhanced UI
     43
     44= 0.1 =
     45Brand New start
     46
  • revision-cleaner/trunk/revision-cleaner.php

    r465037 r467608  
    66Plugin Name: Revision Cleaner
    77Plugin URI: http://mengzhuo.org/lab/RevisionC/
    8 Description: Auto clean your revisions
    9 Version: 1.2
     8Description: Auto clean your revisions while you don't needed any more
     9Version: 2.0
    1010Author: Meng Zhuo
    1111Author URI: http://mengzhuo.org
    1212License: GPLv2 or later
    13 
    1413*/
    1514
     
    2928Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    3029*/
    31 
    32 define('REVISIONCLEANER_VERSION', '1.0');
     30//definition goes here...
     31define('REVISION_CLEANER_VERSION', '2.0');
     32define('RevC_DEBUG',FALSE);
     33//definition end.
     34
    3335load_plugin_textdomain('revision-cleaner', false, dirname( plugin_basename( __FILE__ ) ) . '/po/');
    3436
     
    3840    exit;
    3941}
    40 if (!function_exists('Revis_Cleaner')):
     42if (!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   
    41187    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);
    49249            }
    50250            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
    79255            $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);
    82262        }
    83263        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');
    86270            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__);
    90274    }
    91275    function Revis_Cleaner_callback(){
    92         $revis_interval = get_option('Revis_interval');
    93276        $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       
    97281        if (isset($_POST['submit']) != NULL){
    98282            $message = __('Success!');
    99283            $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';
    107294                }
    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       
    139314        //statistic
    140315        global $wpdb;
    141316        $Revis_revisions_now = $wpdb->get_var( $wpdb->prepare("
    142         SELECT COUNT(*) FROM $wpdb->posts
    143         WHERE `post_type` = 'revision'
     317            SELECT COUNT(*) FROM $wpdb->posts
     318            WHERE `post_type` = 'revision'
    144319        "));
     320       
     321       
     322       
    145323        ?>
    146324        <div class="wrap">
     
    148326            <h2><?php _e('Revision Cleaner','revision-cleaner'); ?></h2>
    149327            <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>
    151342                <table class="form-table">
    152343                    <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>
    156354                    </tbody>
    157355                </table>
     
    163361           </tbody>
    164362          </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*/
     426function 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}
     438jQuery(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;">
    167487                <table class="form-table" >
    168488                    <tbody >
    169489                    <tr valign="top">
    170490                    <th scope="row"><?php _e('Time Settings','revision-cleaner');?></th>
    171                     <td><label for="revision_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>
    174494                    </td>
    175495                    </tr>
    176496                    <tr><th><?php _e("Misc",'revision-cleaner');?></th><td>
    177                     <label for="keeplast"><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>
    178498                   
    179499                    <br/>
    180500                   
    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>
    182503                    </tbody>
    183504                </table>
    184505           </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     <?php
    189     }
    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>
    201506    <?php }
     507   
    202508    add_action('admin_menu','Revis_Cleaner');
    203509    add_action('admin_menu','Revis_Cleaner_menu');
    204510    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}
     521else{ Revis_crazy_type(1);}
    209522?>
Note: See TracChangeset for help on using the changeset viewer.