слишком много строк создано в режиме друпал - PullRequest
0 голосов
/ 31 октября 2011

Я изменил tpl, используемый для вида сетки, чтобы показать 3 столбца контента, моя единственная проблема в том, что приведенный ниже код создает ненужные div для представления.У меня есть максимум 9 элементов, которые должны быть выведены в 3 строки, по 3 на столбец.Какой лучший способ изменить код ниже?чтобы предотвратить вывод дополнительных элементов div.

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

        <?php print $item; ?>

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

1 Ответ

0 голосов
/ 31 октября 2011

Я бы отбросил эту запись синтаксиса foreach (но я думаю, что это довольно личное :-))

Вы можете использовать модуль по модулю, чтобы проверить, было ли у вас только 3 столбца (если я понял ваш вопрос).

<?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 для удобства чтения.

...