Jump to content
  • 0

баг


cyklop77
 Share

Question

и всё таки еще создам тему. на друпал.ру задавать вопросы дело бесполезное, а здесь хоть иногда отвечают

в целях темизации меню переопределил через файл template.php функцию примерно таким образом


function моя_тема_menu_item_link($link) {
static $id;

$newlinkcode = l($link['title'], $link['href'], $link['localized_options']);

if($link[menu_name] == 'menu-nav-top-2'){
$id++;

$newlinkcode = l(
'<img class="icon g-png24" src="/sites/all/themes/моя_тема/images/icon_nav_top_2_' . $id . '.png" alt="' . $titles_menu2[$id] . '" title="' . $titles_menu2[$id] . '" width="70" height="70" /><span class="title">'.$link['title'].'</span>',
$link['href'],
$link['localized_options']+array('html' => true)
);
}


return $newlinkcode;
}

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

PHP Fatal error: Unsupported operand types in /usr/home/pr1/domains/pr-solution.ru/public_html/dev/includes/common.inc on line 1627

проблемный код указанного файла такой:


$options += array(
'attributes' => array(),
'html' => FALSE,
);

моему пхп5.3 не нравится оператор +=

я заменяю его на array_merge_recursive и описанная проблема решается. но дело в том, что ядро править это моветон. поэтому ищу более приемлимое решение. помогите пожалуйста

еще данные.

сам по себе оператор += работает, я проверял на другом коде.

пробовал закомментировать в template.php моей темы функцию моя_тема_menu_item_link($link){} . после этого проблема тоже решалась полностью, но темизация ломалась

Edited by cyklop77
Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

if($link[menu_name] == 'menu-nav-top-2'){

Забыл кавычки?

А зачем ты два раза присваиваешь значение для $newlinkcode?

кавычки да, пожалуй забыл. но не в них причина

код немного урезал для наглядности. вот полный если интересно


function моя_тема_menu_item_link($link) {
static $id;
static $id2;

//echo('<pre>');
//print_r($link[menu_name]); // распечатает массив в удобном для изучения виде
//print_r($link); // распечатает массив в удобном для изучения виде
//echo('</pre>');

$titles_menu2=array(
'',
'продвижение сайта',
'консалтинг',
'реклама'
);

$newlinkcode = l($link['title'], $link['href'], $link['localized_options']);

if($link[menu_name] == 'menu-nav-top-2'){
$id++;

$link['localized_options']['attributes']['class'] = 'p' . $id;


$newlinkcode = l(
'<img class="icon g-png24" src="/sites/all/themes/моя_тема/images/icon_nav_top_2_' . $id . '.png" alt="' . $titles_menu2[$id] . '" title="' . $titles_menu2[$id] . '" width="70" height="70" /><span class="title">'.$link['title'].'</span>',
$link['href'],
$link['localized_options']+array('html' => true)
);
}

if($link[menu_name] == 'menu-nav-top-3'){
$id2++;

$link['localized_options']['attributes']['class'] = 'p' . $id2;

$newlinkcode = l(
'<span class="title">'.$link['title'].'</span>',
$link['href'],
$link['localized_options']+array('html' => true)
);
}

return $newlinkcode;
}

здесь для определенного меню функция возвращает определенный $newlinkcode. первый $newlinkcode как бы по умолчанию идёт

Edited by cyklop77
Link to comment
Share on other sites

  • 0

извиняюсь, это был не баг. я забыл в функции моя_тема_menu_item_link(){} использовать такое условие


if (empty($link['localized_options'])) {
$link['localized_options'] = array();
}

в menu.inc оно использовалось

Edited by cyklop77
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy