Если папка то применяем...в Битрикс

RSS
Если папка то применяем...в Битрикс
 
Если папка то применяем...в Битрикс


Бывает, стоит задача применить какой-либо стиль или вывести конкретный кусочек кода для дирректории. Для этого в Битрикс можно воспользоваться параметром CMain::GetCurPage. А как расскажу на примере...
 
А как выглядит код не для категории, а для страницы сайта ?
 
Цитата
Дмитрий пишет:
А как выглядит код не для категории, а для страницы сайта ?
Код
  
 
<?if ($APPLICATION->GetCurPage()=='/catalog/index.php'):?>ЧТО-ТО ЧТО ХОТИМ ВЫВЕСТИ<?else:?>Что-то что иначе<?endif;?>  
[CODE][/CODE]
 
А как определить текущий уровень раздела каталога из файла section.php (файл из комплексного каталога)? Там в $arResult не хранится DEPTH_LEVEL.
 
Здравствуйте Михаил! Подскажите как сделать чтоб слайдер не показывался во все разделах каталога?
Я использовал ваш код "<?if (
($APPLICATION->GetCurDir()=='/designes/ready-made-html-layouts/')
|| ($APPLICATION->GetCurDir()=='/designes/adaptive-html/')
|| ($APPLICATION->GetCurDir()=='/portfolio/')
|| ($APPLICATION->GetCurDir()=='/forum/')
):?>" , но т.к. в каталоге очень много разделов, не очень удобно каждый выписывать в код. Как сделать проще? :\
 
Цитата
Леонид пишет:
Здравствуйте Михаил! Подскажите как сделать чтоб слайдер не показывался во все разделах каталога?
Я использовал ваш код "<?if (
($APPLICATION->GetCurDir()=='/designes/ready-made-html-layouts/')
| ($APPLICATION->GetCurDir()=='/designes/adaptive-html/')
| ($APPLICATION->GetCurDir()=='/portfolio/')
| ($APPLICATION->GetCurDir()=='/forum/')
):?>" , но т.к. в каталоге очень много разделов, не очень удобно каждый выписывать в код. Как сделать проще?
Вместо == (равно) используйте !== (не равно)
 
