Drupal: Показывать блок в определённом разделе, минуя один из подразделов

В параметрах видимости блока можно указать либо Показывать только на перечисленных страницах, либо Показывать на всех страницах исключая перечисленные. Т.е. нельзя скомбинировать условия, и например показывать блок в catalog/*, но не показывать в catalog/search/*.

Выручит опция Если введённый PHP-код возвращает значение TRUE, которая появляется при включении модуля PHP filter. Сам код будет примерно таким:

<?php
$request_path = request_path();
if (drupal_match_path($request_path, 'catalog/*') &&
!drupal_match_path($request_path, 'catalog/search/*')) {
return TRUE;
}
return FALSE;
?>

подробнее