Posted 14 апреля, 20177 yr comment_126749 Вот на DLE например имеются такие теги: [not-aviable=main] {content} [/not-aviable] [aviable=fullstory] {content} [/aviable] Как например в GlobalTemplate прописать , а точнее скрыть например <div class="1"></div> на форумах, а показать на страницах? Или скрыть на страницах, а показать в полной новости на этих страницах? Кто владеет данной информацией, помогите советом , очень нужно для моего проекта. Заранее благодарен знатоки! И PS Не по теме: Edited 14 апреля, 20177 yr by andros0789 удалил лишний тег Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/ Share on other sites Больше вариантов
14 апреля, 20177 yr Author comment_126781 Кто же все таки подскажет? А то тема вниз ушла уже... Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126781 Share on other sites Больше вариантов
14 апреля, 20177 yr comment_126784 9 часов назад, andros0789 сказал: Как например в GlobalTemplate прописать , а точнее скрыть например <div class="1"></div> на форумах, а показать на страницах? А в чем проблема? <div class="1 ipsHide"></div> Не будет показываться нигде а в css прописываем body[data-pageapp="cms"] .1 { display: block; } Вариант 2 - еще лучше/ Через переменную $location , которая в GlobalTemplate есть. {{if $location['app'] == 'cms'}} <div class="1"></div> {{endif}} 9 часов назад, andros0789 сказал: Или скрыть на страницах, а показать в полной новости на этих страницах? Здесь сложнее, т.к. и $location['app'] и $location['module'] будут одинаковыми. Но есть выход, называется bodyClasses . В шаблоне страницы record.phtml добавляем bodyClasses, например вот так {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} И тогда у нас body уже имеет доп. класс fullNews / Соот-но или через css body.fullNews или чекркз проверку существования класса {{if !in_array('fullNews', \IPS\Output::i()->bodyClasses )}} блаблабла {{endif}} 9 часов назад, andros0789 сказал: И PS Не по теме: Там три буквы пропущено, фильтр плохих слов не прошли Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126784 Share on other sites Больше вариантов
14 апреля, 20177 yr Author comment_126786 kgb, эт получается пол шаблна глобал будет в тегах?)) в принципе нормальное решение) Просто есть много страниц, подкатегорий, баз данных и тд..шаблон почти везде одинаковый, но есть где например есть боковой блок а есть где его нет...вот и сижу голову ломаю) Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126786 Share on other sites Больше вариантов
15 апреля, 20177 yr comment_126808 13 часов назад, andros0789 сказал: kgb, эт получается пол шаблна глобал будет в тегах?)) в принципе нормальное решение) Просто есть много страниц, подкатегорий, баз данных и тд..шаблон почти везде одинаковый, но есть где например есть боковой блок а есть где его нет...вот и сижу голову ломаю) Во первых кто тебя заставляет все лепить в глобал шаблоне? Во-вторых, ты спросил, я показал механизмы, которы, кстати, сам движек использует. Например bodyClasses используется для вывода меню в зависимости от шаблона, а location для определания места виджетов, добавляемых через менеджер виджетов. Ну и в третьих чем твое от WP [not-aviable=main] {content} [/not-aviable] отличается от {{if $location['app'] == 'cms'}} Блок {{endif}} ??????? Или опиши конкретно, что где хочешь, а то не понятно о каком блоке речь, толи ты его ручками в шаблоне прописываешь, толи это кастом блок от pages толи еще что Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126808 Share on other sites Больше вариантов
15 апреля, 20177 yr Author comment_126809 18 минут назад, kgb сказал: Во первых кто тебя заставляет все лепить в глобал шаблоне? Во-вторых, ты спросил, я показал механизмы, которы, кстати, сам движек использует. Например bodyClasses используется для вывода меню в зависимости от шаблона, а location для определания места виджетов, добавляемых через менеджер виджетов. Ну и в третьих чем твое от WP [not-aviable=main] {content} [/not-aviable] отличается от {{if $location['app'] == 'cms'}} Блок {{endif}} ??????? Или опиши конкретно, что где хочешь, а то не понятно о каком блоке речь, толи ты его ручками в шаблоне прописываешь, толи это кастом блок от pages толи еще что От души за помощь)) буду пилить дальше) А вот еще вопрос) Как к примеру в краткой новости в Pages прописать показ изображения (к примеру иконку что это видео новость а не обычная новость) в зависимости от категории? К примеру на главной странице новостей показаны новости всех категорий, но у всех идет один шаблон, только с показом иконки PLAY на изображении к новости. которая накладывается условием типа если это видео, то показать, если обычная, то скрыть. Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126809 Share on other sites Больше вариантов
15 апреля, 20177 yr comment_126811 9 минут назад, andros0789 сказал: к примеру иконку что это видео новость а не обычная новость А чем видео новость отличается от обычной? Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126811 Share on other sites Больше вариантов
15 апреля, 20177 yr Author comment_126812 Только что, kgb сказал: А чем видео новость отличается от обычной? внутри будут шаблоны разные) И в краткой новости просто накладывается иконка PLAY 9 минут назад, kgb сказал: А чем видео новость отличается от обычной? вот так к примеру, то что нужно Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126812 Share on other sites Больше вариантов
15 апреля, 20177 yr comment_126813 2 минуты назад, andros0789 сказал: внутри будут шаблоны разные Это как? Для отображения базы данных используется - для полной записи - группа шаблонов "display", для категорий - "listing", для главной страницы базы - в зависимости от настроек - или "category_articles" ( с вариантами category_2_column_first_featured, category_2_column_image_feature и т.д. ) или "category_index" . Разные шаблоны для одной базы , например разные шаблоны display сделать нельзя. Я не понимаю. Самое простое, добавить поле чекбокс и включать его при добавлении видео-новости. А потом проверять в шаблоне и в зависимости от значения выводить то, что надо Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126813 Share on other sites Больше вариантов
15 апреля, 20177 yr Author comment_126814 Только что, kgb сказал: Это как? Для отображения базы данных используется - для полной записи - группа шаблонов "display", для категорий - "listing", для главной страницы базы - в зависимости от настроек - или "category_articles" ( с вариантами category_2_column_first_featured, category_2_column_image_feature и т.д. ) или "category_index" . Разные шаблоны для одной базы , например разные шаблоны display сделать нельзя. Я не понимаю. Самое простое, добавить поле чекбокс и включать его при добавлении видео-новости. А потом проверять в шаблоне и в зависимости от значения выводить то, что надо Тоже дело говоришь!) Соглашусь) А вот как к примеру разные два кастомных блока на разных страницах показать? К примеру в категории один блок а в полной новости другой боковой блок? Так же как и выше описали? Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126814 Share on other sites Больше вариантов
15 апреля, 20177 yr comment_126815 1 минуту назад, andros0789 сказал: А вот как к примеру разные два кастомных блока на разных страницах показать? Если речь идет о блоках pages, добавляемых через менеджер виджетов, то стандатным средство это никак, я писал выше, что 15 часов назад, kgb сказал: и $location['app'] и $location['module'] а движек для определения места блока использует как раз location ( точнее поле "area_area" в таблице "cms_page_widget_areas" ). Так только создавать для каждого шаблона bodyClasses {{\IPS\Output::i()->bodyClasses[] = 'cms_display';}} {{\IPS\Output::i()->bodyClasses[] = 'cms_listing';}} и т.д. и происывать прям блоках условия, правда есть недостаток, блоки кешировать нельзя. Есть другой вариант. Отказаться от менеджера виджетов, а также от глобального сайдбара и прям в шаблонах создать места для блоков, включая сайдбар и вставлять блоки через {block="KEY"} Есть правда третий вариант, который я реализовал, но он требует прямого вмешательства в исходный код. Они там одну строчку не дописали, или забыли или просто не захотели спецом Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126815 Share on other sites Больше вариантов
15 апреля, 20177 yr Author comment_126816 Только что, kgb сказал: Если речь идет о блоках pages, добавляемых через менеджер виджетов, то стандатным средство это никак, я писал выше, что а движек для определения места блока использует как раз location ( точнее поле "area_area" в таблице "cms_page_widget_areas" ). Так только создавать для каждого шаблона bodyClasses {{\IPS\Output::i()->bodyClasses[] = 'cms_display';}} {{\IPS\Output::i()->bodyClasses[] = 'cms_listing';}} и т.д. и происывать прям блоках условия, правда есть недостаток, блоки кешировать нельзя. Есть другой вариант. Отказаться от менеджера виджетов, а также от глобального сайдбара и прям в шаблонах создать места для блоков, включая сайдбар и вставлять блоки через {block="KEY"} Есть правда третий вариант, который я реализовал, но он требует прямого вмешательства в исходный код. Они там одну строчку не дописали, или забыли или просто не захотели спецом как же радует что есть грамотные) Спасибо друг. И извини за былое))было дело как то гадость написал в твой адрес. И может насчет третьего напишешь,так сказать для общего познания. Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126816 Share on other sites Больше вариантов
15 апреля, 20177 yr comment_126817 9 минут назад, andros0789 сказал: И извини за былое)) Не помню. Ты пробегись по моим сообщениям, я ведь в выражениях не стесняюсь и для некоторых это тоже гадости, хотя я просто называю вещи своими именами)))))) 13 минут назад, andros0789 сказал: И может насчет третьего Ну я тоже столкнулся с той же проблемой. Если на форумах на главной, в разделах и в темах можно показывать разные блоки, то для Pages везде показывается один, да его еще хрен удалишь)))))) (кстати, у кого проблема с удалением, простой способ - перемещаем в другоу место, например из сайдбара в хидер и тут же удаляем))). В то же время в режиме page bilder движек предусматривает создание кастомных мест для виджетов. Если открыть шаблоны page_builder то мы увидем там, как пример для трех колонок <div> <div class='ipsGrid ipsGrid_collapsePhone'> <div class='ipsGrid_span4'> {template="widgetContainer" group="pages" app="cms" params="'col1', $widgets, 'vertical'"} </div> <div class='ipsGrid_span4'> {template="widgetContainer" group="pages" app="cms" params="'col2', $widgets, 'vertical'"} </div> <div class='ipsGrid_span4'> {template="widgetContainer" group="pages" app="cms" params="'col3', $widgets, 'vertical'"} </div> </div> </div> Однако попытка создать создесть кастомный виджет контейнер в шаблонах при ручном режиме , например {template="widgetContainer" group="pages" app="cms" params="'MyCustomArea', $widgets, 'vertical'"} ни к чему не привела, не работает. Выясням. Находим класс, который за это отвечает, он здесь /applications/cms/sources/Pages/Page.php и видим. Для page_builder такой код if ( $this->type === 'builder' ) { list( $group, $name, $key ) = explode( '__', $this->template ); \IPS\Output::i()->output = \IPS\Theme::i()->getTemplate('pages')->globalWrap( $nav, \IPS\cms\Theme::i()->getTemplate($group, 'cms', 'page')->$name( $this, $this->getWidgets() ), $this ); } Где getWidgets() как раз вытаскивает как стандартные так и кастомные места для виджетов. Ну а для ручного режима код такой else { /* Populate \IPS\Output::i()->sidebar['widgets'] sidebar/header/footer widgets */ $this->getWidgets(); \IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'pages', 'cms' )->globalWrap( $nav, $this->getHtmlContent(), $this ); } дальше дело техники, возможно несколько вариатнов, сложнее, проще, лучше хуже, но самый простой, это заменить код для ручного режима вот так else { /* Populate \IPS\Output::i()->sidebar['widgets'] sidebar/header/footer widgets */ //$this->getWidgets(); //original \IPS\Output::i()->sidebar['widgets'] = $this->getWidgets();//custom widget area \IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'pages', 'cms' )->globalWrap( $nav, $this->getHtmlContent(), $this ); } И упс, в жопу программеров от IPS? мы сами с ушами))) Теперь мы шаблонах пишем, например {template="widgetContainer" group="global" app="core" params="'header_MyTemplate_Display', 'horizontal'"} или {template="widgetContainer" group="global" app="core" params="'sidebar_MyTemplate_Display', 'vertical'"} или для листинга {template="widgetContainer" group="global" app="core" params="'header_MyTemplate_Listing', 'horizontal'"} Ну и т.д. и получаем кастомное мето для виджета. Там, Прадва еще с css немного может придеться поработать, но это уже мелочи Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126817 Share on other sites Больше вариантов
15 апреля, 20177 yr Author comment_126818 огромнейшее тебе! Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126818 Share on other sites Больше вариантов
16 апреля, 20177 yr Author comment_126850 Маленький вопрос, как сокрашать вывод кол-ва комментов и просмотров? {lang="num_views_with_number" pluralize="$record->record_views"} {lang="num_comments" pluralize="$record->record_comments"} Без слова ПРОСМОТРОв и КОММЕНТАРИЕВ. Просто цифры Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126850 Share on other sites Больше вариантов
16 апреля, 20177 yr Author comment_126851 а все понял) { $record->record_comments} и {$record->record_views } Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126851 Share on other sites Больше вариантов
16 апреля, 20177 yr comment_126852 11 минут назад, andros0789 сказал: а все понял) { $record->record_comments} и {$record->record_views } Это хорошо, Но на всякий случай, часто помогает вот это {{echo '<pre>';}} {{print_r($record);}} {{echo '</pre>';exit;}} Что бы понять, что же там у нас в переменной $record (или $row или что там еще будет ) Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126852 Share on other sites Больше вариантов
16 апреля, 20177 yr Author comment_126853 Только что, kgb сказал: Это хорошо, Но на всякий случай, часто помогает вот это {{echo '<pre>';}} {{print_r($record);}} {{echo '</pre>';exit;}} Что бы понять, что же там у нас в переменной $record (или $row или что там еще будет ) Воу крутяк! Осталось научиться мне теперь условия составлять))) Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=126853 Share on other sites Больше вариантов
20 апреля, 20177 yr Author comment_127028 В 14.04.2017 в 23:04, kgb сказал: В 14.04.2017 в 13:17, andros0789 сказал: Как например в GlobalTemplate прописать , а точнее скрыть например <div class="1"></div> на форумах, а показать на страницах? А в чем проблема? <div class="1 ipsHide"></div> Не будет показываться нигде а в css прописываем body[data-pageapp="cms"] .1 { display: block; } Вариант 2 - еще лучше/ Через переменную $location , которая в GlobalTemplate есть. {{if $location['app'] == 'cms'}} <div class="1"></div> {{endif}} В 14.04.2017 в 13:17, andros0789 сказал: Или скрыть на страницах, а показать в полной новости на этих страницах? Здесь сложнее, т.к. и $location['app'] и $location['module'] будут одинаковыми. Но есть выход, называется bodyClasses . В шаблоне страницы record.phtml добавляем bodyClasses, например вот так {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} И тогда у нас body уже имеет доп. класс fullNews / Соот-но или через css body.fullNews или чекркз проверку существования класса {{if !in_array('fullNews', \IPS\Output::i()->bodyClasses )}} блаблабла {{endif}} Вот и встал вопрос на этом месте у меня) Прописываю я в класс {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} в настройках содержимого страницы, где у мен свой шаблон. Прописываю условия что идут ниже в твоем примере. Но как определить что я нахожусь в полной новости то?))Вопрос) Убирает блоки на главной и в полной новости, а надо как то ему прописать что только в полной новости) Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=127028 Share on other sites Больше вариантов
20 апреля, 20177 yr Author comment_127029 Совет нужен) Если я в шаблон полной новости пропишу скрипт с добавлением класса в body <script> $("#default-body").addClass("fullNews"); </script> А после этого пропишу вместо {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} Свое условие на проверку класса через hasClass в <body class="fullNews"> для удаления ненужных блоков в полной новости. Нормально будет как думаете знатоки? Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=127029 Share on other sites Больше вариантов
20 апреля, 20177 yr comment_127038 2 часа назад, andros0789 сказал: Если я в шаблон полной новости пропишу скрипт с добавлением класса в body Зачем плодить сущности и засорять шаблон скриптом, если {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} добавит класс fullNews в боди? Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=127038 Share on other sites Больше вариантов
20 апреля, 20177 yr comment_127042 50 минут назад, kgb сказал: Зачем плодить сущности и засорять шаблон скриптом, если {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} добавит класс fullNews в боди? Хорошая конструкция для больших кастомных проектов. Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=127042 Share on other sites Больше вариантов
20 апреля, 20177 yr Author comment_127049 2 часа назад, kgb сказал: Зачем плодить сущности и засорять шаблон скриптом, если {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} добавит класс fullNews в боди? Ну прописал я {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} в боди в шаблоне страницы, а дальше то что??? Как мне показать свой шаблон полной новости? В этом то и вся беда. Мне нужно в полной новости убрать половину кода ведь. Поэтому и не пойму как убрать с помощью скрипта, точнее добавить скриптом. Прописав скрипт в шаблон полной новости, а в шаблоне страницы прописать в ненужные (блоки которые не нужны в фуллстори) условие.... Как условие прописать, если в классе боди есть fuulNews то не показывать этот блок? {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} не катит... Так как класс добавляется скриптом. Как в IPS с помощью hasClass сделать проверку класса боди? Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=127049 Share on other sites Больше вариантов
20 апреля, 20177 yr comment_127052 {{if in_array('МОЙКЛАСС', \IPS\Output::i()->bodyClasses )}} Класс имеется {{else}} Класса нет {{endif}} Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=127052 Share on other sites Больше вариантов
20 апреля, 20177 yr Author comment_127053 5 минут назад, Respected сказал: {{if in_array('МОЙКЛАСС', \IPS\Output::i()->bodyClasses )}} Класс имеется {{else}} Класса нет {{endif}} То есть получается тут нет такого понятия, если есть класс вывести, если нет то не вывести?)) Я имею ввиду, придется два раза код прописывать {{if in_array('fullNews', \IPS\Output::i()->bodyClasses )}} <section class="promo-strip span12"> <ul class="promo-strip__list row "> {block="newstop4"} </ul> </section> {{else}} К примеру надо убрать этот блок в полной новости. Вот как его показать на главной в Страницах и убрать в полной новости? то ли я че то не то делаю, то ли хз Link to comment https://ipbmafia.ru/topic/17154-kak-skryt-bloki-na-opredelennoj-stranice/?&do=findComment&comment=127053 Share on other sites Больше вариантов
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.