경험이 풍부한 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>
리턴 위 줄의 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 사이에는 페이지 차이가 있습니다. 이렇게 내부에 함수 코드를 작성한다는 점에서 후자는 페이지 번호만 표시하면 되는데 비해 전자는 데이터만 표시하면 되므로 get_send 메소드는 페이지 번호를 얻는 데 사용되는 호출 및 출력 마스크, 즉
//$pages_send = $this->luntan_send->pages;
가 될 수 있습니다. .....
//echo $pages_send;
후자의 get_send_page 메소드에서는 데이터를 처리하기 위해 다음 for 루프가 필요하지 않습니다. 중요한 것은 반환되는 데이터입니다. 에코된 페이지를 사용하려면 두 함수의 동일한 부분이
$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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.