Changeset 1079:e3bf3d268635
- Timestamp:
- 12/18/12 12:43:56 (13 years ago)
- Branch:
- twig
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
admin/index.php
r1056 r1079 48 48 $plugins_install = $core->plugins->installModules(); 49 49 50 # Send plugins install messages to templates 51 if (!empty($plugins_install['success'])) { 52 $_ctx->addMessagesList(__('Following plugins have been installed:'),$plugins_install['success']); 53 } 54 if (!empty($plugins_install['failure'])) { 55 $_ctx->addMessagesList(__('Following plugins have not been installed:'),$plugins_install['failure']); 56 } 57 58 # Send plugins errors messages to templates 59 $_ctx->modules_errors = $core->auth->isSuperAdmin() ? $core->plugins->getErrors() : array(); 60 61 # Send Dotclear updates notifications to tempaltes 62 $_ctx->updater = array(); 63 if ($core->auth->isSuperAdmin() && is_readable(DC_DIGESTS)) { 64 65 $updater = new dcUpdate(DC_UPDATE_URL,'dotclear',DC_UPDATE_VERSION,DC_TPL_CACHE.'/versions'); 66 $new_v = $updater->check(DC_VERSION); 67 $version_info = $new_v ? $updater->getInfoURL() : ''; 68 69 if ($updater->getNotify() && $new_v) { 70 $_ctx->updater = array( 71 'new_version' => $new_v, 72 'version_info' => $version_info 73 ); 74 } 75 } 76 50 77 # Check dashboard module prefs 51 78 $ws = $core->auth->user_prefs->addWorkspace('dashboard'); 79 80 # Doclinks prefs 52 81 if (!$core->auth->user_prefs->dashboard->prefExists('doclinks')) { 53 82 if (!$core->auth->user_prefs->dashboard->prefExists('doclinks',true)) { … … 56 85 $core->auth->user_prefs->dashboard->put('doclinks',true,'boolean'); 57 86 } 87 88 # Send doclinks to templates 89 $_ctx->dashboard_doclinks = array(); 90 if ($core->auth->user_prefs->dashboard->doclinks && !empty($__resources['doc'])) { 91 $_ctx->dashboard_doclinks = $__resources['doc']; 92 } 93 94 # Dcnews prefs 58 95 if (!$core->auth->user_prefs->dashboard->prefExists('dcnews')) { 59 96 if (!$core->auth->user_prefs->dashboard->prefExists('dcnews',true)) { … … 62 99 $core->auth->user_prefs->dashboard->put('dcnews',true,'boolean'); 63 100 } 101 102 # Send dcnews to templates 103 $_ctx->dashboard_dcnews = array(); 104 if ($core->auth->user_prefs->dashboard->dcnews && !empty($__resources['rss_news'])) { 105 try 106 { 107 $feed_reader = new feedReader; 108 $feed_reader->setCacheDir(DC_TPL_CACHE); 109 $feed_reader->setTimeout(2); 110 $feed_reader->setUserAgent('Dotclear - http://www.dotclear.org/'); 111 $feed = $feed_reader->parse($__resources['rss_news']); 112 if ($feed) { 113 $items = array(); 114 $i = 1; 115 foreach ($feed->items as $item) { 116 $items[] = array( 117 'title' => $item->title, 118 'link' => isset($item->link) ? $item->link : '', 119 'date' => dt::dt2str(__('%d %B %Y'),$item->pubdate,'Europe/Paris'), 120 'content' => html::clean($item->content) 121 ); 122 $i++; 123 if ($i > 3) { break; } 124 } 125 $_ctx->dashboard_dcnews = $items; 126 } 127 } 128 catch (Exception $e) {} 129 } 130 131 # Quick entry prefs 64 132 if (!$core->auth->user_prefs->dashboard->prefExists('quickentry')) { 65 133 if (!$core->auth->user_prefs->dashboard->prefExists('quickentry',true)) { … … 67 135 } 68 136 $core->auth->user_prefs->dashboard->put('quickentry',true,'boolean'); 137 } 138 139 # Send quick entry to templates 140 $_ctx->dashboard_quickentry = false; 141 if ($core->auth->user_prefs->dashboard->quickentry &&$core->auth->check('usage,contentadmin',$core->blog->id)) 142 { 143 $categories_combo = array(' ' => ''); 144 try { 145 $categories = $core->blog->getCategories(array('post_type'=>'post')); 146 while ($categories->fetch()) { 147 $categories_combo[] = new formSelectOption( 148 str_repeat(' ',$categories->level-1). 149 ($categories->level-1 == 0 ? '' : '• ').html::escapeHTML($categories->cat_title), 150 $categories->cat_id 151 ); 152 } 153 } 154 catch (Exception $e) { } 155 156 $form = new dcForm($core,'quickentry','post.php'); 157 $form 158 ->addField( 159 new dcFieldText('post_title','', array( 160 'size' => 20, 161 'required' => true, 162 'label' => __('Title')))) 163 ->addField( 164 new dcFieldTextArea('post_content','', array( 165 'required' => true, 166 'label' => __("Content:")))) 167 ->addField( 168 new dcFieldCombo('cat_id','',$categories_combo,array( 169 "label" => __('Category:')))) 170 ->addField( 171 new dcFieldSubmit('save',__('Save'),array( 172 'action' => 'savePost'))) 173 ->addField( 174 new dcFieldHidden ('post_status',-2)) 175 ->addField( 176 new dcFieldHidden ('post_format',$core->auth->getOption('post_format'))) 177 ->addField( 178 new dcFieldHidden ('post_excerpt','')) 179 ->addField( 180 new dcFieldHidden ('post_lang',$core->auth->getInfo('user_lang'))) 181 ->addField( 182 new dcFieldHidden ('post_notes','')) 183 ; 184 if ($core->auth->check('publish',$core->blog->id)) { 185 $form->addField( 186 new dcFieldHidden ('save-publish',__('Save and publish'))); 187 } 188 189 $_ctx->dashboard_quickentry = true; 69 190 } 70 191 … … 123 244 } 124 245 125 # Latest news for dashboard 246 # Send dashboard icons to templates 247 $icons = array(); 248 foreach ($__dashboard_icons as $i) { 249 $icons[] = array( 250 'title' => $i[0], 251 'url' => $i[1], 252 'img' => dc_admin_icon_url($i[2]) 253 ); 254 } 255 $_ctx->dashboard_icons = $icons; 256 257 # Dashboard items 126 258 $__dashboard_items = new ArrayObject(array(new ArrayObject,new ArrayObject)); 127 128 # Documentation links129 $dashboardItem = 0;130 if ($core->auth->user_prefs->dashboard->doclinks) {131 if (!empty($__resources['doc']))132 {133 $doc_links = '<h3>'.__('Documentation and support').'</h3><ul>';134 135 foreach ($__resources['doc'] as $k => $v) {136 $doc_links .= '<li><a href="'.$v.'" title="'.$k.' '.__('(external link)').'">'.$k.'</a></li>';137 }138 139 $doc_links .= '</ul>';140 $__dashboard_items[$dashboardItem][] = $doc_links;141 $dashboardItem++;142 }143 }144 145 if ($core->auth->user_prefs->dashboard->dcnews) {146 try147 {148 if (empty($__resources['rss_news'])) {149 throw new Exception();150 }151 152 $feed_reader = new feedReader;153 $feed_reader->setCacheDir(DC_TPL_CACHE);154 $feed_reader->setTimeout(2);155 $feed_reader->setUserAgent('Dotclear - http://www.dotclear.org/');156 $feed = $feed_reader->parse($__resources['rss_news']);157 if ($feed)158 {159 $latest_news = '<h3>'.__('Latest news').'</h3><dl id="news">';160 $i = 1;161 foreach ($feed->items as $item)162 {163 $dt = isset($item->link) ? '<a href="'.$item->link.'"'.$v.'" title="'.$item->title.' '.__('(external link)').'">'.164 $item->title.'</a>' : $item->title;165 166 if ($i < 3) {167 $latest_news .=168 '<dt>'.$dt.'</dt>'.169 '<dd><p><strong>'.dt::dt2str('%d %B %Y',$item->pubdate,'Europe/Paris').'</strong>: '.170 '<em>'.text::cutString(html::clean($item->content),120).'...</em></p></dd>';171 } else {172 $latest_news .=173 '<dt>'.$dt.'</dt>'.174 '<dd>'.dt::dt2str('%d %B %Y',$item->pubdate,'Europe/Paris').'</dd>';175 }176 $i++;177 if ($i > 3) { break; }178 }179 $latest_news .= '</dl>';180 $__dashboard_items[$dashboardItem][] = $latest_news;181 $dashboardItem++;182 }183 }184 catch (Exception $e) {}185 }186 187 259 $core->callBehavior('adminDashboardItems', $core, $__dashboard_items); 188 260 261 # Send dashboard items to templates 262 $items = array(); 263 foreach ($__dashboard_items as $i) { 264 if ($i->count() > 0) { 265 foreach ($i as $v) { 266 $items[] = $v; 267 } 268 } 269 } 270 $_ctx->dashboard_items = $items; 271 189 272 # Dashboard content 190 $dashboardContents = '';191 273 $__dashboard_contents = new ArrayObject(array(new ArrayObject,new ArrayObject)); 192 274 $core->callBehavior('adminDashboardContents', $core, $__dashboard_contents); 193 275 194 /* DISPLAY 195 -------------------------------------------------------- */ 196 dcPage::open(__('Dashboard'), 197 dcPage::jsToolBar(). 198 dcPage::jsLoad('js/_index.js'). 199 # --BEHAVIOR-- adminDashboardHeaders 200 $core->callBehavior('adminDashboardHeaders') 201 ); 202 203 echo '<h2>'.html::escapeHTML($core->blog->name).' › <span class="page-title">'.__('Dashboard').'</span></h2>'; 204 205 if ($core->auth->getInfo('user_default_blog') != $core->blog->id && $core->auth->blog_count > 1) { 206 echo 207 '<p><a href="index.php?default_blog=1" class="button">'.__('Make this blog my default blog').'</a></p>'; 208 } 209 276 # Send dashboard contents to templates 277 $contents = array(); 278 foreach ($__dashboard_contents as $i) { 279 if ($i->count() > 0) { 280 foreach ($i as $v) { 281 $contents[] = $v; 282 } 283 } 284 } 285 $_ctx->dashboard_contents = $contents; 286 287 # Blog status message 210 288 if ($core->blog->status == 0) { 211 echo '<p class="static-msg">'.__('This blog is offline').'</p>';289 $_ctx->addMessageStatic(__('This blog is offline')); 212 290 } elseif ($core->blog->status == -1) { 213 echo '<p class="static-msg">'.__('This blog is removed').'</p>'; 214 } 215 291 $_ctx->addMessageStatic(__('This blog is removed')); 292 } 293 294 # Config errors messages 216 295 if (!defined('DC_ADMIN_URL') || !DC_ADMIN_URL) { 217 echo 218 '<p class="static-msg">'. 219 'DC_ADMIN_URL '.__('is not defined, you should edit your configuration file.'). 220 '</p>'; 221 } 222 296 $_ctx->addMessageStatic( 297 sprintf(__('%s is not defined, you should edit your configuration file.'),'DC_ADMIN_URL').' '. 298 __('See <a href="http://dotclear.org/documentation/2.0/admin/config">documentation</a> for more information.') 299 ); 300 } 223 301 if (!defined('DC_ADMIN_MAILFROM') || !DC_ADMIN_MAILFROM) { 224 echo 225 '<p class="static-msg">'. 226 'DC_ADMIN_MAILFROM '.__('is not defined, you should edit your configuration file.'). 227 '</p>'; 228 } 229 230 # Plugins install messages 231 if (!empty($plugins_install['success'])) 232 { 233 echo '<div class="static-msg">'.__('Following plugins have been installed:').'<ul>'; 234 foreach ($plugins_install['success'] as $k => $v) { 235 echo '<li>'.$k.'</li>'; 236 } 237 echo '</ul></div>'; 238 } 239 if (!empty($plugins_install['failure'])) 240 { 241 echo '<div class="error">'.__('Following plugins have not been installed:').'<ul>'; 242 foreach ($plugins_install['failure'] as $k => $v) { 243 echo '<li>'.$k.' ('.$v.')</li>'; 244 } 245 echo '</ul></div>'; 246 } 247 248 # Dashboard columns (processed first, as we need to know the result before displaying the icons.) 249 $dashboardItems = ''; 250 251 # Dotclear updates notifications 252 if ($core->auth->isSuperAdmin() && is_readable(DC_DIGESTS)) 253 { 254 $updater = new dcUpdate(DC_UPDATE_URL,'dotclear',DC_UPDATE_VERSION,DC_TPL_CACHE.'/versions'); 255 $new_v = $updater->check(DC_VERSION); 256 $version_info = $new_v ? $updater->getInfoURL() : ''; 257 258 if ($updater->getNotify() && $new_v) { 259 $dashboardItems .= 260 '<div id="upg-notify" class="static-msg"><p>'.sprintf(__('Dotclear %s is available!'),$new_v).'</p> '. 261 '<ul><li><strong><a href="update.php">'.sprintf(__('Upgrade now'),$new_v).'</a></strong>'. 262 '</li><li><a href="update.php?hide_msg=1">'.__('Remind me later').'</a>'. 263 ($version_info ? ' </li><li><a href="'.$version_info.'">'.__('information about this version').'</a>' : ''). 264 '</li></ul></div>'; 265 } 266 } 267 268 # Errors modules notifications 269 if ($core->auth->isSuperAdmin()) 270 { 271 $list = array(); 272 foreach ($core->plugins->getErrors() as $k => $error) { 273 $list[] = '<li>'.$error.'</li>'; 274 } 275 276 if (count($list) > 0) { 277 $dashboardItems .= 278 '<div id="module-errors" class="error"><p>'.__('Some plugins are installed twice:').'</p> '. 279 '<ul>'.implode("\n",$list).'</ul></div>'; 280 } 281 282 } 283 284 foreach ($__dashboard_items as $i) 285 { 286 if ($i->count() > 0) 287 { 288 $dashboardItems .= '<div>'; 289 foreach ($i as $v) { 290 $dashboardItems .= $v; 291 } 292 $dashboardItems .= '</div>'; 293 } 294 } 295 296 # Dashboard icons 297 echo '<div id="dashboard-main"'.($dashboardItems ? '' : ' class="fullwidth"').'><div id="icons">'; 298 foreach ($__dashboard_icons as $i) 299 { 300 echo 301 '<p><a href="'.$i[1].'"><img src="'.dc_admin_icon_url($i[2]).'" alt="" />'. 302 '<br /><span>'.$i[0].'</span></a></p>'; 303 } 304 echo '</div>'; 305 306 if ($core->auth->user_prefs->dashboard->quickentry) { 307 if ($core->auth->check('usage,contentadmin',$core->blog->id)) 308 { 309 $categories_combo = array(' ' => ''); 310 try { 311 $categories = $core->blog->getCategories(array('post_type'=>'post')); 312 while ($categories->fetch()) { 313 $categories_combo[] = new formSelectOption( 314 str_repeat(' ',$categories->level-1). 315 ($categories->level-1 == 0 ? '' : '• ').html::escapeHTML($categories->cat_title), 316 $categories->cat_id 317 ); 318 } 319 } catch (Exception $e) { } 320 321 echo 322 '<div id="quick">'. 323 '<h3>'.__('Quick entry').'</h3>'. 324 '<form id="quick-entry" action="post.php" method="post">'. 325 '<fieldset><legend>'.__('New entry').'</legend>'. 326 '<p class="col"><label for="post_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:'). 327 form::field('post_title',20,255,'','maximal'). 328 '</label></p>'. 329 '<p class="area"><label class="required" '. 330 'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '. 331 form::textarea('post_content',50,7). 332 '</p>'. 333 '<p><label for="cat_id" class="classic">'.__('Category:').' '. 334 form::combo('cat_id',$categories_combo).'</label></p>'. 335 '<p><input type="submit" value="'.__('Save').'" name="save" /> '. 336 ($core->auth->check('publish',$core->blog->id) 337 ? '<input type="hidden" value="'.__('Save and publish').'" name="save-publish" />' 338 : ''). 339 $core->formNonce(). 340 form::hidden('post_status',-2). 341 form::hidden('post_format',$core->auth->getOption('post_format')). 342 form::hidden('post_excerpt',''). 343 form::hidden('post_lang',$core->auth->getInfo('user_lang')). 344 form::hidden('post_notes',''). 345 '</p>'. 346 '</fieldset>'. 347 '</form>'. 348 '</div>'; 349 } 350 } 351 352 foreach ($__dashboard_contents as $i) 353 { 354 if ($i->count() > 0) 355 { 356 $dashboardContents .= '<div>'; 357 foreach ($i as $v) { 358 $dashboardContents .= $v; 359 } 360 $dashboardContents .= '</div>'; 361 } 362 } 363 echo ($dashboardContents ? '<div id="dashboard-contents">'.$dashboardContents.'</div>' : ''); 364 365 echo '</div>'; 366 367 echo ($dashboardItems ? '<div id="dashboard-items">'.$dashboardItems.'</div>' : ''); 368 369 dcPage::close(); 302 $_ctx->addMessageStatic( 303 sprintf(__('%s is not defined, you should edit your configuration file.'),'DC_ADMIN_MAILFROM').' '. 304 __('See <a href="http://dotclear.org/documentation/2.0/admin/config">documentation</a> for more information.') 305 ); 306 } 307 308 $_ctx->setPageTitle(__('Dashboard')); 309 $core->tpl->display('index.html.twig'); 370 310 ?>
Note: See TracChangeset
for help on using the changeset viewer.