Changeset 1969:d2ef655d3195
- Timestamp:
- 09/20/13 18:10:13 (11 years ago)
- Branch:
- default
- Location:
- plugins/maintenance
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/maintenance/_admin.php
r1955 r1969 22 22 23 23 // Admin behaviors 24 $core->addBehavior('dcMaintenanceRegister', array('dcMaintenanceAdmin', 'register')); 25 $core->addBehavior('adminDashboardFavs', array('dcMaintenanceAdmin', 'favs')); 26 $core->addBehavior('adminDashboardFavsIcon', array('dcMaintenanceAdmin', 'favsicon')); 27 $core->addBehavior('adminPreferencesForm', array('dcMaintenanceAdmin', 'prefform')); 28 $core->addBehavior('adminBeforeUserOptionsUpdate', array('dcMaintenanceAdmin', 'userupd')); 24 $core->addBehavior('dcMaintenanceRegister', array('dcMaintenanceAdmin', 'dcMaintenanceRegister')); 25 $core->addBehavior('adminPreferencesHeaders', array('dcMaintenanceAdmin', 'adminPreferencesHeaders')); 26 $core->addBehavior('adminDashboardFavs', array('dcMaintenanceAdmin', 'adminDashboardFavs')); 27 $core->addBehavior('adminDashboardFavsIcon', array('dcMaintenanceAdmin', 'adminDashboardFavsIcon')); 28 $core->addBehavior('adminDashboardItems', array('dcMaintenanceAdmin', 'adminDashboardItems')); 29 $core->addBehavior('adminPreferencesForm', array('dcMaintenanceAdmin', 'adminPreferencesForm')); 30 $core->addBehavior('adminBeforeUserOptionsUpdate', array('dcMaintenanceAdmin', 'adminBeforeUserOptionsUpdate')); 29 31 30 32 /** … … 45 47 * @param $tabs <b>arrayObject</b> Array of tabs to register 46 48 */ 47 public static function register($core, $tasks, $groups, $tabs)49 public static function dcMaintenanceRegister($core, $tasks, $groups, $tabs) 48 50 { 49 51 $tabs['maintenance'] = __('Servicing'); … … 68 70 69 71 /** 72 * Dashboard headers. 73 * 74 * Add ajavascript to toggle tasks list. 75 */ 76 public static function adminPreferencesHeaders() 77 { 78 return dcPage::jsLoad('index.php?pf=maintenance/js/preferences.js'); 79 } 80 81 /** 70 82 * Dashboard favs. 71 83 * … … 73 85 * @param $favs <b>arrayObject</b> Array of favs 74 86 */ 75 public static function favs($core, $favs)87 public static function adminDashboardFavs($core, $favs) 76 88 { 77 89 $favs['maintenance'] = new ArrayObject(array( … … 95 107 * @param $icon <b>arrayObject</b> Current fav attributes 96 108 */ 97 public static function favsicon($core, $name, $icon)109 public static function adminDashboardFavsIcon($core, $name, $icon) 98 110 { 99 111 // Check icon … … 103 115 104 116 // Check user option 105 $ user_options = $core->auth->getOptions();106 if ( empty($user_options['user_maintenance_expired'])) {117 $core->auth->user_prefs->addWorkspace('maintenance'); 118 if (!$core->auth->user_prefs->maintenance->dashboard_icon) { 107 119 return null; 108 120 } … … 120 132 121 133 /** 134 * Dashboard items stack. 135 * 136 * @param $core <b>dcCore</b> dcCore instance 137 * @param $items <b>arrayObject</b> Dashboard items 138 */ 139 public static function adminDashboardItems($core, $items) 140 { 141 $core->auth->user_prefs->addWorkspace('maintenance'); 142 if (!$core->auth->user_prefs->maintenance->dashboard_item) { 143 return null; 144 } 145 146 $maintenance = new dcMaintenance($core); 147 $tasks = $maintenance->getExpired(); 148 if (empty($tasks)) { 149 return null; 150 } 151 152 $lines = array(); 153 foreach($tasks as $id => $ts) { 154 $lines[$ts] = 155 '<li title="'.sprintf(__('Last updated on %s'), 156 dt::dt2str($core->blog->settings->system->date_format, $ts).' '. 157 dt::dt2str($core->blog->settings->system->time_format, $ts) 158 ).'">'.$maintenance->getTask($id)->task().'</li>'; 159 } 160 ksort($lines); 161 162 $items[] = new ArrayObject(array( 163 '<div id="maintenance-expired">'. 164 '<h3><img src="index.php?pf=maintenance/icon.png" alt="" /> '.__('Maintenance').'</h3>'. 165 '<p>'.sprintf(__('There is a task to update.', 'There are %s tasks to update.', count($tasks)), count($tasks)).'</p>'. 166 '<ul>'.implode('',$lines).'</ul>'. 167 '<p><a href="plugin.php?p=maintenance">'.__('Manage task').'</a></p>'. 168 '</div>' 169 )); 170 } 171 172 /** 122 173 * User preferences form. 123 174 * … … 127 178 * @param $args <b>object</b> dcCore instance or record 128 179 */ 129 public static function prefform($args) 130 { 131 $opts = array(); 132 if ($args instanceof dcCore) { 133 $opts = $args->auth->getOptions(); 134 $core = $args; 135 } 136 elseif ($args instanceof record) { 137 $opts = $args->options(); 138 $core = $args->core; 180 public static function adminPreferencesForm($core) 181 { 182 $core->auth->user_prefs->addWorkspace('maintenance'); 183 $maintenance = new dcMaintenance($core); 184 185 $tasks = $maintenance->getTasks(); 186 if (empty($tasks)) { 187 return null; 188 } 189 190 $full_combo_ts = array_merge(array( 191 __('Use different periods for each task') => 'seperate'), 192 self::comboTs() 193 ); 194 195 $task_combo_ts = array_merge(array( 196 __('Never') => 0), 197 self::comboTs() 198 ); 199 200 echo 201 '<div class="fieldset">'. 202 '<h4>'.__('Maintenance').'</h4>'. 203 204 '<div class="two-boxes">'. 205 206 '<p><label for="maintenance_dashboard_icon" class="classic">'. 207 form::checkbox('maintenance_dashboard_icon', 1, $core->auth->user_prefs->maintenance->dashboard_icon). 208 __('Display count of expired tasks on maintenance dashboard icon').'</label></p>'. 209 210 '<p><label for="maintenance_dashboard_item" class="classic">'. 211 form::checkbox('maintenance_dashboard_item', 1, $core->auth->user_prefs->maintenance->dashboard_item). 212 __('Display list of expired tasks on dashboard contents').'</label></p>'. 213 214 '<p><label for="maintenance_plugin_message" class="classic">'. 215 form::checkbox('maintenance_plugin_message', 1, $core->auth->user_prefs->maintenance->plugin_message). 216 __('Display alert message of expired tasks on plugin page').'</label></p>'. 217 218 '</div>'. 219 220 '<div class="two-boxes">'. 221 222 '<p><label for="maintenance_recall_time">'.__('Recall time for all tasks').'</label>'. 223 form::combo('maintenance_recall_time', $full_combo_ts, 'seperate', 'recall-for-all'). 224 '</p>'. 225 226 '</div>'. 227 228 '<div id="maintenance-recall-time">'. 229 '<h5>'.__('Recall time per task').'</h5>'; 230 231 foreach($tasks as $task) { 232 echo 233 '<div class="two-boxes">'. 234 235 '<p><label for="maintenance_ts_'.$task->id().'">'.$task->task().'</label>'. 236 form::combo('maintenance_ts_'.$task->id(), $task_combo_ts, $task->ts(), 'recall-per-task'). 237 '</p>'. 238 239 '</div>'; 139 240 } 140 241 141 242 echo 142 '<p><label for="user_maintenance_expired" class="classic">'. 143 form::checkbox('user_maintenance_expired', 1, !empty($opts['user_maintenance_expired'])).' '. 144 __('Show maintenance tasks to update.').'</label></p>'; 243 '</div>'. 244 '</div>'; 145 245 } 146 246 … … 151 251 * @param $user_id <b>string</b> User ID 152 252 */ 153 public static function userupd($cur, $user_id=null) 154 { 155 if (!is_null($user_id)) { 156 $cur->user_options['user_maintenance_expired'] = !empty($_POST['user_maintenance_expired']); 157 } 253 public static function adminBeforeUserOptionsUpdate($cur, $user_id=null) 254 { 255 global $core; 256 257 if (is_null($user_id)) { 258 return null; 259 } 260 261 $maintenance = new dcMaintenance($core); 262 $tasks = $maintenance->getTasks(); 263 if (empty($tasks)) { 264 return null; 265 } 266 267 $core->auth->user_prefs->addWorkspace('maintenance'); 268 $core->auth->user_prefs->maintenance->put('dashboard_icon', !empty($_POST['maintenance_dashboard_icon']), 'boolean'); 269 $core->auth->user_prefs->maintenance->put('dashboard_item', !empty($_POST['maintenance_dashboard_item']), 'boolean'); 270 $core->auth->user_prefs->maintenance->put('plugin_message', !empty($_POST['maintenance_plugin_message']), 'boolean'); 271 272 foreach($tasks as $task) { 273 if ($_POST['maintenance_recall_time'] == 'seperate') { 274 $ts = empty($_POST['maintenance_ts_'.$task->id()]) ? 0 : $_POST['maintenance_ts_'.$task->id()]; 275 } 276 else { 277 $ts = $_POST['maintenance_recall_time']; 278 } 279 $core->auth->user_prefs->maintenance->put('ts_'.$task->id(), abs((integer) $ts), 'integer'); 280 } 281 } 282 283 /* @ignore */ 284 public static function comboTs() 285 { 286 return array( 287 __('Every week') => 604800, 288 __('Every two weeks') => 1209600, 289 __('Every month') => 2592000, 290 __('Every two months') => 5184000 291 ); 158 292 } 159 293 } -
plugins/maintenance/inc/class.dc.maintenance.php
r1955 r1969 230 230 231 231 /** 232 * Get expired task .232 * Get expired tasks. 233 233 * 234 234 * @return <b>array</b> Array of expired Task ID / date … … 246 246 // Check if task exists 247 247 if (($task = $this->getTask($rs->log_msg)) !== null) { 248 // Check if tasks expired249 if ( strtotime($rs->log_dt) + $task->ts() < time()) {248 // Check if remider is used and tasks expired 249 if ($task->ts() && strtotime($rs->log_dt) + $task->ts() < time()) { 250 250 $logs[$rs->log_msg] = $rs->log_dt; 251 251 } -
plugins/maintenance/inc/class.dc.maintenance.task.php
r1959 r1969 63 63 $this->success = __('Task successfully executed.'); 64 64 } 65 66 $core->auth->user_prefs->addWorkspace('maintenance'); 67 $ts = $core->auth->user_prefs->maintenance->get('ts_'.$this->id); 68 69 $this->ts = abs((integer) $ts); 65 70 } 66 71 … … 93 98 public function ts() 94 99 { 95 return abs((integer) $this->ts);100 return $this->ts === false ? false : abs((integer) $this->ts); 96 101 } 97 102 -
plugins/maintenance/index.php
r1959 r1969 59 59 60 60 // Get expired tasks 61 $ user_options = $core->auth->getOptions();62 if ( !empty($user_options['user_maintenance_expired'])) {61 $core->auth->user_prefs->addWorkspace('maintenance'); 62 if ($core->auth->user_prefs->maintenance->plugin_message) { 63 63 $expired = $maintenance->getExpired(); 64 64 } … … 158 158 if (array_key_exists($t->id(), $expired)) { 159 159 $res_task .= 160 ' <span class="clear form-notewarn">'.sprintf(161 __('Last execution of this task was on %s. You should execute it again.'),160 '<br /> <span class="warn">'.sprintf( 161 __('Last execution of this task was on %s.'), 162 162 dt::dt2str(__('%Y-%m-%d %H:%M'), $expired[$t->id()]) 163 ).'</span>'; 163 ).' '. 164 __('You should execute it now.').'</span>'; 165 } 166 elseif ($t->ts()) { 167 $res_task .= 168 '<br /> <span class="warn">'. 169 __('This task has never been executed.').' '. 170 __('You should execute it now.').'</span>'; 164 171 } 165 172
Note: See TracChangeset
for help on using the changeset viewer.