Drupal 6 – передача переменной между функциями в частности – передача имени меню в phptemplate_menu_itemPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Drupal 6 – передача переменной между функциями в частности – передача имени меню в phptemplate_menu_item

Сообщение Anonymous »

Я новичок в Drupal 6 и его темизации. Моя тема требовала, чтобы главное меню содержало довольно обширный HTML/CSS для моего разумного стиля. Чтобы добиться этого, я собрал этот код «функцию phptemplate_menu_item» (см. внизу), который находится в моем шаблоне template.php и создает разные HTML-коды в зависимости от того, есть ли у элемента меню дочерние элементы или нет, и использует содержимое ссылки для создания класса CSS. .

Моя проблема в том, что этот код также применяется к другим моим меню. Я хотел бы, чтобы Menu_item генерировал разные HTML-коды в зависимости от того, находится ли он в основном меню или нет. Я бы подумал, что проще всего это сделать с помощью оператора if в функции phptemplate_menu_item, например:

Код: Выделить всё

function phptemplate_menu_item (...){
if ($menu_name == 'primary-links')
{DO ABC}
else
{DO XYZ}
}
Однако я считаю, что мне нужно знать, как передать имя меню в функцию phptemplate_menu_item. Любая помощь в этом будет очень признательна, поскольку я уже некоторое время бью головой о стену, пытаясь решить эту проблему.

Спасибо!

Код: Выделить всё

function phptemplate_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {

$class = ($menu ? 'no_wrap' : ($has_children ? 'collapsed' : 'li_wrap'));
if (!empty($extra_class)) {
$class .= ' '. $extra_class;
}
if ($in_active_trail) {
$class .= ' active-trail';
}
if (!empty($link)) {
/* The following section gives the list items unique classes based on their link text - note how spaces and sepcial chars are removed */
// remove all HTML tags and make everything lowercase
$css_id = strtolower(strip_tags($link));
// remove colons and anything past colons
if (strpos($css_id, ':')) $css_id = substr ($css_id, 0, strpos($css_id, ':'));
// Preserve alphanumerics, everything else goes away
$pattern = '/[^a-z]+/ ';
$css_id = preg_replace($pattern, '', $css_id);
$class .= ' '. $css_id;
}
// the following code returns the menu item formatted in a different fashion depending on the class of the item. The first one is for items with a class of none - ie the space li at end of menu
if (strstr($class, 'none')) {
return '[*]';
}
if (strstr($class, 'li_wrap')) {
return '[*]'. $link . $menu ."\n";
}
if (strstr($class, 'no_wrap')) {
return '[*]'. $link ."". $menu ."\n";
}


Подробнее здесь: https://stackoverflow.com/questions/835 ... enu-name-t
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Боковое меню Ionic [Ion-Menu] не открывается при нажатии на кнопку меню после навигации по другой странице
    Anonymous » » в форуме Html
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Vuetify 2->3 заменяет удаленное содержимое v-list-item-content/v-list-item-group
    Anonymous » » в форуме CSS
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous
  • Экран-заставка Expo: избавляемся от @drawable/splashscreen_logo
    Anonymous » » в форуме Android
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • \Drupal::request()->getRequestUri(); не обновляются параметры предварительной обработки Drupal
    Anonymous » » в форуме Php
    0 Ответы
    118 Просмотры
    Последнее сообщение Anonymous
  • Использование Drupal Cache API для кэширования объектов Drupal
    Anonymous » » в форуме Php
    0 Ответы
    65 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»