Нужно вывести один блок на страницах определенного типа материла и на определенных страницах.
Нашел нужные кусочки кода:
<?php
$match = FALSE;
$types = array('тип материала' => 1);
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset($types[$type])) {
$match = TRUE;
}
}
return $match;
?>
и
<?php
$desired_paths = array('перечисление страниц');
if ($_GET['q']) {
$my_drupal_path = $_GET['q'];
} else {
$my_drupal_path = substr($_SERVER['REQUEST_URI'], 1);
}
$my_path_alias = drupal_get_path_alias($my_drupal_path);
foreach ($desired_paths as $desired_path) {
if (stristr($my_path_alias, $desired_path)) {
return TRUE;
}
}
return FALSE;
?>
Как можно объеденить эти два кода? Или нужно выводить два одинаковых блока с разными условиями?
Комментарии
А логику включить никак?
<?php
$desired_paths = array('перечисление страниц');
if ($_GET['q']) {
$my_drupal_path = $_GET['q'];
} else {
$my_drupal_path = substr($_SERVER['REQUEST_URI'], 1);
}
$my_path_alias = drupal_get_path_alias($my_drupal_path);
foreach ($desired_paths as $desired_path) {
if (stristr($my_path_alias, $desired_path)) {
return TRUE;
}
}
$types = array('тип материала' => 1);
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset($types[$type])) {
return TRUE;
}
}
return FALSE;
?>
Помогло) Забавно, что до этого пробовал и не помогало, видимо мудрил где-то) спасиБо!
Подскажите, пожалуйста, что в этой строке кода:
<?php $type = $node->type;?>
означает "->" ?
Это обращение к одному из элементов объекта $node (учим пхп)
Спасибо за ответ. Буду знать теперь, где читать дальше.