Dotclear

source: plugins/pageMaker/inc/class.page.maker.php @ 1552

Revision 1552, 3.7 KB checked in by Tomtom33, 14 years ago (diff)

pageMaker 0.4 :

  • changes name from splitPost to pageMaker
  • adds comment list pagination
Line 
1<?php
2# -- BEGIN LICENSE BLOCK ----------------------------------
3# This file is part of pageMaker, a plugin for Dotclear.
4#
5# Copyright (c) 2009 Tomtom
6# http://blog.zenstyle.fr/
7#
8# Licensed under the GPL version 2.0 license.
9# A copy of this license is available in LICENSE file or at
10# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
11# -- END LICENSE BLOCK ------------------------------------
12
13class pageMakerPager extends pager
14{   
15     public function __construct($current,$nb_page_tot,$nb_page_max = 20)
16     {
17          parent::__construct($current,$nb_page_tot,1,$nb_page_max);
18     }
19     
20     public function init($params = null)
21     {
22          $this->base_url = $GLOBALS['_ctx']->posts->getURL();
23          if ($params['type'] === 'post') {
24               $this->base_url .= '/page/%s';
25          }
26          elseif ($params['type'] === 'comment') {
27               $this->base_url .= '/c/%s#comments';
28          }
29          $this->html_cur_page = isset($params['current']) ? $params['current'] : $this->html_cur_page;
30          $this->html_prev = isset($params['prev']) ? $params['prev'] : $this->html_prev;
31          $this->html_next = isset($params['next']) ? $params['next'] : $this->html_next;
32     }
33}
34
35class pageMakerBehaviors
36{
37     public static function coreBlogGetPosts($rs)
38     {
39          $rs->extend('rsExtPostPageMaker');
40     }
41     
42     public static function postHeaders()
43     {
44          global $core;
45
46          return
47               $core->blog->settings->pagemaker_enable ?
48               '<script type="text/javascript" src="index.php?pf=pageMaker/js/post.min.js"></script>'.
49               '<script type="text/javascript">'."\n".
50               "//<![CDATA[\n".
51               dcPage::jsVar('jsToolBar.prototype.elements.pageMaker.title',__('Post pager')).
52               "\n//]]>\n".
53               "</script>\n" : '';
54     }
55     
56     public static function adminBlogPreferencesForm($core,$settings)
57     {
58          echo
59          '<fieldset><legend>'.__('pageMaker').'</legend>'.
60          '<div class="two-cols"><div class="col">'.
61          '<p><label class="classic">'.
62          form::checkbox('pagemaker_post_enable','1',$settings->pagemaker_post_enable).
63          __('Enable post pagination').'</label></p>'.
64          '<p><label class="classic">'.
65          form::checkbox('pagemaker_post_auto_insert','1',$settings->pagemaker_post_auto_insert).
66          __('Auto insert post pagination').'</label></p>'.
67          '</div><div class="col">'.
68          '<p><label class="classic">'.
69          form::checkbox('pagemaker_comment_enable','1',$settings->pagemaker_comment_enable).
70          __('Enable comment pagination').'</label></p>'.
71          '<p><label>'.__('Comment number per page:').
72          form::field('pagemaker_comment_nb_per_page',3,3,($settings->pagemaker_comment_nb_per_page ? $settings->pagemaker_comment_nb_per_page : '20')).
73          '</label></p>'.
74          '<p><label class="classic">'.
75          form::checkbox('pagemaker_comment_auto_insert','1',$settings->pagemaker_comment_auto_insert).
76          __('Auto insert comment pagination').'</label></p>'.
77          '</div></div>'.
78          '</fieldset>';
79     }
80
81     public static function adminBeforeBlogSettingsUpdate($settings)
82     {
83          $settings->setNameSpace('pagemaker');
84          $settings->put('pagemaker_post_enable',!empty($_POST['pagemaker_post_enable']),'boolean');
85          $settings->put('pagemaker_comment_enable',!empty($_POST['pagemaker_comment_enable']),'boolean');
86          $settings->put('pagemaker_post_auto_insert',!empty($_POST['pagemaker_post_auto_insert']),'boolean');
87          $settings->put('pagemaker_comment_auto_insert',!empty($_POST['pagemaker_comment_auto_insert']),'boolean');
88          $settings->put('pagemaker_comment_nb_per_page',$_POST['pagemaker_comment_nb_per_page'],'integer');
89          $settings->setNameSpace('system');
90     }
91}
92
93class rsExtPostPageMaker
94{
95     public static function getContent($rs,$absolute_urls=false)
96     {
97          $_ctx = $GLOBALS['_ctx'];
98          $core = $GLOBALS['core'];
99         
100          $res = rsExtPost::getContent($rs,$absolute_urls);
101         
102          $part = preg_split($core->post_page_pattern,$res);
103         
104          $page = $_ctx->post_page_current !== null ? $_ctx->post_page_current - 1 : 0;
105         
106          return isset($part[$page]) ? $part[$page] : '';
107     }
108}
109
110?>
Note: See TracBrowser for help on using the repository browser.

Sites map