Dotclear


Ignore:
Files:
23 added
4 deleted
34 edited

Legend:

Unmodified
Added
Removed
  • .hgsubstate

    r1742 r1860  
    1 33139a996922b7a21b658961f8052c869bea60a1 inc/libs/clearbricks 
     1d56b02c87260d4e54872c54fba979e03c0b5422b inc/libs/clearbricks 
  • admin/blog_pref.php

    r1746 r1848  
    394394     '</p>'. 
    395395 
    396      '<p><label for="note_title_tag">'.__('Note title HTML tag:').'</label>'. 
     396     '<p><label for="note_title_tag">'.__('HTML tag for the title of the notes on the blog:').'</label>'. 
    397397     form::combo('note_title_tag',$note_title_tag_combo,$blog_settings->system->note_title_tag). 
    398398     '</p>'. 
     
    403403 
    404404     echo 
    405           '<p class="form-note">'.__('XML/RPC interface allows you to edit your blog with an external client.').'</p>';  
     405          '<p class="form-note info">'.__('XML/RPC interface allows you to edit your blog with an external client.').'</p>';  
    406406 
    407407     if ($blog_settings->system->enable_xmlrpc) { 
     
    509509     '<div class="col">'. 
    510510     '<h5>'.__('Generated image sizes (in pixels)').'</h5>'. 
    511      '<p class="field"><label for="media_img_t_size">'.__('Thumbnails:').' '. 
    512      form::field('media_img_t_size',3,3,$blog_settings->system->media_img_t_size).'</label></p>'. 
    513       
    514      '<p class="field"><label for="media_img_s_size">'.__('Small:').' '. 
    515      form::field('media_img_s_size',3,3,$blog_settings->system->media_img_s_size).'</label></p>'. 
    516       
    517      '<p class="field"><label for="media_img_m_size">'.__('Medium:').' '. 
    518      form::field('media_img_m_size',3,3,$blog_settings->system->media_img_m_size).'</label></p>'. 
    519      '</div>'. 
    520       
    521      '<div class="col">'. 
    522      '<h5><label for="media_img_title_pattern">'.__('Inserted image title').'</label></h5>'. 
    523      '<p>'.__('This defines image tag title when you insert it in a post from the media manager. It is retrieved from the picture\'s metadata.').'</p>'. 
    524      '<p>'.form::combo('media_img_title_pattern',$img_title_combo,html::escapeHTML($blog_settings->system->media_img_title_pattern)).'</p>'. 
    525      '<p><label for="media_img_use_dto_first" class="classic">'. 
     511     '<p class="field"><label for="media_img_t_size">Thumbnail</label> '. 
     512     form::field('media_img_t_size',3,3,$blog_settings->system->media_img_t_size).'</p>'. 
     513      
     514     '<p class="field"><label for="media_img_s_size">Small</label> '. 
     515     form::field('media_img_s_size',3,3,$blog_settings->system->media_img_s_size).'</p>'. 
     516      
     517     '<p class="field"><label for="media_img_m_size">Medium</label> '. 
     518     form::field('media_img_m_size',3,3,$blog_settings->system->media_img_m_size).'</p>'. 
     519     '</div>'. 
     520      
     521     '<div class="col">'. 
     522     '<h5>'.__('Default image insertion attributes').'</h5>'. 
     523     '<p class="vertical-separator"><label for="media_img_title_pattern">'.__('Inserted image title').'</label>'. 
     524     form::combo('media_img_title_pattern',$img_title_combo,html::escapeHTML($blog_settings->system->media_img_title_pattern)).' '. 
     525     '<label for="media_img_use_dto_first" class="classic">'. 
    526526     form::checkbox('media_img_use_dto_first','1',$blog_settings->system->media_img_use_dto_first). 
    527527     __('Use original media date if possible').'</label></p>'. 
    528  
    529      '<h5>'.__('Default image insertion attributes').'</h5>'. 
    530      '<p><label for="media_img_default_size">'.__('Image size:').'</label>'. 
     528     '<p class="form-note info">'.__('It is retrieved from the picture\'s metadata.').'</p>'. 
     529 
     530     '<p class="field vertical-separator"><label for="media_img_default_size">'.__('Size of inserted image:').'</label>'. 
    531531     form::combo('media_img_default_size',$img_default_size_combo, 
    532532          (html::escapeHTML($blog_settings->system->media_img_default_size) != '' ? html::escapeHTML($blog_settings->system->media_img_default_size) : 'm')). 
    533533     '</p>'. 
    534      '<p><label for="media_img_default_alignment">'.__('Image alignment:').'</label>'. 
     534     '<p class="field"><label for="media_img_default_alignment">'.__('Image alignment:').'</label>'. 
    535535     form::combo('media_img_default_alignment',$img_default_alignment_combo,html::escapeHTML($blog_settings->system->media_img_default_alignment)). 
    536536     '</p>'. 
    537      '<p><label for="media_img_default_link" class="classic">'. 
     537     '<p><label for="media_img_default_link">'. 
    538538     form::checkbox('media_img_default_link','1',$blog_settings->system->media_img_default_link). 
    539      __('As a link to original image').'</label></p>'. 
     539     __('Insert a link to the original image').'</label></p>'. 
    540540     '</div>'. 
    541541     '</div>'. 
  • admin/help.php

    r1799 r1839  
    9090dcPage::open(__('Global help'), 
    9191     # --BEHAVIOR-- adminPostHeaders 
    92      $core->callBehavior('adminPostHeaders'), 
     92     $core->callBehavior('adminPostHeaders'). 
     93     dcPage::jsPageTabs('first-step'), 
    9394     $breadcrumb 
    9495); 
  • admin/index.php

    r1788 r1811  
    221221          '<div class="dc-update"><h3>'.sprintf(__('Dotclear %s is available!'),$new_v).'</h3> '. 
    222222          '<p><a class="button submit" href="update.php">'.sprintf(__('Upgrade now'),$new_v).'</a> '. 
    223           '<a href="update.php?hide_msg=1">'.__('Remind me later').'</a>'. 
     223          '<a class="button" href="update.php?hide_msg=1">'.__('Remind me later').'</a>'. 
    224224          ($version_info ? ' </p>'. 
    225           '<p><a href="'.$version_info.'" class="updt-info">'.__('Information about this version').'</a>' : '').'</p>'. 
     225          '<p class="updt-info"><a href="'.$version_info.'">'.__('Information about this version').'</a>' : '').'</p>'. 
    226226          '</div>'; 
    227227     } 
  • admin/js/_media.js

    r1782 r1852  
    2525               } 
    2626                
    27                $('.button.add').click(function(e) { 
     27               $('.button.choose_files').click(function(e) { 
    2828                    // Use the native click() of the file input. 
    2929                    $('#upfile').click(); 
  • admin/js/_post.js

    r1760 r1832  
    9090                    $(this).val(last_post_format); 
    9191               } 
     92                
     93               $('.format_control > *').addClass('hide'); 
     94               $('.format_control:not(.control_no_'+$(this).val()+') > *').removeClass('hide'); 
    9295          }); 
    9396 
     
    117120               return window.confirm(dotclear.msg.confirm_delete_post); 
    118121          }); 
     122 
     123          // Markup validator 
     124          var v = $('<div class="format_control"><p><a id="a-validator"></a></p><div/>').get(0); 
     125          $('.format_control').before(v); 
     126          var a = $('#a-validator').get(0); 
     127          a.href = '#'; 
     128          a.className = 'button '; 
     129          $(a).click(function() { 
     130                
     131               excerpt_content = $('#post_excerpt').css('display') != 'none' ? $('#post_excerpt').val() : $('#excerpt-area iframe').contents().find('body').html(); 
     132               post_content    = $('#post_content').css('display') != 'none' ? $('#post_content').val() : $('#content-area iframe').contents().find('body').html(); 
     133                
     134               var params = { 
     135                    xd_check: dotclear.nonce, 
     136                    f: 'validatePostMarkup', 
     137                    excerpt: excerpt_content, 
     138                    content: post_content, 
     139                    format: $('#post_format').get(0).value, 
     140                    lang: $('#post_lang').get(0).value 
     141               }; 
     142 
     143               $.post('services.php',params,function(data) { 
     144                    if ($(data).find('rsp').attr('status') != 'ok') { 
     145                         alert($(data).find('rsp message').text()); 
     146                         return false; 
     147                    } 
     148                          
     149                    $('.message, .success, .error, .warning-msg').remove(); 
     150 
     151                    if ($(data).find('valid').text() == 1) { 
     152                         var p = document.createElement('p'); 
     153                         p.id = 'markup-validator'; 
     154                          
     155                         $(p).addClass('success'); 
     156                         $(p).text(dotclear.msg.xhtml_valid); 
     157                         $('#entry-content h3').after(p); 
     158                         $(p).backgroundFade({sColor:'#9BCA1C',eColor:'#bee74b',steps:20}); 
     159                    } else { 
     160                         var div = document.createElement('div'); 
     161                         div.id = 'markup-validator'; 
     162                          
     163                         $(div).addClass('error'); 
     164                         $(div).html('<p><strong>' + dotclear.msg.xhtml_not_valid + '</strong></p>' + $(data).find('errors').text()); 
     165                         $('#entry-content h3').after(div); 
     166                         $(div).backgroundFade({sColor:'#ffdec8',eColor:'#ffbaba',steps:20}); 
     167                    } 
     168                     
     169                    if ( $('#post_excerpt').text() != excerpt_content || $('#post_content').text() != post_content ) { 
     170                         var pn = document.createElement('p'); 
     171                         $(pn).addClass('warning-msg'); 
     172                         $(pn).text(dotclear.msg.warning_validate_no_save_content); 
     173                         $('#entry-content h3').after(pn); 
     174                    } 
     175 
     176                    return false; 
     177               }); 
     178 
     179               return false; 
     180          }); 
     181 
     182          a.appendChild(document.createTextNode(dotclear.msg.xhtml_validator)); 
     183           
     184          $('.format_control > *').addClass('hide'); 
     185          $('.format_control:not(.control_no_'+last_post_format+') > *').removeClass('hide'); 
    119186 
    120187          // Hide some fields 
     
    184251          }); 
    185252 
    186           // Markup validator 
    187           var h = document.createElement('h4'); 
    188           var a = document.createElement('a'); 
    189           a.href = '#'; 
    190           a.className = 'button'; 
    191           $(a).click(function() { 
    192                var params = { 
    193                     xd_check: dotclear.nonce, 
    194                     f: 'validatePostMarkup', 
    195                     excerpt: $('#post_excerpt').text(), 
    196                     content: $('#post_content').text(), 
    197                     format: $('#post_format').get(0).value, 
    198                     lang: $('#post_lang').get(0).value 
    199                }; 
    200  
    201                $.post('services.php',params,function(data) { 
    202                     if ($(data).find('rsp').attr('status') != 'ok') { 
    203                          alert($(data).find('rsp message').text()); 
    204                          return false; 
    205                     } 
    206  
    207                     if ($(data).find('valid').text() == 1) { 
    208                          var p = document.createElement('p'); 
    209                          p.id = 'markup-validator'; 
    210  
    211                          if ($('#markup-validator').length > 0) { 
    212                               $('#markup-validator').remove(); 
    213                          } 
    214  
    215                          $(p).addClass('message'); 
    216                          $(p).text(dotclear.msg.xhtml_valid); 
    217                          $(p).insertAfter(h); 
    218                          $(p).backgroundFade({sColor:'#676e78',eColor:'#ffcc00',steps:50},function() { 
    219                                    $(this).backgroundFade({sColor:'#ffcc00',eColor:'#676e78'}); 
    220                          }); 
    221                     } else { 
    222                          var div = document.createElement('div'); 
    223                          div.id = 'markup-validator'; 
    224  
    225                          if ($('#markup-validator').length > 0) { 
    226                               $('#markup-validator').remove(); 
    227                          } 
    228  
    229                          $(div).addClass('error'); 
    230                          $(div).html('<p><strong>' + dotclear.msg.xhtml_not_valid + '</strong></p>' + $(data).find('errors').text()); 
    231                          $(div).insertAfter(h); 
    232                          $(div).backgroundFade({sColor:'#ffffff',eColor:'#FFBABA',steps:50},function() { 
    233                                    $(this).backgroundFade({sColor:'#ffbaba',eColor:'#ffffff'}); 
    234                          }); 
    235                     } 
    236  
    237                     return false; 
    238                }); 
    239  
    240                return false; 
    241           }); 
    242  
    243           a.appendChild(document.createTextNode(dotclear.msg.xhtml_validator)); 
    244           h.appendChild(a); 
    245           $(h).appendTo('#entry-content'); 
    246  
    247253          // Check unsaved changes before XHTML conversion 
    248254          var excerpt = $('#post_excerpt').val(); 
  • admin/js/_posts_actions.js

    r1638 r1806  
    11$(function() { 
    2      $('#new_auth_id').autocomplete(usersList, 
    3      { 
    4           delay: 1000, 
    5           matchSubset: true, 
    6           matchContains: true 
    7      }); 
     2     new_auth_id = $('#new_auth_id'); 
     3     if (new_auth_id.length) { 
     4          new_auth_id.autocomplete(usersList, 
     5          { 
     6               delay: 1000, 
     7               matchSubset: true, 
     8               matchContains: true 
     9          }); 
     10     } 
    811     $('#new_cat').toggleWithLegend($('#new_cat').parent().children().not('#new_cat'), { 
    912          // no cookie on new category as we don't use this every day 
  • admin/js/common.js

    r1798 r1862  
    263263     }, 
    264264 
    265      checkboxesHelpers: function(e) { 
     265     checkboxesHelpers: function(e, target) { 
    266266          $(e).append(document.createTextNode(dotclear.msg.to_select)); 
    267267          $(e).append(document.createTextNode(' ')); 
    268268 
     269          target = target || $(e).parents('form').find('input[type="checkbox"]'); 
     270           
    269271          var a = document.createElement('a'); 
    270272          a.href='#'; 
    271273          $(a).append(document.createTextNode(dotclear.msg.select_all)); 
    272274          a.onclick = function() { 
    273                $(this).parents('form').find('input[type="checkbox"]').check(); 
     275               target.check(); 
    274276               return false; 
    275277          }; 
     
    282284          $(a).append(document.createTextNode(dotclear.msg.no_selection)); 
    283285          a.onclick = function() { 
    284                $(this).parents('form').find('input[type="checkbox"]').unCheck(); 
     286               target.unCheck(); 
    285287               return false; 
    286288          }; 
     
    293295          $(a).append(document.createTextNode(dotclear.msg.invert_sel)); 
    294296          a.onclick = function() { 
    295                $(this).parents('form').find('input[type="checkbox"]').toggleCheck(); 
     297               target.toggleCheck(); 
    296298               return false; 
    297299          }; 
     
    395397          return true; 
    396398     }); 
     399 
     400     // Main menu collapser 
     401    var objMain = $('#wrapper'); 
     402    function showSidebar(){ 
     403         // Show sidebar 
     404        objMain.removeClass('hide-mm'); 
     405        $.cookie('sidebar-pref',null,{expires:30}); 
     406    } 
     407    function hideSidebar(){ 
     408         // Hide sidebar 
     409        objMain.addClass('hide-mm'); 
     410        $.cookie('sidebar-pref','hide-mm',{expires:30}); 
     411    } 
     412    // Sidebar separator 
     413    var objSeparator = $('#collapser'); 
     414    objSeparator.click(function(e){ 
     415        e.preventDefault(); 
     416        if ( objMain.hasClass('hide-mm') ){ 
     417            showSidebar(); 
     418        } 
     419        else { 
     420            hideSidebar(); 
     421        } 
     422    }).css('height', objSeparator.parent().parent().parent().outerHeight() + 'px'); 
     423     if ( $.cookie('sidebar-pref') == 'hide-mm' ){ 
     424          objMain.addClass('hide-mm'); 
     425     } else { 
     426          objMain.removeClass('hide-mm'); 
     427     } 
     428 
    397429}); 
    398  
  • admin/js/jsToolBar/jsToolBar.wysiwyg.js

    r1753 r1833  
    4646      
    4747     if (mode == 'xhtml') { 
     48          this.wwg_mode = true; 
    4849          this.draw(mode); 
    4950     } else { 
     
    5152               this.syncContents('iframe'); 
    5253          } 
     54          this.wwg_mode = false; 
    5355          this.removeEditor(); 
    5456          this.textarea.style.display = ''; 
     
    8688          } else if (window.navigator.product != undefined &&  
    8789                                    window.navigator.product == 'Gecko') { 
    88                This.ibody.innerHTML = '<p><br _moz_editor_blogus_node="TRUE" _moz_dirty=""></p>'; 
     90               This.ibody.innerHTML = '<p><br _moz_editor_blogus_node="TRUE" _moz_dirty=""/></p>'; 
    8991          } else { 
    9092               var idoc = This.iwin.document; 
  • admin/js/meta-editor.js

    r1741 r1819  
    113113      
    114114     addMetaDialog: function() { 
    115           var This = this; 
    116115           
    117116          if (this.submit_button == null) { 
     
    121120          } 
    122121           
    123           // View meta list 
    124           var a = $('<a href="#">' + this.text_choose + '</a>'); 
    125           a.click(function() { 
    126                This.showMetaList(metaEditor.prototype.meta_type,$(this).parent()); 
    127                return false; 
    128           }); 
    129122          if (this.text_separation != '') { 
    130123               this.target.append($('<p></p>').addClass('form-note').append(this.text_separation.replace(/%s/,this.meta_type))); 
    131124          } 
    132           this.target.append($('<p></p>').append(a)); 
     125           
     126          this.showMetaList(metaEditor.prototype.meta_type,this.target); 
     127           
    133128     }, 
    134129      
    135130     showMetaList: function(type,target) { 
    136           target.empty(); 
    137           target.append('...'); 
    138           target.addClass('addMeta'); 
    139131           
    140132          var params = { 
     
    151143           
    152144          $.get(this.service_uri,params,function(data) { 
     145                
     146               var pl = $('<p class="addMeta"></p>'); 
     147                
     148               $('.addMeta').remove(); 
     149                
    153150               if ($(data).find('meta').length > 0) { 
    154                     target.empty(); 
     151                    pl.empty(); 
    155152                    var meta_link; 
    156153                     
     
    165162                          
    166163                         if (i>0) { 
    167                               target.append(', '); 
     164                              pl.append(', '); 
    168165                         } 
    169                          target.append(meta_link); 
     166                         pl.append(meta_link); 
    170167                    }); 
    171168                     
     
    177174                              return false; 
    178175                         }); 
    179                          target.append(', ').append(a_more); 
    180                     } 
     176                         pl.append(', ').append(a_more); 
     177                          
     178                         pl.addClass('hide'); 
     179                          
     180                         var pa = $('<p></p>'); 
     181                         target.append(pa); 
     182                          
     183                         var a = $('<a href="#" class="metaGetList">' + This.text_choose + '</a>'); 
     184                         a.click(function() { 
     185                              $('.addMeta').removeClass('hide'); 
     186                              $('.metaGetList').remove(); 
     187                              return false; 
     188                         }); 
     189                          
     190                         pa.append(a); 
     191                    } 
     192                     
     193                    target.append(pl); 
     194                     
    181195               } else { 
    182                     target.empty(); 
     196                    pl.empty(); 
    183197               } 
    184198          }); 
  • admin/media.php

    r1760 r1855  
    328328      
    329329     '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
    330       
    331      for ($i=$pager->index_start, $j=0; $i<=$pager->index_end; $i++, $j++) 
     330 
     331     $dgroup = ''; 
     332     $fgroup = ''; 
     333     for ($i=$pager->index_start, $j=0; $i<=$pager->index_end; $i++,$j++) 
    332334     { 
    333           echo mediaItemLine($items[$i],$j); 
    334      } 
     335          if ($items[$i]->d) { 
     336               $dgroup .= mediaItemLine($items[$i],$j); 
     337          } else { 
     338               $fgroup .= mediaItemLine($items[$i],$j); 
     339          } 
     340     } 
     341     echo  
     342          ($dgroup != '' ? '<div class="folders-group">'.$dgroup.'</div>' : ''). 
     343          ($fgroup != '' ? '<div class="files-group">'.$fgroup.'</div>' : ''); 
    335344      
    336345     echo 
     
    361370     '<h4>'.__('Add files').'</h4>'. 
    362371     '<p>'.__('Please take care to publish media that you own and that are not protected by copyright.').'</p>'. 
    363      '<p class="max-sizer form-note info">&nbsp;'.__('Maximum file size allowed:').' '.files::size(DC_MAX_UPLOAD_SIZE).'</p>'. 
    364372     '<form id="fileupload" action="'.html::escapeURL($page_url).'" method="post" enctype="multipart/form-data" aria-disabled="false">'. 
    365373     '<p>'.form::hidden(array('MAX_FILE_SIZE'),DC_MAX_UPLOAD_SIZE). 
     
    372380     echo 
    373381     '<p><label for="upfile">'.'<span class="add-label one-file">'.__('Choose file').'</span>'.'</label>'. 
    374      '<button class="button add">'.__('Choose files').'</button>'. 
     382     '<button class="button choose_files">'.__('Choose files').'</button>'. 
    375383     '<input type="file" id="upfile" name="upfile[]"'.($user_ui_enhanceduploader?' multiple="mutiple"':'').' data-url="'.html::escapeURL($page_url).'" /></p>'; 
     384 
     385     echo 
     386     '<p class="max-sizer form-note">&nbsp;'.__('Maximum file size allowed:').' '.files::size(DC_MAX_UPLOAD_SIZE).'</p>'; 
    376387 
    377388     echo 
     
    379390     '<p class="one-file"><label for="upfilepriv" class="classic">'.__('Private').'</label> '. 
    380391     form::checkbox(array('upfilepriv','upfilepriv'),1).'</p>'; 
     392 
     393 
    381394 
    382395     if (!$user_ui_enhanceduploader) { 
     
    454467     $fname = $f->basename; 
    455468      
     469     $class = 'media-item media-col-'.($i%2); 
     470      
    456471     if ($f->d) { 
    457472          $link = html::escapeURL($page_url).'&amp;d='.html::sanitizeURL($f->relname); 
    458473          if ($f->parent) { 
    459474               $fname = '..'; 
     475               $class .= ' media-folder-up'; 
     476          } else { 
     477               $class .= ' media-folder'; 
    460478          } 
    461479     } else { 
     
    464482     } 
    465483      
    466      $class = 'media-item media-col-'.($i%2); 
    467       
    468484     $res = 
    469      '<div class="'.$class.'"><a class="media-icon media-link" href="'.$link.'">'. 
    470      '<img src="'.$f->media_icon.'" alt="" /></a>'. 
    471      '<ul>'. 
    472      '<li><a class="media-link" href="'.$link.'">'.$fname.'</a></li>'; 
     485     '<div class="'.$class.'"><p><a class="media-icon media-link" href="'.$link.'">'. 
     486     '<img src="'.$f->media_icon.'" alt="" />'.$fname.'</a></p>'; 
     487 
     488     $lst = ''; 
    473489      
    474490     if (!$f->d) { 
    475           $res .= 
     491          $lst .= 
    476492          '<li>'.$f->media_title.'</li>'. 
    477493          '<li>'. 
     
    482498     } 
    483499      
    484      $res .= '<li class="media-action">&nbsp;'; 
     500     $act = ''; 
    485501      
    486502     if ($post_id && !$f->d) { 
    487           $res .= '<form action="post_media.php" method="post">'. 
     503          $act .=  
     504          '<form action="post_media.php" method="post">'. 
    488505          '<input type="image" src="images/plus.png" alt="'.__('Attach this file to entry').'" '. 
    489506          'title="'.__('Attach this file to entry').'" /> '. 
     
    496513      
    497514     if ($popup && !$f->d) { 
    498           $res .= '<a href="'.$link.'"><img src="images/plus.png" alt="'.__('Insert this file into entry').'" '. 
     515          $act .= '<a href="'.$link.'"><img src="images/plus.png" alt="'.__('Insert this file into entry').'" '. 
    499516          'title="'.__('Insert this file into entry').'" /></a> '; 
    500517     } 
    501518      
    502519     if ($f->del) { 
    503           $res .= '<a class="media-remove" '. 
     520          $act .= '<a class="media-remove" '. 
    504521          'href="'.html::escapeURL($page_url).'&amp;d='. 
    505522          rawurlencode($GLOBALS['d']).'&amp;remove='.rawurlencode($f->basename).'">'. 
     
    507524     } 
    508525      
    509      $res .= '</li>'; 
     526     $lst .= ($act != '' ? '<li class="media-action">&nbsp;'.$act.'</li>' : ''); 
    510527      
    511528     if ($f->type == 'audio/mpeg3') { 
    512           $res .= '<li>'.dcMedia::mp3player($f->file_url,'index.php?pf=player_mp3.swf').'</li>'; 
    513      } 
    514       
    515      $res .= '</ul></div>'; 
     529          $lst .= '<li>'.dcMedia::mp3player($f->file_url,'index.php?pf=player_mp3.swf').'</li>'; 
     530     } 
     531      
     532     $res .=   ($lst != '' ? '<ul>'.$lst.'</ul>' : ''); 
     533 
     534     $res .= '</div>'; 
    516535      
    517536     return $res; 
  • admin/media_item.php

    r1605 r1853  
    263263          __('As a single image').'</label><br />'. 
    264264          '<label for="insert2" class="classic">'.form::radio(array('insertion','insert2'),'link',$media_img_default_link). 
    265           __('As a link to original image').'</label>'. 
     265          __('As a link to the original image').'</label>'. 
    266266          '</p>'; 
    267267     } 
     
    282282          echo '<p>'; 
    283283          foreach ($i_align as $k => $v) { 
    284                echo '<label for="alignment" class="classic">'. 
     284               echo '<label class="classic">'. 
    285285               form::radio(array('alignment'),$k,$v[1]).' '.$v[0].'</label><br /> '; 
    286286          } 
     
    316316          echo '<p>'; 
    317317          foreach ($i_align as $k => $v) { 
    318                echo '<label for="alignment" class="classic">'. 
     318               echo '<label class="classic">'. 
    319319               form::radio(array('alignment'),$k,$v[1]).' '.$v[0].'</label><br /> '; 
    320320          } 
  • admin/post.php

    r1789 r1831  
    455455                         '<p>'.form::combo('post_format',$formaters_combo,$post_format,'maximal'). 
    456456                         '</p>'. 
    457                          '<p>'.($post_id && $post_format != 'xhtml' ?  
    458                          '<a id="convert-xhtml" class="button" href="post.php?id='.$post_id.'&amp;xconv=1">'. 
    459                          __('Convert to XHTML').'</a>' : '').'</p></div>')), 
     457                         '<p class="format_control control_no_xhtml">'. 
     458                         '<a id="convert-xhtml" class="button'.($post_id && $post_format != 'wiki' ? ' hide' : '').'" href="post.php?id='.$post_id.'&amp;xconv=1">'. 
     459                         __('Convert to XHTML').'</a></p></div>')), 
    460460          'metas-box' => array( 
    461461               'title' => __('Ordering'), 
     
    533533           
    534534          "post_content" => 
    535                '<p class="area"><label class="required" '. 
     535               '<p class="area" id="content-area"><label class="required" '. 
    536536               'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '. 
    537537               form::textarea('post_content',50,$core->auth->getOption('edit_size'),html::escapeHTML($post_content)). 
  • admin/posts.php

    r1792 r1806  
    103103 
    104104# Actions combo box 
    105 $combo_action = array(); 
    106 if ($core->auth->check('publish,contentadmin',$core->blog->id)) 
    107 { 
    108      $combo_action[__('Status')] = array( 
    109           __('Publish') => 'publish', 
    110           __('Unpublish') => 'unpublish', 
    111           __('Schedule') => 'schedule', 
    112           __('Mark as pending') => 'pending' 
    113      ); 
    114 } 
    115 $combo_action[__('Mark')] = array( 
    116      __('Mark as selected') => 'selected', 
    117      __('Mark as unselected') => 'unselected' 
    118 ); 
    119 $combo_action[__('Change')] = array( 
    120      __('Change category') => 'category', 
    121      __('Change language') => 'lang'); 
    122 if ($core->auth->check('admin',$core->blog->id)) 
    123 { 
    124      $combo_action[__('Change')] = array_merge($combo_action[__('Change')], 
    125           array(__('Change author') => 'author')); 
    126 } 
    127 if ($core->auth->check('delete,contentadmin',$core->blog->id)) 
    128 { 
    129      $combo_action[__('Delete')] = array(__('Delete') => 'delete'); 
    130 } 
    131  
    132 # --BEHAVIOR-- adminPostsActionsCombo 
    133 $core->callBehavior('adminPostsActionsCombo',array(&$combo_action)); 
     105 
     106$posts_actions_page = new dcPostsActionsPage($core,'posts.php'); 
     107 
     108$posts_actions_page->process(); 
    134109 
    135110/* Get posts 
     
    304279     # Show posts 
    305280     $post_list->display($page,$nb_per_page, 
    306      '<form action="posts_actions.php" method="post" id="form-entries">'. 
     281     '<form action="posts.php" method="post" id="form-entries">'. 
    307282      
    308283     '%s'. 
     
    312287      
    313288     '<p class="col right"><label for="action" class="classic">'.__('Selected entries action:').'</label> '. 
    314      form::combo('action',$combo_action). 
     289     form::combo('action',$posts_actions_page->getCombo()). 
    315290     '<input type="submit" value="'.__('ok').'" /></p>'. 
    316291     form::hidden(array('user_id'),$user_id). 
  • admin/posts_actions.php

    r1719 r1806  
    1111# -- END LICENSE BLOCK ----------------------------------------- 
    1212 
     13/* ### THIS FILE IS DEPRECATED                         ### */ 
     14/* ### IT IS ONLY USED FOR PLUGINS COMPATIBILITY ### */ 
     15 
    1316require dirname(__FILE__).'/../inc/admin/prepend.php'; 
    1417 
    1518dcPage::check('usage,contentadmin'); 
    1619 
    17 $params = array(); 
     20$posts_actions_page = new dcPostsActionsPage($core,'posts.php'); 
    1821 
    19 /** 
    20 * FieldsList - Compatibility class for hidden fields & entries[] fields 
    21 * 
    22 */ 
    23 class FieldsList { 
    24      /** @var array list of hidden fields */ 
    25      protected $hidden; 
    26      /** @var array list of selected entries */ 
    27      protected $entries; 
     22$posts_actions_page->process(); 
    2823 
    29  
    30    /** 
    31      * Class constructor 
    32      */ 
    33      public function __construct() { 
    34           $this->hidden=array(); 
    35           $this->entries =array(); 
    36      } 
    37  
    38     /** 
    39      * addHidden - adds a hidden field 
    40      *  
    41      * @param string $name the field name. 
    42      * @param mixed $value the field value. 
    43      * 
    44      * @access public 
    45       * @return the FieldsList instance, enabling to chain requests 
    46      */    
    47       public function addHidden($name,$value) { 
    48           $this->hidden[] = form::hidden($name,$value); 
    49           return $this; 
    50      } 
    51  
    52     /** 
    53      * addEntry - adds a antry field 
    54      *  
    55      * @param string $id the entry id. 
    56      * @param mixed $title the entry title. 
    57      * 
    58      * @access public 
    59       * @return the FieldsList instance, enabling to chain requests 
    60      */    
    61       public function addEntry($id,$title) { 
    62           $this->entries[$id]=$title; 
    63           return $this; 
    64      } 
    65  
    66     /** 
    67      * getHidden - returns the list of hidden fields, html encoded 
    68      * 
    69      * @access public 
    70       * @return the list of hidden fields, html encoded 
    71      */ 
    72       public function getHidden() { 
    73           return join('',$this->hidden); 
    74      } 
    75       
    76     /** 
    77      * getEntries - returns the list of entry fields, html encoded 
    78      * 
    79       * @param boolean $hidden if set to true, returns entries as a list of hidden field 
    80       *                if set to false, returns html code displaying the list of entries 
    81       *                with a list of checkboxes to enable to select/deselect entries 
    82      * @access public 
    83       * @return the list of entry fields, html encoded 
    84      */ 
    85      public function getEntries ($hidden=false) { 
    86           $ret = ''; 
    87           if ($hidden) { 
    88                foreach ($this->entries as $id=> $e) { 
    89                     $ret .= form::hidden('entries[]',$id); 
    90                } 
    91           } else { 
    92                $ret =  
    93                     '<table class="posts-list"><tr>'. 
    94                     '<th colspan="2">'.__('Title').'</th>'. 
    95                     '</tr>'; 
    96                foreach ($this->entries as $id=>$title) { 
    97                     $ret .=  
    98                          '<tr><td>'. 
    99                          form::checkbox(array('entries[]'),$id,true,'','').'</td>'. 
    100                          '<td>'.   $title.'</td></tr>'; 
    101                } 
    102                $ret .= '</table>'; 
    103           } 
    104           return $ret; 
    105      } 
    106       
    107     /** 
    108      * getEntriesQS - returns the list of entry fields as query string 
    109      * 
    110      * @access public 
    111       * @return the list of entry fields, html encoded 
    112      */ 
    113      public function getEntriesQS() { 
    114           $ret=array(); 
    115           foreach ($this->entries as $id=>$title) { 
    116                $ret[] = 'entries[]='.$id; 
    117           } 
    118           return join('&',$ret); 
    119      } 
    120       
    121     /** 
    122      * __toString - magic method. -- DEPRECATED here 
    123       *              This method is only used to preserve compatibility with plugins  
    124       *                  relying on previous versions of adminPostsActionsContent behavior,  
    125       * 
    126      * @access public 
    127       * @return the list of hidden fields and entries (as hidden fields too), html encoded 
    128      */ 
    129      public function __toString() { 
    130           return join('',$this->hidden).$this->getEntries(true); 
    131      } 
    132 } 
    133  
    134 $fields = new FieldsList(); 
    135 $posts_ids = array(); 
    136  
    137 if (isset($_POST['redir']) && strpos($_POST['redir'],'://') === false) 
    138 { 
    139      $redir = $_POST['redir']; 
    140 } 
    141 else 
    142 { 
    143      $redir = 
    144      'posts.php?user_id='.$_POST['user_id']. 
    145      '&cat_id='.$_POST['cat_id']. 
    146      '&status='.$_POST['status']. 
    147      '&selected='.$_POST['selected']. 
    148      '&month='.$_POST['month']. 
    149      '&lang='.$_POST['lang']. 
    150      '&sortby='.$_POST['sortby']. 
    151      '&order='.$_POST['order']. 
    152      '&page='.$_POST['page']. 
    153      '&nb='.$_POST['nb']; 
    154 } 
    155 $redir_sel = $redir; 
    156  
    157 if (!empty($_POST['entries'])) 
    158 { 
    159      $entries = $_POST['entries']; 
    160       
    161      foreach ($entries as $k => $v) { 
    162           $entries[$k] = (integer) $v; 
    163      } 
    164       
    165      $params['sql'] = 'AND P.post_id IN('.implode(',',$entries).') '; 
    166       
    167      if (!isset($_POST['full_content']) || empty($_POST['full_content'])) { 
    168           $params['no_content'] = true; 
    169      } 
    170       
    171      if (isset($_POST['post_type'])) { 
    172           $params['post_type'] = $_POST['post_type']; 
    173      } 
    174       
    175      $posts = $core->blog->getPosts($params); 
    176      while ($posts->fetch())  { 
    177           $posts_ids[] = $posts->post_id; 
    178           $fields->addEntry($posts->post_id,$posts->post_title); 
    179      } 
    180      // Redirection including selected entries 
    181      $redir_sel = $redir.'&'.$fields->getEntriesQS(); 
    182  
    183 } else { 
    184      $posts = $core->con->select("SELECT blog_id FROM ".$core->prefix."blog WHERE false");; 
    185 } 
    186  
    187 /* Actions 
    188 -------------------------------------------------------- */ 
    189 if (!empty($_POST['action'])) 
    190 { 
    191      $action = $_POST['action']; 
    192 }  
    193 else 
    194 { 
    195      $core->error->add(__('No action specified.')); 
    196      dcPage::open( 
    197           __('Entries'),'',dcPage::breadcrumb( 
    198           array( 
    199                html::escapeHTML($core->blog->name) => '', 
    200                __('Entries') => 'posts.php', 
    201                '<span class="page-title">'.__('Entries actions').'</span>' => '' 
    202           )) 
    203      ); 
    204       
    205      echo '<p><a class="back" href="'.html::escapeURL($redir_sel).'">'.__('Back to entries list').'</a></p>'; 
    206  
    207      dcPage::close(); 
    208      exit; 
    209 } 
    210  
    211 # --BEHAVIOR-- adminPostsActions 
    212 $core->callBehavior('adminPostsActions',$core,$posts,$action,$redir); 
    213  
    214 if (preg_match('/^(publish|unpublish|schedule|pending)$/',$action)) 
    215 { 
    216      switch ($action) { 
    217           case 'unpublish' : $status = 0; break; 
    218           case 'schedule' : $status = -1; break; 
    219           case 'pending' : $status = -2; break; 
    220           default : $status = 1; break; 
    221      } 
    222       
    223      try 
    224      { 
    225           $core->blog->updPostsStatus($posts_ids,$status); 
    226            
    227           http::redirect($redir_sel.'&upd=1'); 
    228      } 
    229      catch (Exception $e) 
    230      { 
    231           $core->error->add($e->getMessage()); 
    232      } 
    233 } 
    234 elseif ($action == 'selected' || $action == 'unselected') 
    235 { 
    236      try 
    237      { 
    238           $core->blog->updPostsSelected($posts_ids,$action == 'selected'); 
    239            
    240           http::redirect($redir_sel."&upd=1"); 
    241      } 
    242      catch (Exception $e) 
    243      { 
    244           $core->error->add($e->getMessage()); 
    245      } 
    246 } 
    247 elseif ($action == 'delete') 
    248 { 
    249      try 
    250      { 
    251           // Backward compatibility 
    252           foreach($posts_ids as $post_id) 
    253           { 
    254                # --BEHAVIOR-- adminBeforePostDelete 
    255                $core->callBehavior('adminBeforePostDelete',(integer) $post_id); 
    256           } 
    257            
    258           # --BEHAVIOR-- adminBeforePostsDelete 
    259           $core->callBehavior('adminBeforePostsDelete',$posts_ids); 
    260            
    261           $core->blog->delPosts($posts_ids); 
    262            
    263           http::redirect($redir."&del=1"); 
    264      } 
    265      catch (Exception $e) 
    266      { 
    267           $core->error->add($e->getMessage()); 
    268      } 
    269       
    270 } 
    271 elseif ($action == 'category' && isset($_POST['new_cat_id'])) 
    272 { 
    273      $new_cat_id = $_POST['new_cat_id']; 
    274       
    275      try 
    276      { 
    277           if (!empty($_POST['new_cat_title']) && $core->auth->check('categories', $core->blog->id)) 
    278           { 
    279                $cur_cat = $core->con->openCursor($core->prefix.'category'); 
    280                $cur_cat->cat_title = $_POST['new_cat_title']; 
    281                $cur_cat->cat_url = ''; 
    282                 
    283                $parent_cat = !empty($_POST['new_cat_parent']) ? $_POST['new_cat_parent'] : ''; 
    284                 
    285                # --BEHAVIOR-- adminBeforeCategoryCreate 
    286                $core->callBehavior('adminBeforeCategoryCreate', $cur_cat); 
    287                 
    288                $new_cat_id = $core->blog->addCategory($cur_cat, (integer) $parent_cat); 
    289                 
    290                # --BEHAVIOR-- adminAfterCategoryCreate 
    291                $core->callBehavior('adminAfterCategoryCreate', $cur_cat, $new_cat_id); 
    292           } 
    293            
    294           $core->blog->updPostsCategory($posts_ids, $new_cat_id); 
    295            
    296           http::redirect($redir_sel."&upd=1"); 
    297      } 
    298      catch (Exception $e) 
    299      { 
    300           $core->error->add($e->getMessage()); 
    301      } 
    302 } 
    303 elseif ($action == 'author' && isset($_POST['new_auth_id']) 
    304 && $core->auth->check('admin',$core->blog->id)) 
    305 { 
    306      $new_user_id = $_POST['new_auth_id']; 
    307       
    308      try 
    309      { 
    310           if ($core->getUser($new_user_id)->isEmpty()) { 
    311                throw new Exception(__('This user does not exist')); 
    312           } 
    313            
    314           $cur = $core->con->openCursor($core->prefix.'post'); 
    315           $cur->user_id = $new_user_id; 
    316           $cur->update('WHERE post_id '.$core->con->in($posts_ids)); 
    317            
    318           http::redirect($redir_sel."&upd=1"); 
    319      } 
    320      catch (Exception $e) 
    321      { 
    322           $core->error->add($e->getMessage()); 
    323      } 
    324 } 
    325 elseif ($action == 'lang' && isset($_POST['new_lang'])) 
    326 { 
    327      $new_lang = $_POST['new_lang']; 
    328      try 
    329      { 
    330           $cur = $core->con->openCursor($core->prefix.'post'); 
    331           $cur->post_lang = $new_lang; 
    332           $cur->update('WHERE post_id '.$core->con->in($posts_ids)); 
    333            
    334           http::redirect($redir_sel."&upd=1"); 
    335      } 
    336      catch (Exception $e) 
    337      { 
    338           $core->error->add($e->getMessages()); 
    339      } 
    340 } 
    341  
    342 /* DISPLAY 
    343 -------------------------------------------------------- */ 
    344 // Get current users list 
    345 $usersList = ''; 
    346 if ($action == 'author' && $core->auth->check('admin',$core->blog->id)) { 
    347      $params = array( 
    348           'limit' => 100, 
    349           'order' => 'nb_post DESC' 
    350           ); 
    351      $rs = $core->getUsers($params); 
    352      while ($rs->fetch()) 
    353      { 
    354           $usersList .= ($usersList != '' ? ',' : '').'"'.$rs->user_id.'"'; 
    355      } 
    356 } 
    357 dcPage::open( 
    358      __('Entries'), 
    359      '<script type="text/javascript">'."\n". 
    360      "//<![CDATA[\n". 
    361      'usersList = ['.$usersList.']'."\n". 
    362      "\n//]]>\n". 
    363      "</script>\n". 
    364      dcPage::jsLoad('js/jquery/jquery.autocomplete.js'). 
    365      dcPage::jsLoad('js/_posts_actions.js'). 
    366      dcPage::jsMetaEditor(). 
    367      # --BEHAVIOR-- adminBeforePostDelete 
    368      $core->callBehavior('adminPostsActionsHeaders') 
    369 ); 
    370  
    371 if (!isset($action)) { 
    372      dcPage::close(); 
    373      exit; 
    374 } 
    375  
    376 if (isset($_POST['redir']) && strpos($_POST['redir'],'://') === false) 
    377 { 
    378      $fields->addHidden(array('redir'),html::escapeURL($_POST['redir'])); 
    379 } 
    380 else 
    381 { 
    382      $fields 
    383           ->addHidden(array('user_id'),$_POST['user_id']) 
    384           ->addHidden(array('cat_id'),$_POST['cat_id']) 
    385           ->addHidden(array('status'),$_POST['status']) 
    386           ->addHidden(array('selected'),$_POST['selected']) 
    387           ->addHidden(array('month'),$_POST['month']) 
    388           ->addHidden(array('lang'),$_POST['lang']) 
    389           ->addHidden(array('sortby'),$_POST['sortby']) 
    390           ->addHidden(array('order'),$_POST['order']) 
    391           ->addHidden(array('page'),$_POST['page']) 
    392           ->addHidden(array('nb'),$_POST['nb']) 
    393      ; 
    394 } 
    395  
    396 if (isset($_POST['post_type'])) { 
    397      $fields->addHidden(array('post_type'),$_POST['post_type']); 
    398 } 
    399  
    400 # --BEHAVIOR-- adminPostsActionsContent 
    401 $core->callBehavior('adminPostsActionsContent',$core,$action,$fields); 
    402  
    403 if ($action == 'category') 
    404 { 
    405      echo dcPage::breadcrumb( 
    406           array( 
    407                html::escapeHTML($core->blog->name) => '', 
    408                __('Entries') => 'posts.php', 
    409                '<span class="page-title">'.__('Change category for this selection').'</span>' => '' 
    410      )); 
    411       
    412      echo '<p><a class="back" href="'.html::escapeURL($redir_sel).'">'.__('Back to entries list').'</a></p>'; 
    413  
    414      # categories list 
    415      # Getting categories 
    416      $categories_combo = dcAdminCombos::getCategoriesCombo( 
    417           $core->blog->getCategories(array('post_type'=>'post')) 
    418      ); 
    419       
    420      echo 
    421      '<form action="posts_actions.php" method="post">'. 
    422      $fields->getEntries(). 
    423      '<p><label for="new_cat_id" class="classic">'.__('Category:').'</label> '. 
    424      form::combo('new_cat_id',$categories_combo,''); 
    425       
    426      if ($core->auth->check('categories', $core->blog->id)) { 
    427           echo  
    428           '<div>'. 
    429           '<p id="new_cat">'.__('Create a new category for the post(s)').'</p>'. 
    430           '<p><label for="new_cat_title">'.__('Title:').'</label> '. 
    431           form::field('new_cat_title',30,255,'','').'</p>'. 
    432           '<p><label for="new_cat_parent">'.__('Parent:').'</label> '. 
    433           form::combo('new_cat_parent',$categories_combo,'',''). 
    434           '</p>'. 
    435           '</div>'; 
    436      } 
    437       
    438      echo 
    439      $fields->getHidden(). 
    440      $core->formNonce(). 
    441      form::hidden(array('action'),'category'). 
    442      '<input type="submit" value="'.__('Save').'" /></p>'. 
    443      '</form>'; 
    444 } 
    445 elseif ($action == 'lang') 
    446 { 
    447      echo dcPage::breadcrumb( 
    448           array( 
    449                html::escapeHTML($core->blog->name) => '', 
    450                __('Entries') => 'posts.php', 
    451                '<span class="page-title">'.__('Change language for this selection').'</span>' => '' 
    452      )); 
    453      echo '<p><a class="back" href="'.html::escapeURL($redir_sel).'">'.__('Back to entries list').'</a></p>'; 
    454  
    455      # lang list 
    456      # Languages combo 
    457      $rs = $core->blog->getLangs(array('order'=>'asc')); 
    458      $lang_combo = dcAdminCombos::getLangsCombo($rs,true); 
    459       
    460      echo 
    461      '<form action="posts_actions.php" method="post">'. 
    462      $fields->getEntries(). 
    463       
    464      '<p><label for="new_lang" class="classic">'.__('Entry lang:').'</label> '. 
    465      form::combo('new_lang',$lang_combo,''); 
    466       
    467      echo 
    468      $fields->getHidden(). 
    469      $core->formNonce(). 
    470      form::hidden(array('action'),'lang'). 
    471      '<input type="submit" value="'.__('Save').'" /></p>'. 
    472      '</form>'; 
    473  
    474 } 
    475 elseif ($action == 'author' && $core->auth->check('admin',$core->blog->id)) 
    476 { 
    477      echo dcPage::breadcrumb( 
    478           array( 
    479                html::escapeHTML($core->blog->name) => '', 
    480                __('Entries') => 'posts.php', 
    481                '<span class="page-title">'.__('Change author for this selection').'</span>' => '' 
    482      )); 
    483      echo '<p><a class="back" href="'.html::escapeURL($redir_sel).'">'.__('Back to entries list').'</a></p>'; 
    484  
    485      echo 
    486      '<form action="posts_actions.php" method="post">'. 
    487      $fields->getEntries(). 
    488      '<p><label for="new_auth_id" class="classic">'.__('New author (author ID):').'</label> '. 
    489      form::field('new_auth_id',20,255); 
    490       
    491      echo 
    492      $fields->getHidden(). 
    493      $core->formNonce(). 
    494      form::hidden(array('action'),'author'). 
    495      '<input type="submit" value="'.__('Save').'" /></p>'. 
    496      '</form>'; 
    497 } 
    498  
    499 dcPage::close(); 
    50024?> 
  • admin/preferences.php

    r1786 r1845  
    169169               $core->auth->user_prefs->interface->put('hide_std_favicon',!empty($_POST['user_ui_hide_std_favicon']),'boolean',null,true,true); 
    170170          } 
    171           $core->auth->user_prefs->interface->put('iconset',(!empty($_POST['user_ui_iconset']) ? $_POST['user_ui_iconset'] : '')); 
    172           $core->auth->user_prefs->interface->put('nofavmenu',!empty($_POST['user_ui_nofavmenu']),'boolean'); 
    173171           
    174172          # Udate user 
  • admin/style/default.css

    r1801 r1869  
    2727     width: 100%; 
    2828     padding-top: 1em; 
     29     background: #f7f7f7 url(bg_wrapper.png) repeat-y 15.5em; 
    2930     } 
    3031#main { 
     
    3334     margin-left: -14.5em; 
    3435     margin-top: 0; 
    35      background: #fff url(bg_menu.png); 
    3636     } 
    3737#content { 
    38      margin: 0 0 0 14.5em; 
     38     margin: 0 0 0 15.5em; 
    3939     padding: 9px 18px 18px; /* ie < 9 sucks */ 
    4040     padding: .9rem 1.8rem 1.8rem; 
    4141     background: #fff; 
     42     overflow: hidden; 
    4243     } 
    4344#main-menu { 
     
    4748     padding-top: .5em; 
    4849     padding-bottom: 1em; 
    49      background: #f7f7f7; 
     50     overflow: hidden; 
    5051     } 
    5152#footer { 
     
    5455     text-align: right; 
    5556     border-top: 1px solid #ccc; 
    56      } 
     57     background-color: #fff; 
     58     } 
     59/* to hide main-menu */ 
     60#collapser { 
     61     display: block; 
     62     float: left; 
     63     width: 1em; 
     64     background: #f3f3f3; 
     65     margin-left: 14.5em; 
     66     border: none; 
     67     text-align: left; 
     68     overflow: hidden; 
     69     padding-top: 22px; 
     70     } 
     71.expand-mm { 
     72     display:none; 
     73     } 
     74/* if main-menu is hidden */ 
     75#wrapper.hide-mm { 
     76     background: #fff; 
     77     } 
     78.hide-mm #main { 
     79     margin-left: 0; 
     80     } 
     81.hide-mm #content { 
     82     margin-left: 1em; 
     83     } 
     84.hide-mm #main-menu { 
     85     display: none; 
     86     } 
     87.hide-mm #collapser { 
     88     margin-left: 0; 
     89     text-align: right; 
     90     background-color: #e3e3e3;  
     91     } 
     92.hide-mm .collapse-mm { 
     93     display: none; 
     94     } 
     95.hide-mm .expand-mm { 
     96     display: block; 
     97     } 
     98/* if no js activated */ 
     99.no-js #content { 
     100     margin-left: 14.5em; 
     101     } 
     102 
    57103/* -------------------------------------------------------------- layout: two-cols */ 
    58104.two-cols { 
     
    122168     display: inline-block; 
    123169     vertical-align: top; 
    124      margin-left: 2.5%; 
    125      margin-right: 2.5%;  
     170     margin-left: 1.5%; 
     171     margin-right: 1.5%;  
    126172     -moz-box-sizing: border-box;  
    127173     -webkit-box-sizing: border-box;  
    128174     box-sizing: border-box; 
    129175     } 
    130      .three-boxes:first-child { 
     176     .three-boxes:first-child, .three-boxes.first-child { 
    131177          margin-left: 0; 
    132178          } 
    133      .three-boxes:last-child { 
     179     .three-boxes:last-child, .three-boxes.last-child { 
    134180          margin-right: 0; 
    135181          } 
     
    391437     border:none; 
    392438     } 
     439h1 a:link, h1 a:visited { 
     440     border:   none; 
     441     } 
    393442/* ---------------------------------------------------------------------------- 
    394443                                                                                     FORMULAIRES 
     
    553602     border: 1px solid #ccc; 
    554603     font-family: arial, helvetica, sans-serif; 
    555      padding: 3px 8px; 
     604     padding: 4px 10px; 
    556605     line-height: normal !important; 
    557606     display: inline-block; 
     
    563612     border-radius: 3px; 
    564613     cursor: pointer; 
     614     font: 100% "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif; 
    565615     } 
    566616button, 
     
    571621     } 
    572622 /* validation */ 
    573 input[type=submit], a.button.submit { 
     623input[type=submit], a.button.submit, input.button.start { 
    574624     color: #fff; 
    575625     border: 1px solid #2C8FD1; 
    576      background:-moz-linear-gradient(top,#25A6E1 0%,#188BC0 100%); 
    577      background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#25A6E1),color-stop(100%,#188BC0)); 
    578      background:linear-gradient(top,#25A6E1 0%,#188BC0 100%); 
     626     background-image:-moz-linear-gradient(top,#25A6E1 0%,#188BC0 100%); 
     627     background-image:-webkit-gradient(linear,left top,left bottom, from(#25A6E1), to(#188BC0)); 
     628     background-image:linear-gradient(top,#25A6E1 0%,#188BC0 100%); 
    579629     background-color:#25A6E1; 
    580630     text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3); 
    581631     } 
    582632     input[type=submit]:hover, input[type=submit]:focus, 
     633     input.button.start:hover, input.button.start:focus, 
    583634     a.button.submit:hover, a.button.submit:focus { 
    584           background:-moz-linear-gradient(top,#188BC0 0%,#25A6E1 100%); 
    585           background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#188BC0),color-stop(100%,#25A6E1)); 
    586           background:linear-gradient(top,#188BC0 0%,#25A6E1 100%); 
     635          background-image:-moz-linear-gradient(top,#188BC0 0%,#25A6E1 100%); 
     636          background-image:-webkit-gradient(linear,left top,left bottom, from(#188BC0),to(#25A6E1)); 
     637          background-image:linear-gradient(top,#188BC0 0%,#25A6E1 100%); 
    587638          background-color:#188BC0; 
    588639          } 
     
    593644a.button.delete, a.button.reset, a.button { 
    594645     color: #000; 
    595      background: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#dfdfdf)); 
    596      background: -moz-linear-gradient(top,  #f5f5f5,  #dfdfdf); 
     646     background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#dfdfdf)); 
     647     background-image: -moz-linear-gradient(top,  #f5f5f5,  #dfdfdf); 
     648     background-image:linear-gradient(top,#f5f5f5 0%,#dfdfdf 100%); 
    597649     background-color: #eee; 
     650     border: 1px solid #ccc; 
    598651     text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); 
    599652     } 
     
    606659     a.button.delete:hover, a.button.reset:hover, a.button:hover, 
    607660     a.button.delete:focus, a.button.reset:focus, a.button:focus { 
    608           background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #e9e9e9), color-stop(1, #f9f9f9) ); 
    609           background:-moz-linear-gradient( center top, #e9e9e9 5%, #f9f9f9 100% ); 
     661          background-image:-webkit-gradient( linear, left top, left bottom, from(#e9e9e9), to(#f9f9f9)); 
     662          background-image:-moz-linear-gradient(top, #e9e9e9, #f9f9f9); 
     663          background-image:linear-gradient(top,#e9e9e9 0%,#f9f9f9 100%); 
    610664          background-color:#f3f3f3; 
    611665          } 
     
    628682          } 
    629683.button.add { 
    630      background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #bee74b), color-stop(1, #9BCA1C) ); 
    631      background:-moz-linear-gradient( center top, #bee74b 5%, #9BCA1C 100% ); 
     684     background-image:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #bee74b), color-stop(1, #9BCA1C) ); 
     685     background-image:-moz-linear-gradient(center top, #bee74b 5%, #9BCA1C 100%); 
    632686     filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bee74b', endColorstr='#9BCA1C'); 
    633687     background-color:#bee74b; 
    634688     border:1px solid #B2D742; 
    635      padding:.33em 1.33em; 
     689     padding:.33em 1.33em .5em; 
    636690     color: #000; 
    637691     text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); 
     
    641695     } 
    642696     .button.add:hover, .button.add:active, .button.add:focus { 
    643           background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #9BCA1C), color-stop(1, #bee74b) ); 
    644           background:-moz-linear-gradient( center top, #9BCA1C 5%, #bee74b 100% ); 
     697          background-image:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #9BCA1C), color-stop(1, #bee74b) ); 
     698          background-image:-moz-linear-gradient(center top, #9BCA1C 5%, #bee74b 100%); 
     699          background-image:linear-gradient(center top, #9BCA1C 5%, #bee74b 100%); 
    645700          filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9BCA1C', endColorstr='#bee74b'); 
    646701          background-color:#9BCA1C; 
     
    658713input.disabled, input[type=submit].disabled { 
    659714     text-shadow: none; 
     715     filter: none; 
    660716     color: #676e78; 
    661717     background: #F5F5F5; 
     
    738794     background: #A2CBE9 url(msg-success.png) no-repeat .7em .7em; 
    739795     text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); 
    740      color: #34495e; 
     796     color: #000; 
    741797     box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1) 
    742798     } 
    743799     .dc-update h3 { 
    744800          margin-top: 0; 
    745           color: #34495e; 
     801          color: #000; 
    746802          } 
    747803     .dc-update p { 
     
    750806          } 
    751807     .dc-update a { 
    752           color: #34495e; 
    753           border-color: #000; 
     808          color: #000; 
    754809          margin-right: 1em; 
    755810          } 
    756           a.updt-info { 
    757                margin-left: 2em; 
    758                font-weight: bold; 
    759                } 
    760811          .dc-update a.button { 
    761812               padding: .5em 1em;  
     813               } 
     814          .updt-info a { 
     815               margin-left: 2em; 
     816               border-color: #000; 
     817               font-weight: bold; 
    762818               } 
    763819/* --------------------------------------------------------------------------------- 
     
    811867               height: 36px; /* ie < 9 sucks */ 
    812868               height: 3.6rem; 
    813                border: none; 
    814869               color: #fff; 
    815870               background: transparent url(dc_logos/b-dotclear120.png) no-repeat 0 6px; 
     
    14081463          } 
    14091464/* ------------------------------------------------------------------- blog_pref.php */ 
     1465#media_img_title_pattern { 
     1466     margin-right: 1em; 
     1467     } 
    14101468.user-perm { 
    14111469     margin: 2em 0px; 
     
    16021660          width: 100%; 
    16031661          } 
     1662/* ------------------------------------------------------------------ help.php */ 
     1663.legible { /* for pages with a lot of text to read */ 
     1664     font-size: 1.16em; 
     1665     max-width: 62em; 
     1666     margin-left: 6%; 
     1667     } 
     1668 
    16041669/* ------------------------------------------------------------------ media.php */ 
    1605 .media-list { 
    1606      position: static; 
    1607      } 
    16081670.media-item { 
    16091671     position: relative; 
    1610      border: 1px solid #ccc; 
    1611      margin: 1em; 
    1612      padding: 1em; 
     1672     border: 1px solid #ddd; 
     1673     margin: 9px; 
     1674     padding: 10px 12px 6px; 
    16131675     width: 300px; 
    16141676     display: inline-block; 
    16151677     vertical-align: top; 
    1616      min-height: 120px 
    1617      } 
     1678     min-height: 140px; 
     1679     } 
     1680     .media-item p { 
     1681          margin: 0 0 .5em; 
     1682          } 
     1683     .media-item object { 
     1684          margin-top: .5em; 
     1685          } 
    16181686     .media-item ul { 
    16191687          display: block; 
     
    16301698               display: block; 
    16311699               } 
    1632 .media-action-box { 
    1633      position: relative; 
    1634      margin: 3em 3em 1em 1em; 
    1635      display: inline-block; 
    1636      vertical-align: top; 
    1637      } 
    1638 li.media-action { 
    1639      display: block; 
    1640      position: absolute; 
    1641      top: 5px; 
    1642      right: 5px; 
    1643      height: 16px; 
    1644      } 
     1700     .media-link { 
     1701          font-size: 1.1em; 
     1702          } 
     1703     .media-action-box { 
     1704          position: relative; 
     1705          margin: 3em 3em 1em 1em; 
     1706          display: inline-block; 
     1707          vertical-align: top; 
     1708          } 
     1709     li.media-action { 
     1710          display: block; 
     1711          position: absolute; 
     1712          bottom: 4px; 
     1713          right: 8px; 
     1714          height: 16px; 
     1715          } 
    16451716     li.media-action a { 
    16461717          border: none; 
     
    16521723          border: none; 
    16531724          } 
     1725#entry-sidebar .media-item { 
     1726     width: 100%; 
     1727     min-height: 0; 
     1728     padding: 4px; 
     1729     margin: .33em 0; 
     1730     } 
     1731     #entry-sidebar li.media-action { 
     1732          top: 4px; 
     1733          } 
     1734 
     1735.folders-group .media-item { 
     1736     min-height: 70px; 
     1737     } 
     1738     .folders-group .media-item p { 
     1739          margin-bottom: 0; 
     1740          } 
     1741     .media-folder { 
     1742          background: transparent url(bg_menu.png) repeat-y; 
     1743          border-color: #eee; 
     1744          } 
     1745     .media-folder-up { 
     1746          border-color: #fff; 
     1747          padding-bottom: 6px; 
     1748          } 
     1749     .media-folder .media-link { 
     1750          font-size: 1.25em; 
     1751          margin-left: 2em; 
     1752          color: #676e78; 
     1753          border-bottom: none; 
     1754          } 
     1755 
    16541756.zip-dl { 
    16551757     background: transparent url(package.png) no-repeat 0 50%; 
    16561758     padding: 5px 0 5px 20px; 
    16571759     } 
     1760/* upload multiple */ 
     1761.enhanced_uploader .choose_files, .enhanced_uploader .cancel,  
     1762.enhanced_uploader .clean, .enhanced_uploader .start { 
     1763     margin-right: .4em; 
     1764     } 
     1765.enhanced_uploader #upfile { 
     1766     visibility: hidden; 
     1767     width: 0; 
     1768     height: 0; 
     1769     margin: 0; 
     1770     opacity: 0; 
     1771     filter: alpha(opacity=0); 
     1772     cursor: pointer; 
     1773     } 
     1774.button.clean, .button.cancel, .button.choose_files { 
     1775     display: none; 
     1776     } 
     1777.enhanced_uploader .button.choose_files { 
     1778     display: inline-block; 
     1779     } 
     1780.enhanced_uploader .max-size { 
     1781     display: block; 
     1782     } 
     1783.enhanced_uploader .one-file { 
     1784     display: none; 
     1785     } 
     1786label span.one-file { 
     1787     display: inline; 
     1788     } 
     1789.enhanced_uploader p.clear { 
     1790     padding-top: 1em; 
     1791     margin-bottom: 1em; 
     1792     } 
     1793#add-file-f p.clear { 
     1794     margin-top: 1em; 
     1795     margin-bottom: 0; 
     1796     clear: both; 
     1797     } 
     1798.files { 
     1799     list-style-type: none; 
     1800     margin-left: 0; 
     1801     padding-left: 0; 
     1802     border-bottom: 1px solid #ddd; 
     1803     } 
     1804.files li { 
     1805     margin-left: 0; 
     1806     padding-left: 0; 
     1807     } 
     1808.upload-msg { 
     1809     font-weight: bold; 
     1810     } 
     1811.upload-msg.upload-error { 
     1812     color: #c00; 
     1813     } 
     1814.upload-files { 
     1815     padding: 0 0.5em; 
     1816     margin: 1em 0; 
     1817     } 
     1818.upload-file { 
     1819     margin: 0; 
     1820     padding: .3em 0; 
     1821     border-top: 1px solid #ddd; 
     1822     position: relative; 
     1823     } 
     1824.upload-fileinfo { 
     1825     margin-left: 0; 
     1826/*   margin-bottom: .4em;*/ 
     1827     } 
     1828.upload-fileinfo input { 
     1829     position: absolute; 
     1830     top: .5em; 
     1831     right: .5em; 
     1832     } 
     1833.upload-fileinfo span { 
     1834     padding-right: 8px; 
     1835     } 
     1836.upload-fileinfo .upload-filecancel { 
     1837     display: block; 
     1838     padding-right: 0; 
     1839     margin-top: 3px; 
     1840     width: 20px; 
     1841     height: 20px; 
     1842     background: transparent url("cancel.png") no-repeat left top; 
     1843     text-indent: -1000px; 
     1844     cursor: pointer; 
     1845     float: left; 
     1846     } 
     1847.upload-filemsg { 
     1848     font-weight: bold; 
     1849     color: green; 
     1850     } 
     1851.upload-filemsg.upload-error { 
     1852     color: #c00; 
     1853     } 
     1854.upload-progress { 
     1855     padding: .3em 0;  
     1856     } 
     1857.upload-progress div { 
     1858     width: 0; 
     1859     height: 1em; 
     1860     padding: .2em 0; 
     1861     font-size: 0.8em; 
     1862     font-weight: bold; 
     1863     line-height: 1em; 
     1864     text-align: right; 
     1865     background: green url("loader.png") repeat-x left top; 
     1866     color: white; 
     1867     border-radius: 2px; 
     1868     } 
     1869div.template-upload { 
     1870     clear: both; 
     1871     } 
     1872.queue-message { 
     1873     font-weight: bold; 
     1874     } 
     1875 
    16581876/* --------------------------------------------------------------- media-item.php */ 
    16591877#media-icon { 
     
    19972215     } 
    19982216/* caché pour tout le monde */ 
    1999 .hide { 
     2217.hide, .button.hide { 
    20002218     display: none; 
    20012219     } 
    20022220/* Caché sauf pour les revues d'écran */ 
    20032221.hidden, .with-js .out-of-screen-if-js { 
    2004     position: absolute !important; 
    2005     clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 
    2006     clip: rect(1px, 1px, 1px, 1px); 
    2007     padding: 0 !important; 
    2008     border: 0 !important; 
    2009     height: 1px !important; 
    2010     width: 1px !important; 
    2011     overflow: hidden; 
    2012     } 
     2222     position: absolute !important; 
     2223     clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 
     2224     clip: rect(1px, 1px, 1px, 1px); 
     2225     padding: 0 !important; 
     2226     border: 0 !important; 
     2227     height: 1px !important; 
     2228     width: 1px !important; 
     2229     overflow: hidden; 
     2230     } 
    20132231/* caché si js est inactif */ 
    20142232.no-js .hidden-if-no-js { 
    2015         display: none; 
    2016      } 
    2017 /* montré si js est inactif */ 
    2018 .no-js .hidden-if-js { 
    2019      display: block; 
     2233     display: none; 
    20202234     } 
    20212235/* caché si js est actif */ 
    2022 .hidden-if-js { 
    2023         display: none; 
     2236.with-js .hidden-if-js { 
     2237     display: none; 
    20242238     } 
    20252239/* ------------------------------------------------------------------------------------ 
  • admin/style/jsToolBar/jsToolBar.css

    r1760 r1810  
    3636     border-radius: 4px 4px 0 0;  
    3737} 
    38  
    3938.jstElements select, .jstElements button { 
    4039     vertical-align: middle; 
     
    5554     background-repeat: no-repeat; 
    5655} 
    57 .jstElements button:hover { 
     56.jstElements button:hover, .jstElements button:focus { 
    5857     border-color : #ddd; 
    5958     background-color: #fff; 
     
    7271     margin-right: 0; 
    7372} 
    74  
    7573.jstSwitcher { 
    7674     display: block; 
     
    9896/* Buttons 
    9997-------------------------------------------------------- */ 
    100 .jstb_strong { 
     98button.jstb_strong { 
    10199     background-image: url(bt_strong.png); 
    102100} 
    103 .jstb_em { 
     101button.jstb_em { 
    104102     background-image: url(bt_em.png); 
    105103} 
    106 .jstb_ins { 
     104button.jstb_ins { 
    107105     background-image: url(bt_ins.png); 
    108106} 
    109 .jstb_del { 
     107button.jstb_del { 
    110108     background-image: url(bt_del.png); 
    111109} 
    112 .jstb_quote { 
     110button.jstb_quote { 
    113111     background-image: url(bt_quote.png); 
    114112} 
    115 .jstb_code { 
     113button.jstb_code { 
    116114     background-image: url(bt_code.png); 
    117115} 
    118 .jstb_paragraph { 
     116button.jstb_paragraph { 
    119117     background-image: url(bt_paragraph.png); 
    120118} 
    121 .jstb_br { 
     119button.jstb_br { 
    122120     background-image: url(bt_br.png); 
    123121} 
    124 .jstb_blockquote { 
     122button.jstb_blockquote { 
    125123     background-image: url(bt_bquote.png); 
    126124} 
    127 .jstb_pre { 
     125button.jstb_pre { 
    128126     background-image: url(bt_pre.png); 
    129127} 
    130 .jstb_ul { 
     128button.jstb_ul { 
    131129     background-image: url(bt_ul.png); 
    132130} 
    133 .jstb_ol { 
     131button.jstb_ol { 
    134132     background-image: url(bt_ol.png); 
    135133} 
    136 .jstb_link { 
     134button.jstb_link { 
    137135     background-image: url(bt_link.png); 
    138136} 
    139 .jstb_img { 
     137button.jstb_img { 
    140138     background-image: url(bt_img.png); 
    141139} 
    142 .jstb_img_select { 
     140button.jstb_img_select { 
    143141     background-image: url(bt_img_select.png); 
    144142} 
    145 .jstb_post_link { 
     143button.jstb_post_link { 
    146144     background-image: url(bt_post.png); 
    147145} 
    148 .jstb_removeFormat { 
     146button.jstb_removeFormat { 
    149147     background-image: url(bt_clean.png); 
    150148} 
  • build-tools/make-l10n.php

    r1179 r1863  
    2929     echo "l10n file ".$dest.": "; 
    3030      
    31      $l = l10n::getPoFile($f); 
    32       
    33      $fcontent = 
    34      "<?php\n". 
    35      $license_block. 
    36      "#\n#\n#\n". 
    37      "#        DOT NOT MODIFY THIS FILE !\n\n\n\n\n"; 
    38       
    39      foreach (l10n::getPoFile($f) as $vo => $tr) { 
    40           $vo = str_replace("'","\\'",$vo); 
    41           $tr = str_replace("'","\\'",$tr); 
    42           $fcontent .= '$GLOBALS[\'__l10n\'][\''.$vo.'\'] = \''.$tr.'\';'."\n"; 
    43      } 
    44       
    45      $fcontent .= "?>"; 
    46       
    47      echo $dest.' : '; 
    48      if (($fp = fopen($dest,'w')) !== false) { 
    49           fwrite($fp,$fcontent,strlen($fcontent)); 
    50           fclose($fp); 
     31     if (l10n::generatePhpFileFromPo(dirname($f).'/'.basename($f,'.po'),$license_block)) { 
    5132          echo 'OK'; 
    5233     } else { 
  • inc/admin/lib.dc.page.php

    r1793 r1867  
    152152          '<div id="wrapper" class="clearfix">'."\n". 
    153153          '<div id="main">'."\n". 
     154          '<div class="hidden-if-no-js"><a href="#" id="collapser">'. 
     155          '<img class="collapse-mm" src="images/collapser-hide.png" alt="'.__('Hide main menu').'" />'. 
     156          '<img class="expand-mm" src="images/collapser-show.png" alt="'.__('Show main menu').'" />'. 
     157          '</a></div>'. 
    154158          '<div id="content" class="clearfix">'."\n"; 
    155159 
     
    206210          echo 
    207211          '</div>'."\n".      // End of #main-menu 
     212 
    208213          '<div id="footer">'. 
    209214          '<span class="helplink"><a href="help.php">'.__('Global help').'</a></span> '. 
     
    482487     { 
    483488          $mute_or_no = ''; 
    484           if (!empty($GLOBALS['core']->blog->settings->system->jquery_migrate_mute)) { 
     489          if (empty($GLOBALS['core']->blog) || $GLOBALS['core']->blog->settings->system->jquery_migrate_mute) { 
    485490               $mute_or_no .= 
    486491                    '<script type="text/javascript">'."\n". 
     
    584589          self::jsVar('dotclear.msg.xhtml_not_valid', 
    585590               __('There are XHTML markup errors.')). 
     591          self::jsVar('dotclear.msg.warning_validate_no_save_content', 
     592               __('Attention: an audit of a content not yet registered.')). 
    586593          self::jsVar('dotclear.msg.confirm_change_post_format', 
    587594               __('You have unsaved changes. Switch post format will loose these changes. Proceed anyway?')). 
     
    810817 
    811818     return 
    812      '<link rel="stylesheet" type="text/css" href="style/jsUpload/style.css" />'."\n". 
    813  
    814819     '<script type="text/javascript">'."\n". 
    815820     "//<![CDATA[\n". 
  • inc/core/class.dc.media.php

    r1718 r1855  
    462462          $this->dir['files'] = $f_res; 
    463463          foreach ($this->dir['dirs'] as $k => $v) { 
    464                $v->media_icon = sprintf($this->icon_img,'folder'); 
     464               $v->media_icon = sprintf($this->icon_img,($v->parent ? 'folder-up' : 'folder')); 
    465465          } 
    466466           
  • inc/prepend.php

    r1719 r1806  
    6464$__autoload['context']                  = dirname(__FILE__).'/public/lib.tpl.context.php'; 
    6565$__autoload['dcUrlHandlers']            = dirname(__FILE__).'/public/lib.urlhandlers.php'; 
     66$__autoload['dcPostsActionsPage']            = dirname(__FILE__).'/admin/actions/class.dcactionposts.php'; 
     67$__autoload['dcActionsPage']            = dirname(__FILE__).'/admin/actions/class.dcaction.php'; 
    6668 
    6769# Clearbricks extensions 
  • locales/fr/help/index.html

    r1799 r1869  
    66<body> 
    77 
    8 <div class="multi-part" id="first-step" title="Prise en main de l'interface"> 
    9 <h3>Personnalisation de l'interface</h3> 
    10 <p></p> 
     8<div class="multi-part legible" id="first-step" title="Premiers pas"> 
     9     <h3>Découverte de l'interface</h3> 
     10     <h4 class="pretty-title">Aides contextuelles</h4> 
     11     <p>Outre les présentes pages d'aide générale, de nombreuses pages de l'administration disposent d'une aide contextuelle. Si javascript est disponible sur votre navigateur, elle se présente sur le côté de la page après avoir cliqué sur le lien <img src="images/menu/help.png" alt="" /> <strong>Aide pour cette page</strong> (en haut à droite) ; si javascript n'est pas activé elle s'affiche en bas de la page concernée.</p> 
     12 
     13     <h4 class="pretty-title">Réglages personnels</h4> 
     14     <p>Le lien vers les réglages de <a href="preferences.php">vos préférences</a> est disponible en haut de toutes les pages d'administration.</p> 
     15     <p><strong>Mon tableau de bord.</strong> Le tableau de bord est l'accueil de votre interface d'administration. Les grandes icônes de la partie centrale permettent un accès rapide aux pages favorites de l'administration. Sous ces icônes, figurent des modules d'information. Lors de votre première installation, les deux modules proposés sont les dernières nouvelles de Dotclear et des liens vers la documentation et le support. Pour organiser vos favoris et vos modules, allez sur l'onglet «&nbsp;Mon tableau de bord&nbsp;».</p> 
     16     <p><strong>Mon profil.</strong> Les deux autres onglets de la page Mes préférences permettent de modifier ou compléter vos informations personnelles.</p> 
     17     <p class="info"><strong>Astuce.</strong> Si le thème que vous utilisez le prévoit (c'est le cas de la plupart d'entre eux), indiquez la même <em>URL du blog</em> dans votre page de profil et dans le formulaire de commentaire sur votre blog pour obtenir une mise en valeur de vos propres commentaires.</p> 
     18     <p><strong>Mes options</strong>. Activez ou désactivez des fonctionnalités selon vos goûts ou votre contexte de navigation.</p> 
     19 
     20     <h4 class="pretty-title">Réglages du blog</h4> 
     21     <p><strong>Paramètres du blog</strong> (section «&nbsp;Blog&nbsp;» du menu). C'est ici que vous pouvez notamment changer le nom du blog, ajuster le fuseau horaire du blog, décider de la présentation des dates…</p> 
     22 
     23     <p><strong>Apparence du blog.</strong> Sélectionnez l'habillage (le <em>thème</em>) du blog. Certains thèmes offrent un configurateur de personnalisation. C'est le cas par exemple de Ductile ou Blowup. Dans ce cas, une fois le thème activé, cliquez sur le bouton "Configurer le thème" pour accéder à ses réglages. Outre les thèmes disponibles lors de l'installation, vous pouvez ajouter d'autres thèmes depuis l'onglet «&nbsp;Ajouter un thème&nbsp;» de cette page. </p> 
     24 
     25     <p><strong>Menu simple.</strong> Si le thème de votre blog a prévu son intégration, le menu principal du blog peut être renseigné sur cette page. Dans la plupart des thèmes il se présente sous forme d'une barre latérale sous l'entête du blog, comme sur Ductile par exemple.</p> 
     26 
     27     <p><strong>Widgets de présentation.</strong> Le menu du blog (souvent une barre latérale à droite ou à gauche du contenu principal) rassemble les widgets enregistrés sur cette page. Après avoir glissé le ou les widgets de votre choix dans leur zone d'accueil, vous pouvez les ouvrir en cliquant sur le triangle et compléter les champs et options.</p> 
     28 
     29     <h4 class="pretty-title">Aide aux grands débutants</h4> 
     30     <p>Si vous n'êtes pas familier avec l'univers des blogs, nous vous recommandons notre documentation (sommaire complet dans l'onglet Documentation de cette page) et les tutoriels qui vous sont spécialement dédiés sur le blog <a href="http://abc.dotaddict.org">abc Dotclear</a>. Vous serez peut-être intéressés par exemple par :</p> 
     31     <ul> 
     32          <li><a href="http://fr.dotclear.org/documentation/2.0/usage/beginners">Mon premier billet pas à pas</a></li> 
     33          <li><a href="http://abc.dotaddict.org/post/2009/07/08/13-Ma-premiere-sauvegarde">Ma première sauvegarde</a></li> 
     34          <li><a href="http://abc.dotaddict.org/post/1970/01/01/Choisir-un-theme">Choisir un thème</a></li> 
     35     </ul> 
    1136</div> 
    1237 
    13 <div class="multi-part" id="aides-pages" title="Ades contextuelles"> 
    14 <h3>Les aides contextuelles</h3> 
     38<div class="multi-part" id="doc" title="Documentation et tutoriels"> 
     39     <h3>Documentation et tutoriels en ligne</h3> 
     40     <div class="three-boxes first-child"> 
     41          <h4>Alimentation du blog</h4> 
     42               <ul><li><a href="/documentation/2.0/usage/entries">Billets</a><ul><li><a href="/documentation/2.0/usage/entries#creation-et-edition">Création et édition</a></li><li><a href="/documentation/2.0/usage/entries#informations-du-billet">Informations du billet</a></li><li><a href="/documentation/2.0/usage/entries#actions-sur-le-billet">Actions sur le billet</a></li><li><a href="/documentation/2.0/usage/entries#commentaires-et-retroliens-d-un-billet">Commentaires et rétroliens d&#039;un billet</a></li><li><a href="/documentation/2.0/usage/entries#traitement-par-lots-des-billets">Traitement par lots des billets</a></li></ul></li><li><a href="/documentation/2.0/usage/comments-trackbacks">Commentaires et rétroliens</a><ul><li><a href="/documentation/2.0/usage/comments-trackbacks#suivi">Suivi</a></li><li><a href="/documentation/2.0/usage/comments-trackbacks#gestion">Gestion</a></li></ul></li><li><a href="/documentation/2.0/usage/categories">Catégories</a><ul><li><a href="/documentation/2.0/usage/categories#creer-une-categorie">Créer une catégorie</a></li><li><a href="/documentation/2.0/usage/categories#editer-une-categorie">Éditer une catégorie</a></li><li><a href="/documentation/2.0/usage/categories#supprimer-une-categorie">Supprimer une catégorie</a></li><li><a href="/documentation/2.0/usage/categories#ordonner-la-liste-des-categories">Ordonner la liste des catégories</a></li></ul></li><li><a href="/documentation/2.0/usage/tags">Mots-clés (Tags)</a><ul><li><a href="/documentation/2.0/usage/tags#ajouter-des-mots-cles">Ajouter des mots-clés</a></li><li><a href="/documentation/2.0/usage/tags#gestion-des-mots-cles">Gestion des mots-clés</a></li><li><a href="/documentation/2.0/usage/tags#supprimer-des-mots-cles">Supprimer des mots-clés</a></li></ul></li><li><a href="/documentation/2.0/usage/media">Médias et pièces jointes</a><ul><li><a href="/documentation/2.0/usage/media#creer-un-sous-repertoire">Créer un sous-répertoire</a></li><li><a href="/documentation/2.0/usage/media#ajouter-des-fichiers">Ajouter des fichiers</a></li><li><a href="/documentation/2.0/usage/media#telecharger-une-archive-zip-du-dossier-courant">Télécharger une archive zip du dossier courant</a></li><li><a href="/documentation/2.0/usage/media#modifier-ou-completer-les-informations-d-un-fichier">Modifier ou compléter les informations d&#039;un fichier</a></li><li><a href="/documentation/2.0/usage/media#ajout-direct-de-fichiers">Ajout direct de fichiers</a></li><li><a href="/documentation/2.0/usage/media#types-de-fichier-particuliers">Types de fichier particuliers</a></li><li><a href="/documentation/2.0/usage/media#pieces-jointes">Pièces jointes</a></li></ul></li><li><a href="/documentation/2.0/usage/widgets">Contenu du menu du blog (widgets)</a><ul><li><a href="/documentation/2.0/usage/widgets#bandeau-de-navigation-bandeau-d-extra">Bandeau de navigation, bandeau d&#039;extra</a></li><li><a href="/documentation/2.0/usage/widgets#les-widgets-par-defaut">Les widgets par défaut</a></li><li><a href="/documentation/2.0/usage/widgets#ajoutersupprimer-un-widget">Ajouter/Supprimer un widget</a></li><li><a href="/documentation/2.0/usage/widgets#parametrage-des-widgets">Paramétrage des widgets</a></li></ul></li><li><a href="/documentation/2.0/usage/blogroll">Blogroll</a><ul><li><a href="/documentation/2.0/usage/blogroll#liste-des-liens">Liste des liens</a></li><li><a href="/documentation/2.0/usage/blogroll#ajouter-un-lien">Ajouter un lien</a></li><li><a href="/documentation/2.0/usage/blogroll#ajouter-une-categorie">Ajouter une catégorie</a></li><li><a href="/documentation/2.0/usage/blogroll#xfn">XFN</a></li><li><a href="/documentation/2.0/usage/blogroll#importer-depuis-un-fichier-opml-ou-xbel">Importer depuis un fichier OPML ou XBEL</a></li></ul></li></ul> 
     43     </div> 
     44     <div class="three-boxes"> 
     45          <h4>Paramétrage et personnalisations</h4> 
     46          <h4>Annexes utilisation</h4> 
     47     </div> 
     48     <div class="three-boxes last-child"> 
     49          <h4>Administration, gestion et maintenance</h4> 
     50     </div> 
    1551</div> 
    1652 
    17 <div class="multi-part" id="doc" title="Documentation"> 
    18 <h3>La documentation en ligne</h3> 
    19 </div> 
     53     <div class="multi-part" id="a11y-ergo" title="Accessibilité et ergonomie"> 
     54     <h3>Accessibilité et ergonomie</h3> 
     55     </div> 
    2056 
    21 <div class="multi-part" id="guide-dev" title="Pour les développeurs"> 
    22 <h3>Développeurs : charte de l'administration</h3> 
    23 <ul> 
    24      <li><a href="_charte.html">Charte des pages de l'administration</a></li> 
    25 </ul> 
    26 </div> 
     57     <div class="multi-part" id="guide-dev" title="Pour les développeurs"> 
     58     <h3>Développeurs : charte de l'administration</h3> 
     59     <ul> 
     60          <li><a href="_charte.php">Charte des pages de l'administration</a></li> 
     61     </ul> 
     62     </div> 
    2763 
    2864</body> 
  • locales/fr/main.po

    r1793 r1868  
    281281msgstr "Format d'URL des nouveaux billets :" 
    282282 
    283 msgid "Note title HTML tag:" 
    284 msgstr "Balise HTML pour le titre des notes :" 
     283msgid "HTML tag for the title of the notes on the blog:" 
     284msgstr "Balise HTML pour le titre des notes sur le blog :" 
    285285 
    286286msgid "Note" 
     
    359359 
    360360msgid "Generated image sizes (in pixels)" 
    361 msgstr "Tailles des images générées (en pixels)" 
     361msgstr "Tailles des miniatures générées (largeur en pixels)" 
    362362 
    363363msgid "Thumbnails:" 
     
    373373msgstr "Titres des images insérées" 
    374374 
    375 msgid "This defines image tag title when you insert it in a post from the media manager. It is retrieved from the picture's metadata." 
    376 msgstr "Ceci définit le titre de la balise d'une image insérée depuis la médiathèque. Les informations sont obtenues depuis les métadonnées de l'image." 
     375msgid "It is retrieved from the picture's metadata." 
     376msgstr "Ces informations sont obtenues depuis les métadonnées de l'image." 
    377377 
    378378msgid "Use original media date if possible" 
    379 msgstr "Utiliser la date originale du média si possible" 
     379msgstr "Utiliser la date originelle du média si possible" 
    380380 
    381381msgid "Search engines robots policy" 
     
    13591359msgstr "En tant qu'image uniquement" 
    13601360 
    1361 msgid "As a link to original image" 
     1361msgid "As a link to the original image" 
    13621362msgstr "En tant que lien vers l'image originale" 
     1363 
     1364msgid "Insert a link to the original image" 
     1365msgstr "Insérer le lien vers l'image originale" 
    13631366 
    13641367msgid "MP3 disposition" 
     
    23252328msgstr "Il y a des erreurs XHTML." 
    23262329 
     2330msgid "Attention: an audit of a content not yet registered." 
     2331msgstr "Attention : la vérification porte sur un contenu non encore enregistré." 
     2332 
    23272333msgid "You have unsaved changes. Switch post format will loose these changes. Proceed anyway?" 
    23282334msgstr "Vous avez des modifications non sauvegardées. Changer de format vous fera perdre ces modifications. Continuer ?" 
     
    33663372msgid "Dashboard icons" 
    33673373msgstr "Icônes du tableau de bord" 
     3374 
     3375msgid "Go to dashboard" 
     3376msgstr "Tableau de bord" 
     3377 
     3378msgid "Size of inserted image:" 
     3379msgstr "Taille de l'image insérée :" 
     3380 
     3381msgid "Hide main menu" 
     3382msgstr "Masquer le menu principal" 
     3383 
     3384msgid "Show main menu" 
     3385msgstr "Afficher le menu principal" 
  • plugins/importExport/inc/class.dc.export.flat.php

    r1559 r1857  
    196196           
    197197          '<p><label for="file_name">'.__('File name:').'</label>'. 
    198           form::field(array('file_name','file_name'),50,255,date('Y-m-d-').html::escapeHTML($this->core->blog->id.'-backup.txt')). 
     198          form::field(array('file_name','file_name'),50,255,date('Y-m-d-H-i-').html::escapeHTML($this->core->blog->id.'-backup.txt')). 
    199199          '</p>'. 
    200200           
     
    221221                
    222222               '<p><label for="file_name2">'.__('File name:').'</label>'. 
    223                form::field(array('file_name','file_name2'),50,255,date('Y-m-d-').'dotclear-backup.txt'). 
     223               form::field(array('file_name','file_name2'),50,255,date('Y-m-d-H-i-').'dotclear-backup.txt'). 
    224224               '</p>'. 
    225225                
  • plugins/pages/page.php

    r1741 r1833  
    406406                         '<p>'.form::combo('post_format',$formaters_combo,$post_format,'maximal'). 
    407407                         '</p>'. 
    408                          '<p>'.($post_id && $post_format != 'xhtml' ?  
    409                          '<a id="convert-xhtml" class="button maximal" href="post.php?id='.$post_id.'&amp;xconv=1">'. 
    410                          __('Convert to XHTML').'</a>' : '').'</p></div>')), 
     408                         '<p class="format_control control_wiki">'. 
     409                         '<a id="convert-xhtml" class="button'.($post_id && $post_format != 'wiki' ? ' hide' : '').'" href="post.php?id='.$post_id.'&amp;xconv=1">'. 
     410                         __('Convert to XHTML').'</a></p></div>')), 
    411411          'metas-box' => array( 
    412412               'title' => __('Ordering'), 
     
    473473           
    474474          "post_content" => 
    475                '<p class="area"><label class="required" '. 
     475               '<p class="area" id="content-area"><label class="required" '. 
    476476               'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '. 
    477477               form::textarea('post_content',50,$core->auth->getOption('edit_size'),html::escapeHTML($post_content)). 
     
    494494     echo '<div id="entry-wrapper">'; 
    495495     echo '<div id="entry-content"><div class="constrained">'; 
     496     echo '<h3 class="out-of-screen-if-js">'.__('Edit page').'</h3>'; 
    496497      
    497498      
  • plugins/pings/lib.pings.php

    r1398 r1818  
    6565               $item .= 
    6666               '<p class="ping-services"><label for="pings_do-'.$i.'" class="classic">'. 
    67                form::checkbox(array('pings_do[]','pings_do-'.$i),html::escapeHTML($v),in_array($v,$pings_do)).' '. 
     67               form::checkbox(array('pings_do[]','pings_do-'.$i),html::escapeHTML($v),in_array($v,$pings_do), 'check-ping-services').' '. 
    6868               html::escapeHTML($k).'</label></p>'; 
    6969               $i++; 
  • plugins/pings/post.js

    r1699 r1818  
    44               p = $('<p></p>'); 
    55               p.addClass('ping-services'); 
    6                a = $('<a href="#"></a>'); 
    7                a.text(dotclear.msg.check_all); 
    8                a.click(function() { 
    9                     $('p.ping-services input[type="checkbox"]').attr('checked','checked'); 
    10                     return false; 
    11                }); 
    12                $('p.ping-services:last').after(p.append(a)); 
     6               $('p.ping-services:last').after(p); 
     7               dotclear.checkboxesHelpers($('p.ping-services:last').get(0), $('.check-ping-services')); 
    138          } 
    149          $('h5.ping-services').toggleWithLegend($('p.ping-services'),{ 
  • plugins/tags/_admin.php

    r1609 r1874  
    236236               )). 
    237237               '<form action="'.$form_uri.'" method="post">'. 
    238                $hidden_fields->getEntries(). 
     238               //$hidden_fields->getEntries(). 
    239239               '<div><label for="new_tags" class="area">'.__('Tags to add:').'</label> '. 
    240240               form::textarea('new_tags',60,3). 
    241241               '</div>'. 
    242                $hidden_fields->getHidden(). 
     242               $hidden_fields. 
    243243               $core->formNonce(). 
    244244               form::hidden(array('action'),'tags'). 
     
    321321           
    322322          echo 
    323           '<p><label for="user_tag_list_format">'.__('Tags list format:').'</label> '. 
     323          '<p><label for="user_tag_list_format" class="classic">'.__('Tags list format:').'</label> '. 
    324324          form::combo('user_tag_list_format',$combo,$value). 
    325325          '</p>'; 
  • plugins/tags/style.css

    r0 r1820  
    9999     color: white; 
    100100} 
     101#post_meta_input { 
     102    margin: 0 0.5em 0 0; 
     103    width: 13em; 
     104} 
     105#post_meta_input:focus { 
     106     -moz-box-sizing: content-box; 
     107} 
     108#tags-edit input[type=button] { 
     109     width: 3.5em; 
     110} 
  • tests/functional/fixtures/form_media_disabled.html

    r1724 r1854  
    1414      <p> 
    1515     <label for="upfile"><span class="add-label one-file">Choose file</span></label> 
    16      <button class="button add">Choose files</button> 
     16     <button class="button choose_files">Choose files</button> 
    1717     <input type="file" id="upfile" name="upfile[]" data-url="media.php?popup=0&amp;post_id=" /> 
    1818      </p> 
  • tests/functional/fixtures/form_media_enabled.html

    r1724 r1854  
    1414      <p> 
    1515     <label for="upfile"><span class="add-label one-file">Choose file</span></label> 
    16      <button class="button add">Choose files</button> 
     16     <button class="button choose_files">Choose files</button> 
    1717     <input type="file" id="upfile" name="upfile[]" multiple="mutiple" data-url="media.php?popup=0&amp;post_id=" /> 
    1818      </p> 
Note: See TracChangeset for help on using the changeset viewer.

Sites map