Jump to content

Как скрыть блоки на определенной странице?

Featured Replies

Да, по сути всё верно, блок будет на главной отображаться, на остальных страницах его не будет.

Почему то не работает(
Начнем сначала)))
В полной новости (шаблон 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}}

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

Яваскриптом добавить класс для проверки не получится, нужно сделать как предложил 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}}

 

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

1 час назад, andros0789 сказал:

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

Не в боди шаблона страницы. Давай определимся. Есть общие шаблоны,  есть шаблоны Pages. Если включить режим дизайнера, то они лежат в папке cms.  внутри папка database а в ней уже группы шаблонов для Pages/ Так? Так.  Например для отображения полной новости (статьи или чего там еще) используется по умолчанию группа "display" . Внуттри несколько шаблонов, основной record.phtml . Вот если в нем прописать {{\IPS\Output::i()->bodyClasses[] = 'fullNews';}} то при просмотре полной новости в body будет этот класс 

Типа так

<body class="ipsApp ipsApp_front ipsJS_has ipsClearfix ipsApp_noTouch fullNews" data-controller="core.front.core.app" data-message="" data-pageapp="forums" data-pagelocation="front" data-pagemodule="forums" data-pagecontroller="topic" itemscope="" itemtype="http://schema.org/WebSite">

 

1 час назад, andros0789 сказал:

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

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


					 ИЛИ


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

 

3 часа назад, Respected сказал:

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

Хрошоая то хорошая, но устанавливать ее можно только в шаблонах Pages, наверноее еще в Pages-блоках шаблонов или добавлять плагином в нужные классы. В общих шаблонах она разумеется работать не будет, что понятно

Буду дома проверю)))а пока огромное спасибо за то чт не проходите мимо!

Думаю многие забросят старые движки зная эти теги для создания больших порталов!

Короче ребят вчера сидел под вечера ломал голову... Так и не решил я свой вопрос))) суть в том, что мне как то надо сделать так, чтобы на форуме был шаблон GlobalTemplate, а вот в страницах брался шаблон из страниц(а не из GlobalTemplate как при просмотре полной новости он берет именно глобалтемплейт). Реально ли чтобы в приложении страницы был шаблон только тот который я прописал в содержимое страницы News? А на форуме только из GlobalTemplate. Потому что ооооочень много кода получается в глобальемплейте.... Как то тупо сделано.... Главное страницу саму он шаблон берет из Pages, а шаблон полной новости из GlobalTemplate.... Или может есть какая альтернатива kgb? Или сможет на мысль есть вариант подтолкнуть с помощью голосовой связи. Просто я не написать то что у меня вообще задумано, а на словах и видеосвязи с экраном просто показал бы и было бы проще понять и мне и тому кто мог бы объяснить. Заранее благодарен!

10 часов назад, andros0789 сказал:

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

У меня такое впечатление, что ты все усложняешь и путаешь.

Во-первых, в странице, в которую встроена база, можно выбрать, применять ли глобальную обертку GlobalTemplate или кастомную - по умолчанию customWrapper.phtml , но можна создать свих скока хочешь.

Во вторых, причем здесь GlobalTemplate и чем он мешает? Это просто обертка html - head - body и все. Ну можно от нее отказаться, тогда придется основательно прорабатывать свою. Я не вижу ситуаций, когда это необходимо, ну если какую-то базу сделать совершенно независимой от общего дизайна сайта.

