Dotclear

Changeset 2577:9a2b43a68e3d


Ignore:
Timestamp:
11/21/13 15:11:09 (12 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

Number of entries on first home page may be set (does not modify number of entries on other pages), fixes #1269

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • admin/blog_pref.php

    r2566 r2577  
    166166     $media_img_m_size = abs((integer) $_POST['media_img_m_size']); 
    167167     if ($media_img_m_size < 0) { $media_img_m_size = 448; } 
     168 
     169     $nb_post_for_home = abs((integer) $_POST['nb_post_for_home']); 
     170     if ($nb_post_for_home <= 1) { $nb_post_for_home = 1; } 
    168171 
    169172     $nb_post_per_page = abs((integer) $_POST['nb_post_per_page']); 
     
    231234          $blog_settings->system->put('note_title_tag',$_POST['note_title_tag']); 
    232235 
     236          $blog_settings->system->put('nb_post_for_home',$nb_post_for_home); 
    233237          $blog_settings->system->put('nb_post_per_page',$nb_post_per_page); 
    234238          $blog_settings->system->put('use_smilies',!empty($_POST['use_smilies'])); 
     
    512516 
    513517     '<div class="col">'. 
     518     '<p><label for="nb_post_for_home" class="classic">'.sprintf(__('Display %s entries on home page'), 
     519     form::field('nb_post_for_home',2,3,$blog_settings->system->nb_post_for_home)). 
     520     '</label></p>'. 
     521 
    514522     '<p><label for="nb_post_per_page" class="classic">'.sprintf(__('Display %s entries per page'), 
    515523     form::field('nb_post_per_page',2,3,$blog_settings->system->nb_post_per_page)). 
  • inc/core/class.dc.core.php

    r2566 r2577  
    13061306                    array('media_img_title_pattern','string','Title ;; Date(%b %Y) ;; separator(, )', 
    13071307                    'Pattern to set image title when you insert it in a post'), 
     1308                    array('nb_post_for_home','integer',20, 
     1309                    'Number of entries on first home page'), 
    13081310                    array('nb_post_per_page','integer',20, 
    1309                     'Number of entries on home page and category pages'), 
     1311                    'Number of entries on home pages and category pages'), 
    13101312                    array('nb_post_per_feed','integer',20, 
    13111313                    'Number of entries on feeds'), 
  • inc/public/class.dc.template.php

    r2574 r2577  
    10421042 
    10431043          if ($lastn != 0) { 
     1044               // Set limit (aka nb of entries needed) 
    10441045               if ($lastn > 0) { 
     1046                    // nb of entries per page specified in template -> regular pagination 
    10451047                    $p .= "\$params['limit'] = ".$lastn.";\n"; 
    10461048               } else { 
    1047                     $p .= "\$params['limit'] = \$_ctx->nb_entry_per_page;\n"; 
     1049                    // nb of entries per page not specified -> use ctx settings 
     1050                    $p .= "\$params['limit'] = (\$_page_number == 1 ? \$_ctx->nb_entry_first_page : \$_ctx->nb_entry_per_page);\n"; 
    10481051               } 
    1049  
     1052               // Set offset (aka index of first entry) 
    10501053               if (!isset($attr['ignore_pagination']) || $attr['ignore_pagination'] == "0") { 
    1051                     $p .= "\$params['limit'] = array(((\$_page_number-1)*\$params['limit']),\$params['limit']);\n"; 
     1054                    // standard pagination, set offset 
     1055                    $p .= "\$params['limit'] = array((\$_page_number == 1 ? 0 : (\$_page_number - 2) * \$_ctx->nb_entry_per_page + \$_ctx->nb_entry_first_page),\$params['limit']);\n"; 
    10521056               } else { 
     1057                    // no pagination, get all posts from 0 to limit 
    10531058                    $p .= "\$params['limit'] = array(0, \$params['limit']);\n"; 
    10541059               } 
  • inc/public/lib.tpl.context.php

    r2566 r2577  
    206206 
    207207          $nb_posts = $_ctx->pagination->f(0); 
    208           $nb_per_page = $_ctx->post_params['limit'][1]; 
    209  
    210           $nb_pages = ceil($nb_posts/$nb_per_page); 
     208          $nb_pages = ceil(($nb_posts - $_ctx->nb_entry_first_page) / $_ctx->nb_entry_per_page + 1); 
    211209 
    212210          return $nb_pages; 
  • inc/public/lib.urlhandlers.php

    r2566 r2577  
    8686               $_ctx->nb_entry_per_page = $core->blog->settings->system->nb_post_per_page; 
    8787          } 
     88          if ($_ctx->nb_entry_first_page === null) { 
     89               $_ctx->nb_entry_first_page = $_ctx->nb_entry_per_page; 
     90          } 
    8891 
    8992          $tpl_file = $core->tpl->getFilePath($tpl); 
     
    188191          else 
    189192          { 
     193               $_ctx =& $GLOBALS['_ctx']; 
    190194               $core =& $GLOBALS['core']; 
    191195 
     
    196200 
    197201               if (empty($_GET['q'])) { 
     202                    if ($core->blog->settings->system->nb_post_for_home !== null) { 
     203                         $_ctx->nb_entry_first_page = $core->blog->settings->system->nb_post_for_home; 
     204                    } 
    198205                    self::serveDocument('home.html'); 
    199206                    $core->blog->publishScheduledEntries(); 
  • locales/fr/main.po

    r2512 r2577  
    399399 
    400400#, php-format 
     401msgid "Display %s entries on home page" 
     402msgstr "Afficher %s billets sur la page d'accueil" 
     403 
     404#, php-format 
    401405msgid "Display %s entries per page" 
    402406msgstr "Afficher %s billets par page" 
Note: See TracChangeset for help on using the changeset viewer.

Sites map