위젯에서 document_srl 로 정렬해서 목록을 가져올때, srl-3 번째를 가져오려면 어떻게 해야 할까요?
CMS/프레임워크 | Rhymix 1.9 |
---|---|
개발 언어 | PHP 7.2 |
안녕하세요.
위젯으로 문서번호 순으로 가져 오려고 합니다.
proto_contents 위젯을 사용중인데, 문서번호로 정렬하기 위해 document_srl 을 등록하니 잘 됩니다.
해당 게시판에 문서번호가 1번부터 31번까지 있고, 내림차순으로 3개를 나오게 하면
31번
30번
29번
이렇게 잘 나옵니다.
그런데, 추가적으로 31번부터가 아닌 예를들어 28번부터 나오게 하려면 아래 코드에 뭘 추가해야 할까요?
3의 차이가 나니,, 3을 빼주면 될것 같은데 잘 안되네요.
{@ $p = 0}
{@ list($key,$item) = each($wi->content_items)}
{@ $v = $wi->content_items}
<!--@for($key=0+$p*$_lc; $key < $_lc+$p*$_lc; $key++)-->
<!--@for($j=0,$c=count($wi->option_view_arr);$j<$c;$j++)-->
<!--@if($wi->option_view_arr[$j]=='content')-->
{$v[$key]->getContent($wi->content_cut_size)}
<!--@end-->
--중략--
감사합니다.
수피안
Lv. 3
댓글 7
10개의 리스트를 가져온다고 생각하면 전체 리스트를 가져온다음 각각의 벨류안에 count 라는 오브젝트를 하나 더 만들어 넣는것입니다.
위의 상황을 예를들어보면
$v->count = 1
$v 가 최종적으로 만들어지는 반복문안에서 하나하나씩 카운팅 시키는 것이죠.
해당 v를 기점으로 마지막으로 출려된 것에서 3개씩 나눠서 출력하게 하면 될 것 같습니다.
아니면
for($i = 0; $i<2; $i++)
이런 반복문을 만들어서 서로서로 나눠도 됩니다.
총 6개 목록을 뽑으신 뒤, 3개는 출력하지 않고 남은 3개만 출력하는 방식으로 접근하셔야 할 것 같네요.
$key 값이 3보다 작으면 출력하지 않고, 그 이후는 출력하도록..
위젯 수정이 가능하시다면, LIMIT 문을 적용하시면 될 것 같아요. LIMIT 3, 5 하시면 (3+1)번째부터 총 5개를 추출합니다.
윗분 말씀대로 6개를 뽑아서 3개를 버리는 식으로 하셔야겠고요,
3개를 버리는 코드는 간단합니다.
{@ $v = $wi->content_items}
이런 식으로 글들을 $v라는 변수에 담으시는 것 같은데
{@ $v = array_slice($wi->content_items, 3)}
이렇게 하면 처음 3개를 버리고 나머지만 담게 됩니다.
도움 주셔서 감사합니다. 사실 조건에 맞는 문서만 가져오는게 목적이었는데 며칠동안 고민하다 실패해서 다른방법을 강구중이었거든요. 저 방법으로 해볼께요 감사합니다
아예 잘라버리면 된다는걸 생각도 못했네요ㅠㅠ