컨텐츠위젯스킨에서 데이터를 빼내려는데 두번째부터 빼려합니다.

아래 소스로 동작이 안되는데 놓치고 있는 부분 좀 가르쳐주십시오.

 

<!--@foreach(array_slice($widget_info->content_items, 1) as $key => $item)-->
    출력할 내용
<!--@end-->

 

 

 

 

  • profile

    어떻게 안되나요? (예: 첫번째부터 다 나온다, 아무것도 안 나온다, 저걸 실행하면 화면에서 귀신이 기어나온다 등)

  • profile ?

    array_slice($widget_info->content_items, 0 일 경우에는 첫번째 데이터가 출력되는데 1값이상을 가지면 출력이 안됩니다. 함수를 저렇게 쓰는게 맞는지 잘 모르겠네요. 관련php파일 한번 확인해 보고 안되면 다시 질문드려보겠습니다.

  • ? profile

    제가 당장 확인해 보기는 곤란하지만, XE 템플릿 핸들러의 특성상 foreach에 함수가 들어가면 이상하게 해석될 여지가 있습니다. $widget_info->content_items가 평범한 배열이 아닐 수도 있고요.

    그냥 안전하게 이런 방식은 어떨까요?

    {@ $skip_first = 0}
    <!--@foreach($widget_info->content_items as $key => $item)-->
    {@ if (0 == $skip_first++) continue}
    내용 출력
    <!--@end-->

    루프를 돌 때마다 1씩 증가(++)하는 변수를 두고, 이 변수가 초기값과 같을 때는 내용을 출력하지 않는 거죠.

  • profile ?
    예, 이 방법으로도 한번 해 보겠습니다. 위에는 제가 바보같이 두번째 컨텐츠를 불러오면서 조건은 데이터 하나만 가져오도록 걸어두었네요. 해결되었는데 기진곰님 말씀해 주신 방법이 좀 더 깔끔한 것 같습니다.