Настройка видимости блока в Drupal (PHP-режим)

посмотреть

При настройке видимости блока в drupal нам предлагается три различных способа:

  • указать все страницы, на которых блок будет показываться
  • указать страницы, на которых блок НЕ будет показываться (на всех остальных он будет виден)
  • написать php-код определяющий видимость блока.

С первыми двумя все более-менее ясно. Недавно столкнулся с одним нюансом в написании третьего способа. Нужно было ограничить отображение exposed-фильтра. Да так чтобы он появлялся на одних страницах  и не появлялся на других, а описать это используя первые два способа было невозможно.

Вот код:

<?php
$match = FALSE;
$url = request_uri();
if (strpos($url, "/products") !== FALSE) {
    if(strpos($url, "/products/new") !== FALSE) { $match = FALSE;} else { $match = TRUE; }
}
return $match;
?>

Просто хочу обратить внимание на использование !== или === сравнение с учетом типа данных. В примерах этого не было, и, если искомая подстрока оказывалась в начале строки с адресом, strpos возвращал 0, что воспринималось как false.

Безусловно это ламерская ошибка, можно кинуть в меня камень.

вернуться назад