В третьих. Ну создал я какой то блок с ключем myBlock. Зачем мне пихать его в GlobalTemplate? Если надо, что бы он показывался на странице, например, просмотр полной новости, то я в шаблоне record.phtml его и добавлю . Все. Он будет показываться сверху или снизу основного текста. Надо, что бы он показывался сбоку - здесь сложнее, я уже выше писал. Тогда, если не хочешь менять исходный код, просто  в странице, в которую встроена база отключаешь показ сайдбара (а можно и не отключать, просто не пользоваться им, а в record.phtml создать свой сайдбар. Либо полностью кастомный либо воспользоваться css от IPS - это ipsColumn или ipsGrid. И полный контроль над сайдбаром. Не понимаю, в чем трудности?

kgb, так в том то и дело я как только не пробовал уже....суть в том что полная новость когда открывается , то шаблон record выводится в обертке GlobalTemplate, даже если я выбираю не стандартную тему, а свою созданную html. Вот что я не могу понять.... То ли вы меня не поймете то ли хз.... реально.. Напишу пример. Подробно.

Имеется шаблон:

<!doctype html>
<html id="" class="js no-touch" lang="{expression="\IPS\Member::loggedIn()->language()->bcp47()"}" dir="{{if member.language()->isrtl}}rtl{{else}}ltr{{endif}}">
<head>
   <title>Новости</title>
   {template="includeMeta" app="core" group="global" location="global" params=""}
   {template="includeCSS" app="core" group="global" location="global" params=""}
   {template="includeJS" if="theme.js_include != 'footer'" app="core" group="global" location="global" params=""}
   {template="favico" app="core" group="global" location="front" params=""}
   
</head>
  <body id="default-body" class='default has-nav-slim body-forums skin-no col-2-template-fluid ipsApp ipsApp_front {{if isset( \IPS\Request::i()->cookie['hasJS'] )}}ipsJS_has{{else}}ipsJS_none{{endif}} ipsClearfix{{foreach output.bodyClasses as $class}} {$class}{{endforeach}}' {{if output.globalControllers}}data-controller='{expression="implode( ',', output.globalControllers )"}'{{endif}} {{if isset( output.inlineMessage )}}data-message="{expression="output.inlineMessage"}"{{endif}} data-pageApp='{$location['app']}' data-pageLocation='front' data-pageModule='{$location['module']}' data-pageController='{$location['controller']}' itemscope itemtype="http://schema.org/WebSite">
<div id="site-main">
   <!-- Основной -->
   {template="GlobalHeader" app="core" group="global" params=""}
   <div id="site-wrapper">
     {template="header_future" app="core" group="global" params=""}
      <div id="mantle_skin">
         <div id="rbSkin">
            <span id="adSkinLeft"></span>
            <span id="adSkinRight"></span>
            <div id="wrapper">
               <div id="site" role="main">
                  <div id="default-content" class=" container row">
                    <section class="promo-strip span12">
                        <ul class="promo-strip__list row ">
                           {block="newstop4"}
                        </ul>
                    </section> 
                    <div class="primary-content span8 medium-span7">
					<!-- Новости -->
                        <div id="river" class="pod pod-river js-filter-pod">
                           <dl class="pod-header  has-feed-group" data-feed-group="news-list">
                              <dt class="pod-header__item">
                                 <div class="pod-title">
                                    <h4>Новости</h4>
                                    <span class="pod-div" role="presentation" aria-hidden="true"></span>
                                 </div>
                              </dt>
                              <dd class="pod-header__item pod-header__grid no-flex hide-mobile">
                                 <a href="#" id="feed-view-river" class="feed-view on " rel="nofollow">
                                    <i>
                                       <svg class="symbol symbol-reorder" aria-role="icon">
                                          <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#symbol-reorder"></use>
                                       </svg>
                                    </i>
                                 </a>
                              </dd>
                              <dd class="pod-header__item pod-header__grid no-flex hide-mobile">
                                 <a href="#" id="feed-view-grid" class="feed-view " rel="nofollow">
                                    <i>
                                       <svg class="symbol symbol-th" aria-role="icon">
                                          <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#symbol-th"></use>
                                       </svg>
                                    </i>
                                 </a>
                              </dd>
                           </dl>
                           <dl class="pod-header pod-header--tabs has-feed-group">
                              <dd class="pod-header__item pod-header__filters pod-header__filters--js">
                                 <div class="tabs2 pod-header__filters--tabs js-filter-json">
                                    <a href="" class="current pod-header__filters-item js-filter-option">Последние</a>
                                    <a href="" class="pod-header__filters-item js-filter-option">Популярные</a>
                                 </div>
                               </dd>
                           </dl>
                          
                           <div class="pod-filter">
                              <section class="filter-results js-filter-results editorial thirds river">  
                                 <!-- 1 вкладка -->
                                <div>
									{database="news_main"}
								</div>
                                <!-- 2 вкладка -->
                                <div> 
									{block="popular_news"}
								</div>
                              </section>
                           </div>
                        </div>
					</div>
					
					<aside class="secondary-content span4 medium-span5 ">
                        <!-- Gamebox (Игротека) -->  
                        {block="gs2news"}
                        <!-- Reviews (Обзоры) -->
                        {block="news_main"}
                        <!-- Comments (Комментарии) -->
                        {block="comments_forum"}
                        <section class="pod pod-upcoming">
                        <div class="pod-body upcoming"></div>
                        </section>
                     </aside>
					
                    
                  </div>
               </div>
            </div>
         </div>
      </div>
    </div>
   {template="footer" app="core" group="global" params=""}
</div>
</body>
</html>

Это шаблон главной  страницы новостей. Главная моего портала. 

Макет состоит из Меню шапки (3 новости типа слайдера), ниже идут 4 новости в одном блоке, под ними идут две вкладки с новостями по дате и популярности, сбоку боковой блок с кастомнфми блоками и футер. Так вот.... При входе в полную новость мне нужно убрать все начиная после 

<div id="default-content" class=" container row">

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

1.PNG

2.PNG

 

3.PNG

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

ХОСПОДИ!!! Я это сделал!
Короче указал

				  {{if in_array('fullNews', \IPS\Output::i()->bodyClasses )}}
				  <div id="default-content" class=" container row">
				  {$html|raw}
				  </div>
				  {{endif}}


				  <div id="default-content" class=" container row {{if in_array('fullNews', \IPS\Output::i()->bodyClasses )}}ipsHide{{endif}}">
                    <section class="promo-strip span12">
                        <ul class="promo-strip__list row ">
                           {block="newstop4"}
                        </ul>
                    </section> 
                    <div class="primary-content span8 medium-span7">
					<!-- River -->
                        <div id="river" class="pod pod-river js-filter-pod">
                           <dl class="pod-header  has-feed-group" data-feed-group="news-list">
                              <dt class="pod-header__item">
                                 <div class="pod-title">
                                    <h4>Новости</h4>
                                    <span class="pod-div" role="presentation" aria-hidden="true"></span>
                                 </div>
                              </dt>
                              <dd class="pod-header__item pod-header__grid no-flex hide-mobile">
                                 <a href="#" id="feed-view-river" class="feed-view on " rel="nofollow">
                                    <i>
                                       <svg class="symbol symbol-reorder" aria-role="icon">
                                          <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#symbol-reorder"></use>
                                       </svg>
                                    </i>
                                 </a>
                              </dd>
                              <dd class="pod-header__item pod-header__grid no-flex hide-mobile">
                                 <a href="#" id="feed-view-grid" class="feed-view " rel="nofollow">
                                    <i>
                                       <svg class="symbol symbol-th" aria-role="icon">
                                          <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#symbol-th"></use>
                                       </svg>
                                    </i>
                                 </a>
                              </dd>
                           </dl>
                           <dl class="pod-header pod-header--tabs has-feed-group">
                              <dd class="pod-header__item pod-header__filters pod-header__filters--js">
                                 <div class="tabs2 pod-header__filters--tabs js-filter-json">
                                    <a href="" class="current pod-header__filters-item js-filter-option">Последние</a>
                                    <a href="" class="pod-header__filters-item js-filter-option">Популярные</a>
                                 </div>
                               </dd>
                           </dl>
                          
                           <div class="pod-filter">
                              <section class="filter-results js-filter-results editorial thirds river">  
                                 <!-- 1 вкладка -->
                                <div>
									{$html|raw}
								</div>
                                <!-- 2 вкладка -->
                                <div> 
									{block="popular_news"}
								</div>
                              </section>
                           </div>
                        </div>
					</div>
					
					<aside class="secondary-content span4 medium-span5">
                        <!-- Gamebox (Игротека) -->  
                        {block="gs2news"}
                        <!-- Reviews (Обзоры) -->
                        {block="news_main"}
                        <!-- Comments (Комментарии) -->
                        {block="comments_forum"}
                        <section class="pod pod-upcoming">
                        <div class="pod-body upcoming"></div>
                        </section>
                     </aside>
					
                    
                  </div>

И теперь все просто сказка!!!!!!!!!!!!!!!!! Спасибище просто за то что прибавили мне 60% к моему левэлу знаний IPS)))

kgb, подскажи пожалуйста, возможно ли в новости в полной, выводить блоки по вкладкам именно из той категории откуда эта полная новость? То есть зашел я в новость Battlefield, ниже идут вкладки (tabs) с названиями к примеру "Галерея, Видео, Форум, новости" и при нажатии у меня бы выводились мои кастомные блоки именно с новостями о Battlefield из  "Галерея, Видео, Форум, новости". Я так понял тут дело сортировки?

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.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.