Changeset 1157:7b991a71afff for inc/admin
- Timestamp:
- 06/12/13 11:21:10 (12 years ago)
- Branch:
- twig
- Parents:
- 1156:92f840a91f98 (diff), 1146:aff704bcccea (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
inc/admin/lib.dc.page.php
r1145 r1157 49 49 50 50 # Top of admin page 51 public static function open($title='', $head='') 52 { 53 global $core; 54 55 # List of user's blogs 56 if ($core->auth->blog_count == 1 || $core->auth->blog_count > 20) 57 { 58 $blog_box = 59 '<p>'.__('Blog:').' <strong title="'.html::escapeHTML($core->blog->url).'">'. 60 html::escapeHTML($core->blog->name).'</strong>'; 61 62 if ($core->auth->blog_count > 20) { 63 $blog_box .= ' - <a href="blogs.php">'.__('Change blog').'</a>'; 64 } 65 $blog_box .= '</p>'; 66 } 67 else 68 { 69 $rs_blogs = $core->getBlogs(array('order'=>'LOWER(blog_name)','limit'=>20)); 70 $blogs = array(); 71 while ($rs_blogs->fetch()) { 72 $blogs[html::escapeHTML($rs_blogs->blog_name.' - '.$rs_blogs->blog_url)] = $rs_blogs->blog_id; 73 } 74 $blog_box = 75 '<p><label for="switchblog" class="classic">'. 76 __('Blogs:').' '. 77 $core->formNonce(). 78 form::combo('switchblog',$blogs,$core->blog->id). 79 '</label></p>'. 80 '<noscript><p><input type="submit" value="'.__('ok').'" /></p></noscript>'; 81 } 82 83 $safe_mode = isset($_SESSION['sess_safe_mode']) && $_SESSION['sess_safe_mode']; 84 85 # Display 86 header('Content-Type: text/html; charset=UTF-8'); 87 echo 88 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" '. 89 ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n". 90 '<html xmlns="http://www.w3.org/1999/xhtml" '. 91 'xml:lang="'.$core->auth->getInfo('user_lang').'" '. 92 'lang="'.$core->auth->getInfo('user_lang').'">'."\n". 93 "<head>\n". 94 ' <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'."\n". 95 ' <title>'.$title.' - '.html::escapeHTML($core->blog->name).' - '.html::escapeHTML(DC_VENDOR_NAME).' - '.DC_VERSION.'</title>'."\n". 96 97 ' <meta name="ROBOTS" content="NOARCHIVE,NOINDEX,NOFOLLOW" />'."\n". 98 ' <meta name="GOOGLEBOT" content="NOSNIPPET" />'."\n". 99 100 self::jsLoadIE7(). 101 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n"; 102 if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') { 103 echo 104 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n"; 105 } 106 107 $core->auth->user_prefs->addWorkspace('interface'); 108 $user_ui_hide_std_favicon = $core->auth->user_prefs->interface->hide_std_favicon; 109 if (!$user_ui_hide_std_favicon) { 110 echo '<link rel="icon" type="image/png" href="images/favicon.png" />'; 111 } 112 113 echo 114 self::jsCommon(). 115 $head; 116 117 # --BEHAVIOR-- adminPageHTMLHead 118 $core->callBehavior('adminPageHTMLHead'); 119 120 echo 121 "</head>\n". 122 '<body id="dotclear-admin'. 123 ($safe_mode ? ' safe-mode' : ''). 124 '">'."\n". 125 126 '<div id="header">'. 127 '<ul id="prelude"><li><a href="#content">'.__('Go to the content').'</a></li><li><a href="#main-menu">'.__('Go to the menu').'</a></li></ul>'."\n". 128 '<div id="top"><h1><a href="index.php">'.DC_VENDOR_NAME.'</a></h1></div>'."\n"; 129 130 echo 131 '<div id="info-boxes">'. 132 '<div id="info-box1">'. 133 '<form action="index.php" method="post">'. 134 $blog_box. 135 '<p><a href="'.$core->blog->url.'" onclick="window.open(this.href);return false;" title="'.__('Go to site').' ('.__('new window').')'.'">'.__('Go to site').' <img src="images/outgoing.png" alt="" /></a>'. 136 '</p></form>'. 137 '</div>'. 138 '<div id="info-box2">'. 139 '<a'.(preg_match('/index.php$/',$_SERVER['REQUEST_URI']) ? ' class="active"' : '').' href="index.php">'.__('My dashboard').'</a>'. 140 '<span> | </span><a'.(preg_match('/preferences.php(\?.*)?$/',$_SERVER['REQUEST_URI']) ? ' class="active"' : '').' href="preferences.php">'.__('My preferences').'</a>'. 141 '<span> | </span><a href="index.php?logout=1" class="logout">'.sprintf(__('Logout %s'),$core->auth->userID()).' <img src="images/logout.png" alt="" /></a>'. 142 '</div>'. 143 '</div>'. 144 '</div>'; 145 146 echo 147 '<div id="wrapper">'."\n". 148 '<div id="main">'."\n". 149 '<div id="content">'."\n"; 150 151 # Safe mode 152 if ($safe_mode) 153 { 154 echo 155 '<div class="error"><h3>'.__('Safe mode').'</h3>'. 156 '<p>'.__('You are in safe mode. All plugins have been temporarily disabled. Remind to log out then log in again normally to get back all functionalities').'</p>'. 157 '</div>'; 158 } 51 public static function open($title='',$head='',$popup=false) 52 { 53 global $core, $_ctx; 54 55 $_ctx->popup = (boolean) $popup; 56 $_ctx->page_header = $head; 57 $_ctx->fillPageTitle($title); 58 59 ob_start(); 60 } 61 62 public static function close() 63 { 64 $res = ob_get_contents(); 65 ob_end_clean(); 66 67 global $core, $_ctx; 159 68 160 69 if ($core->error->flag()) { 161 echo 162 '<div class="error"><p><strong>'.(count($core->error->getErrors()) > 1 ? __('Errors:') : __('Error:')).'</p></strong>'. 163 $core->error->toHTML(). 164 '</div>'; 165 } 166 } 167 168 public static function close() 169 { 170 global $core; 171 172 $menu =& $GLOBALS['_menu']; 173 174 echo 175 "</div>\n". // End of #content 176 "</div>\n". // End of #main 177 178 '<div id="main-menu">'."\n"; 179 180 foreach ($menu as $k => $v) { 181 echo $menu[$k]->draw(); 182 } 183 184 $text = sprintf(__('Thank you for using %s.'),'Dotclear '.DC_VERSION); 185 186 # --BEHAVIOR-- adminPageFooter 187 $textAlt = $core->callBehavior('adminPageFooter',$core,$text); 188 if ($textAlt != '') { 189 $text = $textAlt; 190 } 191 $text = html::escapeHTML($text); 192 193 echo 194 '</div>'."\n". // End of #main-menu 195 '<div id="footer"><a href="http://dotclear.org/" title="'.$text.'"><img src="style/dc_logo_footer.png" alt="'.$text.'" /></a></div>'."\n". 196 "</div>\n"; // End of #wrapper 197 198 if (defined('DC_DEV') && DC_DEV === true) { 199 echo self::debugInfo(); 200 } 201 202 echo 203 '</body></html>'; 204 } 205 206 public static function openPopup($title='', $head='') 207 { 208 global $core; 209 210 # Display 211 header('Content-Type: text/html; charset=UTF-8'); 212 echo 213 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" '. 214 ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n". 215 '<html xmlns="http://www.w3.org/1999/xhtml" '. 216 'xml:lang="'.$core->auth->getInfo('user_lang').'" '. 217 'lang="'.$core->auth->getInfo('user_lang').'">'."\n". 218 "<head>\n". 219 ' <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'."\n". 220 ' <title>'.$title.' - '.html::escapeHTML($core->blog->name).' - '.html::escapeHTML(DC_VENDOR_NAME).' - '.DC_VERSION.'</title>'."\n". 221 222 ' <meta name="ROBOTS" content="NOARCHIVE,NOINDEX,NOFOLLOW" />'."\n". 223 ' <meta name="GOOGLEBOT" content="NOSNIPPET" />'."\n". 224 225 self::jsLoadIE7(). 226 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n"; 227 if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') { 228 echo 229 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n"; 230 } 231 232 echo 233 self::jsCommon(). 234 $head; 235 236 # --BEHAVIOR-- adminPageHTMLHead 237 $core->callBehavior('adminPageHTMLHead'); 238 239 echo 240 "</head>\n". 241 '<body id="dotclear-admin" class="popup">'."\n". 242 243 '<div id="top"><h1>'.DC_VENDOR_NAME.'</h1></div>'."\n"; 244 245 echo 246 '<div id="wrapper">'."\n". 247 '<div id="main">'."\n". 248 '<div id="content">'."\n"; 249 250 if ($core->error->flag()) { 251 echo 252 '<div class="error"><strong>'.__('Errors:').'</strong>'. 253 $core->error->toHTML(). 254 '</div>'; 255 } 70 foreach($core->error->getErrors() as $e) { 71 $_ctx->addError($e); 72 } 73 } 74 $_ctx->page_content = $res; 75 $core->tpl->display('page_layout.html.twig'); 76 } 77 78 public static function openPopup($title='',$head='') 79 { 80 self::open($title,$head,true); 256 81 } 257 82 258 83 public static function closePopup() 259 84 { 260 echo 261 "</div>\n". // End of #content 262 "</div>\n". // End of #main 263 '<div id="footer"><p> </p></div>'."\n". 264 "</div>\n". // End of #wrapper 265 '</body></html>'; 85 self::close(); 266 86 } 267 87 … … 279 99 } 280 100 } 281 return $res;282 }283 284 private static function debugInfo()285 {286 $global_vars = implode(', ',array_keys($GLOBALS));287 288 $res =289 '<div id="debug"><div>'.290 '<p>memory usage: '.memory_get_usage().' ('.files::size(memory_get_usage()).')</p>';291 292 if (function_exists('xdebug_get_profiler_filename'))293 {294 $res .= '<p>Elapsed time: '.xdebug_time_index().' seconds</p>';295 296 $prof_file = xdebug_get_profiler_filename();297 if ($prof_file) {298 $res .= '<p>Profiler file : '.xdebug_get_profiler_filename().'</p>';299 } else {300 $prof_url = http::getSelfURI();301 $prof_url .= (strpos($prof_url,'?') === false) ? '?' : '&';302 $prof_url .= 'XDEBUG_PROFILE';303 $res .= '<p><a href="'.html::escapeURL($prof_url).'">Trigger profiler</a></p>';304 }305 306 /* xdebug configuration:307 zend_extension = /.../xdebug.so308 xdebug.auto_trace = On309 xdebug.trace_format = 0310 xdebug.trace_options = 1311 xdebug.show_mem_delta = On312 xdebug.profiler_enable = 0313 xdebug.profiler_enable_trigger = 1314 xdebug.profiler_output_dir = /tmp315 xdebug.profiler_append = 0316 xdebug.profiler_output_name = timestamp317 */318 }319 320 $res .=321 '<p>Global vars: '.$global_vars.'</p>'.322 '</div></div>';323 324 101 return $res; 325 102 } -
inc/admin/lib.dc.page.php
r1155 r1157 450 450 } 451 451 452 public static function js CandyUpload($params=array(),$base_url=null)452 public static function jsUpload($params=array(),$base_url=null) 453 453 { 454 454 if (!$base_url) { … … 463 463 464 464 return 465 '<link rel="stylesheet" type="text/css" href="style/candyUpload/style.css" />'."\n". 466 self::jsLoad('js/jquery/jquery.candyUpload.js'). 467 468 '<script type="text/javascript">'."\n". 469 "//<![CDATA[\n". 470 "dotclear.candyUpload = {};\n". 471 self::jsVar('dotclear.msg.activate_enhanced_uploader',__('Temporarily activate enhanced uploader')). 472 self::jsVar('dotclear.msg.disable_enhanced_uploader',__('Temporarily disable enhanced uploader')). 473 self::jsVar('$._candyUpload.prototype.locales.file_uploaded',__('File successfully uploaded.')). 474 self::jsVar('$._candyUpload.prototype.locales.max_file_size',__('Maximum file size allowed:')). 475 self::jsVar('$._candyUpload.prototype.locales.limit_exceeded',__('Limit exceeded.')). 476 self::jsVar('$._candyUpload.prototype.locales.size_limit_exceeded',__('File size exceeds allowed limit.')). 477 self::jsVar('$._candyUpload.prototype.locales.canceled',__('Canceled.')). 478 self::jsVar('$._candyUpload.prototype.locales.http_error',__('HTTP Error:')). 479 self::jsVar('$._candyUpload.prototype.locales.error',__('Error:')). 480 self::jsVar('$._candyUpload.prototype.locales.choose_file',__('Choose file')). 481 self::jsVar('$._candyUpload.prototype.locales.choose_files',__('Choose files')). 482 self::jsVar('$._candyUpload.prototype.locales.cancel',__('Cancel')). 483 self::jsVar('$._candyUpload.prototype.locales.clean',__('Clean')). 484 self::jsVar('$._candyUpload.prototype.locales.upload',__('Upload')). 485 self::jsVar('$._candyUpload.prototype.locales.no_file_in_queue',__('No file in queue.')). 486 self::jsVar('$._candyUpload.prototype.locales.file_in_queue',__('1 file in queue.')). 487 self::jsVar('$._candyUpload.prototype.locales.files_in_queue',__('%d files in queue.')). 488 self::jsVar('$._candyUpload.prototype.locales.queue_error',__('Queue error:')). 489 self::jsVar('dotclear.candyUpload.base_url',$base_url). 490 self::jsVar('dotclear.candyUpload.movie_url',$base_url.'index.php?pf=swfupload.swf'). 491 self::jsVar('dotclear.candyUpload.params',implode('&',$params)). 465 '<link rel="stylesheet" type="text/css" href="style/jsUpload/style.css" />'."\n". 466 467 '<script id="template-upload" type="text/x-tmpl"> 468 {% for (var i=0, file; file=o.files[i]; i++) { %} 469 <tr class="template-upload fade"> 470 <td> 471 <span class="preview"></span> 472 </td> 473 <td> 474 <p class="name">{%=file.name%}</p> 475 {% if (file.error) { %} 476 <div><span class="label label-error">'.__('Error:').'</span> {%=file.error%}</div> 477 {% } %} 478 </td> 479 <td> 480 <p class="size">{%=o.formatFileSize(file.size)%}</p> 481 {% if (!o.files.error) { %} 482 <div class="progress progress-success progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="bar" style="width:0%;"></div></div> 483 {% } %} 484 </td> 485 <td> 486 {% if (!o.files.error && !i && !o.options.autoUpload) { %} 487 <input type="submit" class="button start" value="'.__('Send').'"/> 488 {% } %} 489 </td> 490 </tr> 491 {% } %} 492 </script> 493 <!-- The template to display files available for download --> 494 <script id="template-download" type="text/x-tmpl"> 495 {% for (var i=0, file; file=o.files[i]; i++) { %} 496 <tr class="template-download fade"> 497 <td> 498 <span class="preview"> 499 {% if (file.thumbnail_url) { %} 500 <a href="{%=file.url%}" title="{%=file.name%}" data-gallery="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a> 501 {% } %} 502 </span> 503 </td> 504 <td> 505 <p class="name">{%=file.name%}</p> 506 {% if (file.error) { %} 507 <div><span class="label label-important">'.__('Error:').'</span> {%=file.error%}</div> 508 {% } %} 509 </td> 510 <td> 511 <span class="size">{%=o.formatFileSize(file.size)%}</span> 512 </td> 513 <td> 514 {% if (file.error) { %} 515 <span class="upload-status error"></span> 516 {% } else { %} 517 <span class="upload-status ok"></span> 518 {% } %} 519 </td> 520 </tr> 521 {% } %} 522 </script>'. 523 524 self::jsLoad('js/jsUpload/vendor/jquery.ui.widget.js'). 525 self::jsLoad('js/jsUpload/tmpl.js'). 526 self::jsLoad('js/jsUpload/load-image.js'). 527 self::jsLoad('js/jsUpload/jquery.iframe-transport.js'). 528 self::jsLoad('js/jsUpload/jquery.fileupload.js'). 529 self::jsLoad('js/jsUpload/jquery.fileupload-process.js'). 530 self::jsLoad('js/jsUpload/jquery.fileupload-resize.js'). 531 self::jsLoad('js/jsUpload/jquery.fileupload-ui.js'). 532 533 '<script type="text/javascript">'."\n". 534 "//<![CDATA[\n". 535 "dotclear.jsUpload = {};\n". 536 "dotclear.jsUpload.msg = {};\n". 537 self::jsVar('dotclear.jsUpload.msg.limit_exceeded',__('Limit exceeded.')). 538 self::jsVar('dotclear.jsUpload.msg.size_limit_exceeded',__('File size exceeds allowed limit.')). 539 self::jsVar('dotclear.jsUpload.msg.canceled',__('Canceled.')). 540 self::jsVar('dotclear.jsUpload.msg.http_error',__('HTTP Error:')). 541 self::jsVar('dotclear.jsUpload.msg.error',__('Error:')). 542 self::jsVar('dotclear.jsUpload.msg.choose_file',__('Choose file')). 543 self::jsVar('dotclear.jsUpload.msg.choose_files',__('Choose files')). 544 self::jsVar('dotclear.jsUpload.msg.cancel',__('Cancel')). 545 self::jsVar('dotclear.jsUpload.msg.clean',__('Clean')). 546 self::jsVar('dotclear.jsUpload.msg.upload',__('Upload')). 547 self::jsVar('dotclear.jsUpload.msg.no_file_in_queue',__('No file in queue.')). 548 self::jsVar('dotclear.jsUpload.msg.file_in_queue',__('1 file in queue.')). 549 self::jsVar('dotclear.jsUpload.msg.files_in_queue',__('%d files in queue.')). 550 self::jsVar('dotclear.jsUpload.msg.queue_error',__('Queue error:')). 551 self::jsVar('dotclear.jsUpload.base_url',$base_url). 492 552 "\n//]]>\n". 493 553 "</script>\n";
Note: See TracChangeset
for help on using the changeset viewer.