글쓴사람 김수연
글쓴시간2021년 3월 20일 오후 7시 48분 4초
    제목늦은 주말에 공부하다가 질문드려요.
php 공부를 하다가 우연히 template_를 접하게 되어
너무 재밌어서 지금까지 공부를 하고 있었어요.
저녁까지 게시판들을 만들어 보았는데, 너무 잘되고 있어요!
감사합니다

하지만 아무리 해도 못하는 부분이 있어서 질문 드려요 ㅠㅠ
이미지 게시판까지 잘 만들어 보았어요
게시물 일련번호가 잘되었다고 생각했는데,
아무리 해도 제가 원하는 방법으로 안나와요.
<!--{@ document_list }-->
 {document_list.size_ - document_list.index_ - page_info.now_page + 1}
<!--{/}-->
이런식으로 레퍼런스로 간단히 짜보아도 페이징이 역순서대로 잘 안나와요 ㅠ
마지막에는
10,9,8,7,6,5,4,3,2,1 으로 잘 나오지만이요..

혹시 레퍼런스로 잘 짜놓을 수 있는 방법이 있나요?
주말 잘보내세요~~
관리자 김수연님 안녕하세요

document_list 가 혹시 현재페이지 내의 글목록인 걸까요
페이징에 필요한 정보를 만드는 추가 작업이 필요한데

이것을 php쪽에서 계산해서 페이지번호배열만 assign() 해주면

<!--{@pages}-->
   <a href="?page={.value_}">{.value_}</a>
<!--{/}-->

이렇게 템플릿쪽에서는 간단히 됩니다

처음이시면 php쪽에서 페이징 정보를 만드는 것이 생각보다 쉽지 않을겁니다. 다른 php커뮤니티에서 페이징 소스를 찾아보시길 바랍니다


-- 2015년 이후 글은 일정시간후 블라인드하고 있으니 참고하시기 바라며 좋은 주말 보내세요
21-03-21 00:04
김수연 늦게까지 답변을 주셔서 감사합니다 답변 확인을 한밤 중이라 늦게 못 드렸어요.
어제 저녁부터 아직까지 못하고 있어여 ㅠ

페이징 처리는 잘 되었어요. 단지 html 부근에 글 번호가 잘 나와요..
1페이지는
<td>{document_list.size_ - document_list.index_}</td> 잘 나오는데
역순으로 잘나오는데
2페이지는 1페이지와 똑같이 나와요..
페이징 처리될때 다른 방식이 있나요? 알려주셔요.
----------------------------------------------------------------------------
list.php
----------------------------------------------------------------------------
   /* 검색구문 만들기 */
   $where = "bbs_type='%s'";
   $input = array($bbs_type);

   /* 검색어가 존재한다면, 검색구문 추가 */
   $keyword = get('keyword', false);
   if ($keyword !== false) {
       $where .= " AND (subject LIKE '%%%s%%' OR content LIKE '%%%s%%')";
       $input[] = $keyword;    // 배열에 데이터 추가
       $input[] = $keyword;    // 배열에 데이터 추가
   }

   /* 페이지 구현 */
   // 현재 페이지 수
   $now_page = get('page', 1);
   // 한 페이지에 보여질 목록 수
   $list_count = 10;
   // 한 번에 표시될 페이지 번호 그룹 수
   $group_count = 5;

   /* 게시물 수 가져오기 */
   $sql = 'SELECT COUNT(id) `cnt` FROM bbs_document WHERE '.$where;
   $document_count = db_query($sql, $input);
   if ($document_count === false) {
       redirect(false, '게시물 수 조회에 실패했습니다.');
   }
   $total_count = $document_count[0]['cnt'];

   /* 페이지 계산 */
   $page_info = get_page_info($total_count, $now_page, $list_count, $group_count);


   /* 게시물 목록 가져오기 */
   $sql = "SELECT id, subject, writer_name, hit, reg_date
           FROM bbs_document
           WHERE ".$where." ORDER BY id DESC LIMIT %d, %d";

   $input[] = $page_info['offset'];
   $input[] = $page_info['list_count'];

   $document_list = db_query($sql, $input);

   if ($document_list === false) {
       redirect(false, '게시물 목록 조회에 실패했습니다.');
   }

  /* 템플릿 처리 */
   // 템플릿에 데이터 추가
   $tpl->assign('document_list', $document_list);
   $tpl->assign('keyword', $keyword);
   $tpl->assign('page_info', $page_info);
