Dotclear

Changeset 2468:d7fda5a0bd39 for inc


Ignore:
Timestamp:
10/21/13 09:08:36 (12 years ago)
Author:
Dsls
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.
Message:

Merge with 2.6

Location:
inc
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • inc/admin/lib.dc.page.php

    r2313 r2468  
    1717{ 
    1818     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"); 
    1925 
    2026     # Auth check 
     
    187193          $res = ''; 
    188194          if (isset($_SESSION['notifications'])) { 
    189                $types = array("success" => "success", "warning" => "warning-msg", "error" => "error"); 
    190195               $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); 
    197198               } 
    198199               unset($_SESSION['notifications']); 
     
    201202     } 
    202203 
    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) 
    226242     { 
    227243          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.'>'; 
    230250          return $res; 
    231251     } 
  • inc/admin/lib.dc.page.php

    r2328 r2468  
    105105 
    106106          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"; 
    108108          if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') { 
    109109               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"; 
    111111          } 
    112112 
     
    118118               '<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />'; 
    119119          } 
     120 
    120121          echo 
    121122          self::jsCommon(). 
     
    327328 
    328329          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"; 
    330331          if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') { 
    331332               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"; 
    333334          } 
    334335 
     
    591592          "//<![CDATA[\n". 
    592593          self::jsVar('dotclear.nonce',$GLOBALS['core']->getNonce()). 
     594 
    593595          self::jsVar('dotclear.img_plus_src','images/expand.png'). 
    594596          self::jsVar('dotclear.img_plus_alt',__('uncover')). 
     
    597599          self::jsVar('dotclear.img_menu_on','images/menu_on.png'). 
    598600          self::jsVar('dotclear.img_menu_off','images/menu_off.png'). 
    599            
     601 
    600602          self::jsVar('dotclear.img_plus_theme_src','images/plus-theme.png'). 
    601603          self::jsVar('dotclear.img_plus_theme_alt',__('uncover')). 
     
    702704          self::jsVar('dotclear.msg.module_tags', 
    703705               __('Tags:')). 
    704                "\n//]]>\n". 
     706          "\n//]]>\n". 
    705707          "</script>\n"; 
    706708     } 
     
    742744               $default = "'".html::escapeJS($default)."'"; 
    743745          } 
    744            
     746 
    745747          return 
    746748          self::jsLoad('js/jquery/jquery.pageTabs.js'). 
     
    764766     public static function jsModal() 
    765767     { 
    766           return 
    767           '<link rel="stylesheet" type="text/css" href="style/modal/modal.css" />'."\n". 
    768           self::jsLoad('js/jquery/jquery.modal.js'). 
    769           '<script type="text/javascript">'."\n". 
    770           "//<![CDATA[\n". 
    771           self::jsVar('$.modal.prototype.params.loader_img','style/modal/loader.gif'). 
    772           self::jsVar('$.modal.prototype.params.close_img','style/modal/close.png'). 
    773           "\n//]]>\n". 
    774           "</script>\n"; 
     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"; 
    775777     } 
    776778 
    777779     public static function jsColorPicker() 
    778780     { 
    779           return 
    780           '<link rel="stylesheet" type="text/css" href="style/farbtastic/farbtastic.css" />'."\n". 
    781           self::jsLoad('js/jquery/jquery.farbtastic.js'). 
    782           self::jsLoad('js/color-picker.js'); 
     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'); 
    783785     } 
    784786 
    785787     public static function jsDatePicker() 
    786788     { 
    787           return 
    788           '<link rel="stylesheet" type="text/css" href="style/date-picker.css" />'."\n". 
    789           self::jsLoad('js/date-picker.js'). 
    790           '<script type="text/javascript">'."\n". 
    791           "//<![CDATA[\n". 
    792  
    793           "datePicker.prototype.months[0] = '".html::escapeJS(__('January'))."'; ". 
    794           "datePicker.prototype.months[1] = '".html::escapeJS(__('February'))."'; ". 
    795           "datePicker.prototype.months[2] = '".html::escapeJS(__('March'))."'; ". 
    796           "datePicker.prototype.months[3] = '".html::escapeJS(__('April'))."'; ". 
    797           "datePicker.prototype.months[4] = '".html::escapeJS(__('May'))."'; ". 
    798           "datePicker.prototype.months[5] = '".html::escapeJS(__('June'))."'; ". 
    799           "datePicker.prototype.months[6] = '".html::escapeJS(__('July'))."'; ". 
    800           "datePicker.prototype.months[7] = '".html::escapeJS(__('August'))."'; ". 
    801           "datePicker.prototype.months[8] = '".html::escapeJS(__('September'))."'; ". 
    802           "datePicker.prototype.months[9] = '".html::escapeJS(__('October'))."'; ". 
    803           "datePicker.prototype.months[10] = '".html::escapeJS(__('November'))."'; ". 
    804           "datePicker.prototype.months[11] = '".html::escapeJS(__('December'))."'; ". 
    805  
    806           "datePicker.prototype.days[0] = '".html::escapeJS(__('Monday'))."'; ". 
    807           "datePicker.prototype.days[1] = '".html::escapeJS(__('Tuesday'))."'; ". 
    808           "datePicker.prototype.days[2] = '".html::escapeJS(__('Wednesday'))."'; ". 
    809           "datePicker.prototype.days[3] = '".html::escapeJS(__('Thursday'))."'; ". 
    810           "datePicker.prototype.days[4] = '".html::escapeJS(__('Friday'))."'; ". 
    811           "datePicker.prototype.days[5] = '".html::escapeJS(__('Saturday'))."'; ". 
    812           "datePicker.prototype.days[6] = '".html::escapeJS(__('Sunday'))."'; ". 
    813  
    814           "datePicker.prototype.img_src = 'images/date-picker.png'; ". 
    815  
    816           "datePicker.prototype.close_msg = '".html::escapeJS(__('close'))."'; ". 
    817           "datePicker.prototype.now_msg = '".html::escapeJS(__('now'))."'; ". 
    818  
    819           "\n//]]>\n". 
    820           "</script>\n"; 
     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"; 
    821823     } 
    822824 
    823825     public static function jsToolBar() 
    824826     { 
    825           $res = 
    826           '<link rel="stylesheet" type="text/css" href="style/jsToolBar/jsToolBar.css" />'. 
    827           '<script type="text/javascript" src="js/jsToolBar/jsToolBar.js"></script>'; 
    828  
    829           if (isset($GLOBALS['core']->auth) && $GLOBALS['core']->auth->getOption('enable_wysiwyg')) { 
    830                $res .= '<script type="text/javascript" src="js/jsToolBar/jsToolBar.wysiwyg.js"></script>'; 
    831           } 
    832  
    833           $res .= 
    834           '<script type="text/javascript" src="js/jsToolBar/jsToolBar.dotclear.js"></script>'. 
    835           '<script type="text/javascript">'."\n". 
    836           "//<![CDATA[\n". 
    837           "jsToolBar.prototype.dialog_url = 'popup.php'; ". 
    838           "jsToolBar.prototype.iframe_css = '". 
    839           'body{'. 
    840           'font: 12px "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;'. 
    841           'color : #000;'. 
    842           'background: #f9f9f9;'. 
    843           'margin: 0;'. 
    844           'padding : 2px;'. 
    845           'border: none;'. 
    846           (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl' ? 'direction:rtl;' : ''). 
    847           '}'. 
    848           'pre, code, kbd, samp {'. 
    849           'font-family:"Courier New",Courier,monospace;'. 
    850           'font-size : 1.1em;'. 
    851           '}'. 
    852           'code {'. 
    853           'color : #666;'. 
    854           'font-weight : bold;'. 
    855           '}'. 
    856           'body > p:first-child {'. 
    857           'margin-top: 0;'. 
    858           '}'. 
    859           "'; ". 
    860           "jsToolBar.prototype.base_url = '".html::escapeJS($GLOBALS['core']->blog->host)."'; ". 
    861           "jsToolBar.prototype.switcher_visual_title = '".html::escapeJS(__('visual'))."'; ". 
    862           "jsToolBar.prototype.switcher_source_title = '".html::escapeJS(__('source'))."'; ". 
    863           "jsToolBar.prototype.legend_msg = '". 
    864           html::escapeJS(__('You can use the following shortcuts to format your text.'))."'; ". 
    865           "jsToolBar.prototype.elements.blocks.options.none = '".html::escapeJS(__('-- none --'))."'; ". 
    866           "jsToolBar.prototype.elements.blocks.options.nonebis = '".html::escapeJS(__('-- block format --'))."'; ". 
    867           "jsToolBar.prototype.elements.blocks.options.p = '".html::escapeJS(__('Paragraph'))."'; ". 
    868           "jsToolBar.prototype.elements.blocks.options.h1 = '".html::escapeJS(__('Level 1 header'))."'; ". 
    869           "jsToolBar.prototype.elements.blocks.options.h2 = '".html::escapeJS(__('Level 2 header'))."'; ". 
    870           "jsToolBar.prototype.elements.blocks.options.h3 = '".html::escapeJS(__('Level 3 header'))."'; ". 
    871           "jsToolBar.prototype.elements.blocks.options.h4 = '".html::escapeJS(__('Level 4 header'))."'; ". 
    872           "jsToolBar.prototype.elements.blocks.options.h5 = '".html::escapeJS(__('Level 5 header'))."'; ". 
    873           "jsToolBar.prototype.elements.blocks.options.h6 = '".html::escapeJS(__('Level 6 header'))."'; ". 
    874           "jsToolBar.prototype.elements.strong.title = '".html::escapeJS(__('Strong emphasis'))."'; ". 
    875           "jsToolBar.prototype.elements.em.title = '".html::escapeJS(__('Emphasis'))."'; ". 
    876           "jsToolBar.prototype.elements.ins.title = '".html::escapeJS(__('Inserted'))."'; ". 
    877           "jsToolBar.prototype.elements.del.title = '".html::escapeJS(__('Deleted'))."'; ". 
    878           "jsToolBar.prototype.elements.quote.title = '".html::escapeJS(__('Inline quote'))."'; ". 
    879           "jsToolBar.prototype.elements.code.title = '".html::escapeJS(__('Code'))."'; ". 
    880           "jsToolBar.prototype.elements.br.title = '".html::escapeJS(__('Line break'))."'; ". 
    881           "jsToolBar.prototype.elements.blockquote.title = '".html::escapeJS(__('Blockquote'))."'; ". 
    882           "jsToolBar.prototype.elements.pre.title = '".html::escapeJS(__('Preformated text'))."'; ". 
    883           "jsToolBar.prototype.elements.ul.title = '".html::escapeJS(__('Unordered list'))."'; ". 
    884           "jsToolBar.prototype.elements.ol.title = '".html::escapeJS(__('Ordered list'))."'; ". 
    885  
    886           "jsToolBar.prototype.elements.link.title = '".html::escapeJS(__('Link'))."'; ". 
    887           "jsToolBar.prototype.elements.link.href_prompt = '".html::escapeJS(__('URL?'))."'; ". 
    888           "jsToolBar.prototype.elements.link.hreflang_prompt = '".html::escapeJS(__('Language?'))."'; ". 
    889  
    890           "jsToolBar.prototype.elements.img.title = '".html::escapeJS(__('External image'))."'; ". 
    891           "jsToolBar.prototype.elements.img.src_prompt = '".html::escapeJS(__('URL?'))."'; ". 
    892  
    893           "jsToolBar.prototype.elements.img_select.title = '".html::escapeJS(__('Media chooser'))."'; ". 
    894           "jsToolBar.prototype.elements.post_link.title = '".html::escapeJS(__('Link to an entry'))."'; "; 
    895  
    896           if (!$GLOBALS['core']->auth->check('media,media_admin',$GLOBALS['core']->blog->id)) { 
    897                $res .= "jsToolBar.prototype.elements.img_select.disabled = true;\n"; 
    898           } 
    899  
    900           $res .= 
    901           "\n//]]>\n". 
    902           "</script>\n"; 
    903  
    904           return $res; 
     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; 
    905907     } 
    906908 
    907909     public static function jsUpload($params=array(),$base_url=null) 
    908910     { 
    909           if (!$base_url) { 
    910                $base_url = path::clean(dirname(preg_replace('/(\?.*$)?/','',$_SERVER['REQUEST_URI']))).'/'; 
    911           } 
    912  
    913           $params = array_merge($params,array( 
    914                'sess_id='.session_id(), 
    915                'sess_uid='.$_SESSION['sess_browser_uid'], 
    916                'xd_check='.$GLOBALS['core']->getNonce() 
     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() 
    917919          )); 
    918920 
    919           return 
    920           '<script type="text/javascript">'."\n". 
    921           "//<![CDATA[\n". 
    922           "dotclear.jsUpload = {};\n". 
    923           "dotclear.jsUpload.msg = {};\n". 
    924           self::jsVar('dotclear.msg.enhanced_uploader_activate',__('Temporarily activate enhanced uploader')). 
    925           self::jsVar('dotclear.msg.enhanced_uploader_disable',__('Temporarily disable enhanced uploader')). 
    926           self::jsVar('dotclear.jsUpload.msg.limit_exceeded',__('Limit exceeded.')). 
    927           self::jsVar('dotclear.jsUpload.msg.size_limit_exceeded',__('File size exceeds allowed limit.')). 
    928           self::jsVar('dotclear.jsUpload.msg.canceled',__('Canceled.')). 
    929           self::jsVar('dotclear.jsUpload.msg.http_error',__('HTTP Error:')). 
    930           self::jsVar('dotclear.jsUpload.msg.error',__('Error:')). 
    931           self::jsVar('dotclear.jsUpload.msg.choose_file',__('Choose file')). 
    932           self::jsVar('dotclear.jsUpload.msg.choose_files',__('Choose files')). 
    933           self::jsVar('dotclear.jsUpload.msg.cancel',__('Cancel')). 
    934           self::jsVar('dotclear.jsUpload.msg.clean',__('Clean')). 
    935           self::jsVar('dotclear.jsUpload.msg.upload',__('Upload')). 
     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')). 
    936938          self::jsVar('dotclear.jsUpload.msg.send',__('Send')). 
    937939          self::jsVar('dotclear.jsUpload.msg.file_successfully_uploaded',__('File successfully uploaded.')). 
    938           self::jsVar('dotclear.jsUpload.msg.no_file_in_queue',__('No file in queue.')). 
    939           self::jsVar('dotclear.jsUpload.msg.file_in_queue',__('1 file in queue.')). 
    940           self::jsVar('dotclear.jsUpload.msg.files_in_queue',__('%d files in queue.')). 
    941           self::jsVar('dotclear.jsUpload.msg.queue_error',__('Queue error:')). 
    942           self::jsVar('dotclear.jsUpload.base_url',$base_url). 
    943           "\n//]]>\n". 
     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". 
    944946          "</script>\n". 
    945947 
     
    958960     public static function jsToolMan() 
    959961     { 
    960           return 
    961           '<script type="text/javascript" src="js/tool-man/core.js"></script>'. 
    962           '<script type="text/javascript" src="js/tool-man/events.js"></script>'. 
    963           '<script type="text/javascript" src="js/tool-man/css.js"></script>'. 
    964           '<script type="text/javascript" src="js/tool-man/coordinates.js"></script>'. 
    965           '<script type="text/javascript" src="js/tool-man/drag.js"></script>'. 
    966           '<script type="text/javascript" src="js/tool-man/dragsort.js"></script>'. 
    967           '<script type="text/javascript" src="js/dragsort-tablerows.js"></script>'; 
     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>'; 
    968970     } 
    969971 
    970972     public static function jsMetaEditor() 
    971973     { 
    972           return 
    973           '<script type="text/javascript" src="js/meta-editor.js"></script>'; 
     974     return 
     975     '<script type="text/javascript" src="js/meta-editor.js"></script>'; 
    974976     } 
    975977} 
  • inc/core/class.dc.blog.php

    r2313 r2468  
    771771          if ($count_only) 
    772772          { 
    773                $strReq = 'SELECT count(P.post_id) '; 
     773               $strReq = 'SELECT count(DISTINCT P.post_id) '; 
    774774          } 
    775775          elseif (!empty($params['sql_only']))  
     
    791791               } 
    792792                
     793 
    793794               $strReq = 
    794795               'SELECT P.post_id, P.blog_id, P.user_id, P.cat_id, post_dt, '. 
     
    807808          'LEFT OUTER JOIN '.$this->prefix.'category C ON P.cat_id = C.cat_id '; 
    808809 
    809           if (isset($params['media'])) { 
    810                if ($params['media'] == '0') { 
    811                     $strReq .= 'LEFT OUTER JOIN '.$this->prefix.'post_media M on P.post_id = M.post_id '; 
    812                } else { 
    813                     $strReq .= 'INNER JOIN '.$this->prefix.'post_media M on P.post_id = M.post_id '; 
    814                } 
    815                if (isset($params['link_type'])) { 
    816                     $strReq .= " and M.link_type ".$this->con->in($params['link_type'])." "; 
    817                } 
    818           } 
    819            
    820810          if (!empty($params['from'])) { 
    821811               $strReq .= $params['from'].' '; 
     
    950940          if (isset($params['media'])) { 
    951941               if ($params['media'] == '0') { 
    952                     $strReq .= ' AND M.post_id IS NULL '; 
    953                } 
     942                    $strReq .= 'AND NOT '; 
     943               } else { 
     944                    $strReq .= 'AND ';                  
     945               } 
     946               $strReq .= 'EXISTS (SELECT M.post_id FROM '.$this->prefix.'post_media M '. 
     947                    'WHERE M.post_id = P.post_id '; 
     948               if (isset($params['link_type'])) { 
     949                    $strReq .= " AND M.link_type ".$this->con->in($params['link_type'])." "; 
     950               } 
     951               $strReq .= ")"; 
    954952          } 
    955953 
    956954          if (!empty($params['sql'])) { 
    957955               $strReq .= $params['sql'].' '; 
    958           } 
    959            
    960           if (!$count_only && isset($params['media'])) { 
    961                $strReq .= ' GROUP BY P.post_id '; 
    962956          } 
    963957 
  • inc/core/class.dc.blog.php

    r2318 r2468  
    44# This file is part of Dotclear 2. 
    55# 
    6 # Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear 
     6# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear 
    77# Licensed under the GPL version 2.0 license. 
    88# See LICENSE file or 
     
    8181               $this->desc = $b->blog_desc; 
    8282               $this->url = $b->blog_url; 
    83                $this->host = http::getHostFromURL($this->url); 
     83               $this->host = preg_replace('|^([a-z]{3,}://)(.*?)/.*$|','$1$2',$this->url); 
    8484               $this->creadt = strtotime($b->blog_creadt); 
    8585               $this->upddt = strtotime($b->blog_upddt); 
     
    865865           
    866866          if (!empty($params['user_id'])) { 
    867                $strReq .= "AND U.user_id = '".$this->con->escape($params['user_id'])."' "; 
     867               $strReq .= "AND U.user_id ".$this->con->in($params['user_id'])." "; 
    868868          } 
    869869           
     
    963963                    $strReq .= 'ORDER BY post_dt DESC '; 
    964964               } 
    965           } 
    966            
    967           if (!$count_only && !empty($params['limit'])) { 
    968                $strReq .= $this->con->limit($params['limit']); 
     965               if (!empty($params['limit'])) { 
     966                    $strReq .= $this->con->limit($params['limit']); 
     967               } 
    969968          } 
    970969           
  • inc/prepend.php

    r2313 r2468  
    193193if (!defined('DC_UPDATE_VERSION')) { 
    194194     define('DC_UPDATE_VERSION','stable'); 
     195} 
     196 
     197if (!defined('DC_ALLOW_MULTI_MODULES')) { 
     198     define('DC_ALLOW_MULTI_MODULES',false); 
    195199} 
    196200 
  • inc/prepend.php

    r2466 r2468  
    1212 
    1313/* ------------------------------------------------------------------------------------------- */ 
    14 #  ClearBricks, DotClear classes auto-loader 
     14#  ClearBricks, Twig, DotClear classes auto-loader 
    1515if (@is_dir('/usr/lib/clearbricks')) { 
    1616     define('CLEARBRICKS_PATH','/usr/lib/clearbricks'); 
     
    4646$__autoload['dcWorkspace']              = dirname(__FILE__).'/core/class.dc.workspace.php'; 
    4747$__autoload['dcPrefs']                  = dirname(__FILE__).'/core/class.dc.prefs.php'; 
     48$__autoload['dcTwigPage']               = dirname(__FILE__).'/core/class.dc.twig.page.php'; 
    4849$__autoload['dcStore']             = dirname(__FILE__).'/core/class.dc.store.php'; 
    4950$__autoload['dcStoreReader']       = dirname(__FILE__).'/core/class.dc.store.reader.php'; 
     
    5657$__autoload['rsExtUser']                = dirname(__FILE__).'/core/class.dc.rs.extensions.php'; 
    5758 
     59$__autoload['dcAdminContext']                = dirname(__FILE__).'/admin/class.dc.admincontext.php'; 
    5860$__autoload['dcMenu']                   = dirname(__FILE__).'/admin/class.dc.menu.php'; 
    5961$__autoload['dcPage']                   = dirname(__FILE__).'/admin/lib.dc.page.php'; 
     
    7476$__autoload['dcCommentsActionsPage']              = dirname(__FILE__).'/admin/actions/class.dcactioncomments.php'; 
    7577$__autoload['dcActionsPage']            = dirname(__FILE__).'/admin/actions/class.dcaction.php'; 
     78$__autoload['dcForm']              = dirname(__FILE__).'/admin/class.dc.form.php'; 
     79$__autoload['dcFormExtension']               = dirname(__FILE__).'/admin/class.dc.form.php'; 
     80$__autoload['dcTabExtension']           = dirname(__FILE__).'/admin/class.dc.tab.php'; 
     81$__autoload['dcItemList']               = dirname(__FILE__).'/admin/class.dc.list.php'; 
     82$__autoload['dcListFetcher']            = dirname(__FILE__).'/admin/class.dc.list.php'; 
     83 
     84foreach (array('dcFilterSet', 'dcFilter','dcFilterCombo','dcFilterText','dcFilterBoolean') as $c) { 
     85     $__autoload[$c] = dirname(__FILE__).'/admin/class.dc.filter.php'; 
     86} 
    7687 
    7788# Clearbricks extensions 
    7889html::$absolute_regs[] = '/(<param\s+name="movie"\s+value=")(.*?)(")/msu'; 
    7990html::$absolute_regs[] = '/(<param\s+name="FlashVars"\s+value=".*?(?:mp3|flv)=)(.*?)(&|")/msu'; 
     91 
     92if (@is_dir('/usr/lib/twig')) { 
     93     define('TWIG_PATH','/usr/lib/Twig'); 
     94} elseif (is_dir(dirname(__FILE__).'/libs/Twig')) { 
     95     define('TWIG_PATH',dirname(__FILE__).'/libs/Twig'); 
     96} elseif (isset($_SERVER['TWIG_PATH']) && is_dir($_SERVER['TWIG_PATH'])) { 
     97     define('TWIG_PATH',$_SERVER['TWIG_PATH']); 
     98} 
     99 
     100if (!defined('TWIG_PATH') || !is_dir(TWIG_PATH)) { 
     101     exit('No Twig path defined'); 
     102} 
     103require TWIG_PATH.'/Autoloader.php'; 
     104Twig_Autoloader::register(); 
     105 
    80106/* ------------------------------------------------------------------------------------------- */ 
    81107 
     
    134160# Constants 
    135161define('DC_ROOT',path::real(dirname(__FILE__).'/..')); 
    136 define('DC_VERSION','2.6-RC'); 
     162define('DC_VERSION','2.99-dev'); 
    137163define('DC_DIGESTS',dirname(__FILE__).'/digests'); 
    138164define('DC_L10N_ROOT',dirname(__FILE__).'/../locales'); 
     
    280306     # 60 : template processing error 
    281307     # 70 : blog is offline 
    282  
     308      
    283309     if (CLI_MODE) 
    284310     { 
Note: See TracChangeset for help on using the changeset viewer.

Sites map