안녕하세요.

 

위젯으로 문서번호 순으로 가져 오려고 합니다.

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-->
--중략--                        

 

 

감사합니다.

 

  • profile
    일단 $key값은 순서대로생성되는 값이기도 하지만 게시판 삭제 및 여러 여부에 따라 1->3 이렇게 중간중간 삭제되는 부분도 많이 있어서 재대로 된 방법이 아닙니다.

    10개의 리스트를 가져온다고 생각하면 전체 리스트를 가져온다음 각각의 벨류안에 count 라는 오브젝트를 하나 더 만들어 넣는것입니다.

    위의 상황을 예를들어보면

    $v->count = 1

    $v 가 최종적으로 만들어지는 반복문안에서 하나하나씩 카운팅 시키는 것이죠.

    해당 v를 기점으로 마지막으로 출려된 것에서 3개씩 나눠서 출력하게 하면 될 것 같습니다.

    아니면

    for($i = 0; $i<2; $i++)

    이런 반복문을 만들어서 서로서로 나눠도 됩니다.
  • profile profile
    감사합니다 항상 많이 배웁니다. 주말에 한번 테스트 해볼께요
  • profile
    스킨단에서 적용하시려면
    총 6개 목록을 뽑으신 뒤, 3개는 출력하지 않고 남은 3개만 출력하는 방식으로 접근하셔야 할 것 같네요.
    $key 값이 3보다 작으면 출력하지 않고, 그 이후는 출력하도록..

    위젯 수정이 가능하시다면, LIMIT 문을 적용하시면 될 것 같아요. LIMIT 3, 5 하시면 (3+1)번째부터 총 5개를 추출합니다.
  • profile profile
    답변 감사합니다 . 한번 적용해 볼께요.
  • profile

    윗분 말씀대로 6개를 뽑아서 3개를 버리는 식으로 하셔야겠고요,

    3개를 버리는 코드는 간단합니다.

        {@ $v = $wi->content_items}

    이런 식으로 글들을 $v라는 변수에 담으시는 것 같은데

        {@ $v = array_slice($wi->content_items, 3)}

    이렇게 하면 처음 3개를 버리고 나머지만 담게 됩니다.

  • profile profile

    도움 주셔서 감사합니다. 사실 조건에 맞는 문서만 가져오는게 목적이었는데 며칠동안 고민하다 실패해서 다른방법을 강구중이었거든요. 저 방법으로 해볼께요 감사합니다

  • profile profile
    와 당연하다면 당연한 방법인데...
    아예 잘라버리면 된다는걸 생각도 못했네요ㅠㅠ