21-03-21 09:51
김수연 페이지 구현은 잘되고 있어요,
그런데 1페이지와 2페이지 게시물 번호가 계속 동일하게 나오네요..
어떻게 해야할까요?

---------------------------------------------------------------------------------------------

<!-- 페이지 구현 -->
       <nav class="text-center">
           <ul class="pagination">
               <!-- 이전 페이지 그룹 이동 버튼 -->
               <!--{? page_info.prev_group_last_page > 0 }-->
               <li>
                   <a href="list.php?bbs_type={bbs_config.type}&page={page_info.prev_group_last_page}&keyword={=urlencode(keyword)}">
                       <span aria-hidden="true">&laquo;</span>
                   </a>
               </li>
               <!--{:}-->
               <li class="disabled">
                   <span>
                       <span aria-hidden="true">&laquo;</span>
                   </span>
               </li>
               <!--{/}-->

               <!-- 페이지 번호 -->
               <!--{@ range(page_info.group_start, page_info.group_end) }-->
               <!--{? .value_ == page_info.now_page }-->
               <li class="active"><a href="#">{.value_}</a></li>
               <!--{:}-->
               <li><a href="list.php?bbs_type={bbs_config.type}&page={.value_}&keyword={=urlencode(keyword)}">{.value_}</a></li>
               <!--{/}-->
               <!--{/}-->

               <!-- 다음 페이지 그룹 이동 버튼 -->
               <!--{? page_info.next_group_first_page > 0 }-->
               <li>
                   <a href="list.php?bbs_type={bbs_config.type}&page={page_info.next_group_first_page}&keyword={=urlencode(keyword)}">
                       <span aria-hidden="true">&raquo;</span>
                   </a>
               </li>
               <!--{:}-->
               <li class="disabled">
                   <span>
                       <span aria-hidden="true">&raquo;</span>
                   </span>
               </li>
               <!--{/}-->
           </ul>
       </nav>
       <!--// 페이지 구현 -->
21-03-21 10:48
관리자 게시물 번호가 1페이지에서만 제대로 나온다는 이야기였군요

{document_list.size_ - document_list.index_ - page_info.now_page + 1}

이게 좀 이상해 보이는데

예를들어 글번호 페이지번호 전부 역순출력이라면

{document_list.size_ - document_list.index_ + (page_info.now_page - 1)*list_count}

이렇게 $list_count 가 계산에 포함되어야 할겁니다
21-03-21 13:51
관리자 글번호 역순(내림차순) 페이지번호 올림차순이라면

{document_list.size_ - document_list.index_ +
(전체페이지수 - now_page)*list_count}

이렇게 되겠네요
21-03-21 14:08
김수연 답장이 늦어서 죄송합니다
말씀 주신대로 열심히 계산해서 1시간동안 했었어요.

해결했어요!!
{document_list.size_ - document_list.index_ + (page_info.group_end - page_info.now_page)*page_info.group_count}

이렇게 적으니까 잘 되었어요.
정말 감사해요
21-03-21 20:42
김수연 가르치심 은혜 잊지 않겠습니다.
더 노력해서 좋은 개발자가 되도록 노력하겠습니다
21-03-21 20:45
관리자 해결돼서 다행이네요!!~~
21-03-22 11:54
김수연 관리자님 덕분이에요..
게시판도, 이미지 게시판도 만들 수 있게 되었어요.
template_가 모든 사람들이 많이 사용했으면 좋겠어요.
그 날을 기다려 봅니다~!
21-03-23 00:53
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com