redgoose-dev / goose

Personal contents management system.
http://redgoosedev.github.io/goose/
MIT License
13 stars 6 forks source link

Paginate 클래스 관련 #98

Closed swcheon closed 8 years ago

swcheon commented 9 years ago

안녕하세요. Goose Engine 정말 잘 사용하고 있습니다 :) 제가 글 목록을 보여주는 페이지 하단에 Pagination을 넣으려고 하는데 Documentation에 명시된 Paginate 클래스 코드를 넣고 이리저리 수정을 해봤는데 잘 안되더라구요. Documentation에 있는 예제 코드에 들어가는 변수, 파라미터에 대한 설명을 조금만 부탁드립니다! ^^

redgoose-dev commented 9 years ago

쓰시는분이 계시는분이 계실줄은 몰랐네요. ㅎㅎㅎ paginate 부분이 너무 허술하게 적혀 있긴하죠. 앱 프로그램 소스를 하나씩 만들어서 공개하면 많은 해답을 찾을 수 있는데 게을러져서 손을 못대고 있답니다. ㅠㅠㅠㅠㅠ

일단 물어보셔서 간단히 이미지 출력하는 데모 프로그램을 만들었습니다. 다름 소스코드를 참고해주세요. ㅎㅎ

<?php
define('__GOOSE__', true);
define('__PWD__', '/Users/diaho/Sites/demos/goose');

require_once('../../git/goose/core/lib.php');

// set nest number (둥지번호를 설정합니다.)
$nest_srl = 1;

// load article module
$articles = Module::load('article');

// get item count
$itemsCount = $articles->getCount([ 'where' => 'nest_srl='.$nest_srl ]);
$itemsCount = ($itemsCount['state'] == 'success') ? $itemsCount['data'] : 0;
Util::console('total : '.$itemsCount);

// paginate 클래스 파일을 불러옵니다.
require_once(__GOOSE_PWD__.'/core/classes/Paginate.class.php');
// 사용자 파라메터를 만듭니다. (예를들어 키워드 검색어를 포함해서 페이지 나눔 표현을 할때 사용할 수 있습니다.)
$paginateParameter = [ 'keyword' => (isset($_GET['keyword'])) ? $_GET['keyword'] : '' ];
// 페이지 번호 설정
$_GET['page'] = ((isset($_GET['page'])) && $_GET['page'] > 1) ? $_GET['page'] : 1;
// paginate 인스턴스 객체 만들기. 인자값{ 전체 아이템 갯수, 페이지 번호, 사용자 파라메터(배열), 한 페이지에 출력되는 아이템 갯수, 페이지 네비게이션 숫자 출력갯수 }
$paginate = new Paginate($itemsCount, $_GET['page'], $paginateParameter, 10, 5);

// 데이터를 가져옵니다.
$items = $articles->getItems(array(
    'where' => 'nest_srl='.$nest_srl,
    'order' => 'srl',
    'sort' => 'desc',
    'limit' => array($paginate->offset, $paginate->size)
));
$items = ($items['state'] == 'success') ? $items['data'] : [];
Util::console('datas -------------------------------------------');
Util::console($items); // data test
Util::console('-------------------------------------------------');
?>

<ul>
    <?php
    foreach ($items as $k=>$v)
    {
        $img = __GOOSE_ROOT__.$v['json']['thumnail']['url'];
    ?>
        <li><img src="<?=$img?>" alt="<?=$v['title']?>" /></li>
    <?php
    }
    ?>
</ul>
<nav>
    <?=($itemsCount > 0) ? $paginate->createNavigation() : ""?>
</nav>

이해안가는 부분이 있다면 댓글 달아주세요. 환영합니다. :)

redgoose-dev commented 8 years ago

http://resource.redgoose.me/article/1926/ 소스 제작으로 인하여 이슈종료