0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 118 Просмотров
*

bayersoff

  • Захожу иногда
  • 87
  • 0 / 0
Как скрыть пустые секции?
« : 18.11.2020, 05:35:17 »
Приветствую Вас, уважаемые форумчане. Прошу Вас, помогите решить проблему. В общем я решил сделать свой сайт на чистом шаблоне и столкнулся с одной проблемой, а она заключается в том, что есть секции ("section") содержимое которых должны отображаться только на главной странице сайта, и отображается отлично, но... на других страницах, например, на странице блог, все элементы главной страницы скрыты, но все теги "section" отображаются и у них есть padding: 60px 0; а таких секции 7-8 и получается, на странице "блог" много пустых пространств. Вопрос, как сделать так, чтобы теги section, скрывались если <div class="container"></div> пустой?

Мне подсказали, следующее решение: скопировать в component.php все коды index.php и удалить все не нужные. Я так и сделал, но при переходе на страницу "блог", не отображается "блог категории", а отображаться только если вручную вставить URL после /blog этот текст ?tmpl=component. В этом случае все отлично работает, но не понимаю, как вызвать component.php без ссылки ?tmpl=component
Я не знаю, правильно ли такой метод вывода материалов на странице "Блог". Но, мне самое главное это то, чтобы пустые секции вообще не отображались на странице блог.

Вот это мой index.php
Код
<?php
defined('_JEXEC') or die;


$app             = JFactory::getApplication();
$doc             = JFactory::getDocument();
$user            = JFactory::getUser();
$this->language  = $doc->language;
$this->direction = $doc->direction;
?>

<?php
$doc = JFactory::getDocument();
$doc->addStyleSheet(JUri::base().'templates/'.$doc->template.'/css/bootstrap.min.css');
$doc->addStyleSheet(JUri::base().'templates/'.$doc->template.'/css/font-awesome.min.css');
$doc->addStyleSheet(JUri::base().'templates/'.$doc->template.'/css/main.css');

JHtml::_('script', 'main.js', array('version' => 'auto', 'relative' => true));
?>

<!DOCTYPE html>
<html lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<jdoc:include type="head" />
</head>


<body>

<header id="header">
<div class="container">
<div class="row">
<div class="col-lg-3">
<div class="logo">
<jdoc:include type="modules" name="logo" style="none" />
</div>
</div>
<div class="col-lg-7">
<div class="menu">
<jdoc:include type="modules" name="menu" style="none" />
</div>
</div>
<div class="col-lg-2">
<div class="header__contacts">
<jdoc:include type="modules" name="header-contacts" style="none" />
</div>
</div>
</div>
</div>
<div class="lang__switch">
<jdoc:include type="modules" name="lang-switch" style="none" />
</div>
</header>

<section id="offer" class="linear__bg">
<div class="container">

<jdoc:include type="modules" name="position-1" style="none" />

</div>
</section>



<section id="triggers__services" class="dark-blue__bg">
<div class="container">

<jdoc:include type="modules" name="position-2" style="none" />

</div>
</section>




<section id="services-teasers">
<div class="container">

<jdoc:include type="modules" name="position-3" style="none" />

</div>
</section>

<div class="container">
<main id="content" role="main">
                    <!-- Begin Content -->
                   
                    <div class="container">
                        <jdoc:include type="message" />
                    <jdoc:include type="component" />
                   
                    </div>
                                       
                    <!-- End Content -->
                </main>
</div>

<section id="feedback-form">
<div class="container">

<jdoc:include type="modules" name="position-4" style="none" />

</div>
</section>

<section id="templates" class="linear-light-blue__bg">
<div class="container">
<jdoc:include type="modules" name="position-5" style="none" />
</div>
</section>


<!-- Connect Scripts -->

<script src="/templates/joomabyfreelanceteam/jquery-3.4.1.min.js"></script>
<script src="/templates/joomabyfreelanceteam/js/wow.min.js"></script>
<script src="/templates/joomabyfreelanceteam/js/slick.min.js"></script>


<!-- END Connect Scripts -->

</body>

</html>
 

Содержимое файла templateDetails
Код
<files> 
  <folder>css</folder>
  <folder>images</folder>
  <folder>html</folder>
  <folder>language</folder>
  <folder>js</folder>
  <folder>fonts</folder>

  <filename>component.php</filename>
  <filename>blog.php</filename>
  <filename>index.html</filename>
  <filename>index.php</filename>
  <filename>templateDetails.xml</filename>
  <filename>template_thumbnail.png</filename>
  <filename>template_preview.png</filename>
 </files>


