Здравствуйте, умные люди. Научите пожалуйста верстальщика правильно укрощать включаемые области
Структура сайта такова: есть как огромное количество отдельных страниц расположенных просто в корне сайта, так и большое число разделов (папок со страницами).
Задача: повесить на все страницы сайта в шаблоне включаемую область, за исключением одной единственной страницы, расположенной в корне сайта.
В мой неокрепший мозг приходит единственный вариант использования двух одинаковых по содержанию включаемых областей , для всех страниц, расположенных в корне сайта (за исключением той для которой область показывать не нужно) задать эту включаемую область "для страницы" файлом "названиестраницы_inc.php":
Можно ещё вставить грязный костыль. Сделать одну включаемую область sect_inc.php в корне, а для той самой особенной страницы делать проверку по какому-нибудь флагу или вообще по url. Очень некрасиво, конечно, зато удобно Особенно, если много разделов и страниц в корне, а область везде одинаковая.
Евгений Бескровный пишет: Задача: повесить на все страницы сайта в шаблоне включаемую область, за исключением одной единственной страницы, расположенной в корне сайта.
Самый тупой (в лоб) вариант - два шаблона. Один, без включаемой области, для корневой страницы, второй, со включаемой, для всех (область брать для раздела, с настройкой "рекурсивно"). Либо воспользоваться вариантом, который предложила Ольга Трушина.
Не надо сверлить зубы через задний проход дрелью от Сваровски
Ясно, спасибо. У кого еще какие идеи? Может из самого битрикса кто-нибудь заглянет сюда
Плодить шаблоны из за одной включаемой, имхо извращение еще то
Ольга, а можно поконкретнее, как именно это можно осуществить, примерчик бы кодика
И почему Вы это считаете некрасивым костылем? Ведь как я понял других (менее затратных) способов,кроме того, который привел я ведь нет? И кстати, если во всем следовать идеологии построения шаблона битрикса, то мой вариант самый "правильный" ?
Профессионально занимаюсь версткой и интеграцией оной в шаблон «1С-Битрикс» beskrovnyy.com
Евгений Бескровный пишет: Задача: повесить на все страницы сайта в шаблоне включаемую область, за исключением одной единственной страницы, расположенной в корне сайта.
Код
<?php if(!CSite::InDir("/test/")):?>
а тут включаемая область которая не покажется только в папке "/test/"
<?endif;?>
Евгений Бескровный пишет: И кстати, если во всем следовать идеологии построения шаблона битрикса, то мой вариант самый "правильный"
Ваш "вариант" - монстрообразная вариация идеи, которую предложила Ольга. Кстати, в приведенном Вами коде как раз нет определения, какую область показывать. А почему костыль - достаточно просто. При изменении условий придется опять править шаблон, вот и все.
Не надо сверлить зубы через задний проход дрелью от Сваровски
Евгений Жуков пишет: в приведенном Вами коде как раз нет определения, какую область показывать.
Позвольте, позвольте, тезка, как же это нет определения какую показывать?) перечитайте мою монстроподобную идею еще разок, Вы кажется не все поняли, мой вариант вполне рабочий, если все файлы раскидать куда надо, и определить эти две включаемые области в шаблоне и выставить им соответствующие настройки. Просто файла ведь для той страницы на которой показывать не нужно не будет, а включаемая область для раздела не покажется, потому что файлы включаемой области для разделов будут в папках разделов, а в корне этого файла не будет
А за кодик спасибо, теперь буду знать
А про правильность, я просто хочу для себя выяснить, как же всетаки правильно осуществить такую возможность. Ведь должен же быть правильный способ (как бы это сделали сами разработчики битрикса) и много разных вариаций как его так и просто костылей.
Профессионально занимаюсь версткой и интеграцией оной в шаблон «1С-Битрикс» beskrovnyy.com
Попов Кирилл пишет: <?php if(!CSite::InDir("/test/")):?> а тут включаемая область которая не покажется только в папке "/test/" <?endif;?>
кстати мне нужно не показывать область для определенной страницы (к примеру "test.php"), расположенной в корне сайта, как будет выглядеть код в этом случае?
Профессионально занимаюсь версткой и интеграцией оной в шаблон «1С-Битрикс» beskrovnyy.com
Евгений Бескровный пишет: Позвольте, позвольте, тезка, как же это нет определения какую показывать?) перечитайте мою монстроподобную идею еще разок
Перечитал. Объясняю на пальцах. Вы подготовили ВЫЗОВЫ включаемых областей. Замечательно. Теперь вы их вставляете в шаблон сайта друг за другом, не так ли? Но в Вашем коде я не увидел ответа на вот это:
Цитата
Евгений Бескровный пишет: для всех страниц, расположенных в корне сайта (за исключением той для которой область показывать не нужно)
Система - дура, она русский язык не понимает. Ей условия подавай. Или Вы собрались для КАЖДОЙ страницы, лежащей в корне, создавать файлик
Цитата
Евгений Бескровный пишет: "названиестраницы_inc.php"
? Если так, уж простите, на язык просится цитата из известного анекдота - "поручик был большой забавник". Зачем Вы этакую свинью подкладываете девочке - контент-менеджеру? Для каждой новой страницы создай включаемую область, скопируй из уже имеющейся код, при удалении страницы не забудь удалить включаемую область? А если в корне будет хотя бы 2-3 десятка страниц? Это сколько лишней работы?
Не надо сверлить зубы через задний проход дрелью от Сваровски
Единого решения тут нет, каждый раз делают, исходя из начальных условий. Два шаблона как раз хороши минимизацией затрат. В случае, когда у Вас условие "показывать всем, кроме" либо "показывать всем одно, а одной - другое", ну $APPLICATION->GetCurPage() Вам в помощь. Получаете адрес текущей страницы, сравниваете с условием, дальше выводите/не выводите то, что требуется.
Не надо сверлить зубы через задний проход дрелью от Сваровски