Ошибка в хуке node_view_alter()

Главные вкладки

Аватар пользователя Pashikk Pashikk 5 декабря 2014 в 8:24

Доброго времени суток, уважаемые коллеги.
Столкнулся с проблемой после переезда сайта.
На страницах где нет товара и каталога товаров (другого типа материалов) стала появляться ошибка:
Notice: Undefined index: product:commerce_stock in tula_node_view_alter() (line 18 of /sites/all/themes/tula/template.php).
У меня в template.php идет перееопределение вывода количества товара на складе Drupal Commerce Stock:

function tula_node_view_alter(&$build) {
        if ($build['product:commerce_stock'][0]['#markup'] == '0') {
      $build['product:commerce_stock'][0]['#markup'] = "<img src='/sites/all/themes/tula/images/0.gif'>";
  }
 elseif ($build['product:commerce_stock'][0]['#markup'] == '1') {
        $build['product:commerce_stock'][0]['#markup'] = "<img src='/sites/all/themes/tula/images/1.gif'>";
  }
   elseif ($build['product:commerce_stock'][0]['#markup'] == '2') {
        $build['product:commerce_stock'][0]['#markup'] = "<img src='/sites/all/themes/tula/images/2.gif'>";
  }
   elseif ($build['product:commerce_stock'][0]['#markup'] == '3') {
        $build['product:commerce_stock'][0]['#markup'] = "<img src='/sites/all/themes/tula/images/3.gif'>";
  }
   elseif ($build['product:commerce_stock'][0]['#markup'] == '4') {
        $build['product:commerce_stock'][0]['#markup'] = "<img src='/sites/all/themes/tula/images/4.gif'>";
  }
   elseif ($build['product:commerce_stock'][0]['#markup'] >= '5') {
        $build['product:commerce_stock'][0]['#markup'] = "<img src='/sites/all/themes/tula/images/5.gif'>";
  }

В принципе мне понятна ошибка: хук пытается сработать там, где не нужно. А вот как так сделать, чтобы хук срабатывал только на страницах товара и каталога? Прощу помощи. Спасибо.

Комментарии

Аватар пользователя Orion76 Orion76 5 декабря 2014 в 8:38
<?php
function tula_node_view_alter(&$build) {
if(!isset(
$build['product:commerce_stock'])){
return;
}
$number=$build['product:commerce_stock'][0]['#markup']<5?$build['product:commerce_stock'][0]['#markup']:5;

$build['product:commerce_stock'][0]['#markup'] = "<img src='/sites/all/themes/tula/images/{$number}.gif'>";
}
?>
Аватар пользователя Pashikk Pashikk 5 декабря 2014 в 9:13

orion76 wrote:

<?php
function tula_node_view_alter(&$build) {
if(!isset(
$build['product:commerce_stock'])){
return;
}
$number=$build['product:commerce_stock'][0]['#markup']<5?$build['product:commerce_stock'][0]['#markup']:5;

$build['product:commerce_stock'][0]['#markup'] = "<img src='/sites/all/themes/tula/images/{$number}.gif'>";
}
?>


Спасибо. Помогло.

Аватар пользователя Pashikk Pashikk 5 декабря 2014 в 8:41

Добрый форум, чо. Стоило случайно засветить домен, так сразу проверили на безопасность). Молодцы. IP 94.198.242.85, нафига тебе это?

Аватар пользователя Pashikk Pashikk 5 декабря 2014 в 9:13

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:
Проверка на безопасность - это полезно :)

Это да) Чтобы лишний раз не расслаблялись.