Dotclear

Changeset 1999:a0ed28c2da5a


Ignore:
Timestamp:
09/22/13 11:38:22 (12 years ago)
Author:
Dsls
Branch:
default
Parents:
1998:dae906985ebb (diff), 1905:d72d24250853 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Fusion avec actionsreloaded

Files:
22 edited

Legend:

Unmodified
Added
Removed
  • admin/comments.php

    r1905 r1999  
    6666$show_filters = false; 
    6767 
    68 $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; 
     68$page = !empty($_GET['page']) ? max(1,(integer) $_GET['page']) : 1; 
    6969$nb_per_page =  30; 
    7070 
  • admin/comments.php

    r1912 r1999  
    131131$combo_action = array(); 
    132132$default = ''; 
    133 if ($core->auth->check('publish,contentadmin',$core->blog->id)) 
     133if ($core->auth->check('delete,contentadmin',$core->blog->id) && $status == -2) 
    134134{ 
    135      $combo_action[__('Publish')] = 'publish'; 
    136      $combo_action[__('Unpublish')] = 'unpublish'; 
    137      $combo_action[__('Mark as pending')] = 'pending'; 
    138      $combo_action[__('Mark as junk')] = 'junk'; 
    139 } 
    140 if ($core->auth->check('delete,contentadmin',$core->blog->id)) 
    141 { 
    142      $combo_action[__('Delete')] = 'delete'; 
    143      if ($status == -2) { 
    144           $default = 'delete'; 
    145      } 
    146 } 
    147  
    148 # --BEHAVIOR-- adminCommentsActionsCombo 
    149 $core->callBehavior('adminCommentsActionsCombo',array(&$combo_action)); 
     135     $default = 'delete'; 
     136} 
     137 
     138$comments_actions_page = new dcCommentsActionsPage($core,'comments.php'); 
     139 
     140$comments_actions_page->process(); 
    150141 
    151142/* Get comments 
     
    165156     $starting_script .= dcPage::jsLoad('js/filter-controls.js'); 
    166157} 
    167 # --BEHAVIOR-- adminCommentsHeaders 
    168 $starting_script .= $core->callBehavior('adminCommentsHeaders'); 
    169158 
    170159dcPage::open(__('Comments and trackbacks'),$starting_script, 
     
    175164          )) 
    176165); 
     166if (!empty($_GET['upd'])) { 
     167     dcPage::success(__('Selected comments have been successfully updated.')); 
     168} elseif (!empty($_GET['del'])) { 
     169     dcPage::success(__('Selected comments have been successfully deleted.')); 
     170} 
    177171 
    178172if (!$core->error->flag()) 
     
    254248     # Show comments 
    255249     $comment_list->display($page,$nb_per_page, 
    256      '<form action="comments_actions.php" method="post" id="form-comments">'. 
     250     '<form action="comments.php" method="post" id="form-comments">'. 
    257251      
    258252     '%s'. 
     
    262256      
    263257     '<p class="col right"><label for="action" class="classic">'.__('Selected comments action:').'</label> '. 
    264      form::combo('action',$combo_action,$default,'','','','title="'.__('Actions').'"'). 
     258     form::combo('action',$comments_actions_page->getCombo(),$default,'','','','title="'.__('Actions').'"'). 
    265259     $core->formNonce(). 
    266260     '<input type="submit" value="'.__('ok').'" /></p>'. 
  • admin/posts.php

    r1806 r1999  
    121121$show_filters = false; 
    122122 
    123 $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; 
     123$page = !empty($_GET['page']) ? max(1,(integer) $_GET['page']) : 1; 
    124124$nb_per_page =  30; 
    125125 
  • admin/posts.php

    r1912 r1999  
    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

    r1964 r1999  
    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 language:').'</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?> 
  • inc/admin/lib.pager.php

    r1905 r1999  
    1212if (!defined('DC_RC_PATH')) { return; } 
    1313 
     14class dcPager extends pager 
     15{ 
     16     protected $form_action; 
     17     protected $form_hidden; 
     18      
     19     protected function getLink($li_class,$href,$img_src,$img_src_nolink,$img_alt,$enable_link) { 
     20          if ($enable_link) { 
     21               $formatter = '<li class="%s btn"><a href="%s"><img src="%s" alt="%s"/></a><span class="hidden">%s</span></li>'; 
     22               return sprintf ($formatter, 
     23                    $li_class,$href,$img_src,$img_alt,$img_alt); 
     24          } else { 
     25               $formatter = '<li class="%s no-link btn"><img src="%s" alt="%s"/></li>'; 
     26               return sprintf ($formatter, 
     27                    $li_class,$img_src_nolink,$img_alt,$img_alt); 
     28          } 
     29     } 
     30     public function setURL() { 
     31          parent::setURL(); 
     32          $url = parse_url($_SERVER['REQUEST_URI']); 
     33          if (isset($url['query'])) { 
     34               parse_str($url['query'],$args); 
     35          } else { 
     36               $args=array(); 
     37          } 
     38          # Removing session information 
     39          if (session_id()) 
     40          { 
     41               if (isset($args[session_name()])) 
     42                    unset($args[session_name()]); 
     43          } 
     44          if (isset($args[$this->var_page])) { 
     45               unset($args[$this->var_page]); 
     46          } 
     47          if (isset($args['ok'])) { 
     48               unset($args['ok']); 
     49          } 
     50          $this->form_hidden = ''; 
     51          foreach ($args as $k=>$v) { 
     52               if (is_array($v)) { 
     53                    foreach ($v as $k2=>$v2) { 
     54                         $this->form_hidden .= form::hidden(array($k.'[]'),$v2); 
     55                    } 
     56               } else { 
     57                    $this->form_hidden .= form::hidden(array($k),$v); 
     58               } 
     59          } 
     60          $this->form_action = $url['path']; 
     61     } 
     62      
     63     /** 
     64     * Pager Links 
     65     * 
     66     * Returns pager links 
     67     * 
     68     * @return string 
     69     */ 
     70     public function getLinks() 
     71     { 
     72          $this->setURL(); 
     73          $htmlFirst = $this->getLink( 
     74               "first", 
     75               sprintf($this->page_url,1), 
     76               "images/pagination/first.png", 
     77               "images/pagination/no-first.png", 
     78               __('First page'), 
     79               ($this->env > 1) 
     80          ); 
     81          $htmlPrev = $this->getLink( 
     82               "prev", 
     83               sprintf($this->page_url,$this->env-1), 
     84               "images/pagination/previous.png", 
     85               "images/pagination/no-previous.png", 
     86               __('Previous page'), 
     87               ($this->env > 1) 
     88          ); 
     89          $htmlNext = $this->getLink( 
     90               "next", 
     91               sprintf($this->page_url,$this->env+1), 
     92               "images/pagination/next.png", 
     93               "images/pagination/no-next.png", 
     94               __('Next page'), 
     95               ($this->env < $this->nb_pages) 
     96          ); 
     97          $htmlLast = $this->getLink( 
     98               "last", 
     99               sprintf($this->page_url,$this->nb_pages), 
     100               "images/pagination/last.png", 
     101               "images/pagination/no-last.png", 
     102               __('Last page'), 
     103               ($this->env < $this->nb_pages) 
     104          ); 
     105          $htmlCurrent =  
     106               '<li class="active"><strong>'. 
     107               sprintf(__('Page %s / %s'),$this->env,$this->nb_pages). 
     108               '</strong></li>'; 
     109                
     110          $htmlDirect =  
     111               ($this->nb_pages > 1 ? 
     112                    sprintf('<li class="direct-access">'.__('Direct access page %s'), 
     113                         form::field(array('page'),3,10)). 
     114                    '<input type="submit" value="'.__('ok').'" class="reset" '. 
     115                    'name="ok" />'.$this->form_hidden.'</li>' : ''); 
     116           
     117          $res =     
     118               '<form action="'.$this->form_action.'" method="get">'. 
     119               '<div class="pager"><ul>'. 
     120               $htmlFirst. 
     121               $htmlPrev. 
     122               $htmlCurrent. 
     123               $htmlNext. 
     124               $htmlLast. 
     125               $htmlDirect. 
     126               '</ul>'. 
     127               '</div>'. 
     128               '</form>' 
     129          ; 
     130           
     131          return $this->nb_elements > 0 ? $res : ''; 
     132     } 
     133} 
     134 
    14135class adminGenericList 
    15136{ 
     
    38159          else 
    39160          { 
    40                $pager = new pager($page,$this->rs_count,$nb_per_page,10); 
    41                $pager->html_prev = $this->html_prev; 
    42                $pager->html_next = $this->html_next; 
    43                $pager->var_page = 'page'; 
     161               $pager = new dcPager($page,$this->rs_count,$nb_per_page,10); 
    44162               $entries = array(); 
    45163               if (isset($_REQUEST['entries'])) { 
     
    63181               } 
    64182                
    65                echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
     183               echo $pager->getLinks(); 
    66184                
    67185               $blocks = explode('%s',$html_block); 
     
    76194               echo $blocks[1]; 
    77195                
    78                echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
     196               echo $pager->getLinks(); 
    79197          } 
    80198     } 
     
    158276          else 
    159277          { 
    160                $pager = new pager($page,$this->rs_count,$nb_per_page,10); 
    161                $pager->html_prev = $this->html_prev; 
    162                $pager->html_next = $this->html_next; 
    163                $pager->var_page = 'page'; 
     278               $pager = new dcPager($page,$this->rs_count,$nb_per_page,10); 
    164279                
    165280               $html_block = 
     
    175290               } 
    176291                
    177                echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
     292               echo $pager->getLinks(); 
    178293                
    179294               $blocks = explode('%s',$html_block); 
     
    188303               echo $blocks[1]; 
    189304                
    190                echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
     305               echo $pager->getLinks(); 
    191306          } 
    192307     } 
     
    253368          else 
    254369          { 
    255                $pager = new pager($page,$this->rs_count,$nb_per_page,10); 
    256                $pager->html_prev = $this->html_prev; 
    257                $pager->html_next = $this->html_next; 
    258                $pager->var_page = 'page'; 
     370               $pager = new dcPager($page,$this->rs_count,$nb_per_page,10); 
     371                
    259372               $comments = array(); 
    260373               if (isset($_REQUEST['comments'])) { 
     
    276389               } 
    277390                
    278                echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
     391               echo $pager->getLinks(); 
    279392                
    280393               $blocks = explode('%s',$html_block); 
     
    284397               while ($this->rs->fetch()) 
    285398               { 
    286                     echo $this->commentLine(isset($comments[$this->rs->comment_id])); 
     399                    echo $this->commentLine(); 
    287400               } 
    288401                
    289402               echo $blocks[1]; 
    290403                
    291                echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
     404               echo $pager->getLinks(); 
    292405          } 
    293406     } 
     
    341454          $res .= 
    342455          '<td class="nowrap">'. 
    343           form::checkbox(array('comments[]'),$this->rs->comment_id,$checked,'','',0).'</td>'. 
    344           '<td class="nowrap" abbr="'.__('Type and author').'" scope="raw">'. 
     456          form::checkbox(array('comments[]'),$this->rs->comment_id,'','','',0).'</td>'. 
     457          '<td class="nowrap" abbr="'.__('Type and author').'" scope="row">'. 
    345458               '<a href="'.$comment_url.'" title="'.$comment_title.'">'. 
    346459               '<img src="images/edit-mini.png" alt="'.__('Edit').'"/> '. 
     
    369482          else 
    370483          { 
    371                $pager = new pager($page,$this->rs_count,$nb_per_page,10); 
    372                $pager->html_prev = $this->html_prev; 
    373                $pager->html_next = $this->html_next; 
    374                $pager->var_page = 'page'; 
     484               $pager = new dcPager($page,$this->rs_count,$nb_per_page,10); 
    375485                
    376486               $html_block = 
     
    387497               } 
    388498                
    389                echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
     499               echo $pager->getLinks(); 
    390500                
    391501               $blocks = explode('%s',$html_block); 
     
    400510               echo $blocks[1]; 
    401511                
    402                echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
     512               echo $pager->getLinks(); 
    403513          } 
    404514     } 
  • inc/admin/lib.pager.php

    r1998 r1999  
    370370               $pager = new dcPager($page,$this->rs_count,$nb_per_page,10); 
    371371                
     372               $comments = array(); 
     373               if (isset($_REQUEST['comments'])) { 
     374                    foreach ($_REQUEST['comments'] as $v) { 
     375                         $comments[(integer)$v]=true; 
     376                    } 
     377               }               
    372378               $html_block = 
    373379               '<table><caption class="hidden">'.__('Comments and trackbacks list').'</caption><tr>'. 
     
    400406     } 
    401407      
    402      private function commentLine() 
     408     private function commentLine($checked) 
    403409     { 
    404410          global $author, $status, $sortby, $order, $nb_per_page; 
  • inc/prepend.php

    r1905 r1999  
    5959$__autoload['adminCommentList']         = dirname(__FILE__).'/admin/lib.pager.php'; 
    6060$__autoload['adminUserList']            = dirname(__FILE__).'/admin/lib.pager.php'; 
     61$__autoload['dcPager']        = dirname(__FILE__).'/admin/lib.pager.php'; 
    6162$__autoload['dcAdminCombos']            = dirname(__FILE__).'/admin/lib.admincombos.php'; 
    6263 
     
    291292     { 
    292293          if ($l == 'en' || l10n::set(dirname(__FILE__).'/../locales/'.$l.'/main') !== false) { 
     294               l10n::lang($l); 
    293295               break; 
    294296          } 
  • inc/prepend.php

    r1949 r1999  
    6565$__autoload['context']                  = dirname(__FILE__).'/public/lib.tpl.context.php'; 
    6666$__autoload['dcUrlHandlers']            = dirname(__FILE__).'/public/lib.urlhandlers.php'; 
     67$__autoload['dcPostsActionsPage']            = dirname(__FILE__).'/admin/actions/class.dcactionposts.php'; 
     68$__autoload['dcCommentsActionsPage']              = dirname(__FILE__).'/admin/actions/class.dcactioncomments.php'; 
     69$__autoload['dcActionsPage']            = dirname(__FILE__).'/admin/actions/class.dcaction.php'; 
    6770 
    6871# Clearbricks extensions 
  • locales/fr/help/blowupConfig.html

    r1874 r1999  
    1717<p>Si vous manquez d'inspiration vous pouvez consulter&nbsp;:</p> 
    1818<ul> 
    19  <li><a href="http://fr.wikipedia.org/wiki/Liste_De_Couleurs">La liste des codes</a> (Wikipedia)</li> 
    20  <li><a href="http://kuler.adobe.com/">Adobe Kuler</a></li> 
    21  <li><a href="http://colorblender.com/">ColorBlender</a></li> 
    22  <li><a href="http://www.colorcombos.com/">ColorCombos</a></li> 
     19 <li><a href="http://fr.wikipedia.org/wiki/Liste_De_Couleurs">La liste des codes</a> (Wikipedia),</li> 
     20 <li><a href="http://kuler.adobe.com/">Adobe Kuler</a>,</li> 
     21 <li><a href="http://colorblender.com/">ColorBlender</a>,</li> 
     22 <li><a href="http://www.colorcombos.com/">ColorCombos</a>.</li> 
    2323</ul> 
    2424 
     
    5858<p>Vous pouvez ensuite modifier le style prédéfini comme bon vous semble.</p> 
    5959 
    60 <h4>Import / export de configuration</h4> 
     60<h3>Import / export de configuration</h3> 
    6161 
    6262<p>À la fin des options de Blowup, vous pouvez afficher une zone appelée "Import 
  • locales/fr/help/core_blog_pref.html

    r1874 r1999  
    11<html> 
    22<head> 
    3   <title>Préférences du blog</title> 
     3  <title>Paramètres du blog</title> 
    44</head> 
    55 
    66<body> 
    7  
    87<h4>Informations du blog</h4> 
    98<dl> 
     
    1110  <dd>Identifiant unique du blog. Obligatoire, ne peut être modifié que par un 
    1211  super administrateur.</dd> 
    13    
     12 
    1413  <dt>Nom du blog</dt> 
    1514  <dd>Nom du blog, obligatoire. Il peut être modifié à tout moment sans incidence sur 
    1615  le fonctionnement du blog.</dd> 
    17    
     16 
    1817  <dt>URL du blog</dt> 
    1918  <dd>URL complète du blog. Obligatoire, ne peut être modifiée que par un super 
    2019  administrateur.</dd> 
    21    
     20 
    2221  <dt>Méthode de lecture de l'URL</dt> 
    2322  <dd>Définit le mode de lecture de l'URL. PATH_INFO est conseillé, QUERY_STRING 
    2423  doit être utilisé si le premier ne fonctionne pas. En mode PATH_INFO, l'URL du 
    2524  blog doit se terminer par un "/" et en mode QUERY_STRING, par un "?".</dd> 
    26    
     25 
    2726  <dt>État du blog</dt> 
    2827  <dd> 
    2928    <ul> 
    30       <li><strong>en ligne</strong>&nbsp;: blog accessible aux visiteurs</li> 
    31       <li><strong>hors ligne</strong>&nbsp;: blog inaccessible aux visiteurs 
    32       mais les rédacteurs peuvent se connecter</li> 
    33       <li><strong>retiré</strong>&nbsp;: blog inaccessible aux visiteurs 
    34       comme aux rédacteurs, seuls les super-administrateurs peuvent y accéder</li> 
     29      <li><strong>En ligne</strong>&nbsp;: blog accessible aux visiteurs.</li> 
     30      <li><strong>Hors ligne</strong>&nbsp;: blog inaccessible aux visiteurs 
     31      mais les rédacteurs peuvent se connecter.</li> 
     32      <li><strong>Retiré</strong>&nbsp;: blog inaccessible aux visiteurs 
     33      comme aux rédacteurs, seuls les super-administrateurs peuvent y accéder.</li> 
    3534    </ul> 
    3635  </dd> 
    37    
     36 
    3837  <dt>Description du blog</dt> 
    3938  <dd>Texte libre de description du blog. Il s'agit d'un texte simple, sans 
     
    4342<h4>Configuration du blog</h4> 
    4443<dl> 
    45   <dt>Nom de l'éditeur du blog</dt> 
     44  <dt>Nom de l'auteur du blog</dt> 
    4645  <dd>Nom de la personne responsable du contenu du blog. Peut être le propriétaire 
    4746  ou le directeur de publication s'il existe. Cette information sera affichée dans les 
    4847  informations du flux de syndication.</dd> 
    49    
    50   <dt>Note de copyright</dt> 
    51   <dd>Note indiquant les droits de reproduction autorisés pour le blog.</dd> 
    52    
     48 
    5349  <dt>Langue par défaut</dt> 
    5450  <dd>Langue de l'interface du blog. Si cette langue existe parmi les 
    5551  traductions, l'interface sera traduite dans celle-ci, sinon elle apparaîtra 
    5652  en anglais.</dd> 
    57    
     53 
    5854  <dt>Fuseau horaire du blog</dt> 
    5955  <dd>Définit le fuseau horaire qui sera utilisé pour dater les commentaires et 
    6056  trackbacks entrant sur le blog.</dd> 
    6157 
     58  <dt>Note de copyright</dt> 
     59  <dd>Note indiquant les droits de reproduction autorisés pour le blog.</dd> 
     60 
     61  <dt>Format d'URL des nouveaux billets</dt> 
     62  <dd>A rédiger.</dd> 
     63 
     64  <dt>Balise HTML pour le titre des notes</dt> 
     65  <dd>A rédiger.</dd> 
     66 
    6267  <dt>Interface XML/RPC</dt> 
    63   <dd>Permet à un client externe d'interagir avec votre blog via le protocole XML/RPC. À l'activation,  
     68  <dd>Permet à un client externe d'interagir avec votre blog via le protocole XML/RPC. À l'activation, 
    6469  les paramètres nécessaires au réglage du client externe sont affichés.</dd> 
    65      
    66   <dt>Format des dates</dt> 
    67   <dd>Indique le format de la date d'un billet sur le blog. Voir la section 
    68   "formatage des dates" pour plus détails.</dd> 
    69    
    70   <dt>Format des heures</dt> 
    71   <dd>Indique le format de l'heure d'un billet sur le blog. Voir la section 
    72   "formatage des dates" pour plus détails.</dd> 
    73    
     70</dl> 
     71 
     72<h4>Commentaires et rétroliens</h4> 
     73<dl> 
     74  <dt>Accepter les commentaires</dt> 
     75  <dd>Accepter globalement les commentaires sur le blog. Ce paramètre est 
     76  supérieur à celui autorisant ou non les commentaires sur un billet.</dd> 
     77 
     78  <dt>Modérer les commentaires</dt> 
     79  <dd>Si cette option est activée, les commentaires ne seront publiés qu'après 
     80  l'approbation d'un rédacteur.</dd> 
     81 
    7482  <dt>Laisser les commentaires ouverts durant .. jours</dt> 
    7583  <dd>Permet d'indiquer le nombre de jours durant lesquels les commentaires 
    7684  sont possibles sur un billet après sa publication. Aucune valeur laissera 
    7785  les commentaires toujours ouverts.</dd> 
    78    
     86 
     87  <dt>Syntaxe wiki pour les commentaires</dt> 
     88  <dd>Autoriser quelques éléments de la syntaxe wiki dans les commentaires.</dd> 
     89 
     90  <dt>Accepter les rétroliens</dt> 
     91  <dd>Accepter globalement les rétroliens sur le blog. Ce paramètre est 
     92  supérieur à celui autorisant ou non les rétroliens sur un billet.</dd> 
     93 
     94  <dt>Modérer les rétroliens</dt> 
     95  <dd>Si cette option est activée, les rétroliens ne seront publiés qu'après 
     96  l'approbation d'un rédacteur.</dd> 
     97 
    7998  <dt>Laisser les rétroliens ouverts durant .. jours</dt> 
    8099  <dd>Permet d'indiquer le nombre de jours durant lesquels les rétroliens 
    81100  sont possibles sur un billet après sa publication. Aucune valeur laissera 
    82101  les rétroliens toujours ouverts.</dd> 
    83    
    84   <dt>Accepter les commentaires</dt> 
    85   <dd>Accepter globalement les commentaires sur le blog. Ce paramètre est 
    86   supérieur à celui autorisant ou non les commentaires sur un billet.</dd> 
    87    
    88   <dt>Accepter les rétroliens</dt> 
    89   <dd>Accepter globalement les rétroliens sur le blog. Ce paramètre est 
    90   supérieur à celui autorisant ou non les rétroliens sur un billet.</dd> 
    91    
    92   <dt>Modérer les commentaires</dt> 
    93   <dd>Si cette option est activée, les commentaires ne seront publiés qu'après 
    94   l'approbation d'un rédacteur.</dd> 
    95    
    96   <dt>Modérer les rétroliens</dt> 
    97   <dd>Si cette option est activée, les rétroliens ne seront publiés qu'après 
    98   l'approbation d'un rédacteur.</dd> 
    99    
     102 
    100103  <dt>Ajouter la relation "nofollow" aux liens des commentaires et rétroliens</dt> 
    101104  <dd>Ajoute un attribut sur les liens des commentaires et rétroliens indiquant 
     
    103106  est censée permettre de lutter contre le spam mais n'a pas encore vraiment 
    104107  prouvé son efficacité.</dd> 
    105    
    106   <dt>Syntaxe wiki pour les commentaires</dt> 
    107   <dd>Autoriser quelques éléments de la syntaxe wiki dans les commentaires.</dd> 
    108    
     108</dl> 
     109 
     110<h4>Présentation du blog</h4> 
     111<dl> 
     112  <dt>Format des dates</dt> 
     113  <dd>Indique le format de la date d'un billet sur le blog. Voir la section 
     114  "formatage des dates" pour plus détails.</dd> 
     115 
     116  <dt>Format des heures</dt> 
     117  <dd>Indique le format de l'heure d'un billet sur le blog. Voir la section 
     118  "formatage des dates" pour plus détails.</dd> 
     119 
     120  <dt>Afficher des émoticônes dans les billets et commentaires</dt> 
     121  <dd>Remplacer certaines suites de caractères comme :-) ou ;-) par des images.</dd> 
     122 
    109123  <dt>Afficher .. billets par page</dt> 
    110124  <dd>Le nombre donné sera utilisé comme limite d'affichage des billets sur la 
    111125  page d'accueil et la première page de chaque catégorie.</dd> 
    112    
    113   <dt>Afficher des émoticônes dans les billets et commentaires</dt> 
    114   <dd>Remplacer certaines suites de caractères comme :-) ou ;-) par des images.</dd> 
    115    
     126 
    116127  <dt>Afficher .. billets par flux de syndication</dt> 
    117128  <dd>Le nombre donné sera utilisé comme limite d'affichage des billets dans 
    118129  les flux de syndication.</dd> 
    119    
     130 
    120131  <dt>Afficher .. commentaires par flux de syndication</dt> 
    121132  <dd>Le nombre donné sera utilisé comme limite d'affichage des commentaires dans 
    122133  les flux de syndication.</dd> 
    123    
     134 
    124135  <dt>Tronquer le flux de syndication</dt> 
    125136  <dd>Cette option permet de ne fournir qu'un extrait des billets dans les flux 
     
    127138</dl> 
    128139 
     140<h4>Médias et images</h4> 
     141<dl> 
     142  <dt>Tailles des images générées (en pixels)</dt> 
     143  <dd>Lorsque vous ajoutez une image au gestionnaire de médias, d'autres tailles 
     144  sont automatiquement générées. Vous pouvez ajuster ici la dimension du plus 
     145  grand côté de chaque type d'image générée. Rien ou 0 (zéro) indique au 
     146  gestionnaire de médias de ne pas créer la vignette correspondante.</dd> 
     147 
     148  <dt>Titres des images insérées</dt> 
     149  <dd>Ce champ vous permet de définir le format des titres ajoutés automatiquement 
     150  aux balises des images. Le titre est composé à partir d'éléments des métadonnées 
     151  de l'image.</dd> 
     152 
     153  <dt>Attributs par défaut pour l'insertion d'image</dt> 
     154  <dd>A rédiger et détailler.</dd> 
     155</dl> 
     156 
     157<h4>Paramètres d'indexation par les moteurs de recherche</h4> 
     158<p>Indiquez ici si vous souhaitez ou non que les moteurs de recherche indexent 
     159et/ou archivent vos pages. Choisissez la dernière option si vous ne voulez pas 
     160que l'on trouve votre blog par le biais d'un moteur de recherche.</p> 
     161 
     162<h4>Antispam</h4> 
     163<p>Indiquez ici le délai après lequel vous souhaitez que les commentaires 
     164indésirables soient automatiquement supprimés. Un 0 (zéro) signifie "suppression 
     165immédiate", un nombre négatif désactive le mécanisme de suppression.</p> 
     166 
    129167<h4>Formatage des dates</h4> 
    130168<p>Certains champs permettent de formater les dates avec des caractères 
     
    132170 
    133171<ul> 
    134   <li><strong>%a</strong>&nbsp;: nom abrégé du jour de la semaine (local).</li> 
    135   <li><strong>%A</strong>&nbsp;: nom complet du jour de la semaine (local).</li> 
    136   <li><strong>%b</strong>&nbsp;: nom abrégé du mois (local).</li> 
    137   <li><strong>%B</strong>&nbsp;: nom complet du mois (local).</li> 
     172  <li><strong>%a</strong>&nbsp;: nom abrégé du jour de la semaine (local),</li> 
     173  <li><strong>%A</strong>&nbsp;: nom complet du jour de la semaine (local),</li> 
     174  <li><strong>%b</strong>&nbsp;: nom abrégé du mois (local),</li> 
     175  <li><strong>%B</strong>&nbsp;: nom complet du mois (local),</li> 
    138176  <li><strong>%c</strong>&nbsp;: représentation préférée pour les dates et 
    139   heures, en local.</li> 
     177  heures, en local,</li> 
    140178  <li><strong>%C</strong>&nbsp;: numéro de siècle (l'année, divisée par 100 et 
    141   arrondie entre 00 et 99)</li> 
     179  arrondie entre 00 et 99),</li> 
    142180  <li><strong>%d</strong>&nbsp;: jour du mois en numérique (intervalle 01 à 
    143   31)</li> 
    144   <li><strong>%D</strong>&nbsp;: identique à %m/%d/%y</li> 
     181  31),</li> 
     182  <li><strong>%D</strong>&nbsp;: identique à %m/%d/%y,</li> 
    145183  <li><strong>%e</strong>&nbsp;: numéro du jour du mois. Les chiffres sont 
    146   précédés d'un espace (de ' 1' à '31')</li> 
    147   <li><strong>%g</strong>&nbsp;: identique à %G, sur 2 chiffres.</li> 
     184  précédés d'un espace (de ' 1' à '31'),</li> 
     185  <li><strong>%g</strong>&nbsp;: identique à %G, sur 2 chiffres,</li> 
    148186  <li><strong>%G</strong>&nbsp;: L'année sur 4 chiffres correspondant au numéro 
    149187  de semaine (voir %V). Même format et valeur que %Y, excepté que si le numéro 
    150188  de la semaine appartient à l'année précédente ou suivante, l'année courante 
    151   sera utilisé à la place.</li> 
    152   <li><strong>%h</strong>&nbsp;: identique à %b</li> 
     189  sera utilisé à la place,</li> 
     190  <li><strong>%h</strong>&nbsp;: identique à %b,</li> 
    153191  <li><strong>%H</strong>&nbsp;: heure de la journée en numérique, et sur 
    154   24-heures (intervalle de 00 à 23)</li> 
     192  24-heures (intervalle de 00 à 23),</li> 
    155193  <li><strong>%I</strong>&nbsp;: heure de la journée en numérique, et sur 12- 
    156   heures (intervalle 01 à 12)</li> 
     194  heures (intervalle 01 à 12),</li> 
    157195  <li><strong>%j</strong>&nbsp;: jour de l'année, en numérique (intervalle 001 à 
    158   366)</li> 
    159   <li><strong>%m</strong>&nbsp;: mois en numérique (intervalle 1 à 12)</li> 
    160   <li><strong>%M</strong>&nbsp;: minute en numérique</li> 
    161   <li><strong>%n</strong>&nbsp;: newline character</li> 
     196  366),</li> 
     197  <li><strong>%m</strong>&nbsp;: mois en numérique (intervalle 1 à 12),</li> 
     198  <li><strong>%M</strong>&nbsp;: minute en numérique,</li> 
     199  <li><strong>%n</strong>&nbsp;: newline character,</li> 
    162200  <li><strong>%p</strong>&nbsp;: soit `am' ou `pm' en fonction de l'heure 
    163   absolue, ou en fonction des valeurs enregistrées en local.</li> 
    164   <li><strong>%r</strong>&nbsp;: l'heure au format a.m. et p.m.</li> 
    165   <li><strong>%R</strong>&nbsp;: l'heure au format 24h</li> 
    166   <li><strong>%S</strong>&nbsp;: secondes en numérique</li> 
    167   <li><strong>%t</strong>&nbsp;: tabulation</li> 
    168   <li><strong>%T</strong>&nbsp;: l'heure actuelle (égal à %H:%M:%S)</li> 
     201  absolue, ou en fonction des valeurs enregistrées en local,</li> 
     202  <li><strong>%r</strong>&nbsp;: l'heure au format a.m. et p.m.,</li> 
     203  <li><strong>%R</strong>&nbsp;: l'heure au format 24h,</li> 
     204  <li><strong>%S</strong>&nbsp;: secondes en numérique,</li> 
     205  <li><strong>%t</strong>&nbsp;: tabulation,</li> 
     206  <li><strong>%T</strong>&nbsp;: l'heure actuelle (égal à %H:%M:%S),</li> 
    169207  <li><strong>%u</strong>&nbsp;: le numéro de jour dans la semaine, de 1 à 7. (1 
    170   représente Lundi)</li> 
     208  représente Lundi),</li> 
    171209  <li><strong>%U</strong>&nbsp;: numéro de semaine dans l'année, en considérant 
    172210  le premier dimanche de l'année comme le premier jour de la première 
    173   semaine.</li> 
     211  semaine,</li> 
    174212  <li><strong>%V</strong>&nbsp;: le numéro de semaine comme défini dans l'ISO 
    175213  8601:1988, sous forme décimale, de 01 à 53. La semaine 1 est la première 
    176214  semaine qui a plus de 4 jours dans l'année courante, et dont Lundi est le 
    177   premier jour. (Utilisez %G ou %g pour les éléments de l'année qui 
    178   correspondent au numéro de la semaine pour le timestamp donné.)</li> 
     215  premier jour (utilisez %G ou %g pour les éléments de l'année qui 
     216  correspondent au numéro de la semaine pour le timestamp donné),</li> 
    179217  <li><strong>%W</strong>&nbsp;: numéro de semaine dans l'année, en considérant 
    180   le premier lundi de l'année comme le premier jour de la première semaine</li> 
     218  le premier lundi de l'année comme le premier jour de la première semaine,</li> 
    181219  <li><strong>%w</strong>&nbsp;: jour de la semaine, numérique, avec Dimanche = 
    182   0</li> 
     220  0,</li> 
    183221  <li><strong>%x</strong>&nbsp;: format préféré de représentation de la date 
    184   sans l'heure</li> 
     222  sans l'heure,</li> 
    185223  <li><strong>%X</strong>&nbsp;: format préféré de représentation de l'heure 
    186   sans la date</li> 
     224  sans la date,</li> 
    187225  <li><strong>%y</strong>&nbsp;: l'année, numérique, sur deux chiffres (de 00 à 
    188   99)</li> 
    189   <li><strong>%Y</strong>&nbsp;: l'année, numérique, sur quatre chiffres</li> 
     226  99),</li> 
     227  <li><strong>%Y</strong>&nbsp;: l'année, numérique, sur quatre chiffres,</li> 
    190228  <li><strong>%Z ou %z</strong>&nbsp;: fuseau horaire, ou nom ou 
    191   abréviation</li> 
    192   <li><strong>%%</strong>&nbsp;: un caractère `%' littéral</li> 
     229  abréviation,</li> 
     230  <li><strong>%%</strong>&nbsp;: un caractère `%' littéral.</li> 
    193231</ul> 
     232 
     233<h4>Utilisateurs de ce blog</h4> 
     234<p>Liste les utilisateurs de ce blog, ainsi que leurs permissions.</p> 
    194235 
    195236</body> 
  • locales/fr/help/core_categories.html

    r1874 r1999  
    55 
    66<body> 
    7 <h4>Liste des categories</h4> 
     7<h4>Liste des catégories</h4> 
    88<dl> 
    9   <dt>Créer une nouvelle catégorie</dt> 
    10   <dd>Choisissez le nom que vous souhaitez donner à votre nouvelle catégorie 
    11   puis cliquer sur Enregistrer pour valider sa création. Vous pouvez choisir  
    12   sa catégorie parente ou la laisser au premier niveau. Pour modifier la catégorie,  
    13   cliquez sur son nom dans la liste.</dd> 
    14    
    159  <dt>Supprimer une catégorie</dt> 
    16   <dd>Choisissez la catégorie que vous voulez supprimer et cliquez sur ok. 
     10  <dd>Choisissez la catégorie que vous voulez supprimer et cliquez sur ok.<br /> 
    1711  Une catégorie ne peut être supprimée que si elle ne contient aucun billet.</dd> 
    1812   
    1913  <dt>Réordonner les catégories</dt> 
    20   <dd>Utilisez cette option pour placer toutes les catégories au même niveau. 
    21   Si vous voulez modifier l'ordre des catégories plus précisément, cliquez sur le nom de chacune d'entre elles  
    22   et choisissez sa catégorie parente ou sa position par rapport à ses voisines.</dd> 
    23 </dl> 
    24  
    25 <h4>Modifier une catégorie</h4> 
    26 <dl> 
    27   <dt>Titre</dt> 
    28   <dd>Choisissez le nom que vous souhaitez donner à votre nouvelle catégorie 
    29   puis cliquer sur Enregistrer pour valider sa création.</dd> 
    30    
    31   <dt>URL</dt> 
    32   <dd>DotClear crée une url par défaut de la catégorie, qui sera ainsi 
    33   accessible avec un chemin de la forme 
    34   <strong>http://monblog.tld/category/Ma-categorie</strong>. En cliquant sur le 
    35   petit verrou situé à la droite, vous pouvez la modifier comme il vous 
    36   plaira.</dd> 
    37    
    38   <dt>Description</dt> 
    39   <dd>Le contenu de ce champ de description sera affiché lors de la sélection 
    40   d'une catégorie dans le blog. Vous pouvez le remplir avec toute forme de 
    41   contenu (paragraphes, listes, etc.) Le format du texte de la description est 
    42   HTML.</dd> 
    43    
    44   <dt>Déplacer cette catégorie</dt> 
    45   <dd>Vous pouvez déplacer la catégorie dans n'importe quelle autre, qui deviendra sa parente.  
    46   Vous pouvez aussi spécifier sa position par rapport à ses voisines en la plaçant avant ou après l'une d'elles.</dd> 
     14  <dd>Utilisez cette option pour placer toutes les catégories au même niveau.<br /> 
     15  Si vous voulez modifier l'ordre des catégories plus précisément, cliquez sur 
     16  le nom de chacune d'entre elles et choisissez sa catégorie parente ou sa 
     17  position par rapport à ses voisines.</dd> 
    4718</dl> 
    4819 
  • locales/fr/help/core_comments.html

    r1874 r1999  
    11<html> 
    22<head> 
    3   <title>Commentaires</title> 
     3  <title>Commentaires et rétroliens</title> 
    44</head> 
    55 
    66<body> 
    7 <h4>Filtres de la liste des commentaires</h4> 
     7<h4>Filtres de la liste des commentaires et rétroliens</h4> 
    88<dl> 
    9   <dt>Type :</dt> 
    10   <dd>Aucun ou commentaires ou rétroliens.</dd> 
     9  <dt>Type</dt> 
     10  <dd>Aucun ou commentaire ou rétrolien.</dd> 
    1111   
    12   <dt>État :</dt> 
     12  <dt>État</dt> 
    1313  <dd><ul> 
    14     <li><strong>indésirable</strong> : reconnu comme spam ;</li> 
    15     <li><strong>en attente</strong> : en attente de modération ;</li> 
    16     <li><strong>non publié</strong> : hors ligne ;</li> 
    17     <li><strong>publié</strong> : en ligne.</li> 
     14    <li><strong>Indésirable</strong>&nbsp;: reconnu comme spam.</li> 
     15    <li><strong>En attente</strong>&nbsp;: en attente de modération.</li> 
     16    <li><strong>Non publié</strong>&nbsp;: hors ligne,</li> 
     17    <li><strong>Publié</strong>&nbsp;: en ligne.</li> 
    1818  </ul></dd> 
    19    
    20   <dt>Trier par :</dt> 
    21   <dd>Choisir : date, ou titre du billet, ou auteur ou état, puis indiquez si vous 
    22   souhaitez que les résultats s'affichent par ordre croissant ou décroissant.</dd> 
    23    
    24   <dt>Trier</dt> 
    25   <dd>Indique l'ordre dans lequel on souhaite effectuer le tri.</dd> 
    26    
    27   <dt>Auteur du commentaire.</dt> 
     19 
     20  <dt>Auteur du commentaire</dt> 
    2821  <dd>Recherche indifféremment avec des minuscules ou majuscules. On peut chercher 
    2922  sur une partie du nom en utilisant le caractère joker 
    3023  <strong>*</strong>.</dd> 
     24 
     25  <dt>Adresse IP</dt> 
     26  <dd>On peut chercher sur une partie de l'adresse IP en utilisant le caractère joker 
     27  <strong>*</strong>.</dd> 
    3128   
    32   <dt>Commentaires par page :</dt> 
     29  <dt>Trier par</dt> 
     30  <dd>Choisir&nbsp;: date, ou titre du billet, ou auteur, ou état.</dd> 
     31   
     32  <dt>Ordre</dt> 
     33  <dd>Indique l'ordre dans lequel on souhaite effectuer le tri (décroissant ou croissant).</dd> 
     34   
     35  <dt>Commentaires par page</dt> 
    3336  <dd>Détermine le nombre de commentaires affichés par page de cette liste.</dd> 
    3437</dl> 
    3538 
    36 <h4>Modifier ou ajouter un commentaire</h4> 
    37 <dl> 
    38   <dt>Auteur :</dt> 
    39   <dd>Nom de l'auteur. Ce champ est obligatoire.</dd> 
    40    
    41   <dt>Email :</dt> 
    42   <dd>Adresse mail de l'auteur du commmentaire.</dd> 
    43    
    44   <dt>Site web :</dt> 
    45   <dd>URL du site ou du blog de l'auteur du commentaire.</dd> 
    46    
    47   <dt>État :</dt> 
    48   <dd><ul> 
    49     <li><strong>indésirable</strong> : reconnu comme spam ;</li> 
    50     <li><strong>en attente</strong> : en attente de modération ;</li> 
    51     <li><strong>non publié</strong> : hors ligne</li> 
    52     <li><strong>publié</strong> : en ligne</li> 
    53   </ul></dd> 
    54    
    55   <dt>Commentaire :</dt> 
    56   <dd>Contenu du commentaire. Ce champ utilise la syntaxe HTML.</dd> 
    57 </dl> 
     39<h4>Actions par lot sur les commentaires et rétroliens</h4> 
     40<p>Il est possible d'effectuer un ensemble d'actions sur plusieurs commentaires 
     41et/ou rétroliens, d'un seul coup. Les actions possibles dépendent des permissions 
     42de l'utilisateur.</p> 
     43 
     44<ul> 
     45  <li><strong>Publier</strong>&nbsp;: mettre le commentaire ou rétrolien en ligne.</li> 
     46  <li><strong>Mettre hors ligne</strong>&nbsp;: mettre le commentaire ou rétrolien hors ligne.</li> 
     47  <li><strong>Mettre en attente</strong>&nbsp;: mettre le commentaire ou rétrolien en attente de publication.</li> 
     48  <li><strong>Mettre en indésirable</strong>&nbsp;: classer le commentaire ou rétrolien comme étant un spam.</li> 
     49  <li><strong>Supprimer</strong>&nbsp;: supprime le commentaire ou rétrolien (cette opération est irréversible).</li> 
     50</ul> 
     51 
    5852</body> 
    5953</html> 
  • locales/fr/help/core_media.html

    r1874 r1999  
    11<html> 
    22<head> 
    3   <title>Médiathèque</title> 
     3  <title>Gestionnaire de media</title> 
    44</head> 
    55 
     
    77 
    88<h4>Liste des médias</h4> 
    9 <p>La page principale de la médiathèque présente la liste des fichiers 
     9<p>La page principale du gestionnaire de médias présente la liste des fichiers 
    1010(médias) disponibles pour le blog en cours d'utilisation.</p> 
    1111 
     
    8585<p>Vous pouvez attacher un fichier à un billet très facilement. Commencez par 
    8686créer un nouveau billet et enregistrez-le. Cliquez alors sur "ajouter un fichier 
    87 au billet" pour ouvrir la médiathèque.</p> 
     87au billet" pour ouvrir le gestionnaire de médias.</p> 
    8888 
    8989<p>En cliquant sur l'icône [+] (Attacher un fichier au billet) vous pourrez 
  • locales/fr/help/core_post.html

    r1874 r1999  
    55 
    66<body> 
    7  
    87<h4>Rédaction du billet</h4> 
    98 
     
    3433  <dd>Permet de choisir l'état du billet après enregistrement&nbsp;: 
    3534    <ul> 
    36     <li><strong>en attente</strong>&nbsp;: en attente de publication.</li> 
    37     <li><strong>programmé</strong>&nbsp;: le billet sera mis en ligne aux date et heure 
     35    <li><strong>En attente</strong>&nbsp;: en attente de publication.</li> 
     36    <li><strong>Programmé</strong>&nbsp;: le billet sera mis en ligne aux date et heure 
    3837    indiquées dans le champ <em>Publié le</em>.</li> 
    39     <li><strong>non publié</strong>&nbsp;: billet hors ligne.</li> 
    40     <li><strong>publié</strong>&nbsp;: billet en ligne.</li> 
     38    <li><strong>Non publié</strong>&nbsp;: billet hors ligne.</li> 
     39    <li><strong>Publié</strong>&nbsp;: billet en ligne.</li> 
    4140    </ul> 
    4241  </dd> 
     
    5756  <dd>Cochez ou décochez la case selon que vous souhaitez permettre ou interdire 
    5857  les commentaires sur le billet en particulier. L'option pour permettre ou 
    59   autoriser de façon générale les commentaires se situe dans le menu Préférences 
     58  autoriser de façon générale les commentaires se situe dans le menu Paramètres 
    6059  du blog.</dd> 
    6160   
     
    6463  blog. Cochez ou décochez la case selon que vous souhaitez permettre ou interdire 
    6564  les rétroliens sur le billet. L'option pour permettre ou autoriser de façon 
    66   générale les rétroliens se situe dans le menu Préférences du blog.</dd> 
     65  générale les rétroliens se situe dans le menu Paramètres du blog.</dd> 
    6766   
    6867  <dt>Billet sélectionné</dt> 
     
    8786  des billets.</dd> 
    8887   
    89   <dt>Pièces jointes</dt> 
    90   <dd>Les pièces jointes sont tous les médias attachés au billet. Le lien 
    91   d'ajout d'une pièce jointe permet de choisir un fichier à ajouter au billet. 
    92   Pensez à sauvegarder votre billet avant de choisir une pièce jointe. Consultez 
    93   l'aide de la médiathèque pour plus de détails.</dd> 
     88  <dt>Annexes</dt> 
     89  <dd>Les annexes sont tous les médias attachés au billet. Le lien 
     90  d'ajout d'une annexee permet de choisir un fichier à ajouter au billet. 
     91  Pensez à sauvegarder votre billet avant de choisir une annexe. Consultez 
     92  l'aide du gestionnaire de médias pour plus de détails.</dd> 
    9493</dl> 
    9594 
    9695<h4>Commentaires</h4> 
    9796<dl> 
    98   <dt>Liste les commentaires</dt> 
    99   <dd>Depuis l'onglets <em>Commentaires</em> vous pouvez lire et changer l'état 
    100   des commentaires de votre billet. Suivant vos permissions, vous pouvez modifier, 
    101   mettre en ligne ou hors ligne, supprimer ou classer comme commentaire 
     97  <dt>Liste les commentaires et rétroliens</dt> 
     98  <dd>Depuis l'onglet <em>Commentaires</em> vous pouvez lire et changer l'état 
     99  des commentaires (et rétroliens) de votre billet. Suivant vos permissions, vous pouvez modifier, 
     100  mettre en ligne ou hors ligne, supprimer ou classer comme commentaire (ou rétrolien) 
    102101  indésirable.</dd> 
    103    
     102 
    104103  <dt>Ajouter un commentaire</dt> 
    105104  <dd>Depuis l'onglet <em>Ajouter un commentaire</em> vous pouvez répondre 
    106105  directement à un commentaire sans passer par votre blog. Cette interface vous 
    107106  permet également de saisir votre commentaire en xhtml, sans limitation. Vous 
    108   devrez remplir les champs de la même manière qu'en modifiant un commentaire</dd> 
     107  devrez remplir les champs de la même manière qu'en modifiant un commentaire.</dd> 
     108</dl> 
     109   
     110<h4>Ajouter un commentaire</h4> 
     111<dl> 
     112  <dt>Nom</dt> 
     113  <dd>Nom de l'auteur. Ce champ est obligatoire.</dd> 
     114 
     115  <dt>Email</dt> 
     116  <dd>Adresse mail de l'auteur du commmentaire.</dd> 
     117 
     118  <dt>Site web</dt> 
     119  <dd>URL du site ou du blog de l'auteur du commentaire.</dd> 
     120 
     121  <dt>Commentaire</dt> 
     122  <dd>Contenu du commentaire. Ce champ utilise la syntaxe xhtml.</dd> 
    109123</dl> 
    110124 
  • locales/fr/help/core_posts.html

    r1874 r1999  
    1717  <dt>État</dt> 
    1818  <dd><ul> 
    19     <li><strong>en attente</strong>&nbsp;: en attente de publication.</li> 
    20     <li><strong>programmé</strong>&nbsp;: le billet sera mis en ligne aux date et heure 
     19    <li><strong>En attente</strong>&nbsp;: en attente de publication.</li> 
     20    <li><strong>Programmé</strong>&nbsp;: le billet sera mis en ligne aux date et heure 
    2121    indiquées dans le champ <em>Publié le</em>.</li> 
    22     <li><strong>non publié</strong>&nbsp;: billet hors ligne.</li> 
    23     <li><strong>publié</strong>&nbsp;: billet en ligne.</li> 
     22    <li><strong>Non publié</strong>&nbsp;: billet hors ligne.</li> 
     23    <li><strong>Publié</strong>&nbsp;: billet en ligne.</li> 
    2424  </ul></dd> 
    2525   
     
    5050 
    5151<ul> 
    52   <li><strong>Publier</strong>&nbsp;: mettre le billet en ligne,</li> 
    53   <li><strong>Hors ligne</strong>&nbsp;: mettre le billet hors ligne,</li> 
     52  <li><strong>Publier</strong>&nbsp;: mettre le billet en ligne.</li> 
     53  <li><strong>Hors ligne</strong>&nbsp;: mettre le billet hors ligne.</li> 
    5454  <li><strong>Programmer</strong>&nbsp;: programmer le billet pour mise en ligne à la date de 
    55   publication,</li> 
    56   <li><strong>En attente</strong>&nbsp;: en attente de publication,</li> 
     55  publication.</li> 
     56  <li><strong>En attente</strong>&nbsp;: en attente de publication.</li> 
    5757  <li><strong>Changer de catégorie</strong>&nbsp;: envoie sur la liste des catégories pour 
    58   changer celle des billets sélectionnés,</li> 
     58  changer celle des billets sélectionnés.</li> 
    5959  <li><strong>Changer l'auteur</strong>&nbsp;: permet de changer l'auteur du billet en indiquant 
    60   l'identifiant de l'utilisateur qui deviendra le nouvel auteur,</li> 
     60  l'identifiant de l'utilisateur qui deviendra le nouvel auteur.</li> 
    6161  <li><strong>Supprimer</strong>&nbsp;: supprime le billet (cette opération est irréversible).</li> 
    6262</ul> 
  • locales/fr/help/core_trackbacks.html

    r1874 r1999  
    77 
    88<h4>Rétroliens</h4> 
    9 <p>Pour envoyer un rétrolien cliquez sur le lien <em>Faire des rétroliens</em>. 
     9<p>Pour faire un rétrolien cliquez sur le lien <em>Faire des rétroliens</em>. 
    1010Si vous ne voyez pas ce lien, vérifiez que votre billet est bien dans l'état 
    1111<em>publié</em>.</p> 
     
    1616  vous souhaitez envoyer un rétrolien.</dd> 
    1717   
    18    
    1918  <dt>Envoyer l'extrait</dt> 
    2019  <dd>Par défaut, ce champ comporte le début de votre billet. C'est ce qui sera 
     
    2221  Vous pouvez modifier le contenu de cette "accroche" en saisissant directement le 
    2322  texte de votre choix dans ce champ.</dd> 
    24    
    2523   
    2624  <dt>Découverte automatique des URLs à rétrolier</dt> 
  • locales/fr/help/core_user.html

    r1874 r1999  
    88<h4>Informations utilisateur</h4> 
    99<dl> 
    10   <dt>Identifiant (login)</dt> 
    11   <dd>Il doit être composé d'au moins 2 caractères (lettres non accentuées, chiffres ou symboles, pas d'espace). Ce champ est obligatoire.</dd> 
     10  <dt>Nom d'utilisateur</dt> 
     11  <dd>Il doit être composé d'au moins 2 caractères (lettres non accentuées, 
     12  chiffres ou symboles, pas d'espace). Ce champ est obligatoire.</dd> 
    1213 
    1314  <dt>Mot de passe</dt> 
    14   <dd>Indiquez deux fois le mot de passe dans les champs <em>Mot de passe</em> et <em>Confirmer le mot de 
    15   passe</em>. Le mot de passe doit être long d'au moins 6 caractères. 
    16   Ces deux champs sont obligatoires.</dd> 
     15  <dd>Indiquez deux fois le mot de passe dans les champs <em>Mot de passe</em> 
     16  et <em>Confirmer le mot de passe</em>. Le mot de passe doit être long d'au 
     17  moins 6 caractères. Ces deux champs sont obligatoires.</dd> 
    1718   
    1819  <dt>Nom, Prénom</dt> 
    1920  <dd>Si le pseudonyme n'est pas renseigné, le nom de l'auteur qui sera affiché 
    20   sera composé des nom et prénom renseignés dans ces champs.</dd> 
     21  sera composé des noms et prénoms renseignés dans ces champs.</dd> 
    2122 
    2223  <dt>Pseudonyme</dt> 
    23   <dd>Vous pouvez choisir ici le pseudonyme sous lequel vos billets seront signés. S'il est renseigné, le pseudonyme se substitue au nom et au prénom.</dd> 
     24  <dd>Vous pouvez choisir ici le pseudonyme sous lequel vos billets seront signés. 
     25  S'il est renseigné, le pseudonyme se substitue au nom et au prénom.</dd> 
    2426 
    2527  <dt>Email</dt> 
    26   <dd>Cette adresse sera utilisée lors de la régénération du mot de passe depuis la fenêtre d'authentification de dotclear.</dd> 
     28  <dd>Cette adresse sera utilisée lors de la régénération du mot de passe depuis 
     29  la fenêtre d'authentification de dotclear.</dd> 
    2730 
    2831  <dt>URL</dt> 
     
    3841  <dd>Le statut par défaut des billets peut être déterminé à&nbsp;: 
    3942    <ul> 
    40       <li><strong>en attente :</strong> le statut de publication n'a pas encore 
     43      <li><strong>En attente&nbsp;:</strong> le statut de publication n'a pas encore 
    4144      été décidé.</li> 
    42       <li><strong>programmé :</strong> le billet sera mis en ligne aux date et 
     45      <li><strong>Programmé&nbsp;:</strong> le billet sera mis en ligne aux date et 
    4346      heure indiquées dans le champ <em>Publié le</em>.</li> 
    44       <li><strong>non publié :</strong> billet hors ligne.</li> 
    45       <li><strong>publié :</strong> billet en ligne.</li> 
     47      <li><strong>Non publié&nbsp;:</strong> billet hors ligne.</li> 
     48      <li><strong>Publié&nbsp;:</strong> billet en ligne.</li> 
    4649    </ul> 
    4750  </dd> 
     
    5861  <dd>Ce choix déterminera l'affichage de l'heure de publication des billets.</dd> 
    5962 
    60   <dt>Changement de mot de passe requis à la prochaine connexion</dt> 
    61   <dd>Cocher cette case permettra au nouvel utilisateur de choisir par lui-même son mot de passe à sa première connexion.</dd> 
     63  <dt>Changement de mot de passe requis pour la connexion</dt> 
     64  <dd>Cocher cette case permettra au nouvel utilisateur de choisir par lui-même 
     65  son mot de passe de connexion.</dd> 
    6266 
    6367  <dt>Super administrateur</dt> 
    64   <dd>Ce choix attribuera toutes les permissions au profil utilisateur sur l'ensemble des blogs de l'installation.</dd> 
     68  <dd>Ce choix attribuera toutes les permissions au profil utilisateur sur 
     69  l'ensemble des blogs de l'installation.</dd> 
    6570</dl> 
    6671 
     
    6873<dl> 
    6974  <dt>Format de la liste des mots-clés</dt> 
    70   <dd>Ce choix permet, dans la page d'édition d'un billet, d'afficher tous les mots-clés 
    71   disponibles ou seulement les plus utilisés.</dd> 
     75  <dd>Ce choix permet, dans la page d'édition d'un billet, d'afficher tous les 
     76  mots-clés disponibles ou seulement les plus utilisés.</dd> 
    7277</dl> 
    7378</body> 
  • locales/fr/help/core_user_pref.html

    r1874 r1999  
    1010  <dt>Nom, Prénom</dt> 
    1111  <dd>Si le pseudonyme n'est pas renseigné, le nom de l'auteur qui sera affiché 
    12   sera composé des noms et prénoms renseignés dans ces champs.</dd> 
     12  sera composé des nom et prénom renseignés dans ces champs.</dd> 
    1313   
    1414  <dt>Pseudonyme</dt> 
    15   <dd>Vous pouvez choisir ici le nom sous lequel vos billets seront signés. S'il est renseigné, le pseudonyme se substitue au nom et au prénom.</dd> 
     15  <dd>Vous pouvez choisir ici le pseudonyme sous lequel vos billets seront signés. 
     16  S'il est renseigné, le pseudonyme se substitue au nom et au prénom.</dd> 
    1617   
    1718  <dt>Email</dt> 
     
    4748  <dd>Le statut par défaut des billets peut être déterminé à&nbsp;: 
    4849    <ul> 
    49       <li><strong>en attente :</strong> le statut de publication n'a pas encore 
     50      <li><strong>En attente&nbsp;:</strong> le statut de publication n'a pas encore 
    5051      été décidé.</li> 
    51       <li><strong>programmé :</strong> le billet sera mis en ligne aux date et 
     52      <li><strong>Programmé&nbsp;:</strong> le billet sera mis en ligne aux date et 
    5253      heure indiquées dans le champ <em>Publié le</em>.</li> 
    53       <li><strong>non publié :</strong> billet hors ligne.</li> 
    54       <li><strong>publié :</strong> billet en ligne.</li> 
     54      <li><strong>Non publié&nbsp;:</strong> billet hors ligne.</li> 
     55      <li><strong>Publié&nbsp;:</strong> billet en ligne.</li> 
    5556    </ul> 
    5657  </dd> 
     
    6364  <dd>Permet d'activer ou non l'éditeur visuel des billets et des catégories.</dd> 
    6465   
    65   <dt>Activer l'interface avancée de la médiathèque</dt> 
    66   <dd>Cette option permet d'envoyer plusieurs fichiers à la fois sur le serveur. 
    67   Nécessite la présence du plugin Flash dans votre navigateur.</dd> 
     66  <dt>Activer l'interface avancée du gestionnaire de médias</dt> 
     67  <dd>Cette option permet d'envoyer plusieurs fichiers à la fois sur le serveur.</dd> 
    6868   
    6969  <dt>Modules du tableau de bord</dt> 
     
    7171  ces blocs sur le tableau de bord.</dd> 
    7272   
    73   <dt>Format de la liste de tags</dt> 
    74   <dd>Ce choix permet, dans la page d'édition d'un billet, d'afficher tous les tags  
     73  <dt>Format de la liste de mots-clés</dt> 
     74  <dd>Ce choix permet, dans la page d'édition d'un billet, d'afficher tous les mots-clés 
    7575  disponibles ou seulement les plus utilisés.</dd> 
    7676</dl> 
     77 
    7778<h4>Mes favoris</h4> 
    7879<dl> 
    7980  <dt>Mes favoris</dt> 
    80   <dd>Cette zone affiche les favoris actuellement utilisés. Ils peuvent être réordonnés  
    81   au moyen de la souris si javascript est activé dans votre navigateur. Sinon, une case  
    82   permet d'attribuer à chaque favori un numéro d'ordre. Lorsque vous avez terminé, n'oubliez  
    83   pas d'enregistrer vos modifications. Vous pouvez aussi sélectionner les favoris à supprimer 
    84   du tableau de bord.</dd> 
     81  <dd>Cette zone affiche les favoris actuellement utilisés. Ils peuvent être 
     82  réordonnés au moyen de la souris si javascript est activé dans votre navigateur. 
     83  Sinon, une case permet d'attribuer à chaque favori un numéro d'ordre. Lorsque 
     84  vous avez terminé, n'oubliez pas d'enregistrer vos modifications. Vous pouvez 
     85  aussi sélectionner les favoris à supprimer du tableau de bord.</dd> 
    8586   
    8687  <dt>Favoris disponibles</dt> 
    8788  <dd>Tous les plugins permettant d'être mis en favoris sont listés ici.  
    88   Cochez les cases correspondantes aux favoris que vous souhaitez utiliser, puis ajoutez-les.</dd> 
     89  Cochez les cases correspondantes aux favoris que vous souhaitez utiliser, puis 
     90  ajoutez-les.</dd> 
    8991</dl> 
    9092</body> 
  • locales/fr/help/themeEditor.html

    r1874 r1999  
    66 
    77<body> 
     8<h4>Éditeur de thème</h4> 
    89<p>L'éditeur de thème vous permet de modifier les fichiers template, les feuilles 
    910de style et les fichiers JavaScript de votre thème en cours d'utilisation.</p> 
     
    1112<p>La liste des fichiers est divisée en trois parties&nbsp;:</p> 
    1213<ul> 
    13   <li>Fichiers template : les templates</li> 
    14   <li>Fichiers CSS : les feuilles de style</li> 
    15   <li>Fichiers JavaScript</li> 
     14  <li>fichiers template&nbsp;: les templates,</li> 
     15  <li>fichiers CSS&nbsp;: les feuilles de style,</li> 
     16  <li>fichiers JavaScript.</li> 
    1617</ul> 
    1718 
     
    3435de template</a>.</p> 
    3536 
    36 <p>Notez que vous pouvez activer la coloration syntaxique dans vos préférences (onglet « Mes options »).</p> 
     37<p>Notez que vous pouvez activer la coloration syntaxique dans vos préférences 
     38(onglet « Mes options »).</p> 
    3739 
    3840</body> 
  • plugins/pages/list.php

    r1903 r1999  
    2525          else 
    2626          { 
    27                $pager = new pager($page,$this->rs_count,$nb_per_page,10); 
    28                $pager->html_prev = $this->html_prev; 
    29                $pager->html_next = $this->html_next; 
    30                $pager->var_page = 'page'; 
     27               $pager = new dcPager($page,$this->rs_count,$nb_per_page,10); 
    3128                
    3229               $html_block = 
     
    4441               } 
    4542                
    46                echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
     43               echo $pager->getLinks(); 
    4744                
    4845               $blocks = explode('%s',$html_block); 
     
    5956               echo $blocks[1]; 
    6057                
    61                echo '<p class="pagination">'.__('Page(s)').' : '.$pager->getLinks().'</p>'; 
     58               echo $pager->getLinks(); 
    6259          } 
    6360     } 
     
    125122); 
    126123 
    127 $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; 
     124$page = !empty($_GET['page']) ? max(1,(integer) $_GET['page']) : 1; 
    128125$nb_per_page =  30; 
    129126 
  • plugins/pages/list.php

    r1926 r1999  
    2828                
    2929               $html_block = 
    30                '<table class="clear"><tr>'. 
    31                '<th colspan="2">'.__('Title').'</th>'. 
     30               '<table class="maximal dragable"><thead><tr>'. 
     31               '<th colspan="3">'.__('Title').'</th>'. 
    3232               '<th>'.__('Date').'</th>'. 
    3333               '<th>'.__('Author').'</th>'. 
     
    3535               '<th>'.__('Trackbacks').'</th>'. 
    3636               '<th>'.__('Status').'</th>'. 
    37                '</tr>%s</table>'; 
     37               '</tr></thead><tbody id="pageslist">%s</tbody></table>'; 
    3838                
    3939               if ($enclose_block) { 
     
    4747               echo $blocks[0]; 
    4848                
     49               $count = 0; 
    4950               while ($this->rs->fetch()) 
    5051               { 
    51                     echo $this->postLine(); 
     52                    echo $this->postLine($count); 
     53                    $count ++; 
    5254               } 
    5355                
     
    5860     } 
    5961      
    60      private function postLine() 
     62     private function postLine($count) 
    6163     { 
    6264          $img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />'; 
     
    9799           
    98100          $res .= 
     101          '<td class="nowrap handle minimal">'.form::field(array('order['.$this->rs->post_id.']'),2,3,$count+1,'position','',false,'title="'.sprintf(__('position of %s'),html::escapeHTML($this->rs->post_title)).'"').'</td>'. 
    99102          '<td class="nowrap">'. 
    100103          form::checkbox(array('entries[]'),$this->rs->post_id,'','','',!$this->rs->isEditable(),'title="'.__('Select this page').'"').'</td>'. 
     
    138141} 
    139142 
     143class dcPagesActionsPage extends dcPostsActionsPage { 
     144 
     145     public function __construct($core,$uri,$redirect_args=array()) { 
     146          parent::__construct($core,$uri,$redirect_args); 
     147          $this->redirect_fields = array(); 
     148 
     149     } 
     150      
     151     public function beginPage($breadcrumb='',$header='') { 
     152          echo '<html><head><title>'.__('Pages').'</title>'. 
     153               dcPage::jsLoad('index.php?pf=pages/list.js'). 
     154               # --BEHAVIOR-- adminBeforePostDelete 
     155               $core->callBehavior('adminPagesActionsHeaders'). 
     156               '<script type="text/javascript">'. 
     157               '//<![CDATA['. 
     158               dcPage::jsVar('dotclear.msg.confirm_delete_posts',__("Are you sure you want to delete selected pages?")). 
     159               '//]]>'. 
     160               '</script></head><body>'; 
     161     } 
     162      
     163     public function endPage() { 
     164          echo '</body></html>'; 
     165     } 
     166     public function loadDefaults() { 
     167          parent::loadDefaults(); 
     168          unset ($this->combos[__('Mark')]); 
     169          unset ($this->actions['selected']); 
     170          unset ($this->actions['unselected']); 
     171          $this->actions['reorder']=array('dcPagesActionsPage','doReorderPages'); 
     172     } 
     173     public function process() { 
     174          // fake action for pages reordering 
     175          if (!empty($this->from['reorder'])) { 
     176               $this->from['action']='reorder'; 
     177          } 
     178          parent::process(); 
     179     } 
     180      
     181     public static function doReorderPages($core, dcPostsActionsPage $ap, $post) { 
     182          foreach($post['order'] as $post_id => $value) { 
     183               if (!$core->auth->check('publish,contentadmin',$core->blog->id)) 
     184                    throw new Exception(__('You are not allowed to change this entry status')); 
     185                
     186               $strReq = "WHERE blog_id = '".$core->con->escape($core->blog->id)."' ". 
     187                         "AND post_id ".$core->con->in($post_id); 
     188                
     189               #If user can only publish, we need to check the post's owner 
     190               if (!$core->auth->check('contentadmin',$core->blog->id)) 
     191                    $strReq .= "AND user_id = '".$core->con->escape($core->auth->userID())."' "; 
     192                
     193               $cur = $core->con->openCursor($core->prefix.'post'); 
     194                
     195               $cur->post_position = (integer) $value-1; 
     196               $cur->post_upddt = date('Y-m-d H:i:s'); 
     197                
     198               $cur->update($strReq); 
     199               $core->blog->triggerBlog(); 
     200                
     201          } 
     202          $ap->redirect(array('reo'=>1),false); 
     203     }     
     204} 
     205 
    140206# Actions combo box 
    141 $combo_action = array(); 
    142 if ($core->auth->check('publish,contentadmin',$core->blog->id)) 
    143 { 
    144      $combo_action[__('Publish')] = 'publish'; 
    145      $combo_action[__('Unpublish')] = 'unpublish'; 
    146      $combo_action[__('Schedule')] = 'schedule'; 
    147      $combo_action[__('Mark as pending')] = 'pending'; 
    148 } 
    149 if ($core->auth->check('admin',$core->blog->id)) { 
    150      $combo_action[__('Change author')] = 'author'; 
    151 } 
    152 if ($core->auth->check('delete,contentadmin',$core->blog->id)) 
    153 { 
    154      $combo_action[__('Delete')] = 'delete'; 
    155 } 
     207 
     208$pages_actions_page = new dcPagesActionsPage($core,'plugin.php',array('p'=>'pages')); 
     209 
     210$pages_actions_page->process(); 
     211 
    156212 
    157213# --BEHAVIOR-- adminPagesActionsCombo 
     
    164220<head> 
    165221  <title><?php echo __('Pages'); ?></title> 
    166   <script type="text/javascript" src="js/_posts_list.js"></script> 
     222  <?php 
     223     echo dcPage::jsLoad('js/jquery/jquery-ui.custom.js'). 
     224          dcPage::jsLoad('index.php?pf=pages/list.js'); 
     225  ?> 
    167226  <script type="text/javascript"> 
    168227  //<![CDATA[ 
     
    180239     )); 
    181240 
     241if (!empty($_GET['upd'])) { 
     242     dcPage::success(__('Selected pages have been successfully updated.')); 
     243} elseif (!empty($_GET['del'])) { 
     244     dcPage::success(__('Selected pages have been successfully deleted.')); 
     245} elseif (!empty($_GET['reo'])) { 
     246     dcPage::success(__('Selected pages have been successfully reordered.')); 
     247} 
    182248echo 
    183249'<p class="top-add"><a class="button add" href="'.$p_url.'&amp;act=page">'.__('New page').'</a></p>'; 
     
    187253     # Show pages 
    188254     $post_list->display($page,$nb_per_page, 
    189      '<form action="posts_actions.php" method="post" id="form-entries">'. 
     255     '<form action="plugin.php" method="post" id="form-entries">'. 
    190256      
    191257     '%s'. 
     
    195261      
    196262     '<p class="col right"><label for="action" class="classic">'.__('Selected pages action:').'</label> '. 
    197      form::combo('action',$combo_action). 
     263     form::combo('action',$pages_actions_page->getCombo()). 
    198264     '<input type="submit" value="'.__('ok').'" /></p>'. 
    199265     form::hidden(array('post_type'),'page'). 
    200      form::hidden(array('redir'),html::escapeHTML($_SERVER['REQUEST_URI'])). 
     266     form::hidden(array('p'),'pages'). 
     267     '</div>'. 
    201268     $core->formNonce(). 
    202      '</div>'. 
     269     '<br class="clear"/>'. 
     270     '<input type="submit" value="'.__('Save categories order').'" name="reorder" class="clear"/>'. 
    203271     '</form>'); 
    204272} 
Note: See TracChangeset for help on using the changeset viewer.

Sites map