Changeset 2593:6741802596a0 for inc/admin
- Timestamp:
- 11/27/13 16:32:38 (12 years ago)
- Branch:
- twig
- Children:
- 2612:1537212bd291, 2613:014098e27ea0
- Parents:
- 2468:d7fda5a0bd39 (diff), 2589:3d427735ca70 (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. - Location:
- inc/admin
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
inc/admin/class.dc.menu.php
r2566 r2593 4 4 # This file is part of Dotclear 2. 5 5 # 6 # Copyright (c) 2003-201 3Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 14 14 class dcMenu 15 15 { 16 private $items; 16 17 private $id; 17 18 public $title; 18 19 public function __construct($id,$title,$itemSpace='') 19 public $separator; 20 21 public function __construct($id,$title,$separator='') 20 22 { 21 23 $this->id = $id; 22 24 $this->title = $title; 23 $this-> itemSpace = $itemSpace;25 $this->separator = $separator; 24 26 $this->items = array(); 25 27 } 26 28 29 public function getID() 30 { 31 return $this->id; 32 } 33 34 public function getTitle() 35 { 36 return $this->title; 37 } 38 39 public function getSeparator() 40 { 41 return $this->separator; 42 } 43 44 public function getItems() 45 { 46 return $this->items; 47 } 48 27 49 public function addItem($title,$url,$img,$active,$show=true,$id=null,$class=null) 28 50 { … … 31 53 } 32 54 } 33 55 34 56 public function prependItem($title,$url,$img,$active,$show=true,$id=null,$class=null) 35 57 { … … 38 60 } 39 61 } 40 41 public function draw() 42 { 43 if (count($this->items) == 0) { 44 return ''; 45 } 46 47 $res = 48 '<div id="'.$this->id.'">'. 49 ($this->title ? '<h3>'.$this->title.'</h3>' : ''). 50 '<ul>'."\n"; 51 52 for ($i=0; $i<count($this->items); $i++) 53 { 54 if ($i+1 < count($this->items) && $this->itemSpace != '') { 55 $res .= preg_replace('|</li>$|',$this->itemSpace.'</li>',$this->items[$i]); 56 $res .= "\n"; 57 } else { 58 $res .= $this->items[$i]."\n"; 59 } 60 } 61 62 $res .= '</ul></div>'."\n"; 63 64 return $res; 65 } 66 62 67 63 protected function itemDef($title,$url,$img,$active,$id=null,$class=null) 68 64 { … … 74 70 $ahtml = ''; 75 71 } 76 77 $img = dc_admin_icon_url($img); 78 72 73 return array( 74 'title' => $title, 75 'link' => $link, 76 'ahtml' => $ahtml, 77 'img' => dc_admin_icon_url($img), 78 'active' => (boolean) $active, 79 'id' => $id, 80 'class' => $class 81 ); 82 } 83 84 /** 85 @deprecated Use Template engine instead 86 */ 87 public function draw() 88 { 89 if (count($this->items) == 0) { 90 return ''; 91 } 92 93 $res = 94 '<div id="'.$this->id.'">'. 95 ($this->title ? '<h3>'.$this->title.'</h3>' : ''). 96 '<ul>'."\n"; 97 98 for ($i=0; $i<count($this->items); $i++) 99 { 100 if ($i+1 < count($this->items) && $this->separator != '') { 101 $res .= preg_replace('|</li>$|',$this->separator.'</li>',$this->drawItem($this->items[$i])); 102 $res .= "\n"; 103 } else { 104 $res .= $this->drawItem($this->items[$i])."\n"; 105 } 106 } 107 108 $res .= '</ul></div>'."\n"; 109 110 return $res; 111 } 112 113 /** 114 @deprecated Use Template engine instead 115 */ 116 protected function drawItem($item) 117 { 79 118 return 80 '<li'.(($ active || $class) ? ' class="'.(($active) ? 'active ' : '').(($class) ? $class: '').'"' : '').81 (($i d) ? ' id="'.$id.'"' : '').82 (($i mg) ? ' style="background-image: url('.$img.');"' : '').119 '<li'.(($item['active'] || $item['class']) ? ' class="'.(($item['active']) ? 'active ' : '').(($item['class']) ? $item['class'] : '').'"' : ''). 120 (($item['id']) ? ' id="'.$item['id'].'"' : ''). 121 (($item['img']) ? ' style="background-image: url('.$item['img'].');"' : ''). 83 122 '>'. 84 85 '<a href="'.$ link.'"'.$ahtml.'>'.$title.'</a></li>'."\n";123 124 '<a href="'.$item['link'].'"'.$item['ahtml'].'>'.$item['title'].'</a></li>'."\n"; 86 125 } 87 126 } 127 ?> -
inc/admin/lib.dc.page.php
r2468 r2593 16 16 class dcPage 17 17 { 18 private static $loaded_js =array();18 private static $loaded_js = array(); 19 19 private static $N_TYPES = array( 20 "success" => "success", 21 "warning" => "warning-msg", 22 "error" => "error", 23 "message" => "message", 20 "success" => "success", 21 "warning" => "warning-msg", 22 "error" => "error", 23 "message" => "message", 24 24 "static" => "static-msg"); 25 25 … … 29 29 global $core; 30 30 31 if ($core->blog && $core->auth->check($permissions,$core->blog->id)) 32 { 31 if ($core->blog && $core->auth->check($permissions,$core->blog->id)) { 33 32 return; 34 33 } … … 105 104 106 105 self::jsLoadIE7(). 107 ' 106 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n"; 108 107 if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') { 109 108 echo 110 ' 109 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n"; 111 110 } 112 111 … … 114 113 $user_ui_hide_std_favicon = $core->auth->user_prefs->interface->hide_std_favicon; 115 114 if (!$user_ui_hide_std_favicon) { 116 echo 115 echo 117 116 '<link rel="icon" type="image/png" href="images/favicon96-login.png" />'. 118 117 '<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />'; 119 118 } 120 121 119 echo 122 120 self::jsCommon(). … … 214 212 $notifications = array(); 215 213 } 216 214 217 215 $n = array_merge($options,array('class' => $class,'ts' => time(), 'text' => $message)); 218 216 if ($type != "static") { … … 319 317 'xml:lang="'.$core->auth->getInfo('user_lang').'" '. 320 318 'lang="'.$core->auth->getInfo('user_lang').'">'."\n". 321 '<meta name="viewport" content="width=device-width, initial-scale=1.0" />'."\n".322 319 "<head>\n". 320 ' <meta name="viewport" content="width=device-width, initial-scale=1.0" />'."\n". 323 321 ' <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'."\n". 324 322 ' <title>'.$title.' - '.html::escapeHTML($core->blog->name).' - '.html::escapeHTML(DC_VENDOR_NAME).' - '.DC_VERSION.'</title>'."\n". … … 328 326 329 327 self::jsLoadIE7(). 330 ' 328 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n"; 331 329 if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') { 332 330 echo 333 ' 331 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n"; 334 332 } 335 333 … … 567 565 "</script>\n"; 568 566 } 569 567 570 568 public static function jsCommon() 571 569 { … … 592 590 "//<![CDATA[\n". 593 591 self::jsVar('dotclear.nonce',$GLOBALS['core']->getNonce()). 594 595 592 self::jsVar('dotclear.img_plus_src','images/expand.png'). 596 593 self::jsVar('dotclear.img_plus_alt',__('uncover')). … … 659 656 self::jsVar('dotclear.msg.confirm_delete_media', 660 657 __('Are you sure you want to remove media "%s"?')). 658 self::jsVar('dotclear.msg.confirm_delete_directory', 659 __('Are you sure you want to remove directory "%s"?')). 661 660 self::jsVar('dotclear.msg.confirm_extract_current', 662 661 __('Are you sure you want to extract archive in current directory?')). … … 667 666 self::jsVar('dotclear.msg.confirm_delete_plugin', 668 667 __('Are you sure you want to delete "%s" plugin?')). 668 self::jsVar('dotclear.msg.confirm_delete_plugins', 669 __('Are you sure you want to delete selected plugins?')). 669 670 self::jsVar('dotclear.msg.use_this_theme', 670 671 __('Use this theme')). … … 673 674 self::jsVar('dotclear.msg.confirm_delete_theme', 674 675 __('Are you sure you want to delete "%s" theme?')). 676 self::jsVar('dotclear.msg.confirm_delete_themes', 677 __('Are you sure you want to delete selected themes?')). 675 678 self::jsVar('dotclear.msg.confirm_delete_backup', 676 679 __('Are you sure you want to delete this backup?')). 680 self::jsVar('dotclear.msg.confirm_revert_backup', 681 __('Are you sure you want to revert to this backup?')). 677 682 self::jsVar('dotclear.msg.zip_file_content', 678 683 __('Zip file content')). … … 704 709 self::jsVar('dotclear.msg.module_tags', 705 710 __('Tags:')). 706 "\n//]]>\n".711 "\n//]]>\n". 707 712 "</script>\n"; 708 713 } … … 766 771 public static function jsModal() 767 772 { 768 return769 '<link rel="stylesheet" type="text/css" href="style/modal/modal.css" />'."\n".770 self::jsLoad('js/jquery/jquery.modal.js').771 '<script type="text/javascript">'."\n".772 "//<![CDATA[\n".773 self::jsVar('$.modal.prototype.params.loader_img','style/modal/loader.gif').774 self::jsVar('$.modal.prototype.params.close_img','style/modal/close.png').775 "\n//]]>\n".776 "</script>\n";773 return 774 '<link rel="stylesheet" type="text/css" href="style/modal/modal.css" />'."\n". 775 self::jsLoad('js/jquery/jquery.modal.js'). 776 '<script type="text/javascript">'."\n". 777 "//<![CDATA[\n". 778 self::jsVar('$.modal.prototype.params.loader_img','style/modal/loader.gif'). 779 self::jsVar('$.modal.prototype.params.close_img','style/modal/close.png'). 780 "\n//]]>\n". 781 "</script>\n"; 777 782 } 778 783 779 784 public static function jsColorPicker() 780 785 { 781 return782 '<link rel="stylesheet" type="text/css" href="style/farbtastic/farbtastic.css" />'."\n".783 self::jsLoad('js/jquery/jquery.farbtastic.js').784 self::jsLoad('js/color-picker.js');786 return 787 '<link rel="stylesheet" type="text/css" href="style/farbtastic/farbtastic.css" />'."\n". 788 self::jsLoad('js/jquery/jquery.farbtastic.js'). 789 self::jsLoad('js/color-picker.js'); 785 790 } 786 791 787 792 public static function jsDatePicker() 788 793 { 789 return790 '<link rel="stylesheet" type="text/css" href="style/date-picker.css" />'."\n".791 self::jsLoad('js/date-picker.js').792 '<script type="text/javascript">'."\n".793 "//<![CDATA[\n".794 795 "datePicker.prototype.months[0] = '".html::escapeJS(__('January'))."'; ".796 "datePicker.prototype.months[1] = '".html::escapeJS(__('February'))."'; ".797 "datePicker.prototype.months[2] = '".html::escapeJS(__('March'))."'; ".798 "datePicker.prototype.months[3] = '".html::escapeJS(__('April'))."'; ".799 "datePicker.prototype.months[4] = '".html::escapeJS(__('May'))."'; ".800 "datePicker.prototype.months[5] = '".html::escapeJS(__('June'))."'; ".801 "datePicker.prototype.months[6] = '".html::escapeJS(__('July'))."'; ".802 "datePicker.prototype.months[7] = '".html::escapeJS(__('August'))."'; ".803 "datePicker.prototype.months[8] = '".html::escapeJS(__('September'))."'; ".804 "datePicker.prototype.months[9] = '".html::escapeJS(__('October'))."'; ".805 "datePicker.prototype.months[10] = '".html::escapeJS(__('November'))."'; ".806 "datePicker.prototype.months[11] = '".html::escapeJS(__('December'))."'; ".807 808 "datePicker.prototype.days[0] = '".html::escapeJS(__('Monday'))."'; ".809 "datePicker.prototype.days[1] = '".html::escapeJS(__('Tuesday'))."'; ".810 "datePicker.prototype.days[2] = '".html::escapeJS(__('Wednesday'))."'; ".811 "datePicker.prototype.days[3] = '".html::escapeJS(__('Thursday'))."'; ".812 "datePicker.prototype.days[4] = '".html::escapeJS(__('Friday'))."'; ".813 "datePicker.prototype.days[5] = '".html::escapeJS(__('Saturday'))."'; ".814 "datePicker.prototype.days[6] = '".html::escapeJS(__('Sunday'))."'; ".815 816 "datePicker.prototype.img_src = 'images/date-picker.png'; ".817 818 "datePicker.prototype.close_msg = '".html::escapeJS(__('close'))."'; ".819 "datePicker.prototype.now_msg = '".html::escapeJS(__('now'))."'; ".820 821 "\n//]]>\n".822 "</script>\n";794 return 795 '<link rel="stylesheet" type="text/css" href="style/date-picker.css" />'."\n". 796 self::jsLoad('js/date-picker.js'). 797 '<script type="text/javascript">'."\n". 798 "//<![CDATA[\n". 799 800 "datePicker.prototype.months[0] = '".html::escapeJS(__('January'))."'; ". 801 "datePicker.prototype.months[1] = '".html::escapeJS(__('February'))."'; ". 802 "datePicker.prototype.months[2] = '".html::escapeJS(__('March'))."'; ". 803 "datePicker.prototype.months[3] = '".html::escapeJS(__('April'))."'; ". 804 "datePicker.prototype.months[4] = '".html::escapeJS(__('May'))."'; ". 805 "datePicker.prototype.months[5] = '".html::escapeJS(__('June'))."'; ". 806 "datePicker.prototype.months[6] = '".html::escapeJS(__('July'))."'; ". 807 "datePicker.prototype.months[7] = '".html::escapeJS(__('August'))."'; ". 808 "datePicker.prototype.months[8] = '".html::escapeJS(__('September'))."'; ". 809 "datePicker.prototype.months[9] = '".html::escapeJS(__('October'))."'; ". 810 "datePicker.prototype.months[10] = '".html::escapeJS(__('November'))."'; ". 811 "datePicker.prototype.months[11] = '".html::escapeJS(__('December'))."'; ". 812 813 "datePicker.prototype.days[0] = '".html::escapeJS(__('Monday'))."'; ". 814 "datePicker.prototype.days[1] = '".html::escapeJS(__('Tuesday'))."'; ". 815 "datePicker.prototype.days[2] = '".html::escapeJS(__('Wednesday'))."'; ". 816 "datePicker.prototype.days[3] = '".html::escapeJS(__('Thursday'))."'; ". 817 "datePicker.prototype.days[4] = '".html::escapeJS(__('Friday'))."'; ". 818 "datePicker.prototype.days[5] = '".html::escapeJS(__('Saturday'))."'; ". 819 "datePicker.prototype.days[6] = '".html::escapeJS(__('Sunday'))."'; ". 820 821 "datePicker.prototype.img_src = 'images/date-picker.png'; ". 822 823 "datePicker.prototype.close_msg = '".html::escapeJS(__('close'))."'; ". 824 "datePicker.prototype.now_msg = '".html::escapeJS(__('now'))."'; ". 825 826 "\n//]]>\n". 827 "</script>\n"; 823 828 } 824 829 825 830 public static function jsToolBar() 826 831 { 827 $res = 828 '<link rel="stylesheet" type="text/css" href="style/jsToolBar/jsToolBar.css" />'. 829 '<script type="text/javascript" src="js/jsToolBar/jsToolBar.js"></script>'; 830 831 if (isset($GLOBALS['core']->auth) && $GLOBALS['core']->auth->getOption('enable_wysiwyg')) { 832 $res .= '<script type="text/javascript" src="js/jsToolBar/jsToolBar.wysiwyg.js"></script>'; 833 } 834 835 $res .= 836 '<script type="text/javascript" src="js/jsToolBar/jsToolBar.dotclear.js"></script>'. 837 '<script type="text/javascript">'."\n". 838 "//<![CDATA[\n". 839 "jsToolBar.prototype.dialog_url = 'popup.php'; ". 840 "jsToolBar.prototype.iframe_css = '". 841 'body{'. 842 'font: 12px "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;'. 843 'color : #000;'. 844 'background: #f9f9f9;'. 845 'margin: 0;'. 846 'padding : 2px;'. 847 'border: none;'. 848 (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl' ? 'direction:rtl;' : ''). 849 '}'. 850 'pre, code, kbd, samp {'. 851 'font-family:"Courier New",Courier,monospace;'. 852 'font-size : 1.1em;'. 853 '}'. 854 'code {'. 855 'color : #666;'. 856 'font-weight : bold;'. 857 '}'. 858 'body > p:first-child {'. 859 'margin-top: 0;'. 860 '}'. 861 "'; ". 862 "jsToolBar.prototype.base_url = '".html::escapeJS($GLOBALS['core']->blog->host)."'; ". 863 "jsToolBar.prototype.switcher_visual_title = '".html::escapeJS(__('visual'))."'; ". 864 "jsToolBar.prototype.switcher_source_title = '".html::escapeJS(__('source'))."'; ". 865 "jsToolBar.prototype.legend_msg = '". 866 html::escapeJS(__('You can use the following shortcuts to format your text.'))."'; ". 867 "jsToolBar.prototype.elements.blocks.options.none = '".html::escapeJS(__('-- none --'))."'; ". 868 "jsToolBar.prototype.elements.blocks.options.nonebis = '".html::escapeJS(__('-- block format --'))."'; ". 869 "jsToolBar.prototype.elements.blocks.options.p = '".html::escapeJS(__('Paragraph'))."'; ". 870 "jsToolBar.prototype.elements.blocks.options.h1 = '".html::escapeJS(__('Level 1 header'))."'; ". 871 "jsToolBar.prototype.elements.blocks.options.h2 = '".html::escapeJS(__('Level 2 header'))."'; ". 872 "jsToolBar.prototype.elements.blocks.options.h3 = '".html::escapeJS(__('Level 3 header'))."'; ". 873 "jsToolBar.prototype.elements.blocks.options.h4 = '".html::escapeJS(__('Level 4 header'))."'; ". 874 "jsToolBar.prototype.elements.blocks.options.h5 = '".html::escapeJS(__('Level 5 header'))."'; ". 875 "jsToolBar.prototype.elements.blocks.options.h6 = '".html::escapeJS(__('Level 6 header'))."'; ". 876 "jsToolBar.prototype.elements.strong.title = '".html::escapeJS(__('Strong emphasis'))."'; ". 877 "jsToolBar.prototype.elements.em.title = '".html::escapeJS(__('Emphasis'))."'; ". 878 "jsToolBar.prototype.elements.ins.title = '".html::escapeJS(__('Inserted'))."'; ". 879 "jsToolBar.prototype.elements.del.title = '".html::escapeJS(__('Deleted'))."'; ". 880 "jsToolBar.prototype.elements.quote.title = '".html::escapeJS(__('Inline quote'))."'; ". 881 "jsToolBar.prototype.elements.code.title = '".html::escapeJS(__('Code'))."'; ". 882 "jsToolBar.prototype.elements.br.title = '".html::escapeJS(__('Line break'))."'; ". 883 "jsToolBar.prototype.elements.blockquote.title = '".html::escapeJS(__('Blockquote'))."'; ". 884 "jsToolBar.prototype.elements.pre.title = '".html::escapeJS(__('Preformated text'))."'; ". 885 "jsToolBar.prototype.elements.ul.title = '".html::escapeJS(__('Unordered list'))."'; ". 886 "jsToolBar.prototype.elements.ol.title = '".html::escapeJS(__('Ordered list'))."'; ". 887 888 "jsToolBar.prototype.elements.link.title = '".html::escapeJS(__('Link'))."'; ". 889 "jsToolBar.prototype.elements.link.href_prompt = '".html::escapeJS(__('URL?'))."'; ". 890 "jsToolBar.prototype.elements.link.hreflang_prompt = '".html::escapeJS(__('Language?'))."'; ". 891 892 "jsToolBar.prototype.elements.img.title = '".html::escapeJS(__('External image'))."'; ". 893 "jsToolBar.prototype.elements.img.src_prompt = '".html::escapeJS(__('URL?'))."'; ". 894 895 "jsToolBar.prototype.elements.img_select.title = '".html::escapeJS(__('Media chooser'))."'; ". 896 "jsToolBar.prototype.elements.post_link.title = '".html::escapeJS(__('Link to an entry'))."'; "; 897 898 if (!$GLOBALS['core']->auth->check('media,media_admin',$GLOBALS['core']->blog->id)) { 899 $res .= "jsToolBar.prototype.elements.img_select.disabled = true;\n"; 900 } 901 902 $res .= 903 "\n//]]>\n". 904 "</script>\n"; 905 906 return $res; 832 $res = 833 '<link rel="stylesheet" type="text/css" href="style/jsToolBar/jsToolBar.css" />'. 834 '<script type="text/javascript" src="js/jsToolBar/jsToolBar.js"></script>'; 835 836 if (isset($GLOBALS['core']->auth) && $GLOBALS['core']->auth->getOption('enable_wysiwyg')) { 837 $res .= '<script type="text/javascript" src="js/jsToolBar/jsToolBar.wysiwyg.js"></script>'; 838 } 839 840 $res .= 841 '<script type="text/javascript" src="js/jsToolBar/jsToolBar.dotclear.js"></script>'. 842 '<script type="text/javascript">'."\n". 843 "//<![CDATA[\n". 844 "jsToolBar.prototype.dialog_url = 'popup.php'; ". 845 "jsToolBar.prototype.iframe_css = '". 846 'body{'. 847 'font: 12px "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;'. 848 'color : #000;'. 849 'background: #f9f9f9;'. 850 'margin: 0;'. 851 'padding : 2px;'. 852 'border: none;'. 853 (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl' ? 'direction:rtl;' : ''). 854 '}'. 855 'pre, code, kbd, samp {'. 856 'font-family:"Courier New",Courier,monospace;'. 857 'font-size : 1.1em;'. 858 '}'. 859 'code {'. 860 'color : #666;'. 861 'font-weight : bold;'. 862 '}'. 863 'body > p:first-child {'. 864 'margin-top: 0;'. 865 '}'. 866 "'; ". 867 "jsToolBar.prototype.base_url = '".html::escapeJS($GLOBALS['core']->blog->host)."'; ". 868 "jsToolBar.prototype.switcher_visual_title = '".html::escapeJS(__('visual'))."'; ". 869 "jsToolBar.prototype.switcher_source_title = '".html::escapeJS(__('source'))."'; ". 870 "jsToolBar.prototype.legend_msg = '". 871 html::escapeJS(__('You can use the following shortcuts to format your text.'))."'; ". 872 "jsToolBar.prototype.elements.blocks.options.none = '".html::escapeJS(__('-- none --'))."'; ". 873 "jsToolBar.prototype.elements.blocks.options.nonebis = '".html::escapeJS(__('-- block format --'))."'; ". 874 "jsToolBar.prototype.elements.blocks.options.p = '".html::escapeJS(__('Paragraph'))."'; ". 875 "jsToolBar.prototype.elements.blocks.options.h1 = '".html::escapeJS(__('Level 1 header'))."'; ". 876 "jsToolBar.prototype.elements.blocks.options.h2 = '".html::escapeJS(__('Level 2 header'))."'; ". 877 "jsToolBar.prototype.elements.blocks.options.h3 = '".html::escapeJS(__('Level 3 header'))."'; ". 878 "jsToolBar.prototype.elements.blocks.options.h4 = '".html::escapeJS(__('Level 4 header'))."'; ". 879 "jsToolBar.prototype.elements.blocks.options.h5 = '".html::escapeJS(__('Level 5 header'))."'; ". 880 "jsToolBar.prototype.elements.blocks.options.h6 = '".html::escapeJS(__('Level 6 header'))."'; ". 881 "jsToolBar.prototype.elements.strong.title = '".html::escapeJS(__('Strong emphasis'))."'; ". 882 "jsToolBar.prototype.elements.em.title = '".html::escapeJS(__('Emphasis'))."'; ". 883 "jsToolBar.prototype.elements.ins.title = '".html::escapeJS(__('Inserted'))."'; ". 884 "jsToolBar.prototype.elements.del.title = '".html::escapeJS(__('Deleted'))."'; ". 885 "jsToolBar.prototype.elements.quote.title = '".html::escapeJS(__('Inline quote'))."'; ". 886 "jsToolBar.prototype.elements.code.title = '".html::escapeJS(__('Code'))."'; ". 887 "jsToolBar.prototype.elements.br.title = '".html::escapeJS(__('Line break'))."'; ". 888 "jsToolBar.prototype.elements.blockquote.title = '".html::escapeJS(__('Blockquote'))."'; ". 889 "jsToolBar.prototype.elements.pre.title = '".html::escapeJS(__('Preformated text'))."'; ". 890 "jsToolBar.prototype.elements.ul.title = '".html::escapeJS(__('Unordered list'))."'; ". 891 "jsToolBar.prototype.elements.ol.title = '".html::escapeJS(__('Ordered list'))."'; ". 892 893 "jsToolBar.prototype.elements.link.title = '".html::escapeJS(__('Link'))."'; ". 894 "jsToolBar.prototype.elements.link.href_prompt = '".html::escapeJS(__('URL?'))."'; ". 895 "jsToolBar.prototype.elements.link.hreflang_prompt = '".html::escapeJS(__('Language?'))."'; ". 896 897 "jsToolBar.prototype.elements.img.title = '".html::escapeJS(__('External image'))."'; ". 898 "jsToolBar.prototype.elements.img.src_prompt = '".html::escapeJS(__('URL?'))."'; ". 899 900 "jsToolBar.prototype.elements.img_select.title = '".html::escapeJS(__('Media chooser'))."'; ". 901 "jsToolBar.prototype.elements.post_link.title = '".html::escapeJS(__('Link to an entry'))."'; ". 902 903 "jsToolBar.prototype.elements.removeFormat.title = '".html::escapeJS(__('Remove text formating'))."'; "; 904 905 if (!$GLOBALS['core']->auth->check('media,media_admin',$GLOBALS['core']->blog->id)) { 906 $res .= "jsToolBar.prototype.elements.img_select.disabled = true;\n"; 907 } 908 909 $res .= 910 "\n//]]>\n". 911 "</script>\n"; 912 913 return $res; 907 914 } 908 915 909 916 public static function jsUpload($params=array(),$base_url=null) 910 917 { 911 if (!$base_url) {912 $base_url = path::clean(dirname(preg_replace('/(\?.*$)?/','',$_SERVER['REQUEST_URI']))).'/';913 }914 915 $params = array_merge($params,array(916 'sess_id='.session_id(),917 'sess_uid='.$_SESSION['sess_browser_uid'],918 'xd_check='.$GLOBALS['core']->getNonce()918 if (!$base_url) { 919 $base_url = path::clean(dirname(preg_replace('/(\?.*$)?/','',$_SERVER['REQUEST_URI']))).'/'; 920 } 921 922 $params = array_merge($params,array( 923 'sess_id='.session_id(), 924 'sess_uid='.$_SESSION['sess_browser_uid'], 925 'xd_check='.$GLOBALS['core']->getNonce() 919 926 )); 920 927 921 return922 '<script type="text/javascript">'."\n".923 "//<![CDATA[\n".924 "dotclear.jsUpload = {};\n".925 "dotclear.jsUpload.msg = {};\n".926 self::jsVar('dotclear.msg.enhanced_uploader_activate',__('Temporarily activate enhanced uploader')).927 self::jsVar('dotclear.msg.enhanced_uploader_disable',__('Temporarily disable enhanced uploader')).928 self::jsVar('dotclear.jsUpload.msg.limit_exceeded',__('Limit exceeded.')).929 self::jsVar('dotclear.jsUpload.msg.size_limit_exceeded',__('File size exceeds allowed limit.')).930 self::jsVar('dotclear.jsUpload.msg.canceled',__('Canceled.')).931 self::jsVar('dotclear.jsUpload.msg.http_error',__('HTTP Error:')).932 self::jsVar('dotclear.jsUpload.msg.error',__('Error:')).933 self::jsVar('dotclear.jsUpload.msg.choose_file',__('Choose file')).934 self::jsVar('dotclear.jsUpload.msg.choose_files',__('Choose files')).935 self::jsVar('dotclear.jsUpload.msg.cancel',__('Cancel')).936 self::jsVar('dotclear.jsUpload.msg.clean',__('Clean')).937 self::jsVar('dotclear.jsUpload.msg.upload',__('Upload')).928 return 929 '<script type="text/javascript">'."\n". 930 "//<![CDATA[\n". 931 "dotclear.jsUpload = {};\n". 932 "dotclear.jsUpload.msg = {};\n". 933 self::jsVar('dotclear.msg.enhanced_uploader_activate',__('Temporarily activate enhanced uploader')). 934 self::jsVar('dotclear.msg.enhanced_uploader_disable',__('Temporarily disable enhanced uploader')). 935 self::jsVar('dotclear.jsUpload.msg.limit_exceeded',__('Limit exceeded.')). 936 self::jsVar('dotclear.jsUpload.msg.size_limit_exceeded',__('File size exceeds allowed limit.')). 937 self::jsVar('dotclear.jsUpload.msg.canceled',__('Canceled.')). 938 self::jsVar('dotclear.jsUpload.msg.http_error',__('HTTP Error:')). 939 self::jsVar('dotclear.jsUpload.msg.error',__('Error:')). 940 self::jsVar('dotclear.jsUpload.msg.choose_file',__('Choose file')). 941 self::jsVar('dotclear.jsUpload.msg.choose_files',__('Choose files')). 942 self::jsVar('dotclear.jsUpload.msg.cancel',__('Cancel')). 943 self::jsVar('dotclear.jsUpload.msg.clean',__('Clean')). 944 self::jsVar('dotclear.jsUpload.msg.upload',__('Upload')). 938 945 self::jsVar('dotclear.jsUpload.msg.send',__('Send')). 939 946 self::jsVar('dotclear.jsUpload.msg.file_successfully_uploaded',__('File successfully uploaded.')). 940 self::jsVar('dotclear.jsUpload.msg.no_file_in_queue',__('No file in queue.')).941 self::jsVar('dotclear.jsUpload.msg.file_in_queue',__('1 file in queue.')).942 self::jsVar('dotclear.jsUpload.msg.files_in_queue',__('%d files in queue.')).943 self::jsVar('dotclear.jsUpload.msg.queue_error',__('Queue error:')).944 self::jsVar('dotclear.jsUpload.base_url',$base_url).945 "\n//]]>\n".947 self::jsVar('dotclear.jsUpload.msg.no_file_in_queue',__('No file in queue.')). 948 self::jsVar('dotclear.jsUpload.msg.file_in_queue',__('1 file in queue.')). 949 self::jsVar('dotclear.jsUpload.msg.files_in_queue',__('%d files in queue.')). 950 self::jsVar('dotclear.jsUpload.msg.queue_error',__('Queue error:')). 951 self::jsVar('dotclear.jsUpload.base_url',$base_url). 952 "\n//]]>\n". 946 953 "</script>\n". 947 954 … … 960 967 public static function jsToolMan() 961 968 { 962 return963 '<script type="text/javascript" src="js/tool-man/core.js"></script>'.964 '<script type="text/javascript" src="js/tool-man/events.js"></script>'.965 '<script type="text/javascript" src="js/tool-man/css.js"></script>'.966 '<script type="text/javascript" src="js/tool-man/coordinates.js"></script>'.967 '<script type="text/javascript" src="js/tool-man/drag.js"></script>'.968 '<script type="text/javascript" src="js/tool-man/dragsort.js"></script>'.969 '<script type="text/javascript" src="js/dragsort-tablerows.js"></script>';969 return 970 '<script type="text/javascript" src="js/tool-man/core.js"></script>'. 971 '<script type="text/javascript" src="js/tool-man/events.js"></script>'. 972 '<script type="text/javascript" src="js/tool-man/css.js"></script>'. 973 '<script type="text/javascript" src="js/tool-man/coordinates.js"></script>'. 974 '<script type="text/javascript" src="js/tool-man/drag.js"></script>'. 975 '<script type="text/javascript" src="js/tool-man/dragsort.js"></script>'. 976 '<script type="text/javascript" src="js/dragsort-tablerows.js"></script>'; 970 977 } 971 978 972 979 public static function jsMetaEditor() 973 980 { 974 return975 '<script type="text/javascript" src="js/meta-editor.js"></script>';981 return 982 '<script type="text/javascript" src="js/meta-editor.js"></script>'; 976 983 } 977 984 } -
inc/admin/prepend.php
r2566 r2593 4 4 # This file is part of Dotclear 2. 5 5 # 6 # Copyright (c) 2003-201 3Olivier Meunier & Association Dotclear6 # Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear 7 7 # Licensed under the GPL version 2.0 license. 8 8 # See LICENSE file or … … 24 24 function dc_load_locales() { 25 25 global $_lang, $core; 26 26 27 27 $_lang = $core->auth->getInfo('user_lang'); 28 28 $_lang = preg_match('/^[a-z]{2}(-[a-z]{2})?$/',$_lang) ? $_lang : 'en'; 29 29 30 30 l10n::lang($_lang); 31 31 if (l10n::set(dirname(__FILE__).'/../../locales/'.$_lang.'/date') === false && $_lang != 'en') { … … 40 40 { 41 41 global $core; 42 42 43 43 $core->auth->user_prefs->addWorkspace('interface'); 44 44 $user_ui_iconset = @$core->auth->user_prefs->interface->iconset; 45 45 if (($user_ui_iconset) && ($img)) { 46 46 $icon = false; 47 if ((preg_match('/^images\/menu\/(.+)$/',$img,$m)) || 47 if ((preg_match('/^images\/menu\/(.+)$/',$img,$m)) || 48 48 (preg_match('/^index\.php\?pf=(.+)$/',$img,$m))) { 49 49 if ($m[1]) { … … 65 65 # We have session information in constants 66 66 $_COOKIE[DC_SESSION_NAME] = DC_AUTH_SESS_ID; 67 67 68 68 if (!$core->auth->checkSession(DC_AUTH_SESS_UID)) { 69 69 throw new Exception('Invalid session data.'); 70 70 } 71 71 72 72 # Check nonce from POST requests 73 73 if (!empty($_POST)) … … 77 77 } 78 78 } 79 79 80 80 if (empty($_SESSION['sess_blog_id'])) { 81 81 throw new Exception('Permission denied.'); 82 82 } 83 83 84 84 # Loading locales 85 85 dc_load_locales(); 86 86 87 87 $core->setBlog($_SESSION['sess_blog_id']); 88 88 if (!$core->blog->id) { … … 100 100 $p[3] = '/'; 101 101 call_user_func_array('setcookie',$p); 102 102 103 103 http::redirect('auth.php'); 104 104 } … … 108 108 ,20); 109 109 } 110 110 111 111 # Check nonce from POST requests 112 112 if (!empty($_POST)) … … 119 119 } 120 120 } 121 122 121 122 123 123 if (!empty($_REQUEST['switchblog']) 124 124 && $core->auth->getPermissions($_REQUEST['switchblog']) !== false) … … 131 131 unset($_SESSION['media_manager_page']); 132 132 } 133 133 134 134 # Removing switchblog from URL 135 135 $redir = $_SERVER['REQUEST_URI']; … … 139 139 exit; 140 140 } 141 141 142 142 # Check blog to use and log out if no result 143 143 if (isset($_SESSION['sess_blog_id'])) … … 154 154 } 155 155 } 156 156 157 157 # Loading locales 158 158 dc_load_locales(); 159 159 160 160 if (isset($_SESSION['sess_blog_id'])) { 161 161 $core->setBlog($_SESSION['sess_blog_id']); … … 165 165 } 166 166 167 /* 167 /* 168 168 # Check add to my fav fired 169 169 if (!empty($_REQUEST['add-favorite'])) { … … 184 184 } 185 185 unset($f); 186 186 187 187 if (($hfiles = @scandir($locales_root.$_lang.'/help')) !== false) 188 188 { … … 205 205 # [] : Title, URL, small icon, large icon, permissions, id, class 206 206 # NB : '*' in permissions means any, null means super admin only 207 208 207 208 209 209 # Menus creation 210 210 $_menu = new ArrayObject(); … … 224 224 } 225 225 226 226 227 227 # Set menu titles 228 228 229 229 $_menu['System']->title = __('System settings'); 230 230 $_menu['Blog']->title = __('Blog'); … … 256 256 preg_match('/post.php$/',$_SERVER['REQUEST_URI']), 257 257 $core->auth->check('usage,contentadmin',$core->blog->id)); 258 258 259 259 $_menu['System']->prependItem(__('Update'),'update.php','images/menu/update.png', 260 260 preg_match('/update.php(\?.*)?$/',$_SERVER['REQUEST_URI']), … … 278 278 } 279 279 } 280 281 # Add admin default templates path 282 $core->tpl->getLoader()->addPath(dirname(__FILE__).'/default-templates'); 283 # Set admin context 284 $_ctx = new dcAdminContext($core); 285 $core->tpl->addExtension($_ctx); 286 287 # --BEHAVIOR-- adminPrepend 288 $core->callBehavior('adminPrepend',$core,$_ctx); 289 ?>
Note: See TracChangeset
for help on using the changeset viewer.