2012-11-01 5 views

답변

2

tablerowloop.last은 테이블의 마지막 셀 (컬렉션의 즉 최종 제품)에 대해 true를 반환하지 마지막 행 :

{% tablerow product in collections.frontpage.products cols: 2 %} 
    {% if tablerowloop.col_first and tablerowloop.last %} 
     <img src="{{'box.png' | asset_url}}"> 
    {% else %} 
     <div class='featured-product'> 
     <img src="{{ product.images[1] | product_img_url: 'medium' }}"> 
     <p>{{ product.title }}</p> 
     </div> 
    {% endif %} 
    {% endtablerow %} 

여기 사이트입니다. 대신 컬렉션의 끝에있는 cols 내의 인덱스가 첫 번째 열인 경우 마지막 행이어야하는지 확인해야합니다.

{% tablerow product in collections.frontpage.products cols: 2 %} 
    {% assign x = tablerowloop.length | minus:2 %} 
    {% if tablerowloop.col_first and tablerowloop.index > x %} 
    <img src="{{'box.png' | asset_url}}"> 
    {% else %} 
    <div class='featured-product'> 
     <img src="{{ product.images[1] | product_img_url: 'medium' }}"> 
     <p>{{ product.title }}</p> 
    </div> 
    {% endif %} 
{% endtablerow %} 
+0

알았어, 나는 tablerowloop.last가 테이블의 마지막 셀만 반환한다는 것을 알았습니다. 하지만 정적 컨텐츠를 올바르게 출력 한 다음 루프가 너무 일찍 종료되므로 나에게 의미가 없습니다. –

+0

프론트 페이지 컬렉션에는 5 개의 제품 만 있으므로 두 열 테이블에는 마지막 행에 하나의 제품 만 있습니다. if 조건이 일치하므로 해당 제품이 box.png 자산 이미지로 대체됩니다. 너무 일찍 죽어가는 것은 아니지만, box.png 이미지 다음에 제품을 보여주기를 원할 수도 있습니다.이 경우 if 블록에서 else 블록을 이동할 수 있습니다. –