setUserDefaultBlog($core->auth->userID(),$core->blog->id); $core->adminurl->redirect("admin.home"); } catch (Exception $e) { $core->error->add($e->getMessage()); } } dcPage::check('usage,contentadmin'); if ($core->plugins->disableDepModules($core->adminurl->get('admin.home',array()))) { exit; } # Logout if (!empty($_GET['logout'])) { $core->session->destroy(); if (isset($_COOKIE['dc_admin'])) { unset($_COOKIE['dc_admin']); setcookie('dc_admin',false,-600,'','',DC_ADMIN_SSL); } $core->adminurl->redirect("admin.auth"); exit; } # Plugin install $plugins_install = $core->plugins->installModules(); # Check dashboard module prefs $ws = $core->auth->user_prefs->addWorkspace('dashboard'); if (!$core->auth->user_prefs->dashboard->prefExists('doclinks')) { if (!$core->auth->user_prefs->dashboard->prefExists('doclinks',true)) { $core->auth->user_prefs->dashboard->put('doclinks',true,'boolean','',null,true); } $core->auth->user_prefs->dashboard->put('doclinks',true,'boolean'); } if (!$core->auth->user_prefs->dashboard->prefExists('dcnews')) { if (!$core->auth->user_prefs->dashboard->prefExists('dcnews',true)) { $core->auth->user_prefs->dashboard->put('dcnews',true,'boolean','',null,true); } $core->auth->user_prefs->dashboard->put('dcnews',true,'boolean'); } if (!$core->auth->user_prefs->dashboard->prefExists('quickentry')) { if (!$core->auth->user_prefs->dashboard->prefExists('quickentry',true)) { $core->auth->user_prefs->dashboard->put('quickentry',false,'boolean','',null,true); } $core->auth->user_prefs->dashboard->put('quickentry',false,'boolean'); } if (!$core->auth->user_prefs->dashboard->prefExists('nodcupdate')) { if (!$core->auth->user_prefs->dashboard->prefExists('nodcupdate',true)) { $core->auth->user_prefs->dashboard->put('nodcupdate',false,'boolean','',null,true); } $core->auth->user_prefs->dashboard->put('nodcupdate',false,'boolean'); } // Handle folded/unfolded sections in admin from user preferences $ws = $core->auth->user_prefs->addWorkspace('toggles'); if (!$core->auth->user_prefs->toggles->prefExists('unfolded_sections')) { $core->auth->user_prefs->toggles->put('unfolded_sections','','string','Folded sections in admin',null,true); } # Dashboard icons $__dashboard_icons = new ArrayObject(); $favs = $core->favs->getUserFavorites(); $core->favs->appendDashboardIcons($__dashboard_icons); # Check plugins and themes update from repository $checkStoreUpdate = function($mod, $url, $img, $icon) { $repo = new dcStore($mod, $url); $upd = $repo->get(true); if (!empty($upd)) { $icon[0] .= '
'.sprintf(__('An update is available', '%s updates are available.', count($upd)),count($upd)); $icon[1] .= '#update'; $icon[2] = 'images/menu/'.$img.'-b-update.png'; } }; if (isset($__dashboard_icons['plugins'])) { $checkStoreUpdate($core->plugins, $core->blog->settings->system->store_plugin_url, 'plugins', $__dashboard_icons['plugins']); } if (isset($__dashboard_icons['blog_theme'])) { $themes = new dcThemes($core); $themes->loadModules($core->blog->themes_path, null); $checkStoreUpdate($themes, $core->blog->settings->system->store_theme_url, 'blog-theme', $__dashboard_icons['blog_theme']); } # Latest news for dashboard $__dashboard_items = new ArrayObject(array(new ArrayObject(),new ArrayObject())); $dashboardItem = 0; # Documentation links if ($core->auth->user_prefs->dashboard->doclinks) { if (!empty($__resources['doc'])) { $doc_links = '

'.__('Documentation and support').'

'; $__dashboard_items[$dashboardItem][] = $doc_links; $dashboardItem++; } } $core->callBehavior('adminDashboardItems', $core, $__dashboard_items); # Dashboard content $__dashboard_contents = new ArrayObject(array(new ArrayObject,new ArrayObject)); $core->callBehavior('adminDashboardContents', $core, $__dashboard_contents); # Editor stuff $admin_post_behavior = ''; if ($core->auth->user_prefs->dashboard->quickentry) { if ($core->auth->check('usage,contentadmin',$core->blog->id)) { $post_format = $core->auth->getOption('post_format'); $post_editor = $core->auth->getOption('editor'); if ($post_editor && !empty($post_editor[$post_format])) { // context is not post because of tags not available $admin_post_behavior = $core->callBehavior('adminPostEditor', $post_editor[$post_format], 'quickentry', array('#post_content'),$post_format); } } } /* DISPLAY -------------------------------------------------------- */ dcPage::open(__('Dashboard'), dcPage::jsLoad('js/_index.js'). $admin_post_behavior. # --BEHAVIOR-- adminDashboardHeaders $core->callBehavior('adminDashboardHeaders'), dcPage::breadcrumb( array( __('Dashboard').' : '.html::escapeHTML($core->blog->name) => '' ), array('home_link' =>false) ) ); if ($core->auth->getInfo('user_default_blog') != $core->blog->id && $core->auth->getBlogCount() > 1) { echo '

