Jump to content

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

Featured Replies

comment_127054

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

  • Author
comment_127055

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

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

comment_127056

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

 

  • Author
comment_127057
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

comment_127069
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-блоках шаблонов или добавлять плагином в нужные классы. В общих шаблонах она разумеется работать не будет, что понятно

  • Author
comment_127072

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

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

  • Author
comment_127080

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

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

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

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

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

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

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

  • Author
comment_127127

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)))

  • Author
comment_127215

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.