' . __('Maintenance') . '
' .
'' . sprintf(__('There is a task to execute.', 'There are %s tasks to execute.', count($lines)), count($lines)) . '
' . '- ' . implode('', $lines) . '
addItem(
__('Maintenance'),
$core->adminurl->get('admin.plugin.maintenance'),
dcPage::getPF('maintenance/icon.png'),
preg_match('/' . preg_quote($core->adminurl->get('admin.plugin.maintenance')) . '(&.*)?$/', $_SERVER['REQUEST_URI']),
$core->auth->check('admin', $core->blog->id)
);
// Admin behaviors
$core->addBehavior('dcMaintenanceInit', array('dcMaintenanceAdmin', 'dcMaintenanceInit'));
$core->addBehavior('adminDashboardFavorites', array('dcMaintenanceAdmin', 'adminDashboardFavorites'));
$core->addBehavior('adminDashboardContents', array('dcMaintenanceAdmin', 'adminDashboardItems'));
$core->addBehavior('adminDashboardOptionsForm', array('dcMaintenanceAdmin', 'adminDashboardOptionsForm'));
$core->addBehavior('adminAfterDashboardOptionsUpdate', array('dcMaintenanceAdmin', 'adminAfterDashboardOptionsUpdate'));
$core->addBehavior('adminPageHelpBlock', array('dcMaintenanceAdmin', 'adminPageHelpBlock'));
$core->addBehavior('pluginsToolsHeaders', array('dcMaintenanceAdmin', 'pluginsToolsHeaders'));
/**
@ingroup PLUGIN_MAINTENANCE
@nosubgrouping
@brief Maintenance plugin admin class.
Group of methods used on behaviors.
*/
class dcMaintenanceAdmin
{
/**
* Register default tasks.
*
* @param $maintenance dcMaintenance dcMaintenance instance
*/
public static function dcMaintenanceInit($maintenance)
{
$maintenance
->addTab('maintenance', __('Servicing'), array('summary' => __('Tools to maintain the performance of your blogs.')))
->addTab('backup', __('Backup'), array('summary' => __('Tools to back up your content.')))
->addTab('dev', __('Development'), array('summary' => __('Tools to assist in development of plugins, themes and core.')))
->addGroup('optimize', __('Optimize'))
->addGroup('index', __('Count and index'))
->addGroup('purge', __('Purge'))
->addGroup('other', __('Other'))
->addGroup('zipblog', __('Current blog'))
->addGroup('zipfull', __('All blogs'))
->addGroup('l10n', __('Translations'), array('summary' => __('Maintain translations')))
->addTask('dcMaintenanceCache')
->addTask('dcMaintenanceCSP')
->addTask('dcMaintenanceIndexposts')
->addTask('dcMaintenanceIndexcomments')
->addTask('dcMaintenanceCountcomments')
->addTask('dcMaintenanceSynchpostsmeta')
->addTask('dcMaintenanceLogs')
->addTask('dcMaintenanceVacuum')
->addTask('dcMaintenanceZipmedia')
->addTask('dcMaintenanceZiptheme')
;
}
/**
* Favorites.
*
* @param $core dcCore dcCore instance
* @param $favs arrayObject Array of favs
*/
public static function adminDashboardFavorites($core, $favs)
{
$favs->register('maintenance', array(
'title' => __('Maintenance'),
'url' => $core->adminurl->get('admin.plugin.maintenance'),
'small-icon' => dcPage::getPF('maintenance/icon.png'),
'large-icon' => dcPage::getPF('maintenance/icon-big.png'),
'permissions' => 'admin',
'active_cb' => array('dcMaintenanceAdmin', 'adminDashboardFavoritesActive'),
'dashboard_cb' => array('dcMaintenanceAdmin', 'adminDashboardFavoritesCallback')
));
}
/**
* Favorites selection.
*
* @param $request string Requested page
* @param $params array Requested parameters
*/
public static function adminDashboardFavoritesActive($request, $params)
{
return $request == 'plugin.php' && isset($params['p']) && $params['p'] == 'maintenance';
}
/**
* Favorites hack.
*
* This updates maintenance fav icon text
* if there are tasks required maintenance.
*
* @param $core dcCore dcCore instance
* @param $fav arrayObject fav attributes
*/
public static function adminDashboardFavoritesCallback($core, $fav)
{
// Check user option
$core->auth->user_prefs->addWorkspace('maintenance');
if (!$core->auth->user_prefs->maintenance->dashboard_icon) {
return;
}
// Check expired tasks
$maintenance = new dcMaintenance($core);
$count = 0;
foreach ($maintenance->getTasks() as $t) {
if ($t->expired() !== false) {
$count++;
}
}
if (!$count) {
return;
}
$fav['title'] .= '
' . sprintf(__('One task to execute', '%s tasks to execute', $count), $count);
$fav['large-icon'] = dcPage::getPF('maintenance/icon-big-update.png');
}
/**
* Dashboard items stack.
*
* @param $core dcCore dcCore instance
* @param $items arrayObject Dashboard items
*/
public static function adminDashboardItems($core, $items)
{
$core->auth->user_prefs->addWorkspace('maintenance');
if (!$core->auth->user_prefs->maintenance->dashboard_item) {
return;
}
$maintenance = new dcMaintenance($core);
$lines = array();
foreach ($maintenance->getTasks() as $t) {
$ts = $t->expired();
if ($ts === false) {
continue;
}
$lines[] =
'
' . sprintf(__('There is a task to execute.', 'There are %s tasks to execute.', count($lines)), count($lines)) . '
' . '' . $desc . '
' : '') . '' . $desc . '
' : '') . $res_group; } } if (!empty($res_tab)) { $res = new ArrayObject(); $res->content = $res_tab; $blocks[] = $res; } } /** * Add javascript for plugin configuration. * * @param $core dcCore dcCore instance * @param $module mixed Module ID or false if none * @return string Header code for js inclusion */ public static function pluginsToolsHeaders($core, $module) { if ($module == 'maintenance') { return dcPage::jsLoad(dcPage::getPF('maintenance/js/settings.js')); } } }