1)).'" class="button">'.__('Make this blog my default blog').'

'; } if ($core->blog->status == 0) { echo '

'.__('This blog is offline').'.

'; } elseif ($core->blog->status == -1) { echo '

'.__('This blog is removed').'.

'; } if (!defined('DC_ADMIN_URL') || !DC_ADMIN_URL) { echo '

'. sprintf(__('%s is not defined, you should edit your configuration file.'),'DC_ADMIN_URL'). ' '.__('See documentation for more information.'). '

'; } if (!defined('DC_ADMIN_MAILFROM') || !DC_ADMIN_MAILFROM) { echo '

'. sprintf(__('%s is not defined, you should edit your configuration file.'),'DC_ADMIN_MAILFROM'). ' '.__('See documentation for more information.'). '

'; } $err = array(); # Check cache directory if ( $core->auth->isSuperAdmin() ) { if (!is_dir(DC_TPL_CACHE) || !is_writable(DC_TPL_CACHE)) { $err[] = '

'.__("The cache directory does not exist or is not writable. You must create this directory with sufficient rights and affect this location to \"DC_TPL_CACHE\" in inc/config.php file.").'

'; } } else { if (!is_dir(DC_TPL_CACHE) || !is_writable(DC_TPL_CACHE)) { $err[] = '

'.__("The cache directory does not exist or is not writable. You should contact your administrator.").'

'; } } # Check public directory if ( $core->auth->isSuperAdmin() ) { if (!is_dir($core->blog->public_path) || !is_writable($core->blog->public_path)) { $err[] = '

'.__("There is no writable directory /public/ at the location set in about:config \"public_path\". You must create this directory with sufficient rights (or change this setting).").'

'; } } else { if (!is_dir($core->blog->public_path) || !is_writable($core->blog->public_path)) { $err[] = '

'.__("There is no writable root directory for the media manager. You should contact your administrator.").'

'; } } # Error list if (count($err) > 0) { echo '

'.__('Error:').'

'. '
'; } # Plugins install messages if (!empty($plugins_install['success'])) { echo '
'.__('Following plugins have been installed:').'
'; } if (!empty($plugins_install['failure'])) { echo '
'.__('Following plugins have not been installed:').'
'; } # Errors modules notifications if ($core->auth->isSuperAdmin()) { $list = $core->plugins->getErrors(); if (!empty($list)) { echo '

'.__('Errors have occured with following plugins:').'

'. '
'; } } # Dashboard items and contents (processed first, as we need to know the result before displaying the icons.) $dashboardItems = ''; foreach ($__dashboard_items as $i) { foreach ($i as $v) { $dashboardItems .= $v; } } $dashboardContents = ''; foreach ($__dashboard_contents as $i) { foreach ($i as $v) { $dashboardContents .= $v; } } # Dashboard elements: icons then boxes (items then contents) echo '
'; if (!$core->auth->user_prefs->dashboard->nofavicons) { # Dashboard icons echo '
'; foreach ($__dashboard_icons as $i) { echo '

'. '
'.$i[0].'

'; } echo '
'; } if ($core->auth->user_prefs->dashboard->quickentry) { if ($core->auth->check('usage,contentadmin',$core->blog->id)) { # Getting categories $categories_combo = dcAdminCombos::getCategoriesCombo( $core->blog->getCategories(array()) ); echo '
'. '

'.__('Quick entry').sprintf(' › %s',$core->auth->getOption('post_format')).'

'. '
'. '

'.__('New entry').'

'. '

'. form::field('post_title',20,255,'','maximal','',false,'required placeholder="'.__('Title').'"'). '

'. '

'. form::textarea('post_content',50,10,'','','',false,'required placeholder="'.__('Content').'"'). '

'. '

'. form::combo('cat_id',$categories_combo).'

'. ($core->auth->check('categories', $core->blog->id) ? '
'. '

'.__('Add a new category').'

'. '

'. form::field('new_cat_title',30,255,'','').'

'. '

'. form::combo('new_cat_parent',$categories_combo,'',''). '

'. '

'.__('This category will be created when you will save your post.').'

'. '
' : ''). '

'. ($core->auth->check('publish',$core->blog->id) ? '' : ''). $core->formNonce(). form::hidden('post_status',-2). form::hidden('post_format',$core->auth->getOption('post_format')). form::hidden('post_excerpt',''). form::hidden('post_lang',$core->auth->getInfo('user_lang')). form::hidden('post_notes',''). '

'. '
'. '
'; } } if ($dashboardContents != '' || $dashboardItems != '') { echo '
'. ($dashboardItems != '' ? '
'.$dashboardItems.'
' : ''). ($dashboardContents != '' ? '
'.$dashboardContents.'
' : ''). '
'; } echo '
'; #end dashboard-main dcPage::helpBlock('core_dashboard'); dcPage::close();