addItem(
__('Maintenance'),
'plugin.php?p=maintenance',
'index.php?pf=maintenance/icon.png',
preg_match('/plugin.php\?p=maintenance(&.*)?$/', $_SERVER['REQUEST_URI']),
$core->auth->isSuperAdmin()
);
// Admin behaviors
$core->addBehavior('dcMaintenanceRegister', array('dcMaintenanceAdmin', 'register'));
$core->addBehavior('adminDashboardFavs', array('dcMaintenanceAdmin', 'favs'));
$core->addBehavior('adminDashboardFavsIcon', array('dcMaintenanceAdmin', 'favsicon'));
$core->addBehavior('adminPreferencesForm', array('dcMaintenanceAdmin', 'prefform'));
$core->addBehavior('adminBeforeUserOptionsUpdate', array('dcMaintenanceAdmin', 'userupd'));
/**
@ingroup PLUGIN_MAINTENANCE
@nosubgrouping
@brief Maintenance plugin admin class.
Group of methods used on behaviors.
*/
class dcMaintenanceAdmin
{
/**
* Register default tasks.
*
* @param $core dcCore dcCore instance
* @param $tasks arrayObject Array of tasks to register
* @param $groups arrayObject Array of groups to register
* @param $tabs arrayObject Array of tabs to register
*/
public static function register($core, $tasks, $groups, $tabs)
{
$tabs['maintenance'] = __('Servicing');
$tabs['backup'] = __('Backup');
$groups['optimize'] = __('Optimize');
$groups['index'] = __('Count and index');
$groups['purge'] = __('Purge');
$groups['other'] = __('Other');
$groups['zipblog'] = __('Compressed file for current blog');
$groups['zipfull'] = __('Compressed file for all blogs');
$tasks[] = 'dcMaintenanceCache';
$tasks[] = 'dcMaintenanceCountcomments';
$tasks[] = 'dcMaintenanceIndexcomments';
$tasks[] = 'dcMaintenanceIndexposts';
$tasks[] = 'dcMaintenanceLogs';
$tasks[] = 'dcMaintenanceVacuum';
$tasks[] = 'dcMaintenanceZipmedia';
$tasks[] = 'dcMaintenanceZiptheme';
}
/**
* Dashboard favs.
*
* @param $core dcCore dcCore instance
* @param $favs arrayObject Array of favs
*/
public static function favs($core, $favs)
{
$favs['maintenance'] = new ArrayObject(array(
'maintenance',
'Maintenance',
'plugin.php?p=maintenance',
'index.php?pf=maintenance/icon.png',
'index.php?pf=maintenance/icon-big.png',
null,null,null
));
}
/**
* Dashboard favs icon.
*
* This updates maintenance fav icon text
* if there are tasks required maintenance.
*
* @param $core dcCore dcCore instance
* @param $name string Current fav name
* @param $icon arrayObject Current fav attributes
*/
public static function favsicon($core, $name, $icon)
{
// Check icon
if ($name !== 'maintenance') {
return null;
}
// Check user option
$user_options = $core->auth->getOptions();
if (empty($user_options['user_maintenance_expired'])) {
return null;
}
// Check expired tasks
$maintenance = new dcMaintenance($core);
$expired = $maintenance->getExpired();
$expired = count($expired);
if (!$expired) {
return null;
}
$icon[0] .= '
'.sprintf(__('One task to update', '%s tasks to update', $expired), $expired);
}
/**
* User preferences form.
*
* This add options for superadmin user
* to show or not expired taks.
*
* @param $args object dcCore instance or record
*/
public static function prefform($args)
{
$opts = array();
if ($args instanceof dcCore) {
$opts = $args->auth->getOptions();
$core = $args;
}
elseif ($args instanceof record) {
$opts = $args->options();
$core = $args->core;
}
echo
'