<languages folder="language">
        <language tag="ru-RU">ru-RU.tpl_joomaby.ini</language>
        <language tag="ru-RU">ru-RU.tpl_joomaby.sys.ini</language>
        <language tag="en-EN">en-EN.tpl_joomaby.ini</language>
        <language tag="en-EN">en-EN.tpl_joomaby.sys.ini</language>
 </languages>



 <positions>
  <position>logo</position>
  <position>menu</position>
  <position>header-contacts</position>
  <position>search</position>
  <position>left</position>
  <position>right</position>
  <position>lang-switch</position>
  <position>modal-form</position>
  <position>breadcrumb</position>
  <position>component</position>
  <position>offcanvas</position>
  <position>position-1</position>
  <position>position-2</position>
  <position>position-3</position>
  <position>position-4</position>
  <position>position-5</position>
  <position>position-6</position>
  <position>position-7</position>
  <position>footer</position>
 </positions>

<files>
<file>index.html</file>
        <file>index.php</file>
        <file>template_preview.png</file>
        <file>template_thumbnail.png</file>
        <file>templateDetails.xml</file>
       
    </files>




</extension>

и содержимое component.php
Код
<?php
/**
 * @package Joomaby Freelance Team
 * @author Ron Bayrovsky
 * [member=126442]copyright[/member] Copyright (c) 2017 - 2020 Joomaby
 * @license GNU/GPLv2 or later
*/
//no direct accees
defined ('_JEXEC') or die ('resticted aceess');
?>


<?php
$doc = JFactory::getDocument();
$doc->addStyleSheet(JUri::base().'templates/'.$doc->template.'/css/bootstrap.min.css');
$doc->addStyleSheet(JUri::base().'templates/'.$doc->template.'/css/font-awesome.min.css');
$doc->addStyleSheet(JUri::base().'templates/'.$doc->template.'/css/main.css');

JHtml::_('script', 'main.js', array('version' => 'auto', 'relative' => true));
?>

<!DOCTYPE html>
<html lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <jdoc:include type="head" />
</head>


<body>
   
<header id="header">
    <div class="container">
        <div class="row">
            <div class="col-lg-3">
                <div class="logo">
                    <jdoc:include type="modules" name="logo" style="none" />
                </div>
            </div>
            <div class="col-lg-7">
                <div class="menu">
                    <jdoc:include type="modules" name="menu" style="none" />
                </div>
            </div>
            <div class="col-lg-2">
                <div class="header__contacts">
                    <jdoc:include type="modules" name="header-contacts" style="none" />
                </div>
            </div>
        </div>
    </div>
    <div class="lang__switch">
        <jdoc:include type="modules" name="lang-switch" style="none" />
    </div>
</header>


<main id="content" role="main">
                    <!-- Begin Content -->
                   
                    <div class="container">
                        <jdoc:include type="message" />
                    <jdoc:include type="component" />
                    <jdoc:include type="modules" name="component" style="none" />
                    </div>
                                       
                    <!-- End Content -->
                </main>

<!-- Connect Scripts -->

<script src="/templates/joomabyfreelanceteam/jquery-3.4.1.min.js"></script>
<script src="/templates/joomabyfreelanceteam/js/wow.min.js"></script>
<script src="/templates/joomabyfreelanceteam/js/slick.min.js"></script>


<!-- END Connect Scripts -->

</body>

</html>
*

sivers

  • Завсегдатай
  • 1543
  • 213 / 0
Re: Как скрыть пустые секции?
« Ответ #1 : 18.11.2020, 08:37:41 »
Для этого достаточно обернуть ваши секции в условия. Например, вот этот код:
Код
<section id="triggers__services" class="dark-blue__bg">
<div class="container">

<jdoc:include type="modules" name="position-2" style="none" />

</div>
</section>
Переписать вот так:
Код
<?php if ($this->countModules('position-2')) : ?>
<section id="triggers__services" class="dark-blue__bg">
<div class="container">

<jdoc:include type="modules" name="position-2" style="none" />

</div>
</section>
<?php endif; ?>

Здесь как раз идет проверка на наличие активных модулей в позиции. Если их нет, то ничего (что внутри условия) выводиться не будет.
Больше примеров смотрите в индексе стандартного шаблона protostar.
На связи в телеге @sivers
*

bayersoff

  • Захожу иногда
  • 87
  • 0 / 0
Re: Как скрыть пустые секции?
« Ответ #2 : 18.11.2020, 09:07:15 »
Для этого достаточно обернуть ваши секции в условия. Например, вот этот код:Переписать вот так:
Код
<?php if ($this->countModules('position-2')) : ?>
<section id="triggers__services" class="dark-blue__bg">
<div class="container">

<jdoc:include type="modules" name="position-2" style="none" />

</div>
</section>
<?php endif; ?>

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

Огромное Вам спасибо ))) помогло
*

Xadori

  • Новичок
  • 1
  • 0 / 0
Re: Как скрыть пустые секции?
« Ответ #3 : 20.11.2020, 11:20:57 »
спасибо! и мне помогло  *DRINK*
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться