Перейти к содержанию

andros0789

Актив
  • Постов

    763
  • Зарегистрирован

  • Посещение

  • Победитель дней

    24

Сообщения, опубликованные andros0789

  1. 16 минут назад, Respected сказал:

    Яваскриптом добавить класс для проверки не получится, нужно сделать как предложил kgb:

    
    {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}}
    {{if in_array('fullNews', \IPS\Output::i()->bodyClasses )}}
                         
    					{{else}} 
    					<section class="promo-strip span12">
                            <ul class="promo-strip__list row ">
                               {block="newstop4"}
                            </ul>
                         </section> 
     {{endif}}

     

    У меня добавился класс))

    Снимок.PNG

    Снимок2.PNG

  2. Почему то не работает(
    Начнем сначала)))
    В полной новости (шаблон Display) добавил скрипт в самый низ

    <script>
            $("#default-body").addClass("fullNews");    
    </script>

    В шаблоне самой страницы новостей я к ненужным в полной новости блокам (div'ам) прописываю код

    {{if in_array('fullNews', \IPS\Output::i()->bodyClasses )}}
                         
    					{{else}} 
    					<section class="promo-strip span12">
                            <ul class="promo-strip__list row ">
                               {block="newstop4"}
                            </ul>
                         </section> 
     {{endif}}

    И получается когда я захожу в полную новость у меня присваивается класс скриптом, и идет проверка с помощью условия на наличие класса в боди? Так?  И автоматом его скрывает. Или я допустил ошибку?

  3. 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}} 

    К примеру надо убрать этот блок в полной новости. Вот как его показать на главной в Страницах и убрать в полной новости? то ли я че то не то делаю, то ли хз

  4. 2 часа назад, kgb сказал:

    Зачем плодить сущности и засорять шаблон скриптом, если  {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} добавит класс  fullNews в боди?

    Ну прописал я  {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}}  в боди в шаблоне страницы, а дальше то что???  Как мне показать свой шаблон полной новости? В этом то и вся беда. Мне нужно в полной новости убрать половину кода ведь. Поэтому и не пойму как убрать с помощью скрипта, точнее добавить скриптом. Прописав скрипт в шаблон полной новости, а в шаблоне страницы прописать в ненужные (блоки которые не нужны в фуллстори) условие.... Как условие прописать, если в классе боди есть fuulNews то не показывать этот блок?

    {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} не катит... Так как класс добавляется скриптом.

    Как в IPS с помощью  hasClass сделать проверку класса боди?

  5. Совет нужен) Если я в шаблон полной новости пропишу скрипт с добавлением класса в body

    <script>
            $("#default-body").addClass("fullNews");    
    </script>

    А после этого пропишу вместо 

    {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}}

    Свое условие на проверку класса через hasClass в <body class="fullNews"> для удаления ненужных блоков в полной новости. Нормально будет как думаете знатоки?

  6. В 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';}} в настройках содержимого страницы, где у мен свой шаблон. Прописываю условия что идут ниже в твоем примере. Но как определить что я нахожусь в полной новости то?))Вопрос)
    Убирает блоки на главной и в полной новости, а надо как то ему прописать что только в полной новости)

  7. Только что, kgb сказал:

    Это хорошо, Но на всякий случай, часто помогает вот это 

    
    {{echo '<pre>';}}
    {{print_r($record);}}
    {{echo '</pre>';exit;}}

    Что бы понять, что же там у нас в переменной $record (или $row или что там еще будет )

    Воу крутяк! Осталось научиться мне теперь условия составлять)))

  8. Маленький вопрос, как сокрашать вывод кол-ва комментов и просмотров?
    {lang="num_views_with_number" pluralize="$record->record_views"}

    {lang="num_comments" pluralize="$record->record_comments"}

    Без слова ПРОСМОТРОв и КОММЕНТАРИЕВ. Просто цифры

  9. Только что, kgb сказал:

    Если речь идет о блоках pages, добавляемых  через менеджер виджетов, то стандатным средство это никак, я писал выше, что

    а движек для определения места блока использует как раз location ( точнее поле "area_area" в таблице "cms_page_widget_areas" ). Так  только создавать  для каждого шаблона bodyClasses

    
    {{\IPS\Output::i()->bodyClasses[] = 'cms_display';}}
    {{\IPS\Output::i()->bodyClasses[] = 'cms_listing';}}
    и т.д.

    и происывать прям блоках условия, правда есть недостаток, блоки кешировать нельзя.

     

    Есть другой вариант. Отказаться от менеджера виджетов, а также от глобального сайдбара и прям в шаблонах создать места для блоков, включая сайдбар и вставлять блоки через {block="KEY"}

     

    Есть правда третий вариант, который я реализовал, но он требует прямого вмешательства в исходный код. Они там одну строчку не дописали, или забыли или просто не захотели спецом

    как же радует что есть грамотные) Спасибо друг. И извини за былое))было дело как то гадость написал в твой адрес. 

    И может насчет третьего напишешь,так сказать для общего познания.

  10. Только что, kgb сказал:

    Это как? Для отображения базы данных используется - для полной записи - группа шаблонов "display",  для категорий -  "listing", для главной страницы базы - в зависимости от настроек - или "category_articles" ( с вариантами category_2_column_first_featured, category_2_column_image_feature и т.д. ) или "category_index" . Разные шаблоны для одной базы ,  например разные шаблоны display сделать нельзя. Я не понимаю.

     

    Самое простое, добавить поле чекбокс и включать его при добавлении видео-новости. А потом проверять в шаблоне и в зависимости от значения выводить то, что надо

    Тоже дело говоришь!) Соглашусь)
    А вот как к примеру разные два кастомных блока на  разных страницах показать? К примеру в категории один блок а в полной новости другой боковой блок? Так же как и выше описали?

  11. Только что, kgb сказал:

    А чем видео новость отличается от обычной?

    внутри будут шаблоны разные) И в краткой новости просто накладывается иконка PLAY

    9 минут назад, kgb сказал:

    А чем видео новость отличается от обычной?

    вот так к примеру, то что нужно

    Снимок.PNG

  12. 18 минут назад, kgb сказал:

    Во первых кто тебя заставляет все лепить в глобал шаблоне? Во-вторых, ты спросил, я показал механизмы, которы, кстати, сам движек использует.  Например bodyClasses используется для вывода меню в зависимости от шаблона, а location для определания места виджетов, добавляемых через менеджер виджетов. Ну и в третьих чем твое от WP

    
    [not-aviable=main] {content} [/not-aviable] 

    отличается от

    
    {{if $location['app'] == 'cms'}}
    	Блок
    {{endif}}

    ???????

     

    Или опиши конкретно, что где хочешь, а то не понятно о каком блоке речь, толи ты его ручками в шаблоне прописываешь, толи это кастом блок от pages толи еще что

    От души за помощь)) буду пилить дальше)

    А вот еще вопрос) Как к примеру в краткой новости в Pages прописать показ изображения (к примеру иконку что это видео новость а не обычная новость) в зависимости от категории? К примеру на главной странице новостей показаны новости всех категорий, но у всех идет один шаблон, только с показом иконки PLAY на изображении к новости. которая накладывается условием типа если это видео, то показать, если обычная, то скрыть.^_^

  13. kgb, эт получается пол шаблна глобал будет в тегах?)) в принципе нормальное решение) Просто есть много страниц, подкатегорий, баз данных и тд..шаблон почти везде одинаковый, но есть где например есть боковой блок а есть где его нет...вот и сижу голову ломаю)

  14. Вот на DLE например имеются такие теги:

    [not-aviable=main] {content} [/not-aviable] 
    [aviable=fullstory] {content} [/aviable] 

    Как например в GlobalTemplate прописать , а точнее скрыть например <div class="1"></div> на форумах, а показать на страницах? Или скрыть на страницах, а показать в полной новости на этих страницах? Кто владеет данной информацией, помогите советом , очень нужно для моего проекта. Заранее благодарен знатоки!

     

    И PS Не по теме:

    Снимок.PNG

  15. Я делал по своему))

    Вместо

     {template="sidebar" if="theme.sidebar_position == 'left'" app="core" group="global" params="'left'"}

    вставил свой шаблон

    {template="left_sidebar" app="core" group="global" params=""}. 

    В шаблон вставлял то что мне нужно в этом блоке, а  правый у меня через визуальный редактор редактировался.

  16. TemKa_SD, что за изобретение велосипеда? Вроде нормально все понятно сделано, зашел в страницы, создал страницу html или через визуальный редактор. Все, создал базу, присоединил ее на страницу. Все пашет ноль проблем

     

×
×
  • Создать...