Просмотр слайд-шоу пронумерованный пейджер
Я использую Drupal 7, и я пытаюсь сделать слайд-шоу с пронумерованным пейджером, как показано на этой странице. Я добавил PHP-код в представления, думая, что смогу просто поместить PHP-код, но проблема в том, что он не дает ожидаемого результата.
Я использовал этот код, который должен печатать "1 2 3 4", и вместо этого печатает "1 1 1 1."
$i = 0;
$i++;
echo $i;
В этом коде я попытался использовать одну из переменных, и я думаю, что я на правильном пути с этим один, но он печатает "10 9 8 7", в то время как я хочу, чтобы он печатал "1 2 3 4."
$i = 0;
$i = $row->field_image;
echo $i;
Я знаю, что это, вероятно, что-то простое, но я не могу понять, как спасти свою жизнь; любая помощь очень ценится.
3 answers
Первый написанный вами код не работает, потому что он всегда вызывается
- он инициализирует
$i
до 0 - он увеличивает
$i
на 1 - он выводит значение
$1
Потому что на первом шаге результат всегда равен 1. Чтобы получить результат, который в любом случае отличается, код должен быть похож на следующий.
$i = variable_get('mycode_iterator_count', 0) + 1;
echo $i;
variable_set('mycode_iterator_count', $i);
Код не оптимизирован, и, вероятно, есть лучший способ написать код; хотя код работает, так как он будет выводить другой номер каждый раз, когда он вызывается.
Поскольку код передается в eval()
, использование статической переменной, вероятно, не будет служить этой цели, потому что статическая переменная, вероятно, будет сбрасываться в 0 каждый раз, когда код выполняется через eval()
. Вероятно, код будет работать, даже если он будет использовать глобальную переменную.
global $i;
if (empty($i)) {
$i = 1;
}
echo $i++;
Гораздо более простой способ:
- Добавить поле "Глобальный: Просмотр счетчика результатов"
- Исключить его из отображения
- В настройках слайд-шоу: выберите это поле в качестве типа пейджера
Встраивание PHP в представление - плохая идея. Следует избегать представлений PHP. Вместо этого я придумал следующее, которое работает с представлениями по умолчанию:
- Нажмите "добавить" в поле "Поля".
- Добавьте поле "Глобальное: математическое выражение" в свои поля.
- В поле "Выражение" введите [выражение] + 1
- Нажмите "Исключить из отображения".
- Установите поле вашего пейджера в качестве выражения.