Цитата
Михаил Базаров пишет:
Цитата
Леонид пишет:
Здравствуйте Михаил! Подскажите как сделать чтоб слайдер не показывался во все разделах каталога?
Я использовал ваш код "<?if (
($APPLICATION->GetCurDir()=='/designes/ready-made-html-layouts/')
| ($APPLICATION->GetCurDir()=='/designes/adaptive-html/')
| ($APPLICATION->GetCurDir()=='/portfolio/')
| ($APPLICATION->GetCurDir()=='/forum/')
):?>" , но т.к. в каталоге очень много разделов, не очень удобно каждый выписывать в код. Как сделать проще?
Вместо == (равно) используйте !== (не равно)
Спасибо! Нашел еще решение: (CSite::InDir('/catalog')
 
Михаил подскажите, у меня есть раздел каталог у которого есть страницы авио, ж/д, как мне  вывести определённое меню для этих страниц?
 
Цитата
Василий написал:
Михаил подскажите, у меня есть раздел каталог у которого есть страницы авио, ж/д, как мне  вывести определённое меню для этих страниц?
Нужно, конечно, вашу задачу понимать полнее- но в данном случае, сподручнее через catalog.section.list сделать
 
Михаил, а можно примерчик, какой нибудь, чтобы яснее было
 
Код
<?if( //если текущей уровень каталога 1 и 2 
($arResult["SECTION"]["DEPTH_LEVEL"]==1) 
||($arResult["SECTION"]["DEPTH_LEVEL"]==2) 
):?> 

Должно произойти вот это 

<?endif;?>
 
Тут можно бы на всякий случай уточнить, что уровни начинаются с 0, а не с 1.
 
Здравствуйте!
Подскажите, пожалуйста, какое нужно написать условие, чтобы показывать в шаблоне определённый блок, только когда находишься на странице элемента каталога (странице товара), но не в разделах каталога.
Или наоборот, условие, чтобы скрыть определённый блок шаблона только когда находишься в разделах каталога, а на всех остальных страницах показывать блок, включая страницы элемента каталога (страницы товаров).
 
Цитата
Кирилл написал:
Здравствуйте!
Подскажите, пожалуйста, какое нужно написать условие, чтобы показывать в шаблоне определённый блок, только когда находишься на странице элемента каталога (странице товара), но не в разделах каталога.
Или наоборот, условие, чтобы скрыть определённый блок шаблона только когда находишься в разделах каталога, а на всех остальных страницах показывать блок, включая страницы элемента каталога (страницы товаров).
В данной ситуации лучше использовать не условия, а прямо в шаблоне компонента каталога выводить или не выводить блок
в файлах section.php и sections.php - это разделы и топ
element.php - это карточка товара

Так наиболее эффективно и грамотно
 
Добрый день, Михаил
есть вот такое условие:

[COLOR=#ff0000] <?if(CSite::InDir('/katalog/')):?>[/COLOR]

<?else:?>

<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"news_right",
array(
"DISPLAY_DATE" => "Y",
и.т..д
как в  'if  добавить в условие еще одну страницу чтоб и на ней не показывались новости???'
спасибо!
 
Цитата
Илья написал:
Добрый день, Михаил
есть вот такое условие:

 <?if(CSite::InDir('/katalog/')):?>

<?else:?>

<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"news_right",
array(
"DISPLAY_DATE" => "Y",
и.т..д
как в  'if  добавить в условие еще одну страницу чтоб и на ней не показывались новости???'
спасибо!
Код
<?if( (CSite::InDir('/katalog/')) || (CSite::InDir('/news/')) ):?> 
 
как передать в письмо URL страницы на которой был задан вопрос, код $arFields["PAGE_URL"] = $APPLICATION->GetCurPage(); не срабатывает? В моём случае используется Тип почтового события: Заполнена web-форма "SIMPLE_FORM_2" [FORM_FILLING_SIMPLE_FORM_2]
 
- через init.php
 
сам код:
<?
AddEventHandler('main', 'OnBeforeEventSend', Array("MyForm", "my_OnBeforeEventSend" ;) );
class MyForm
{
   function my_OnBeforeEventSend(&$arFields)
   {
       $arFields["TEST1"] = $APPLICATION->GetCurPage();
       //#TEST1#
   }
}
?>
 
Цитата
mtsub написал:
сам код:
<?
AddEventHandler('main', 'OnBeforeEventSend', Array("MyForm", "my_OnBeforeEventSend"  );
class MyForm
{
   function my_OnBeforeEventSend(&$arFields)
   {
       $arFields["TEST1"] = $APPLICATION->GetCurPage();
       //#TEST1#
   }
}
?>
Наверное проще, в форме создать input невидимый и в него передать заголовок или адрес страницы.
Не всегда, нужно захламлять init.php - если моно обойтись- лучше обойтись
 
Цитата
Михаил Базаров пишет:
Наверное проще, в форме создать input невидимый и в него передать заголовок или адрес страницы.
Не всегда, нужно захламлять init.php - если моно обойтись- лучше обойтись
- а как код должен выглядеть, если не сложно, напишите, понимаю, что код элементарный))
 
Цитата
Леонид пишет:
Цитата
Михаил Базаров пишет:
Цитата
Леонид пишет:
Здравствуйте Михаил! Подскажите как сделать чтоб слайдер не показывался во все разделах каталога?
Я использовал ваш код "<?if (
($APPLICATION->GetCurDir()=='/designes/ready-made-html-layouts/')
| ($APPLICATION->GetCurDir()=='/designes/adaptive-html/')
| ($APPLICATION->GetCurDir()=='/portfolio/')
| ($APPLICATION->GetCurDir()=='/forum/')
):?>" , но т.к. в каталоге очень много разделов, не очень удобно каждый выписывать в код. Как сделать проще?
Вместо == (равно) используйте !== (не равно)
Спасибо! Нашел еще решение: (CSite::InDir('/catalog')
В принципе как вариант, можно использовать define
 
Михаил почему так работает:
Код
<?if ( 
($APPLICATION->GetCurDir()=='/otdykh-u-ivanycha/') 
|| ($APPLICATION->GetCurDir()=='/otdykh-u-ivanycha/banya-1/') 
):?>
   Действие
<?endif; ?> 
так, не работает:
Код
<?if ( ($APPLICATION->GetCurDir()!='/otdykh-u-ivanycha/')   
|| ($APPLICATION->GetCurDir()!='/otdykh-u-ivanycha/banya-1/') 
):?>
   Действие
<?endif; ?> 
а так, тоже работает:
Код
<?if ( ($APPLICATION->GetCurDir()!='/otdykh-u-ivanycha/')   

):?>
   Действие
<?endif; ?> 
или так:
Код
<?if (($APPLICATION->GetCurDir()!='/otdykh-u-ivanycha/banya-1/') 
):?>
   Действие
<?endif; ?> 

Условие != через || не работает, а по одиночке работает. В чём может быть причина?  
 
Цитата
Alexey Klyonin написал:
!=
Попробуй !==
 
Здравствуйте.
Как сделать, что бы определенный элемент не появлялся(отображался) на главной И в одной директории?
if ($APPLICATION->GetCurPage() != '/')) { элемент } - не отображает на главной
Как приписать в CSite::InDir('/service/')) , так что бы в них не отображался элемент.
if ($APPLICATION->GetCurPage() != '/' and CSite::InDir('/service/')) - думал так, но тут логика не правильная, надо что бы во втором условии было "нет".  
 
Цитата
taa@webstripe.ru написал:
Здравствуйте.
Как сделать, что бы определенный элемент не появлялся(отображался) на главной И в одной директории?
if ($APPLICATION->GetCurPage() != '/')) { элемент } - не отображает на главной
Как приписать в CSite::InDir('/service/')) , так что бы в них не отображался элемент.
if ($APPLICATION->GetCurPage() != '/' and CSite::InDir('/service/')) - думал так, но тут логика не правильная, надо что бы во втором условии было "нет".  
Если элемент инфоблока- думаю проще через глобальный фильтр. Типа того
Код
$GLOBALS['arrFilter'] = array('!ID' => 12);
 
То самое чувство, когда спустя 8 лет работы твой папка все еще Базаров)))
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Ютубе