2011-10-31 3 views
0

그리드보기에 사용 된 tpl을 수정하여 3 열의 내용을 표시했습니다. 아래 코드에서 불필요한 div를 생성합니다. 최대 9 개 항목을 3 행, 3 열로 출력해야합니다. 아래 코드를 수정하는 가장 좋은 방법은 무엇입니까? 여분의 div가 출력되는 것을 방지합니다.drupal보기에서 너무 많은 행을 만들었습니다.

<?php foreach ($rows as $row_number => $columns): ?> 
    <div> 
    <?php foreach ($columns as $column_number => $item): ?> 

     <?php print $item; ?> 

    <?php endforeach; ?> 
    </div> 
<?php endforeach; ?> 

답변

0

당신은 단지 3 열이 있다면 (내가 당신의 질문을 이해 경우)

당신은 확인하기 위해 모듈을 사용할 수 있습니다 나는 foreach는 구문의 표기법을 떨어 것이다 (그러나 나는 꽤 개인 :-) 생각) .

<?php 

// I´m assuming that $column_number is a zero based index 
// if thats not the case you should add a counter to keep track of column numbers or if it is in sequence but isn't zero based you could easily update the calculates based in your starting index 

foreach ($rows as $row_number => $columns) { 
    foreach ($columns as $column_number => $item) { 
     if ($column_number == 0 || $column_number%3 == 0) { 
      print '<div>'; 
     } 
     print $item; 
     if ($column_number == 2 || $column_number%3 == 2) { 
      print '</div>'; 
     } 
    } 
    // prevent open div tags 
    $total_columns = count($columns); 
    if ($total_columns > 0 && ($total_columns < 3 || $total_columns%3 != 0)) { 
     print('<div>'); 
    } 
} 

나는 가독성을 위해 PHP의 개폐 태그를 모두 삭제했습니다.

+0

감사합니다.하지만 total_columns가 정의되지 않았다는 오류가 발생합니다. – Darren

+0

@Darren : 변수 초기화시 오타였습니다. 고쳤다 – PeeHaa