Добавление нумерации в пункты меню Drupal 7 - PullRequest
1 голос
/ 30 июня 2011

Я бы хотел переместить вывод меню drupal 7 для отображения нумерации перед каждым пунктом меню. Таким образом, каждое меню будет иметь номер перед ним в числовом порядке, начиная с 1.

В настоящее время я использую эту функцию, чтобы переопределить вывод:

function FDP_link($variables) {
  return '<a href="' . check_plain(url($variables['path'], $variables['options'])) . '"' . drupal_attributes($variables['options']['attributes']) . '><sup>01</sup>' . ($variables['options']['html'] ? $variables['text'] : check_plain($variables['text'])) . '</a>
';
}

Проблема в том, что мне нужно, чтобы число было динамическим, т.е. увеличивалось на 1 с каждым пунктом меню. Может кто-нибудь, пожалуйста, помогите мне достичь этого?

1 Ответ

0 голосов
/ 01 июля 2011

Вы можете использовать статический массив внутри вашей функции, чтобы увеличивать значение при каждом его вызове:

function FDP_link($variables) {
  static $counters;
  $counters[$variables['element']['#theme']]++;
  return '<a href="' . 
         check_plain(url($variables['path'], $variables['options'])) . '"' .
         drupal_attributes($variables['options']['attributes']) . 
         '><sup>'.sprintf('%01d',$counters[$variables['element']['#theme']]).'</sup>' .
        ($variables['options']['html'] ? $variables['text'] : check_plain($variables['text'])) . '</a>
';
}

Или вы также можете найти способ перехватить пункты меню с помощью ловушки preprocess_block ().

...