Как скрыть блок не только для одной страницы, а для всей категории

Рейтинг: 0Ответов: 1Опубликовано: 06.01.2015

Здравствуйте. Подскажите пожалуйста, как скрыть блок не только на одной странице, но и на страницах, входящих в эту категорию. Для отзывов я решила проблему с помощью такого кода:

<?php if (in_array('otzivi', explode('/', $_SERVER['REQUEST_URI']))) { ?>
    <style>
        #news {display:none;}
        #otzivi {display:none;}
        #podelitsya {display:none;}
    </style>
<?php } ?>

Там урлы идут через слеш /: ...index.php/otzivi/2. Теперь мне нужно убрать эти же блоки в новостях, но код не работает из-за того, что теперь урлы выглядят так: ... index.php/novosti?start=4 . И объясните, пожалуйста, что делает функция explode.

Ответы

▲ 2Принят

Функция explode() - описание по ссылке, в вашем случае функция разбивает url по разделителю "/" и делает из получившихся данных массив, а с помощью функции in_array() проверяет есть ли в получившемся массиве искомое значение.

Например, url вида "index.php/otzivi/2" с помощью explode() разбирается на массив array("index.php", "otzivi", "2"), ну а дальше с помощью in_array() проверяет есть ли в этом массиве "otzivi" и если есть, то стили применяются.

Условие будет выглядеть так (разделил по строчкам, чтобы выглядело понятно):

<?php if (
    in_array('otzivi', explode('/', $_SERVER['REQUEST_URI'])) ||
    in_array('novosti', explode('/', $_SERVER['REQUEST_URI']))
  ) { ?>
    <style>
       #news {display:none;}
       #otzivi {display:none;}
       #podelitsya {display:none;}
    </style>
<?php } ?>