Changeset 2468:d7fda5a0bd39 for inc/admin/lib.dc.page.php
- Timestamp:
- 10/21/13 09:08:36 (12 years ago)
- Branch:
- twig
- Children:
- 2593:6741802596a0, 2609:c26642f775e2
- Parents:
- 2321:3ab5e6c3d301 (diff), 2466:e42d3233f080 (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
r2313 r2468 17 17 { 18 18 private static $loaded_js=array(); 19 private static $N_TYPES = array( 20 "success" => "success", 21 "warning" => "warning-msg", 22 "error" => "error", 23 "message" => "message", 24 "static" => "static-msg"); 19 25 20 26 # Auth check … … 187 193 $res = ''; 188 194 if (isset($_SESSION['notifications'])) { 189 $types = array("success" => "success", "warning" => "warning-msg", "error" => "error");190 195 $notifications = $_SESSION['notifications']; 191 foreach ($types as $type => $class) { 192 if (isset($notifications[$type])) { 193 foreach ($notifications[$type] as $n) { 194 $res .= self::getNotification($n,$class); 195 } 196 } 196 foreach ($_SESSION['notifications'] as $notification) { 197 $res .= self::getNotification($notification); 197 198 } 198 199 unset($_SESSION['notifications']); … … 201 202 } 202 203 203 public static function addNotice($type,$message) 204 { 205 $notification = isset($_SESSION['notifications']) ? $_SESSION['notifications'] : array(); 206 $notification[$type][] = array('ts' => time(), 'text' => $message); 207 $_SESSION['notifications'] = $notification; 208 } 209 210 public static function addSuccessNotice($message) 211 { 212 self::addNotice("success",$message); 213 } 214 215 public static function addWarningNotice($message) 216 { 217 self::addNotice("warning",$message); 218 } 219 220 public static function addErrorNotice($message) 221 { 222 self::addNotice("error",$message); 223 } 224 225 protected static function getNotification($msg,$class) 204 public static function addNotice($type,$message,$options=array()) 205 { 206 if (isset(self::$N_TYPES[$type])){ 207 $class = self::$N_TYPES[$type]; 208 } else { 209 $class=$type; 210 } 211 if (isset($_SESSION['notifications']) && is_array($_SESSION['notifications'])) { 212 $notifications = $_SESSION['notifications']; 213 } else { 214 $notifications = array(); 215 } 216 217 $n = array_merge($options,array('class' => $class,'ts' => time(), 'text' => $message)); 218 if ($type != "static") { 219 $notifications[] = $n; 220 } else { 221 array_unshift($notifications, $n); 222 } 223 $_SESSION['notifications'] = $notifications; 224 } 225 226 public static function addSuccessNotice($message,$options=array()) 227 { 228 self::addNotice("success",$message,$options); 229 } 230 231 public static function addWarningNotice($message,$options=array()) 232 { 233 self::addNotice("warning",$message,$options); 234 } 235 236 public static function addErrorNotice($message,$options=array()) 237 { 238 self::addNotice("error",$message,$options); 239 } 240 241 protected static function getNotification($n) 226 242 { 227 243 global $core; 228 229 $res = '<p class="'.$class.'">'.dt::str(__('[%H:%M:%S]'),$msg['ts'],$core->auth->getInfo('user_tz')).' '.$msg['text'].'</p>'; 244 $tag = (isset($n['divtag'])&& $n['divtag'])?'div':'p'; 245 $ts = ''; 246 if (!isset($n['with_ts']) || ($n['with_ts'] == true)) { 247 $ts = dt::str(__('[%H:%M:%S]'),$n['ts'],$core->auth->getInfo('user_tz')).' '; 248 } 249 $res = '<'.$tag.' class="'.$n['class'].'">'.$ts.$n['text'].'</'.$tag.'>'; 230 250 return $res; 231 251 } -
inc/admin/lib.dc.page.php
r2328 r2468 105 105 106 106 self::jsLoadIE7(). 107 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n";107 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n"; 108 108 if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') { 109 109 echo 110 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n";110 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n"; 111 111 } 112 112 … … 118 118 '<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />'; 119 119 } 120 120 121 echo 121 122 self::jsCommon(). … … 327 328 328 329 self::jsLoadIE7(). 329 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n";330 ' <link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n"; 330 331 if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') { 331 332 echo 332 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n";333 ' <link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n"; 333 334 } 334 335 … … 591 592 "//<![CDATA[\n". 592 593 self::jsVar('dotclear.nonce',$GLOBALS['core']->getNonce()). 594 593 595 self::jsVar('dotclear.img_plus_src','images/expand.png'). 594 596 self::jsVar('dotclear.img_plus_alt',__('uncover')). … … 597 599 self::jsVar('dotclear.img_menu_on','images/menu_on.png'). 598 600 self::jsVar('dotclear.img_menu_off','images/menu_off.png'). 599 601 600 602 self::jsVar('dotclear.img_plus_theme_src','images/plus-theme.png'). 601 603 self::jsVar('dotclear.img_plus_theme_alt',__('uncover')). … … 702 704 self::jsVar('dotclear.msg.module_tags', 703 705 __('Tags:')). 704 706 "\n//]]>\n". 705 707 "</script>\n"; 706 708 } … … 742 744 $default = "'".html::escapeJS($default)."'"; 743 745 } 744 746 745 747 return 746 748 self::jsLoad('js/jquery/jquery.pageTabs.js'). … … 764 766 public static function jsModal() 765 767 { 766 767 768 769 770 771 772 773 774 768 return 769 '<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"; 775 777 } 776 778 777 779 public static function jsColorPicker() 778 780 { 779 780 781 782 781 return 782 '<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'); 783 785 } 784 786 785 787 public static function jsDatePicker() 786 788 { 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 789 return 790 '<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"; 821 823 } 822 824 823 825 public static function jsToolBar() 824 826 { 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 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; 905 907 } 906 908 907 909 public static function jsUpload($params=array(),$base_url=null) 908 910 { 909 910 911 912 913 914 915 916 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() 917 919 )); 918 920 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 921 return 922 '<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')). 936 938 self::jsVar('dotclear.jsUpload.msg.send',__('Send')). 937 939 self::jsVar('dotclear.jsUpload.msg.file_successfully_uploaded',__('File successfully uploaded.')). 938 939 940 941 942 943 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". 944 946 "</script>\n". 945 947 … … 958 960 public static function jsToolMan() 959 961 { 960 961 962 963 964 965 966 967 962 return 963 '<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>'; 968 970 } 969 971 970 972 public static function jsMetaEditor() 971 973 { 972 973 974 return 975 '<script type="text/javascript" src="js/meta-editor.js"></script>'; 974 976 } 975 977 }
Note: See TracChangeset
for help on using the changeset viewer.