Dotclear


Ignore:
Files:
3 added
2 deleted
61 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG

    r1104 r1114  
    1 Dotclear 2.5.0 - 2013-02-24 
    2 =========================================================== 
     1Dotclear 2.5.0 - 2013-03-12 
     2=========================================================== 
     3* Security fix: XSS vulnerabilities in swfupload.swf (media enhanced uploader) 
    34* Ductile theme may now use webfont (from Google, Adobe and similar providers) 
    45* daInstaller plugin is now included in the official distribution 
  • admin/comments.php

    r1054 r1143  
    225225     '</form>'; 
    226226      
    227      if (!$with_spam) { 
    228  
    229           $spam_count = $core->blog->getComments(array('comment_status'=>-2),true)->f(0); 
     227     $spam_count = $core->blog->getComments(array('comment_status'=>-2),true)->f(0); 
     228     if ($spam_count > 0) { 
    230229           
    231           if ($spam_count > 0) { 
    232                 
    233                echo  
    234                     '<form action="comments.php" method="post" class="fieldset">'; 
    235  
     230          echo  
     231               '<form action="comments.php" method="post" class="fieldset">'; 
     232 
     233          if (!$with_spam || ($status != -2)) { 
    236234               if ($spam_count == 1) { 
    237235                    echo '<p>'.sprintf(__('You have one spam comments.'),'<strong>'.$spam_count.'</strong>').' '. 
     
    241239                    '<a href="comments.php?status=-2">'.__('Show them.').'</a></p>'; 
    242240               } 
    243                 
    244                echo 
    245                     $core->formNonce(). 
    246                     '<input name="delete_all_spam" class="delete" type="submit" value="'.__('Delete all spams').'" /></p>'; 
    247  
    248                # --BEHAVIOR-- adminCommentsSpamForm 
    249                $core->callBehavior('adminCommentsSpamForm',$core); 
    250  
    251                echo '</form>'; 
    252241          } 
     242           
     243          echo 
     244               $core->formNonce(). 
     245               '<input name="delete_all_spam" class="delete" type="submit" value="'.__('Delete all spams').'" /></p>'; 
     246 
     247          # --BEHAVIOR-- adminCommentsSpamForm 
     248          $core->callBehavior('adminCommentsSpamForm',$core); 
     249 
     250          echo '</form>'; 
    253251     } 
    254252      
  • admin/js/_blog_pref.js

    r175 r1136  
    1010     $("p#urlwarning").remove(); 
    1111     if (errorMsg != '') { 
    12           $("#blog_url").parents('p').before('<p id="urlwarning" class="error">'+errorMsg+'</p>'); 
     12          $("#blog_url").parents('p').after('<p id="urlwarning" class="warning">'+errorMsg+'</p>'); 
    1313     } 
    1414} 
  • admin/js/_index.js

    r454 r1140  
    6666     $('#quick h3').toggleWithLegend($('#quick').children().not('h3'),{ 
    6767          cookie: 'dcx_quick_entry' 
    68      }, positionFooter); 
     68     }); 
    6969}); 
  • admin/js/_media.js

    r1039 r1140  
    8484                    }, 
    8585                    fileQueued: function() { 
    86                          positionFooter(); 
     86                         ; 
    8787                    } 
    8888               } 
  • admin/js/_post.js

    r740 r1140  
    88     $(img).css('cursor','pointer'); 
    99     img.line = line; 
    10      img.onclick = function() { dotclear.viewCommentContent(this,this.line); positionFooter(); }; 
     10     img.onclick = function() { dotclear.viewCommentContent(this,this.line); }; 
    1111      
    1212     td.insertBefore(img,td.firstChild); 
  • admin/js/common.js

    r1002 r1140  
    8484               $(i).get(0).src = p.img_on_src; 
    8585               $(i).get(0).alt = p.img_on_alt; 
    86                target.hide(speed, positionFooter); 
     86               target.hide(speed); 
    8787          } else { 
    8888               $(i).get(0).src = p.img_off_src; 
    8989               $(i).get(0).alt = p.img_off_alt; 
    90                target.show(speed, positionFooter); 
     90               target.show(speed); 
    9191               if (p.fn) { 
    9292                    p.fn.apply(target); 
     
    122122          $(ctarget).css('cursor','pointer'); 
    123123          $(ctarget).click(function() { 
    124                toggle(i,p.speed, positionFooter); 
     124               toggle(i,p.speed); 
    125125               return false; 
    126126          }); 
     
    315315     } 
    316316}; 
    317  
    318 /* Sticky footer 
    319 -------------------------------------------------------- */ 
    320 function positionFooter() { 
    321      $('#footer').constantfooter(); 
    322 } 
    323317 
    324318/* On document ready 
     
    365359          return true; 
    366360     }); 
    367  
    368      // Sticky footer 
    369      positionFooter(); 
    370      $(window).resize(positionFooter); 
    371361}); 
    372362 
  • admin/js/jquery/jquery.pageTabs.js

    r297 r1140  
    7272          this.divs.each(function() { 
    7373               if ((this.id != '' && this.id == index) || i == index) { 
    74                     jQuery(this).show(0, positionFooter); 
     74                    jQuery(this).show(0); 
    7575                    This.items[i].className = This.params.listClassName+'-active'; 
    7676                    to_trigger = i; 
    7777               } else { 
    78                     jQuery(this).hide(0, positionFooter); 
     78                    jQuery(this).hide(0); 
    7979                    This.items[i].className = ''; 
    8080               } 
  • admin/media_item.php

    r1103 r1121  
    145145               $res[] = (string) $file->media_meta->{$v}; 
    146146          } elseif (preg_match('/^Date\((.+?)\)$/u',$v,$m)) { 
    147                if ($dto_first && $file->media_meta->DateTimeOriginal) { 
     147               if ($dto_first && ($file->media_meta->DateTimeOriginal != 0)) { 
    148148                    $res[] = dt::dt2str($m[1],(string) $file->media_meta->DateTimeOriginal); 
    149149               } else { 
  • admin/style/default.css

    r1147 r1155  
    1111# -- END LICENSE BLOCK ----------------------------------------- 
    1212*/ 
     13 
     14/* ------------------------------------------------------------------ html */ 
    1315body { 
    1416     font: 75%/1.5em Helvetica,Arial,sans-serif; 
     
    151153     height: 2em; 
    152154} 
     155#info-box1 p { 
     156     margin: 0; 
     157     display: inline; 
     158} 
    153159#info-box1 select { 
    154160     width: 15em; 
     
    193199} 
    194200#content { 
    195      margin: 1.5em 1.5em 4em 13em; 
     201     margin: 1.5em 1.5em .5em 13em; 
    196202     padding: 1em; 
    197203     background: #fff; 
    198      -webkit-border-radius: .5em; 
    199      -moz-border-radius: .5em; 
    200204     border-radius: .5em; 
    201205     border: 1px solid #ddd; 
     
    255259     background: #dfdfdf; 
    256260     text-decoration: none; 
    257      -webkit-border-top-left-radius: .3em; 
    258      -webkit-border-top-right-radius: .3em; 
    259      -moz-border-radius-topleft: .3em; 
    260      -moz-border-radius-topright: .3em; 
    261261     border-top-left-radius: .3em; 
    262262     border-top-right-radius: .3em; 
     
    282282     float: left; 
    283283     margin-top: 1.2em; 
    284      margin-bottom: 1em; 
     284     margin-bottom: .5em; 
    285285} 
    286286#main-menu h3 { 
     
    302302     padding: .2em 0 0 32px; 
    303303     background-repeat: no-repeat; 
    304      background-position: 12px .2em; 
     304     background-position: 12px .4em; 
    305305} 
    306306#main-menu a { 
     
    340340#footer { 
    341341     clear: both; 
    342      padding: .75em 2em; 
    343      margin: 6em 15px .5em 15px; 
    344      -webkit-border-radius: .3em; 
    345      -moz-border-radius: .3em; 
    346      border-radius: .3em; 
    347      background: #575859 url(dc_logo_small.png) no-repeat right bottom; 
    348      color: #fff; 
     342     padding: .75em .75em 0 0; 
     343     text-align: right; 
    349344} 
    350345#footer p { 
     
    355350} 
    356351#footer a { 
    357      color: #f5f5f5; 
    358352} 
    359353#footer p span.credit { 
     
    378372     border: 1px solid #999; 
    379373     padding: 1em 1em 0 1em; 
    380      -moz-border-radius: 4px; 
    381      -webkit-border-radius: 4px; 
    382374     border-radius: 4px; 
    383375} 
     
    513505     border: 1px solid #ccc; 
    514506     border-left: 1em solid #E5E3DA; 
    515      -moz-border-radius: .3em; 
    516      -webkit-border-radius: .3em; 
    517507     border-radius: .3em; 
    518508} 
     
    668658     border: 1px solid #ddd; 
    669659     padding: .2em; 
    670      -moz-border-radius: .5em; 
    671      -webkit-border-radius: .5em; 
    672660     border-radius: .5em; 
    673661} 
     
    764752     border: 1px solid #f3f3f3; 
    765753     cursor: pointer; 
    766      -moz-border-radius: 4px; 
    767      -webkit-border-radius: 4px; 
    768754     border-radius: 4px; 
    769755} 
     
    804790} 
    805791#help-button { 
    806      position: absolute; 
    807      top: 6.2em; 
     792     position: fixed; 
     793     top: 3.2em; 
    808794     right: 0px; 
    809795     cursor: pointer; 
     
    815801     text-transform: capitalize; 
    816802     padding: .33em .75em .33em 1em; 
    817      -moz-border-radius: 1em 0 0 1em; 
    818      -webkit-border-top-left-radius: 1em; 
    819      -webkit-border-bottom-left-radius: 1em; 
     803     border-radius: 1em 0 0 1em; 
    820804     color: #444; 
    821805} 
     
    879863div.message, p.message,  
    880864div.static-msg, p.static-msg { 
    881      padding: 0.5em 0.5em 0.5em 40px; 
     865     padding: 0.5em 0.5em 0.5em 48px; 
    882866     margin-bottom: 1em; 
    883      -moz-border-radius: 8px; 
    884      -webkit-border-radius: 8px; 
    885867     border-radius: 8px; 
    886868} 
     
    890872} 
    891873div.error, p.error { 
    892      background: #e5bfbf url(msg-error.png) no-repeat 5px 5px; 
    893      color: #600; 
     874     background: #ffdec8 url(msg-error.png) no-repeat .7em .7em; 
     875     color: #000; 
    894876} 
    895877div.message, p.message,  
    896878div.static-msg, p.static-msg { 
    897      background: #666 url(msg-std.png) no-repeat 5px 5px; 
     879     background: #666 url(msg-std.png) no-repeat .7em .7em; 
    898880     color: #fff; 
    899881} 
     
    1015997     right: 0; 
    1016998} 
     999.distrib img { 
     1000     display: block; 
     1001     float: right; 
     1002     margin-top: -1em; 
     1003} 
    10171004/* TABLES 
    10181005-------------------------------------------------------- */ 
     
    10411028th { 
    10421029     text-align: left; 
     1030     border-bottom-color: #666; 
    10431031} 
    10441032.noborder td, td.noborder, .noborder th, th.noborder { 
     
    10561044     white-space: nowrap; 
    10571045     vertical-align: top; 
     1046} 
     1047table.settings, table.prefs { 
     1048     width: 80%; 
     1049} 
     1050table.settings th:first-child, table.prefs th:first-child { 
     1051     width: 20%; 
     1052} 
     1053table.settings th + th, table.prefs th + th { 
     1054     width: 30%; 
     1055} 
     1056table.settings th + th + th, table.prefs th + th + th { 
     1057     width: 10%; 
     1058} 
     1059table.settings th:last-child, table.prefs th:last-child { 
     1060     width: 40%; 
    10581061} 
    10591062 
     
    11361139     border-color: #000 #ccc #ccc #000; 
    11371140} 
     1141input.invalid, textarea.invalid, select.invalid { 
     1142     border: 1px solid red; 
     1143     background: #fff;  
     1144     color: red; 
     1145     box-shadow: 0 0 0 1px rgba(218, 62, 90, 0.3) 
     1146} 
    11381147input, textarea, select, option { 
    11391148     font: 1em "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif; 
     
    11671176     color: #666; 
    11681177} 
     1178span.form-note { 
     1179     font-style:italic; 
     1180     font-weight: normal; 
     1181     color: #666; 
     1182} 
    11691183p.form-note.warn, p.form-note.info, p.warning { 
    11701184     font-style: normal; 
     
    11721186} 
    11731187p.form-note.warn, p.warning { 
    1174      background: #ffd url(warning.png) no-repeat .2em .2em; 
     1188     background: #ffd url(warning.png) no-repeat .3em .3em; 
    11751189     border: 1px solid #f0c020; 
    11761190} 
    11771191p.form-note.info { 
    1178      background: #eef url(info.png) no-repeat .2em .2em; 
     1192     background: #eef url(info.png) no-repeat .3em .2em; 
    11791193     border: 1px solid #99f; 
    11801194} 
     
    12091223p.field { 
    12101224     position: relative; 
    1211  
     1225      
    12121226} 
    12131227p.field label { 
     
    12751289     padding: .1em .5em 0 .5em; 
    12761290     text-shadow: 0 1px 1px rgba(0,0,0,.3); 
    1277      -webkit-border-radius: .2em; 
    1278      -moz-border-radius: .2em; 
    12791291     border-radius: .2em; 
    12801292     margin-bottom: .1em; 
     
    13581370} 
    13591371a.button.add { 
    1360      -webkit-border-radius: .5em; 
    1361      -moz-border-radius: .5em; 
    13621372     border-radius: .5em; 
    13631373     margin-bottom: .1em;      
    1364      background: #2C8FD1 url(add.png) no-repeat 6px center; 
     1374     background: #2C8FD1 url(../images/add.png) no-repeat 6px center; 
    13651375     color: #fff; 
    13661376     padding: .2em 16px .2em 30px; 
     
    13691379a.button.add:hover, a.button.add:focus { 
    13701380     background-color: #2373A8; 
     1381} 
     1382/* jQuery Autocomplete plugin */ 
     1383.ac_results { 
     1384     padding: 0px; 
     1385     border: 1px dotted #f90; 
     1386     background-color: white; 
     1387     overflow: hidden; 
     1388     z-index: 99999; 
     1389} 
     1390.ac_results ul { 
     1391     width: 100%; 
     1392     list-style-position: outside; 
     1393     list-style: none; 
     1394     padding: 0; 
     1395     margin: 0; 
     1396} 
     1397.ac_results li { 
     1398     margin: 0px; 
     1399     padding: 2px 5px; 
     1400     cursor: default; 
     1401     display: block; 
     1402     font: menu; 
     1403     font-size: 1em; 
     1404     line-height: 16px; 
     1405     overflow: hidden; 
     1406} 
     1407.ac_loading { 
     1408     background: transparent url('loader.gif') right center no-repeat; 
     1409} 
     1410.ac_over { 
     1411     background-color: #06c; 
     1412     color: white; 
    13711413} 
    13721414 
  • inc/admin/lib.dc.page.php

    r1089 r1155  
    173173          self::jsLoad('js/jquery/jquery.biscuit.js'). 
    174174          self::jsLoad('js/jquery/jquery.bgFade.js'). 
    175           self::jsLoad('js/jquery/jquery.constantfooter.js'). 
    176175          self::jsLoad('js/common.js'). 
    177176          self::jsLoad('js/prelude.js'). 
  • inc/core/class.dc.blog.php

    r1154 r1155  
    228228               'SELECT post_id, COUNT(post_id) AS nb_comment,comment_trackback '. 
    229229               'FROM '.$this->prefix.'comment '. 
    230                'WHERE post_id'.$this->con->in($a_ids). 
    231                'AND comment_status = 1 '; 
     230               'WHERE comment_status = 1 '. 
     231               (count($a_ids) > 0 ? 'AND post_id'.$this->con->in($a_ids) : ' '); 
    232232           
    233233          if ($del) { 
  • inc/core/class.dc.media.php

    r1103 r1123  
    841841          while ($rs->fetch()) { 
    842842               if (is_dir($this->root.'/'.$rs->media_dir)) 
    843                     $dir[] = $rs->media_dir; 
     843                    $dir[] = ($rs->media_dir == '.' ? '' : $rs->media_dir); 
    844844          } 
    845845           
     
    940940                         $img->resize($s[0],$s[0],$s[1]); 
    941941                         $img->output('jpeg',$thumb_file,$rate); 
     942                         $img->loadImage($file); 
    942943                    } 
    943944               } 
  • inc/load_plugin_file.php

    r270 r1116  
    4747} 
    4848 
     49// Only $_GET['pf'] is allowed in URL 
     50if (count($_GET) > 1) 
     51{ 
     52    header('Content-Type: text/plain'); 
     53    http::head(403,'Forbidden'); 
     54    exit; 
     55} 
     56 
    4957$allow_types = array('png','jpg','jpeg','gif','css','js','swf'); 
    5058 
  • inc/prepend.php

    r1154 r1155  
    149149# Constants 
    150150define('DC_ROOT',path::real(dirname(__FILE__).'/..')); 
    151 define('DC_VERSION','2.5-dev'); 
     151define('DC_VERSION','2.99-dev'); 
    152152define('DC_DIGESTS',dirname(__FILE__).'/digests'); 
    153153define('DC_L10N_ROOT',dirname(__FILE__).'/../locales'); 
  • inc/public/class.dc.template.php

    r980 r1122  
    4242          # Loops test tags 
    4343          $this->addBlock('LoopPosition',array($this,'LoopPosition')); 
     44          $this->addValue('LoopIndex',array($this,'LoopIndex')); 
    4445           
    4546          # Archives 
     
    528529          "<?php endif; ?>"; 
    529530     } 
     531 
     532     public function LoopIndex($attr) 
     533     { 
     534          $f = $this->getFilters($attr); 
     535          return '<?php '.sprintf($f,'(!$_ctx->cur_loop ? 0 : $_ctx->cur_loop->index() + 1)').' ?>'; 
     536     } 
    530537      
    531538      
  • inc/public/lib.tpl.context.php

    r975 r1135  
    451451           
    452452          # No src, look in category description if available 
    453           if (!$src && $with_category && $_ctx->categories) 
    454           { 
    455                if (preg_match_all($pattern,$_ctx->categories->cat_desc,$m) > 0) 
     453        if (!$src && $with_category && $_ctx->posts->cat_desc) 
     454        { 
     455               if (preg_match_all($pattern,$_ctx->posts->cat_desc,$m) > 0) 
    456456               { 
    457457                    foreach ($m[1] as $i => $img) { 
  • locales/bn/plugins.po

    r759 r1126  
    222222msgstr "" 
    223223 
    224 msgid "You can modify this duration in " 
     224msgid "You can modify this duration in the %s" 
    225225msgstr "" 
    226226 
  • locales/ca/plugins.po

    r759 r1126  
    221221msgstr "" 
    222222 
    223 msgid "You can modify this duration in " 
     223msgid "You can modify this duration in the %s" 
    224224msgstr "" 
    225225 
  • locales/cs/plugins.po

    r759 r1126  
    224224msgstr "Všechny spam komentáře starší než %s dnů(y) budou automaticky smazány." 
    225225 
    226 msgid "You can modify this duration in " 
     226msgid "You can modify this duration in the %s" 
    227227msgstr "" 
    228228 
  • locales/da/plugins.po

    r759 r1126  
    221221msgstr "" 
    222222 
    223 msgid "You can modify this duration in " 
     223msgid "You can modify this duration in the %s" 
    224224msgstr "" 
    225225 
  • locales/de/plugins.po

    r759 r1126  
    224224msgstr "Alle Spam-Kommentare, die älter als %s Tag(e) sind, werden automatisch gelöscht." 
    225225 
    226 msgid "You can modify this duration in " 
     226msgid "You can modify this duration in the %s" 
    227227msgstr "" 
    228228 
  • locales/en/plugins.po

    r893 r1126  
    238238msgstr "" 
    239239 
    240 msgid "You can modify this duration in " 
     240msgid "You can modify this duration in the %s" 
    241241msgstr "" 
    242242 
  • locales/eo/plugins.po

    r759 r1126  
    221221msgstr "" 
    222222 
    223 msgid "You can modify this duration in " 
     223msgid "You can modify this duration in the %s" 
    224224msgstr "" 
    225225 
  • locales/es-ar/plugins.po

    r759 r1126  
    223223msgstr "Todos los comentarios no deseados mas antiguos que %s día(s) serán automáticamente eliminados." 
    224224 
    225 msgid "You can modify this duration in " 
     225msgid "You can modify this duration in the %s" 
    226226msgstr "" 
    227227 
  • locales/es/plugins.po

    r759 r1126  
    228228msgstr "Todos los comentarios basura de más de %s día(s) serán borrados automáticamente." 
    229229 
    230 msgid "You can modify this duration in " 
     230msgid "You can modify this duration in the %s" 
    231231msgstr "" 
    232232 
  • locales/eu/plugins.po

    r759 r1126  
    221221msgstr "" 
    222222 
    223 msgid "You can modify this duration in " 
     223msgid "You can modify this duration in the %s" 
    224224msgstr "" 
    225225 
  • locales/fr/plugins.po

    r1063 r1126  
    262262"supprimés automatiquement." 
    263263 
    264 msgid "You can modify this duration in " 
    265 msgstr "Vous pouvez modifier cet intervalle dans" 
    266  
    267264msgid "Blog preferences" 
    268265msgstr "Préférences du blog" 
  • locales/hu/plugins.po

    r759 r1126  
    223223msgstr "Az összes %s napnál öregebb spam automatikusan törlődni fog." 
    224224 
    225 msgid "You can modify this duration in " 
     225msgid "You can modify this duration in the %s" 
    226226msgstr "" 
    227227 
  • locales/it/plugins.po

    r759 r1126  
    221221msgstr "" 
    222222 
    223 msgid "You can modify this duration in " 
     223msgid "You can modify this duration in the %s" 
    224224msgstr "" 
    225225 
  • locales/ja/plugins.po

    r759 r1126  
    225225msgstr "%s 日を経過したすべてのスパムコメントは自動的に削除されます。" 
    226226 
    227 msgid "You can modify this duration in " 
     227msgid "You can modify this duration in the %s" 
    228228msgstr "" 
    229229 
  • locales/ko/plugins.po

    r759 r1126  
    224224msgstr "%s 일이 지난 스팸은 모두 자동으로 삭제됩니다." 
    225225 
    226 msgid "You can modify this duration in " 
     226msgid "You can modify this duration in the %s" 
    227227msgstr "" 
    228228 
  • locales/lt/plugins.po

    r813 r1126  
    215215msgstr "Senesni nei %s dienų spamo komentarai bus automatiškai ištrinami." 
    216216 
     217msgid "You can modify this duration in the %s" 
     218msgstr "" 
     219 
    217220msgid "Available spam filters" 
    218221msgstr "Galimi spam filtrai" 
  • locales/nl/plugins.po

    r759 r1126  
    220220msgstr "" 
    221221 
    222 msgid "You can modify this duration in " 
     222msgid "You can modify this duration in the %s" 
    223223msgstr "" 
    224224 
  • locales/oc/plugins.po

    r759 r1126  
    221221msgstr "" 
    222222 
    223 msgid "You can modify this duration in " 
     223msgid "You can modify this duration in the %s" 
    224224msgstr "" 
    225225 
  • locales/pl/plugins.po

    r759 r1126  
    224224msgstr "Wszystkie niechciane komentarze starsze niż %s dni będą automatycznie usuwane." 
    225225 
    226 msgid "You can modify this duration in " 
     226msgid "You can modify this duration in the %s" 
    227227msgstr "" 
    228228 
  • locales/pt-br/plugins.po

    r759 r1126  
    221221msgstr "" 
    222222 
    223 msgid "You can modify this duration in " 
     223msgid "You can modify this duration in the %s" 
    224224msgstr "" 
    225225 
  • locales/pt/plugins.po

    r759 r1126  
    228228msgstr "Todos os comentários spam com mais de %s dia(s) serão suprimidos automaticamente." 
    229229 
    230 msgid "You can modify this duration in " 
     230msgid "You can modify this duration in the %s" 
    231231msgstr "" 
    232232 
  • locales/ro/plugins.po

    r842 r1126  
    225225msgstr "Toate comentariile spam mai vechi de %s zile vor fi șterse automat." 
    226226 
    227 msgid "You can modify this duration in " 
     227msgid "You can modify this duration in the %s" 
    228228msgstr "" 
    229229 
  • locales/ru/plugins.po

    r759 r1126  
    222222msgstr "Все спам комментарии старше чем %s дней будут удалены автоматически." 
    223223 
    224 msgid "You can modify this duration in " 
     224msgid "You can modify this duration in the %s" 
    225225msgstr "" 
    226226 
  • locales/sr/plugins.po

    r759 r1126  
    221221msgstr "" 
    222222 
    223 msgid "You can modify this duration in " 
     223msgid "You can modify this duration in the %s" 
    224224msgstr "" 
    225225 
  • locales/sv/plugins.po

    r751 r1126  
    221221msgstr "" 
    222222 
    223 msgid "You can modify this duration in " 
     223msgid "You can modify this duration in the %s" 
    224224msgstr "" 
    225225 
  • locales/te/plugins.po

    r759 r1126  
    220220msgstr "" 
    221221 
    222 msgid "You can modify this duration in " 
     222msgid "You can modify this duration in the %s" 
    223223msgstr "" 
    224224 
  • locales/tr/plugins.po

    r759 r1126  
    223223msgstr "" 
    224224 
    225 msgid "You can modify this duration in " 
     225msgid "You can modify this duration in the %s" 
    226226msgstr "" 
    227227 
  • locales/zh-cn/plugins.po

    r759 r1126  
    225225msgstr "所有早于 %s 天的垃圾评论都会被自动删除。" 
    226226 
    227 msgid "You can modify this duration in " 
     227msgid "You can modify this duration in the %s" 
    228228msgstr "" 
    229229 
  • plugins/antispam/_define.php

    r967 r1134  
    1616     /* Description*/         "Generic antispam plugin for Dotclear", 
    1717     /* Author */             "Alain Vagner", 
    18      /* Version */            '1.4', 
     18     /* Version */            '1.4.1', 
    1919     array( 
    2020          'permissions' =>    'usage,contentadmin', 
  • plugins/antispam/antispam.js

    r1052 r1130  
    1 var dragsort = ToolMan.dragsort(); 
    21$(function() { 
    3      $("#filters-list").each(function() { 
    4           dragsort.makeTableSortable(this,dotclear.sortable.setHandle, dotclear.sortable.saveOrder); 
     2     $("#filters-list").sortable({'cursor':'move'}); 
     3     $("#filters-list tr").hover(function () { 
     4          $(this).css({'cursor':'move'}); 
     5     }, function () { 
     6          $(this).css({'cursor':'auto'}); 
    57     }); 
    6      $('form input[type=submit][name=delete_all]').click(function(){ 
    7           return window.confirm(dotclear.msg.confirm_spam_delete); 
     8     $('#filters-form').submit(function() { 
     9          var order=[]; 
     10          $("#filters-list tr td input.position").each(function() { 
     11               order.push(this.name.replace(/^f_order\[([^\]]+)\]$/,'$1')); 
     12          }); 
     13          $("input[name=filters_order]")[0].value = order.join(','); 
     14          return true; 
    815     }); 
     16     $("#filters-list tr td input.position").hide(); 
     17     $("#filters-list tr td.handle").addClass('handler'); 
    918}); 
    10  
    11 dotclear.sortable = { 
    12      setHandle: function(item) { 
    13           var handle = $(item).find('td.handle').get(0); 
    14           while (handle.firstChild) { 
    15                handle.removeChild(handle.firstChild); 
    16           } 
    17            
    18           item.toolManDragGroup.setHandle(handle); 
    19           $(handle).addClass('handler'); 
    20      }, 
    21       
    22      saveOrder: function(item) { 
    23           var group = item.toolManDragGroup; 
    24           var order = $('#filters_order').get(0); 
    25           group.register('dragend', function() { 
    26                order.value = ''; 
    27                items = item.parentNode.getElementsByTagName('tr'); 
    28                 
    29                for (var i=0; i<items.length; i++) { 
    30                     order.value += items[i].id.substr(2)+','; 
    31                } 
    32           }); 
    33      } 
    34 }; 
  • plugins/antispam/index.php

    r1052 r1130  
    108108  </script> 
    109109  <?php 
    110   echo 
    111   dcPage::jsToolMan(). 
    112   dcPage::jsPageTabs($default_tab). 
    113   dcPage::jsLoad('index.php?pf=antispam/antispam.js'); 
     110  echo dcPage::jsPageTabs($default_tab); 
     111  $core->auth->user_prefs->addWorkspace('accessibility'); 
     112  if (!$core->auth->user_prefs->accessibility->nodragdrop) { 
     113     echo 
     114          dcPage::jsLoad('js/jquery/jquery-ui.custom.js'). 
     115          dcPage::jsLoad('index.php?pf=antispam/antispam.js'); 
     116  } 
    114117  ?> 
    115118  <link rel="stylesheet" type="text/css" href="index.php?pf=antispam/style.css" /> 
     
    159162     if ($moderationTTL != null && $moderationTTL >=0) { 
    160163          echo '<p>'.sprintf(__('All spam comments older than %s day(s) will be automatically deleted.'), $moderationTTL).' '. 
    161           __('You can modify this duration in '). 
    162           '<a href="blog_pref.php"> '.__('Blog preferences').'</a></p>'; 
     164          sprintf(__('You can modify this duration in the %s'),'<a href="blog_pref.php"> '.__('Blog preferences').'</a>'). 
     165               '</p>'; 
    163166     } 
    164167     echo '</form>'; 
     
    167170     # Filters 
    168171     echo 
    169      '<form action="'.$p_url.'" method="post" class="fieldset">'; 
     172     '<form action="'.$p_url.'" method="post" class="fieldset" id="filters-form">'; 
    170173 
    171174     if (!empty($_GET['upd'])) { 
     
    198201          echo 
    199202          '<tr class="line'.($f->active ? '' : ' offline').'" id="f_'.$fid.'">'. 
    200           '<td class="handle">'.form::field(array('f_order['.$fid.']'),2,5,(string) $i, '', '', false, 'title="'.__('position').'"').'</td>'. 
     203          '<td class="handle">'.form::field(array('f_order['.$fid.']'),2,5,(string) $i, 'position', '', false, 'title="'.__('position').'"').'</td>'. 
    201204          '<td class="nowrap">'.form::checkbox(array('filters_active[]'),$fid,$f->active, '', '', false, 'title="'.__('Active').'"').'</td>'. 
    202205          '<td class="nowrap">'.form::checkbox(array('filters_auto_del[]'),$fid,$f->auto_delete, '', '', false, 'title="'.__('Auto Del.').'"').'</td>'. 
  • plugins/blogroll/_define.php

    r965 r1134  
    1616     /* Description*/         "Manage your blogroll", 
    1717     /* Author */             "Olivier Meunier", 
    18      /* Version */            '1.3', 
     18     /* Version */            '1.3.1', 
    1919     array( 
    2020          'permissions' =>    'blogroll' 
  • plugins/blogroll/index.php

    r987 r1131  
    164164<head> 
    165165  <title><?php echo __('Blogroll'); ?></title> 
    166   <?php echo dcPage::jsToolMan(); ?> 
    167166  <?php echo dcPage::jsConfirmClose('links-form','add-link-form','add-category-form'); ?> 
    168167  <?php  
    169      $core->auth->user_prefs->addWorkspace('accessibility');  
    170      $user_dm_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop; 
     168     $core->auth->user_prefs->addWorkspace('accessibility'); 
     169     if (!$core->auth->user_prefs->accessibility->nodragdrop) { 
     170     echo 
     171          dcPage::jsLoad('js/jquery/jquery-ui.custom.js'). 
     172          dcPage::jsLoad('index.php?pf=blogroll/blogroll.js'); 
     173     } 
    171174  ?> 
    172   <?php if (!$user_dm_nodragdrop) : ?> 
    173   <script type="text/javascript"> 
    174   //<![CDATA[ 
    175    
    176   var dragsort = ToolMan.dragsort(); 
    177   $(function() { 
    178      dragsort.makeTableSortable($("#links-list").get(0), 
    179      dotclear.sortable.setHandle,dotclear.sortable.saveOrder); 
    180       
    181      $('.checkboxes-helpers').each(function() { 
    182           dotclear.checkboxesHelpers(this); 
    183      }); 
    184   }); 
    185    
    186   dotclear.sortable = { 
    187        setHandle: function(item) { 
    188           var handle = $(item).find('td.handle').get(0); 
    189           while (handle.firstChild) { 
    190                handle.removeChild(handle.firstChild); 
    191           } 
    192            
    193           item.toolManDragGroup.setHandle(handle); 
    194           handle.className = handle.className+' handler'; 
    195        }, 
    196         
    197        saveOrder: function(item) { 
    198           var group = item.toolManDragGroup; 
    199           var order = document.getElementById('links_order'); 
    200           group.register('dragend', function() { 
    201                order.value = ''; 
    202                items = item.parentNode.getElementsByTagName('tr'); 
    203                 
    204                for (var i=0; i<items.length; i++) { 
    205                     order.value += items[i].id.substr(2)+','; 
    206                } 
    207           }); 
    208        } 
    209   }; 
    210   //]]> 
    211   </script> 
    212   <?php endif; ?> 
    213175  <?php echo dcPage::jsPageTabs($default_tab); ?> 
    214176</head> 
     
    258220     echo 
    259221     '<tr class="line" id="l_'.$rs->link_id.'">'. 
    260      '<td class="handle minimal">'.form::field(array('order['.$rs->link_id.']'),2,5,$position,'','',false,'title="'.__('position').'"').'</td>'. 
     222     '<td class="handle minimal">'.form::field(array('order['.$rs->link_id.']'),2,5,$position,'position','',false,'title="'.__('position').'"').'</td>'. 
    261223     '<td class="minimal">'.form::checkbox(array('remove[]'),$rs->link_id,'','','',false,'title="'.__('select this link').'"').'</td>'; 
    262224      
  • plugins/pages/page.php

    r1068 r1139  
    431431          http::browserUID(DC_MASTER_KEY.$core->auth->userID().$core->auth->getInfo('user_pwd')). 
    432432          '/'.$post->post_url); 
    433           echo '<a id="post-preview" href="'.$preview_url.'" class="button">'.__('Preview').'</a>'; 
     433          echo '<a id="post-preview" href="'.$preview_url.'" class="button" accesskey="p">'.__('Preview').' (p)'.'</a>'; 
    434434     } 
    435435      
  • plugins/simpleMenu/_define.php

    r967 r1134  
    1616     /* Description*/         "Simple menu for Dotclear", 
    1717     /* Author */             "Franck Paul", 
    18      /* Version */            '1.1', 
     18     /* Version */            '1.1.1', 
    1919     array( 
    2020          'permissions' =>    'admin' 
  • plugins/simpleMenu/index.php

    r1011 r1132  
    354354<head> 
    355355     <title><?php echo $page_title; ?></title> 
    356      <?php 
    357           echo 
    358                dcPage::jsToolMan(). 
    359                # --BEHAVIOR-- adminPageHeaders 
    360                $core->callBehavior('adminPageHeaders'); 
     356     <?php  
     357          $core->auth->user_prefs->addWorkspace('accessibility'); 
     358          if (!$core->auth->user_prefs->accessibility->nodragdrop) { 
     359               echo 
     360                    dcPage::jsLoad('js/jquery/jquery-ui.custom.js'). 
     361                    dcPage::jsLoad('index.php?pf=simpleMenu/simplemenu.js'); 
     362          } 
    361363     ?> 
    362      <?php  
    363           $core->auth->user_prefs->addWorkspace('accessibility');  
    364           $user_dm_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop; 
    365      ?> 
    366      <?php if (!$user_dm_nodragdrop) : ?> 
    367      <script type="text/javascript"> 
    368      //<![CDATA[ 
    369  
    370      var dragsort = ToolMan.dragsort(); 
    371      $(function() { 
    372           dragsort.makeTableSortable($("#menuitemslist").get(0), 
    373           dotclear.sortable.setHandle,dotclear.sortable.saveOrder); 
    374  
    375           $('.checkboxes-helpers').each(function() { 
    376                dotclear.checkboxesHelpers(this); 
    377           }); 
    378      }); 
    379  
    380      dotclear.sortable = { 
    381           setHandle: function(item) { 
    382                var handle = $(item).find('td.handle').get(0); 
    383                while (handle.firstChild) { 
    384                     handle.removeChild(handle.firstChild); 
    385                } 
    386  
    387                item.toolManDragGroup.setHandle(handle); 
    388                handle.className = handle.className+' handler'; 
    389           }, 
    390  
    391           saveOrder: function(item) { 
    392                var group = item.toolManDragGroup; 
    393                var order = document.getElementById('im_order'); 
    394                group.register('dragend', function() { 
    395                     order.value = ''; 
    396                     items = item.parentNode.getElementsByTagName('tr'); 
    397  
    398                     for (var i=0; i<items.length; i++) { 
    399                          order.value += items[i].id.substr(2)+','; 
    400                     } 
    401                }); 
    402           } 
    403      }; 
    404      //]]> 
    405      </script> 
    406      <?php endif; ?> 
    407364</head> 
    408365 
  • plugins/tags/_public.php

    r1063 r1108  
    5656               return 
    5757               "<?php\n". 
    58                "@\$params['from'] .= ', '.\$core->prefix.'meta META ';\n". 
    59                "@\$params['sql'] .= 'AND META.post_id = P.post_id ';\n". 
     58               "if (!isset(\$params)) { \$params = array(); }\n". 
     59               "if (!isset(\$params['from'])) { \$params['from'] = ''; }\n". 
     60               "if (!isset(\$params['sql'])) { \$params['sql'] = ''; }\n". 
     61               "\$params['from'] .= ', '.\$core->prefix.'meta META ';\n". 
     62               "\$params['sql'] .= 'AND META.post_id = P.post_id ';\n". 
    6063               "\$params['sql'] .= \"AND META.meta_type = 'tag' \";\n". 
    6164               "\$params['sql'] .= \"AND META.meta_id = '".$core->con->escape($attr['tag'])."' \";\n". 
     
    6669               return 
    6770               '<?php if ($_ctx->exists("meta") && ($_ctx->meta->meta_type == "tag")) { '. 
    68                     "@\$params['from'] .= ', '.\$core->prefix.'meta META ';\n". 
    69                     "@\$params['sql'] .= 'AND META.post_id = P.post_id ';\n". 
     71                    "if (!isset(\$params)) { \$params = array(); }\n". 
     72                    "if (!isset(\$params['from'])) { \$params['from'] = ''; }\n". 
     73                    "if (!isset(\$params['sql'])) { \$params['sql'] = ''; }\n". 
     74                    "\$params['from'] .= ', '.\$core->prefix.'meta META ';\n". 
     75                    "\$params['sql'] .= 'AND META.post_id = P.post_id ';\n". 
    7076                    "\$params['sql'] .= \"AND META.meta_type = 'tag' \";\n". 
    7177                    "\$params['sql'] .= \"AND META.meta_id = '\".\$core->con->escape(\$_ctx->meta->meta_id).\"' \";\n". 
  • plugins/tags/js/post.js

    r0 r1112  
    1212               } 
    1313               var mEdit = new metaEditor(tags_edit,meta_field,'tag'); 
     14               mEdit.meta_url = 'plugin.php?p=tags&m=tag_posts&amp;tag='; 
    1415               mEdit.displayMeta('tag',post_id); 
    1516                
  • plugins/tags/js/posts_actions.js

    r0 r1112  
    77     var target = $('#tags_list');  
    88     var mEdit = new metaEditor(target,tag_field,'tag'); 
     9     mEdit.meta_url = 'plugin.php?p=tags&m=tag_posts&amp;tag='; 
    910      
    1011     mEdit.meta_dialog = $('<input type="text" />'); 
  • plugins/themeEditor/class.themeEditor.php

    r1037 r1129  
    243243          foreach ($langs as $k => $v) { 
    244244               if ($this->parent_theme) { 
    245                     $this->po = array_merge($this->po,$this->getFilesInDir($this->parent_theme.'/locales/'.$v,'po',$v.'/','main.po')); 
    246                } 
    247                $this->po = array_merge($this->po,$this->getFilesInDir($this->user_theme.'/locales/'.$v,'po',$v.'/','main.po')); 
     245                    $this->po = array_merge($this->po,$this->getFilesInDir($this->parent_theme.'/locales/'.$v,'po',$v.'/')); 
     246               } 
     247               $this->po = array_merge($this->po,$this->getFilesInDir($this->user_theme.'/locales/'.$v,'po',$v.'/')); 
    248248          } 
    249249     } 
  • plugins/userPref/index.php

    r907 r1109  
    7272     if ($s['type'] == 'boolean') { 
    7373          $field = form::combo(array($field_name.'['.$ws.']['.$id.']',$field_name.'_'.$id), 
    74           array(__('yes') => 1, __('no') => 0),$s['value']); 
     74          array(__('yes') => 1, __('no') => 0),$s['value'] ? 1 : 0); 
    7575     } else { 
    7676          $field = form::field(array($field_name.'['.$ws.']['.$id.']',$field_name.'_'.$id),40,null, 
  • themes/ductile/_define.php

    r967 r1134  
    1515     /* Description*/         "Mediaqueries compliant elegant theme", 
    1616     /* Author */             "Dotclear Team", 
    17      /* Version */            '1.3', 
     17     /* Version */            '1.3.1', 
    1818     /* Properties */         array( 
    1919                                        'standalone_config' => true 
  • themes/ductile/_prepend.php

    r683 r1133  
    2020     { 
    2121          global $core; 
    22            
     22          if ($core->blog->settings->system->theme != 'ductile') { return; } 
     23 
    2324          echo "\n".'<!-- Header directives for Ductile configuration -->'."\n"; 
    24           echo dcPage::jsToolMan(); 
    25  
    26           // Need some more Js 
    27           $core->auth->user_prefs->addWorkspace('accessibility');  
    28           $user_dm_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop; 
    29           if (!$user_dm_nodragdrop) { 
    30                echo <<<EOT 
     25          $core->auth->user_prefs->addWorkspace('accessibility'); 
     26          if (!$core->auth->user_prefs->accessibility->nodragdrop) { 
     27               echo 
     28                    dcPage::jsLoad('js/jquery/jquery-ui.custom.js'); 
     29                    echo <<<EOT 
    3130<script type="text/javascript"> 
    3231//<![CDATA[ 
    33  
    34 var dragsort = ToolMan.dragsort(); 
    3532$(function() { 
    36      dragsort.makeTableSortable($("#stickerslist").get(0), 
    37      dotclear.sortable.setHandle,dotclear.sortable.saveOrder); 
     33     $("#stickerslist").sortable({'cursor':'move'}); 
     34     $("#stickerslist tr").hover(function () { 
     35          $(this).css({'cursor':'move'}); 
     36     }, function () { 
     37          $(this).css({'cursor':'auto'}); 
     38     }); 
     39     $('#theme_config').submit(function() { 
     40          var order=[]; 
     41          $("#stickerslist tr td input.position").each(function() { 
     42               order.push(this.name.replace(/^order\[([^\]]+)\]$/,'$1')); 
     43          }); 
     44          $("input[name=ds_order]")[0].value = order.join(','); 
     45          return true; 
     46     }); 
     47     $("#stickerslist tr td input.position").hide(); 
     48     $("#stickerslist tr td.handle").addClass('handler'); 
    3849}); 
    39  
    40 dotclear.sortable = { 
    41      setHandle: function(item) { 
    42           var handle = $(item).find('td.handle').get(0); 
    43           while (handle.firstChild) { 
    44                handle.removeChild(handle.firstChild); 
    45           } 
    46  
    47           item.toolManDragGroup.setHandle(handle); 
    48           handle.className = handle.className+' handler'; 
    49      }, 
    50  
    51      saveOrder: function(item) { 
    52           var group = item.toolManDragGroup; 
    53           var order = document.getElementById('ds_order'); 
    54           group.register('dragend', function() { 
    55                order.value = ''; 
    56                items = item.parentNode.getElementsByTagName('tr'); 
    57  
    58                for (var i=0; i<items.length; i++) { 
    59                     order.value += items[i].id.substr(2)+','; 
    60                } 
    61           }); 
    62      } 
    63 }; 
    6450//]]> 
    6551</script> 
    6652EOT; 
    6753          } 
     54 
    6855     } 
    6956} 
Note: See TracChangeset for help on using the changeset viewer.

Sites map