Просмотр слайд-шоу пронумерованный пейджер


Я использую 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; 

Я знаю, что это, вероятно, что-то простое, но я не могу понять, как спасти свою жизнь; любая помощь очень ценится.

 2
Author: kiamlaluno, 2011-04-20

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++;
 2
Author: kiamlaluno, 2011-04-20 19:21:13

Гораздо более простой способ:

  1. Добавить поле "Глобальный: Просмотр счетчика результатов"
  2. Исключить его из отображения
  3. В настройках слайд-шоу: выберите это поле в качестве типа пейджера
 5
Author: Jason Graham, 2013-03-25 16:27:26

Встраивание PHP в представление - плохая идея. Следует избегать представлений PHP. Вместо этого я придумал следующее, которое работает с представлениями по умолчанию:

  1. Нажмите "добавить" в поле "Поля".
  2. Добавьте поле "Глобальное: математическое выражение" в свои поля.
  3. В поле "Выражение" введите [выражение] + 1
  4. Нажмите "Исключить из отображения".
  5. Установите поле вашего пейджера в качестве выражения.
 2
Author: Sam152, 2012-05-29 08:50:03