Dotclear


Ignore:
Timestamp:
07/13/11 07:28:49 (14 years ago)
Author:
Franck <carnet.franck.paul@…>
Branch:
themes
Message:

Configuration du nb de billets par page pour les contextes home (toute page), catégorie, tag, recherche.

Location:
themes/ductile
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • themes/ductile/_config.php

    r572 r583  
    143143} 
    144144 
     145$ductile_counts_base = array( 
     146     'default' => null, 
     147     'category' => null, 
     148     'tag' => null, 
     149     'search' => null 
     150); 
     151 
     152$ductile_counts = $core->blog->settings->themes->get($core->blog->settings->system->theme.'_entries_counts'); 
     153$ductile_counts = @unserialize($ductile_counts); 
     154if (!is_array($ductile_counts)) { 
     155     $ductile_counts = $ductile_counts_base; 
     156} 
     157 
     158 
    145159$conf_tab = isset($_POST['conf_tab']) ? $_POST['conf_tab'] : 'html'; 
    146160 
     
    182196               } 
    183197                
     198               for ($i = 0; $i < count($_POST['count_nb']); $i++) { 
     199                    $ductile_counts[$_POST['count_ctx'][$i]] = $_POST['count_nb'][$i]; 
     200               } 
     201                
    184202          } 
    185203           
     
    216234          $core->blog->settings->themes->put($core->blog->settings->system->theme.'_stickers',serialize($ductile_stickers)); 
    217235          $core->blog->settings->themes->put($core->blog->settings->system->theme.'_entries_lists',serialize($ductile_lists)); 
     236          $core->blog->settings->themes->put($core->blog->settings->system->theme.'_entries_counts',serialize($ductile_counts)); 
    218237 
    219238          // Blog refresh 
     
    283302echo '</fieldset>'; 
    284303 
    285 echo '<fieldset><legend>'.__('Entries list types').'</legend>'; 
     304echo '<fieldset><legend>'.__('Entries list types and limits').'</legend>'; 
    286305 
    287306echo '<table id="entrieslist">'.'<caption>'.__('Entries lists').'</caption>'. 
     
    290309'<th scope="col">'.__('Context').'</th>'. 
    291310'<th scope="col">'.__('Entries list type').'</th>'. 
     311'<th scope="col">'.__('Number of entries').'</th>'. 
    292312'</tr>'. 
    293313'</thead>'. 
     
    297317          '<tr>'. 
    298318          '<td scope="raw">'.$contexts[$k].'</td>'. 
    299           '<td>'.form::hidden(array('list_ctx[]'),$k).form::combo(array('list_type[]'),$list_types,$v).'</td>'. 
     319          '<td>'.form::hidden(array('list_ctx[]'),$k).form::combo(array('list_type[]'),$list_types,$v).'</td>'; 
     320     if (array_key_exists($k,$ductile_counts)) { 
     321          echo '<td>'.form::hidden(array('count_ctx[]'),$k).form::field(array('count_nb[]'),2,3,$ductile_counts[$k]).'</td>'; 
     322     } else { 
     323          echo '<td></td>'; 
     324     } 
     325     echo 
    300326          '</tr>'; 
    301327} 
  • themes/ductile/_public.php

    r574 r583  
    2020$core->tpl->addValue('ductileEntriesList',array('tplDuctileTheme','ductileEntriesList')); 
    2121$core->tpl->addBlock('EntryIfContentIsCut',array('tplDuctileTheme','EntryIfContentIsCut')); 
     22$core->tpl->addValue('ductileNbEntryPerPage',array('tplDuctileTheme','ductileNbEntryPerPage')); 
    2223 
    2324class tplDuctileTheme 
    2425{ 
     26     public static function ductileNbEntryPerPage($attr) 
     27     { 
     28          global $core; 
     29 
     30          $nb = 0; 
     31          $s = $core->blog->settings->themes->get($core->blog->settings->system->theme.'_entries_counts'); 
     32          if ($s !== null) { 
     33               $s = @unserialize($s); 
     34               if (is_array($s)) { 
     35                    if (isset($s[$core->url->type])) { 
     36                         // Nb de billets par page défini par la config du thème 
     37                         $nb = (integer) $s[$core->url->type]; 
     38                    } else { 
     39                         if (($core->url->type == 'default-page') && (isset($s['default']))) { 
     40                              // Les pages 2 et suivantes de la home ont le même nombre de billet que la première page 
     41                              $nb = (integer) $s['default']; 
     42                         } 
     43                    } 
     44               } 
     45          } 
     46 
     47          if ($nb == 0) { 
     48               if (!empty($attr['nb'])) { 
     49                    // Nb de billets par page défini par défaut dans le template 
     50                    $nb = (integer) $attr['nb']; 
     51               } 
     52          } 
     53 
     54          if ($nb > 0) 
     55               return '<?php $_ctx->nb_entry_per_page = '.$nb.' ; ?>'; 
     56     } 
     57      
    2558     public static function EntryIfContentIsCut($attr,$content) 
    2659     { 
    2760          global $core; 
    2861           
    29           if (empty($attr['cut_string']) || empty($attr['cut_string'])) { 
     62          if (empty($attr['cut_string']) || empty($attr['full'])) { 
    3063               return ''; 
    3164          } 
  • themes/ductile/tpl/category.html

    r563 r583  
    2525  <link rel="contents" href="{{tpl:BlogArchiveURL}}" title="{{tpl:lang Archives}}" /> 
    2626   
     27 {{tpl:ductileNbEntryPerPage}} 
    2728  <tpl:Entries no_content="1"> 
    2829    <tpl:EntriesHeader> 
     
    8586</div> 
    8687   
     88  {{tpl:ductileNbEntryPerPage}} 
    8789  <tpl:Entries> 
    88  
    8990     {{tpl:ductileEntriesList default="short"}} 
    9091    
  • themes/ductile/tpl/home.html

    r563 r583  
    2727  </tpl:Categories> 
    2828   
     29  {{tpl:ductileNbEntryPerPage nb="8"}} 
    2930  <tpl:Entries no_content="1"> 
    3031    <tpl:EntriesHeader> 
     
    5960  <div id="content"> 
    6061 
     62  {{tpl:ductileNbEntryPerPage nb="8"}} 
    6163  <tpl:Entries> 
    6264 
  • themes/ductile/tpl/search.html

    r563 r583  
    2323  <link rel="contents" href="{{tpl:BlogArchiveURL}}" title="{{tpl:lang Archives}}" /> 
    2424   
     25  {{tpl:ductileNbEntryPerPage}} 
    2526  <tpl:Entries no_content="1"> 
    2627    <tpl:EntriesHeader> 
     
    6667  </div> 
    6768   
     69  {{tpl:ductileNbEntryPerPage}} 
    6870  <tpl:Entries> 
    6971 
Note: See TracChangeset for help on using the changeset viewer.

Sites map