auth->isSuperAdmin()){return;} $page_title = __('Advanced cleaner'); # Lists function drawDcAdvancedCleanerLists($core,$type) { $combo_funcs = array( 'settings' => array('dcAdvancedCleaner','getSettings'), 'tables' => array('dcAdvancedCleaner','getTables'), 'plugins' => array('dcAdvancedCleaner','getPlugins'), 'themes' => array('dcAdvancedCleaner','getThemes'), 'caches' => array('dcAdvancedCleaner','getCaches'), 'versions' => array('dcAdvancedCleaner','getVersions') ); $combo_actions = array( 'settings' => array( __('delete global settings') => 'delete_global', __('delete blog settings') => 'delete_local', __('delete all settings') =>'delete_all' ), 'tables' => array( __('delete') => 'delete', __('empty') => 'empty' ), 'plugins' => array( __('delete') => 'delete', __('empty') => 'empty' ), 'themes' => array( __('delete') => 'delete', __('empty') => 'empty' ), 'caches' => array( __('delete') => 'delete', __('empty') => 'empty' ), 'versions' => array( __('delete') => 'delete' ) ); $combo_help = array( 'settings' => __('Namespaces registered in dcSettings'), 'tables' => __('All database tables of Dotclear'), 'plugins' => __('Folders from plugins directories'), 'themes' => __('Folders from blog themes directory'), 'caches' => __('Folders from cache directory'), 'versions' => __('Versions registered in table "version" of Dotclear') ); if (!isset($combo_funcs[$type])) return ''; $rs = call_user_func($combo_funcs[$type],$core); echo '
'. '

'.$combo_help[$type].'

'; if (empty($rs)) { echo '

'.sprintf(__('There is no %s'),__(substr($type,0,-1))).'

'; } else { echo '

'.sprintf(__('There are %s %s'),count($rs),__($type)).'

'. '
'. ''. ''. ''; foreach($rs as $k => $v) { $offline = in_array($v['key'],dcAdvancedCleaner::$dotclear[$type]); if ($core->blog->settings->dcAdvancedCleaner->dcAdvancedCleaner_dcproperty_hide && $offline) continue; echo ''. ''. ''. ''; } echo '
'.__('Name').''.__('Objects').'
'.$v['value'].'
'. '

'.__('Action on selected rows:').'
'. form::combo(array('action'),$combo_actions[$type]). ''. form::hidden(array('p'),'dcAdvancedCleaner'). form::hidden(array('tab'),'lists'). form::hidden(array('part'),$type). form::hidden(array('type'),$type). $core->formNonce().'

'. '
'; } echo '
'; } # Localized l10n __('Settings'); __('settings'); __('setting'); __('Tables'); __('tables'); __('table'); __('Plugins'); __('plugins'); __('plugin'); __('Themes'); __('themes'); __('theme'); __('Caches'); __('caches'); __('cache'); __('Versions'); __('versions'); __('version'); __('delete table'); __('delete cache files'); __('delete plugin files'); __('delete theme files'); __('delete the version number'); __('Uninstall extensions'); __('delete %s blog settings'); __('delete %s global settings'); __('delete all %s settings'); __('delete %s table'); __('delete %s version number'); __('delete %s plugin files'); __('delete %s theme file'); __('delete %s cache files'); # vars $msg = isset($_GET['msg']) ? true : false; $tab = isset($_REQUEST['tab']) ? $_REQUEST['tab'] : 'dcac'; $part = isset($_REQUEST['part']) ? $_REQUEST['part'] : 'caches'; $entries = isset($_POST['entries']) ? $_POST['entries'] : ''; $action = isset($_POST['action']) ? $_POST['action'] : ''; $type = isset($_POST['type']) ? $_POST['type'] : ''; $s = $core->blog->settings->dcAdvancedCleaner; # Combos $combo_title = array( 'settings' => __('Settings'), 'tables' => __('Tables'), 'plugins' => __('Extensions'), 'themes' => __('Themes'), 'caches' => __('Cache'), 'versions' => __('Versions') ); $combo_type = array( 'settings' => array('delete_global','delete_local','delete_all'), 'tables' => array('empty','delete'), 'plugins' => array('empty','delete'), 'themes' => array('empty','delete'), 'caches' => array('empty','delete'), 'versions' => array('delete') ); # This plugin settings if ($tab == 'dcac' && $action == 'dcadvancedcleaner_settings') { try { $s->put('dcAdvancedCleaner_behavior_active',isset($_POST['dcadvancedcleaner_behavior_active']),'boolean'); $s->put('dcAdvancedCleaner_dcproperty_hide',isset($_POST['dcadvancedcleaner_dcproperty_hide']),'boolean'); http::redirect($p_url.'&tab=dcac&part=dcac&part=&msg=done'); } catch(Exception $e) { $core->error->add($e->getMessage()); } } # Actions if ($tab == 'lists' && !empty($entries) && isset($combo_type[$type]) && in_array($action,$combo_type[$type])) { try { foreach($entries as $v) { dcAdvancedCleaner::execute($core,$type,$action,$v); } http::redirect($p_url.'&tab=lists&part='.$part.'&msg=done'); } catch(Exception $e) { $core->error->add($e->getMessage()); } } echo ' '.$page_title.' '. dcPage::jsToolBar(). dcPage::jsPageTabs($tab).' '; # --BEHAVIOR-- dcAdvancedCleanerAdminHeader $core->callBehavior('dcAdvancedCleanerAdminHeader',$core,$p_url,$tab); echo ' '. dcPage::breadcrumb( array( html::escapeHTML($core->blog->name) => '', ''.$page_title.'' => '' )); echo '

'.__('Beware: All actions done here are irreversible and are directly applied').'

'; # Information message if (!empty($msg)) { dcPage::success(__('Action successfully done')); } echo '
'. '

'; foreach($combo_title as $k => $v) { echo ''.$v.' '; } echo '

'; # Load "part" page if (isset($combo_title[$part])) { echo '
'.$combo_title[$part].''; drawDcAdvancedCleanerLists($core,$part); echo '
'; } if ($s->dcAdvancedCleaner_dcproperty_hide) { echo '

'.__('Default values of Dotclear are hidden. You can change this in settings tab').'

'; } echo '
'; # --BEHAVIOR-- dcAdvancedCleanerAdminTabs $core->callBehavior('dcAdvancedCleanerAdminTabs',$core,$p_url); echo '
'.__('This plugin settings').'

'.__('Enable actions set in _uninstall.php files.').'

'.__('Prevent from deleting Dotclear important properties.').'

'. form::hidden(array('p'),'dcAdvancedCleaner'). form::hidden(array('tab'),'dcac'). form::hidden(array('part'),''). form::hidden(array('action'),'dcadvancedcleaner_settings'). $core->formNonce().'

'; dcPage::helpBlock('dcAdvancedCleaner'); echo '

'.__('settings').' - dcAdvancedCleaner - '.$core->plugins->moduleInfo('dcAdvancedCleaner','version').'  dcMiniUrl

';