Changeset 1969:d2ef655d3195 for plugins/maintenance/_admin.php
- Timestamp:
- 09/20/13 18:10:13 (12 years ago)
- Branch:
- default
- File:
-
- 1 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 }
Note: See TracChangeset
for help on using the changeset viewer.