首頁 >後端開發 >php教程 >phpcms在自訂模組中的自訂標籤分頁

phpcms在自訂模組中的自訂標籤分頁

WBOY
WBOY原創
2016-08-08 09:27:02984瀏覽

如果你是經驗豐富的phpcms二次開發人員,這篇文章可以忽略不計,因為這裡的寫法自己都覺得很噁心
        今天在開發一個網站自建了一個模組叫做論壇模組,目錄名稱:luntan
在論壇清單頁面中需要顯示所有的貼文並需要分頁來顯示,按照phpcms預設模版中標籤定義方式
{pc:luntan action="get_send" num="2" page="$_GET[page]"} 按照這種寫法在程式中data['limit'] = '0,2' 但是data[page] = NULL
這樣接收不到頁碼,但是由於個人層級研究不明白這裡應該要怎麼才能將系統中的分頁方法加載進來並讓它好用,糾結好久想出了一個昏招,希望各位指正,並且如果有好的建議希望各位能夠不惜時間,教我一下
要獲得論壇發帖的列表需要一個獲取的方法,如下

<span>public</span> <span>function</span> get_send(<span>$data</span><span>){
            </span><span>$page</span> = <span>empty</span>(<span>$_GET</span>['page']) ? 1 : <span>intval</span>(<span>$_GET</span>['page'<span>]);
            </span><span>$send_info</span> = <span>$this</span>->luntan_send->listinfo(<span>$where</span> = '', <span>$order</span> = '', <span>$page</span>, <span>$pagesize</span> = 20<span>);
            </span><span>//</span><span>$pages_send = $this->luntan_send->pages;</span>
            <span>for</span>(<span>$i</span> = 0; <span>$i</span> < <span>count</span>(<span>$send_info</span>); <span>$i</span>++<span>){
                </span><span>$type_info</span> = <span>$this</span>->luntan_type->get_one(<span>array</span>('type_id'=><span>$send_info</span>[<span>$i</span>]['send_type_id'<span>]));
                </span><span>$send_info</span>[<span>$i</span>]['send_type_name'] = <span>$type_info</span>['type_name'<span>];
                </span><span>$reply_info</span> = <span>$this</span>->luntan_reply->get_one(<span>array</span>('reply_send_id'=><span>$send_info</span>[<span>$i</span>]['send_id']),'count(*) as reply_send_num'<span>);
                </span><span>$send_info</span>[<span>$i</span>]['send_reply_num'] = <span>$reply_info</span>['reply_send_num'<span>];
            }
            </span><span>//</span><span>echo $pages_send;</span>
            <span>return</span> <span>$send_info</span><span>;
        }</span>

注意在return上面一行的echo $pages_send;  這裡其實是藉鑑了後台使用分頁的方法讓頁面可以正常的顯示出頁碼,並且可以做跳轉
但是如果解開這個echo $pages_send;那麼就沒辦法在頁面中控制其顯示的位置,為了讓他能按照我的意願來顯示,在這個方法的下面又添加了一個方法,

<span>public</span> <span>function</span> get_send_page(<span>$data</span><span>){
            </span><span>$page</span> = <span>empty</span>(<span>$_GET</span>['page']) ? 1 : <span>intval</span>(<span>$_GET</span>['page'<span>]);
            </span><span>$send_info</span> = <span>$this</span>->luntan_send->listinfo(<span>$where</span> = '', <span>$order</span> = '', <span>$page</span>, <span>$pagesize</span> = 20<span>);
            </span><span>$pages_send</span> = <span>$this</span>->luntan_send-><span>pages;
            </span><span>echo</span> <span>$pages_send</span><span>;
            </span><span>return</span> <span>$send_info</span><span>;
        }</span>

看到兩個方法的名稱的不同了,get_send  和 get_send_page   差了一個page,這樣在裡面的函數代碼寫法上後者由於只是需要顯示頁碼,而前者只需要顯示數據,則可以將get_send方法中用於取得頁碼的呼叫與輸出屏蔽,即
  //$pages_send = $this->luntan_send->pages;
......
//echo $pages_send;
而後者get_send_page 方法中,則不需要下一步的for迴圈來處理資料至於回傳什麼資料也不重要,主要的是利用echo出來的頁面,所以這兩個函數相同的部分為
$page = empty($_GET['page']) ? 1 : intval($_GET['page']);
$send_info = $this->luntan_send->listinfo($where = '', $order = '', $page, $pagesize = 20);
如果要修改預設頁面中顯示的個數,需要同事修改兩個方法中
$send_info = $this->luntan_send->listinfo($where = '', $order = '', $page, $pagesize = 20);一句的$pagesize變數

以上就介紹了phpcms在自訂模組中的自訂標籤分頁,包含了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn