Как правильно указать несколько типов в функции? (код внутри)

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

Аватар пользователя Photoshopper Photoshopper 10 января 2013 в 17:46

Мне нужно внутри нод определенных типов материала скрыть заголовки. Вот рабочая функция

<?phpfunction lodger_preprocess_page(&$vars) {
  if (isset($vars['node']) && $vars['node']->type == 'sale') {
    $vars['title'] = '';
  }
}?>

Нужно кроме sale добавить другие тип материалов, только не знаю как это сделать. С php туго. Помогите

Пробовал вот так, но не работает

<?phpfunction lodger_preprocess_page(&$vars) {
  if (isset($vars['node']) && $vars['node']->type == 'sale' or 'buy' or 'lease' or 'rent') {
    $vars['title'] = '';
  }
}?>

Комментарии

Аватар пользователя IPlayer IPlayer 10 января 2013 в 20:32

Я и так написал Вам пример. Конечно, его надо модифицировать. Ну дак, а голова то на что? Никто Вашу работу за Вас делать не собирается - для Вашей же пользы.

Аватар пользователя ilyin.eugene ilyin.eugene 11 января 2013 в 6:51

Это поможет


<?php
  
function lodger_preprocess_page(&$vars) {
    if (!empty(
$vars['node']->type) && in_array($vars['node']->type, array('sale''type1''type2'))) {
      
$vars['title'] = '';
    }
  }
?>
Аватар пользователя drupby drupby 11 января 2013 в 19:35

а откуда вы взяли $vars['title'] ?

P.S. странно в page.tpl.php действительно есть переменная $title а если в template.php написать так

function имя_темы_preprocess_page(&$vars) {
     dsm($vars);
     
  }

там не будет $vars['title']

Аватар пользователя drupby drupby 11 января 2013 в 19:27

как выход пишите

<?phpfunction lodger_preprocess_page(&$vars) {
  if (isset($vars['node']) && $vars['node']->type == 'sale') {
    $vars['title'] = '';
  }
  if (isset($vars['node']) && $vars['node']->type == 'buy') {
    $vars['title'] = '';
  }
  if (isset($vars['node']) && $vars['node']->type == 'lease') {
    $vars['title'] = '';
  }
  //  ну и т.д.
}?>

хотя

<?phpfunction lodger_preprocess_page(&$vars) {
if ( !empty($vars['node']->type) && in_array($vars['node']->type, array('sale', 'buy', 'lease'))) {
      $vars['title'] = '';
    }
}?>

тоже работает

Аватар пользователя Photoshopper Photoshopper 12 января 2013 в 0:53

блин, прошу прощения. Все дело было в кэше.

Пример

<?phpfunction lodger_preprocess_page(&$vars) {
if ( !empty($vars['node']->type) && in_array($vars['node']->type, array('sale', 'buy', 'lease'))) {
      $vars['title'] = '';
    }
}?>

действительно работает. Спасибо