Changeset 2911:5434e75ad738 for inc/admin/lib.dc.page.php
- Timestamp:
- 01/07/15 12:55:08 (11 years ago)
- Branch:
- twig
- Parents:
- 2715:a87ddf7dbfb5 (diff), 2910:69efb1571e90 (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
r2650 r2911 17 17 { 18 18 private static $loaded_js = array(); 19 private static $xframe_loaded = false; 19 20 private static $N_TYPES = array( 20 21 "success" => "success", … … 54 55 55 56 # Top of admin page 56 public static function open($title='',$head='',$breadcrumb='' )57 public static function open($title='',$head='',$breadcrumb='',$options=array()) 57 58 { 58 59 global $core; … … 66 67 67 68 if ($core->auth->getBlogCount() > 20) { 68 $blog_box .= ' - <a href=" blogs.php">'.__('Change blog').'</a>';69 $blog_box .= ' - <a href="'.$core->adminurl->get("admin.blogs").'">'.__('Change blog').'</a>'; 69 70 } 70 71 $blog_box .= '</p>'; … … 89 90 # Display 90 91 header('Content-Type: text/html; charset=UTF-8'); 91 echo 92 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" '. 93 ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n". 94 '<html xmlns="http://www.w3.org/1999/xhtml" '. 95 'xml:lang="'.$core->auth->getInfo('user_lang').'" '. 96 'lang="'.$core->auth->getInfo('user_lang').'">'."\n". 92 93 // Prevents Clickjacking as far as possible 94 if (isset($options['x-frame-allow'])) { 95 self::setXFrameOptions($options['x-frame-allow']); 96 } else { 97 self::setXFrameOptions(); 98 } 99 echo 100 '<!DOCTYPE html>'. 101 '<html lang="'.$core->auth->getInfo('user_lang').'">'."\n". 97 102 "<head>\n". 98 ' <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'."\n".103 ' <meta charset="UTF-8" />'."\n". 99 104 ' <meta name="ROBOTS" content="NOARCHIVE,NOINDEX,NOFOLLOW" />'."\n". 100 105 ' <meta name="GOOGLEBOT" content="NOSNIPPET" />'."\n". … … 137 142 '<li><a href="#help">'.__('Go to help').'</a></li>'. 138 143 '</ul>'."\n". 139 '<div id="header" >'.140 '<h1><a href=" index.php"><span class="hidden">'.DC_VENDOR_NAME.'</span></a></h1>'."\n";141 142 echo 143 '<form action=" index.php" method="post" id="top-info-blog">'.144 '<div id="header" role="banner">'. 145 '<h1><a href="'.$core->adminurl->get("admin.home").'"><span class="hidden">'.DC_VENDOR_NAME.'</span></a></h1>'."\n"; 146 147 echo 148 '<form action="'.$core->adminurl->get("admin.home").'" method="post" id="top-info-blog">'. 144 149 $blog_box. 145 150 '<p><a href="'.$core->blog->url.'" class="outgoing" title="'.__('Go to site'). … … 147 152 '</p></form>'. 148 153 '<ul id="top-info-user">'. 149 '<li><a class="'.(preg_match('/ index.php$/',$_SERVER['REQUEST_URI']) ? ' active' : '').'" href="index.php">'.__('My dashboard').'</a></li>'.150 '<li><a class="smallscreen'.(preg_match('/ preferences.php(\?.*)?$/',$_SERVER['REQUEST_URI']) ? ' active' : '').151 '" href=" preferences.php">'.__('My preferences').'</a></li>'.152 '<li><a href=" index.php?logout=1" class="logout"><span class="nomobile">'.sprintf(__('Logout %s'),$core->auth->userID()).154 '<li><a class="'.(preg_match('/'.preg_quote($core->adminurl->get('admin.home')).'$/',$_SERVER['REQUEST_URI']) ? ' active' : '').'" href="'.$core->adminurl->get("admin.home").'">'.__('My dashboard').'</a></li>'. 155 '<li><a class="smallscreen'.(preg_match('/'.preg_quote($core->adminurl->get('admin.user.preferences')).'(\?.*)?$/',$_SERVER['REQUEST_URI']) ? ' active' : ''). 156 '" href="'.$core->adminurl->get("admin.user.preferences").'">'.__('My preferences').'</a></li>'. 157 '<li><a href="'.$core->adminurl->get("admin.home",array('logout' => 1)).'" class="logout"><span class="nomobile">'.sprintf(__('Logout %s'),$core->auth->userID()). 153 158 '</span><img src="images/logout.png" alt="" /></a></li>'. 154 159 '</ul>'. … … 161 166 '<img class="expand-mm" src="images/collapser-show.png" alt="'.__('Show main menu').'" />'. 162 167 '</a></div>'. 163 '<div id="main" >'."\n".168 '<div id="main" role="main">'."\n". 164 169 '<div id="content" class="clearfix">'."\n"; 165 170 … … 168 173 { 169 174 echo 170 '<div class="warning" ><h3>'.__('Safe mode').'</h3>'.175 '<div class="warning" role="alert"><h3>'.__('Safe mode').'</h3>'. 171 176 '<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>'. 172 177 '</div>'; … … 246 251 $ts = dt::str(__('[%H:%M:%S]'),$n['ts'],$core->auth->getInfo('user_tz')).' '; 247 252 } 248 $res = '<'.$tag.' class="'.$n['class'].'" >'.$ts.$n['text'].'</'.$tag.'>';253 $res = '<'.$tag.' class="'.$n['class'].'" role="alert">'.$ts.$n['text'].'</'.$tag.'>'; 249 254 return $res; 250 255 } … … 256 261 if (!$GLOBALS['__resources']['ctxhelp']) { 257 262 echo 258 '<p id="help-button"><a href=" help.php" class="outgoing" title="'.263 '<p id="help-button"><a href="'.$core->adminurl->get("admin.help").'" class="outgoing" title="'. 259 264 __('Global help').'">'.__('Global help').'</a></p>'; 260 265 } … … 266 271 "</div>\n". // End of #main 267 272 268 '<div id="main-menu" >'."\n".269 270 '<form id="search-menu" action=" search.php" method="get">'.273 '<div id="main-menu" role="navigation">'."\n". 274 275 '<form id="search-menu" action="'.$core->adminurl->get("admin.search").'" method="get" role="search">'. 271 276 '<p><label for="qx" class="hidden">'.__('Search:').' </label>'.form::field('qx',30,255,''). 272 277 '<input type="submit" value="'.__('OK').'" /></p>'. … … 291 296 292 297 echo 293 '<div id="footer" >'.298 '<div id="footer" role="contentinfo">'. 294 299 '<a href="http://dotclear.org/" title="'.$text.'">'. 295 300 '<img src="style/dc_logos/w-dotclear90.png" alt="'.$text.'" /></a></div>'."\n". 296 "<!-- \n \n ,;:'`'::\n". 297 " __||\n _____/LLLL\_\n \__________\"|\n". 298 " ~^~^~^~^~^~^~^~^~^~\n -->\n"; 301 "<!-- "."\n". 302 "( \\"."\n". 303 " ) )"."\n". 304 "( ( .-\"\"-. A.-.A"."\n". 305 " \ \/ \/ , , \\"."\n". 306 " \ \ =; t /="."\n". 307 " \ |\"\". ',--'"."\n". 308 " / // | ||"."\n". 309 " /_,)) |_,))"."\n". 310 " -->"."\n"; 299 311 300 312 if (defined('DC_DEV') && DC_DEV === true) { … … 312 324 # Display 313 325 header('Content-Type: text/html; charset=UTF-8'); 314 echo 315 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" '. 316 ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n". 317 '<html xmlns="http://www.w3.org/1999/xhtml" '. 318 'xml:lang="'.$core->auth->getInfo('user_lang').'" '. 319 'lang="'.$core->auth->getInfo('user_lang').'">'."\n". 326 327 // Prevents Clickjacking as far as possible 328 header('X-Frame-Options: SAMEORIGIN'); // FF 3.6.9+ Chrome 4.1+ IE 8+ Safari 4+ Opera 10.5+ 329 330 echo 331 '<!DOCTYPE html>'. 332 '<html lang="'.$core->auth->getInfo('user_lang').'">'."\n". 320 333 "<head>\n". 334 ' <meta charset="UTF-8" />'."\n". 321 335 ' <meta name="viewport" content="width=device-width, initial-scale=1.0" />'."\n". 322 ' <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'."\n".323 336 ' <title>'.$title.' - '.html::escapeHTML($core->blog->name).' - '.html::escapeHTML(DC_VENDOR_NAME).' - '.DC_VERSION.'</title>'."\n". 324 337 … … 349 362 echo 350 363 '<div id="wrapper">'."\n". 351 '<div id="main" >'."\n".364 '<div id="main" role="main">'."\n". 352 365 '<div id="content">'."\n"; 353 366 … … 357 370 if ($core->error->flag()) { 358 371 echo 359 '<div class="error" ><strong>'.__('Errors:').'</strong>'.372 '<div class="error" role="alert"><strong>'.__('Errors:').'</strong>'. 360 373 $core->error->toHTML(). 361 374 '</div>'; … … 369 382 "</div>\n". // End of #main 370 383 "</div>\n". // End of #wrapper 371 '<div id="footer" ><p> </p></div>'."\n".384 '<div id="footer" role="contentinfo"><p> </p></div>'."\n". 372 385 '</body></html>'; 373 386 } … … 375 388 public static function breadcrumb($elements=null,$options=array()) 376 389 { 390 global $core; 377 391 $with_home_link = isset($options['home_link'])?$options['home_link']:true; 378 392 $hl = isset($options['hl'])?$options['hl']:true; … … 380 394 // First item of array elements should be blog's name, System or Plugins 381 395 $res = '<h2>'.($with_home_link ? 382 '<a class="go_home" href=" index.php"><img src="style/dashboard.png" alt="'.__('Go to dashboard').'" /></a>' :396 '<a class="go_home" href="'.$core->adminurl->get("admin.home").'"><img src="style/dashboard.png" alt="'.__('Go to dashboard').'" /></a>' : 383 397 '<img src="style/dashboard-alt.png" alt="" />'); 384 398 $index = 0; … … 474 488 public static function helpBlock() 475 489 { 490 global $core; 476 491 $args = func_get_args(); 477 492 … … 527 542 '<div id="helplink"><hr />'. 528 543 '<p>'. 529 sprintf(__('See also %s'),sprintf('<a href=" help.php">%s</a>',__('the global help'))).544 sprintf(__('See also %s'),sprintf('<a href="'.$core->adminurl->get("admin.help").'">%s</a>',__('the global help'))). 530 545 '.</p>'. 531 546 '</div></div>'; … … 823 838 824 839 "datePicker.prototype.img_src = 'images/date-picker.png'; ". 840 "datePicker.prototype.img_alt = '".html::escapeJS(__('Choose date'))."'; ". 825 841 826 842 "datePicker.prototype.close_msg = '".html::escapeJS(__('close'))."'; ". … … 905 921 '<script type="text/javascript" src="js/meta-editor.js"></script>'; 906 922 } 923 924 public static function getPF($file) { 925 return $GLOBALS['core']->adminurl->get('load.plugin.file',array('pf' => $file)); 926 } 927 928 public static function setXFrameOptions($origin=null) { 929 if (self::$xframe_loaded) { 930 return; 931 } 932 if ($origin !== null) { 933 $url = parse_url($origin); 934 header(sprintf('X-Frame-Options: %s', is_array($url)?($url['scheme'].'://'.$url['host']):'SAMEORIGIN')); 935 } else { 936 header('X-Frame-Options: SAMEORIGIN'); // FF 3.6.9+ Chrome 4.1+ IE 8+ Safari 4+ Opera 10.5+ 937 } 938 self::$xframe_loaded = true; 939 940 } 907 941 } -
inc/admin/lib.dc.page.php
r2909 r2911 19 19 private static $xframe_loaded = false; 20 20 private static $N_TYPES = array( 21 "success" => "success", 22 "warning" => "warning-msg", 23 "error" => "error", 24 "message" => "message", 21 "success" => "success", 22 "warning" => "warning-msg", 23 "error" => "error", 24 "message" => "message", 25 25 "static" => "static-msg"); 26 26 … … 109 109 110 110 self::jsLoadIE7(). 111 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n";111 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n"; 112 112 if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') { 113 113 echo 114 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n";114 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n"; 115 115 } 116 116 … … 118 118 $user_ui_hide_std_favicon = $core->auth->user_prefs->interface->hide_std_favicon; 119 119 if (!$user_ui_hide_std_favicon) { 120 echo 120 echo 121 121 '<link rel="icon" type="image/png" href="images/favicon96-login.png" />'. 122 122 '<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />'; 123 123 } 124 124 125 echo 125 126 self::jsCommon(). … … 217 218 $notifications = array(); 218 219 } 219 220 220 221 $n = array_merge($options,array('class' => $class,'ts' => time(), 'text' => $message)); 221 222 if ($type != "static") { … … 339 340 340 341 self::jsLoadIE7(). 341 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n";342 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n"; 342 343 if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') { 343 344 echo 344 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n";345 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n"; 345 346 } 346 347 … … 580 581 "</script>\n"; 581 582 } 582 583 583 584 public static function jsCommon() 584 585 { … … 606 607 'jsToolBar = {}, jsToolBar.prototype = { elements : {} };'."\n". 607 608 self::jsVar('dotclear.nonce',$GLOBALS['core']->getNonce()). 609 608 610 self::jsVar('dotclear.img_plus_src','images/expand.png'). 609 611 self::jsVar('dotclear.img_plus_alt',__('uncover')). … … 725 727 self::jsVar('dotclear.msg.module_tags', 726 728 __('Tags:')). 727 729 "\n//]]>\n". 728 730 "</script>\n"; 729 731 } … … 787 789 public static function jsModal() 788 790 { 789 790 791 792 793 794 795 796 797 791 return 792 '<link rel="stylesheet" type="text/css" href="style/modal/modal.css" />'."\n". 793 self::jsLoad('js/jquery/jquery.modal.js'). 794 '<script type="text/javascript">'."\n". 795 "//<![CDATA[\n". 796 self::jsVar('$.modal.prototype.params.loader_img','style/modal/loader.gif'). 797 self::jsVar('$.modal.prototype.params.close_img','style/modal/close.png'). 798 "\n//]]>\n". 799 "</script>\n"; 798 800 } 799 801 800 802 public static function jsColorPicker() 801 803 { 802 803 804 805 804 return 805 '<link rel="stylesheet" type="text/css" href="style/farbtastic/farbtastic.css" />'."\n". 806 self::jsLoad('js/jquery/jquery.farbtastic.js'). 807 self::jsLoad('js/color-picker.js'); 806 808 } 807 809 808 810 public static function jsDatePicker() 809 811 { 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 812 return 813 '<link rel="stylesheet" type="text/css" href="style/date-picker.css" />'."\n". 814 self::jsLoad('js/date-picker.js'). 815 '<script type="text/javascript">'."\n". 816 "//<![CDATA[\n". 817 818 "datePicker.prototype.months[0] = '".html::escapeJS(__('January'))."'; ". 819 "datePicker.prototype.months[1] = '".html::escapeJS(__('February'))."'; ". 820 "datePicker.prototype.months[2] = '".html::escapeJS(__('March'))."'; ". 821 "datePicker.prototype.months[3] = '".html::escapeJS(__('April'))."'; ". 822 "datePicker.prototype.months[4] = '".html::escapeJS(__('May'))."'; ". 823 "datePicker.prototype.months[5] = '".html::escapeJS(__('June'))."'; ". 824 "datePicker.prototype.months[6] = '".html::escapeJS(__('July'))."'; ". 825 "datePicker.prototype.months[7] = '".html::escapeJS(__('August'))."'; ". 826 "datePicker.prototype.months[8] = '".html::escapeJS(__('September'))."'; ". 827 "datePicker.prototype.months[9] = '".html::escapeJS(__('October'))."'; ". 828 "datePicker.prototype.months[10] = '".html::escapeJS(__('November'))."'; ". 829 "datePicker.prototype.months[11] = '".html::escapeJS(__('December'))."'; ". 830 831 "datePicker.prototype.days[0] = '".html::escapeJS(__('Monday'))."'; ". 832 "datePicker.prototype.days[1] = '".html::escapeJS(__('Tuesday'))."'; ". 833 "datePicker.prototype.days[2] = '".html::escapeJS(__('Wednesday'))."'; ". 834 "datePicker.prototype.days[3] = '".html::escapeJS(__('Thursday'))."'; ". 835 "datePicker.prototype.days[4] = '".html::escapeJS(__('Friday'))."'; ". 836 "datePicker.prototype.days[5] = '".html::escapeJS(__('Saturday'))."'; ". 837 "datePicker.prototype.days[6] = '".html::escapeJS(__('Sunday'))."'; ". 838 839 "datePicker.prototype.img_src = 'images/date-picker.png'; ". 838 840 "datePicker.prototype.img_alt = '".html::escapeJS(__('Choose date'))."'; ". 839 841 840 841 842 843 844 845 } 846 847 842 "datePicker.prototype.close_msg = '".html::escapeJS(__('close'))."'; ". 843 "datePicker.prototype.now_msg = '".html::escapeJS(__('now'))."'; ". 844 845 "\n//]]>\n". 846 "</script>\n"; 847 } 848 849 848 850 public static function jsToolBar() 849 851 { … … 853 855 public static function jsUpload($params=array(),$base_url=null) 854 856 { 855 856 857 858 859 860 861 862 857 if (!$base_url) { 858 $base_url = path::clean(dirname(preg_replace('/(\?.*$)?/','',$_SERVER['REQUEST_URI']))).'/'; 859 } 860 861 $params = array_merge($params,array( 862 'sess_id='.session_id(), 863 'sess_uid='.$_SESSION['sess_browser_uid'], 864 'xd_check='.$GLOBALS['core']->getNonce() 863 865 )); 864 866 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 867 return 868 '<script type="text/javascript">'."\n". 869 "//<![CDATA[\n". 870 "dotclear.jsUpload = {};\n". 871 "dotclear.jsUpload.msg = {};\n". 872 self::jsVar('dotclear.msg.enhanced_uploader_activate',__('Temporarily activate enhanced uploader')). 873 self::jsVar('dotclear.msg.enhanced_uploader_disable',__('Temporarily disable enhanced uploader')). 874 self::jsVar('dotclear.jsUpload.msg.limit_exceeded',__('Limit exceeded.')). 875 self::jsVar('dotclear.jsUpload.msg.size_limit_exceeded',__('File size exceeds allowed limit.')). 876 self::jsVar('dotclear.jsUpload.msg.canceled',__('Canceled.')). 877 self::jsVar('dotclear.jsUpload.msg.http_error',__('HTTP Error:')). 878 self::jsVar('dotclear.jsUpload.msg.error',__('Error:')). 879 self::jsVar('dotclear.jsUpload.msg.choose_file',__('Choose file')). 880 self::jsVar('dotclear.jsUpload.msg.choose_files',__('Choose files')). 881 self::jsVar('dotclear.jsUpload.msg.cancel',__('Cancel')). 882 self::jsVar('dotclear.jsUpload.msg.clean',__('Clean')). 883 self::jsVar('dotclear.jsUpload.msg.upload',__('Upload')). 882 884 self::jsVar('dotclear.jsUpload.msg.send',__('Send')). 883 885 self::jsVar('dotclear.jsUpload.msg.file_successfully_uploaded',__('File successfully uploaded.')). 884 885 886 887 888 889 886 self::jsVar('dotclear.jsUpload.msg.no_file_in_queue',__('No file in queue.')). 887 self::jsVar('dotclear.jsUpload.msg.file_in_queue',__('1 file in queue.')). 888 self::jsVar('dotclear.jsUpload.msg.files_in_queue',__('%d files in queue.')). 889 self::jsVar('dotclear.jsUpload.msg.queue_error',__('Queue error:')). 890 self::jsVar('dotclear.jsUpload.base_url',$base_url). 891 "\n//]]>\n". 890 892 "</script>\n". 891 893 … … 904 906 public static function jsToolMan() 905 907 { 906 907 908 909 910 911 912 913 908 return 909 '<script type="text/javascript" src="js/tool-man/core.js"></script>'. 910 '<script type="text/javascript" src="js/tool-man/events.js"></script>'. 911 '<script type="text/javascript" src="js/tool-man/css.js"></script>'. 912 '<script type="text/javascript" src="js/tool-man/coordinates.js"></script>'. 913 '<script type="text/javascript" src="js/tool-man/drag.js"></script>'. 914 '<script type="text/javascript" src="js/tool-man/dragsort.js"></script>'. 915 '<script type="text/javascript" src="js/dragsort-tablerows.js"></script>'; 914 916 } 915 917 916 918 public static function jsMetaEditor() 917 919 { 918 919 920 return 921 '<script type="text/javascript" src="js/meta-editor.js"></script>'; 920 922 } 921 923
Note: See TracChangeset
for help on using the changeset viewer.