Форум русской поддержки Joomla!® CMS
08.12.2016, 11:54:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как убрать слайдер встроенный в шаблон с остальных страниц сайта?

 (Прочитано 592 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vegasmachine
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« : 24.12.2015, 14:54:43 »

Добрый день! Помогите пожалуйста разобраться: работаю над вот этим шаблоном - http://www.diablodesign.eu/demo/2013-10-07-06-50-20/blue-car.html
В сам шаблон по умолчанию встроен слайдер на всех страницах - и на главной и в разделах. Поискав решение на форуме, удалось выпилить сам слайдер из разделов добавлением следующего кода:

1. <?php $menu = JFactory::getApplication()->getMenu();
if ($menu->getActive()->id == $menu->getDefault()->id): ?>
 <!-- Begin Slider -->
2. Сам слайдер
3. <?php endif; ?>

Однако остался фон от него и пустое пространство (см. скриншот ). Подскажите, пожалуйста, где копать решение проблемы?
Записан
caleblt
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 56


« Ответ #1 : 24.12.2015, 15:18:38 »

Основной принцип Joomla - модульность. Уберите из кода слайдер вообще. Впишите на его место <?php if($this->countModules('top_slider')) : ?><jdoc:include type="modules" name="top_slider" style="xhtml"/><?php endif; ?>. Где top_slider это название позиции модулей в шаблоне. Не забудте прописать его в templateDetails.xml. Добавляйте в админке модуль любого слайдер в позицию top_slider.
Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3534


« Ответ #2 : 24.12.2015, 15:38:03 »

А что отключить модуль слайдера нельзя, надо обязательно выгрызать его из кода.
Записан
caleblt
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 56


« Ответ #3 : 24.12.2015, 15:46:36 »

Как Joomla строит документ получаемый браузером простым языком:
Берёт код HTML, как есть, вот прям, как Вы его сделали, так он и будет, без модификаций. Затем ищет где Вы поставили позиции модулей и если в этой позиции, на этой странице есть модули, то вставляет туда код модуля. Вот и всё.
Вот Вам правильная болванка шаблона. Думаю сможете разобраться, как это работает.
Код:
<?php
defined('_JEXEC') or die;
JHtml::_('behavior.framework', true);
$app = JFactory::getApplication();
?>
<?php echo '<?'; ?>xml version="1.0" encoding="<?php echo $this->_charset ?>"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >

<head>
<jdoc:include type="head" />
<meta charset="utf-8">
<link href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/this.css" rel="stylesheet"></link>
</head>

<body>

<div id="absolute"><jdoc:include type="modules" name="absolute" style="xhtml" /></div> - Позиция модуля.
<jdoc:include type="message" />
<div><jdoc:include type="component" /></div>

</body>
</html>
Записан
Vegasmachine
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« Ответ #4 : 24.12.2015, 16:52:29 »

А что отключить модуль слайдера нельзя, надо обязательно выгрызать его из кода.
 
Нет нельзя, он встроен в сам шаблон Sad Т.е. его нет в разделе "Модули"
Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3534


« Ответ #5 : 24.12.2015, 17:00:15 »

 
Нет нельзя, он встроен в сам шаблон Sad Т.е. его нет в разделе "Модули"
так он может быть в настройках шаблона
Записан
Vegasmachine
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« Ответ #6 : 24.12.2015, 17:03:09 »

так он может быть в настройках шаблона
В настройках сам слайдер можно лишь видоизменить: добавить новые фото, сменить надписи, поставить ссылку на материал. и Всё Sad
Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1340



« Ответ #7 : 24.12.2015, 17:14:39 »

да, в диабловских шаблонах придется повозиться чтоб этот слайдер выпилить, там все на дивах с абсолютным позиционированием
Записан
Vegasmachine
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« Ответ #8 : 24.12.2015, 17:51:14 »

Основной принцип Joomla - модульность. Уберите из кода слайдер вообще. Впишите на его место <?php if($this->countModules('top_slider')) : ?><jdoc:include type="modules" name="top_slider" style="xhtml"/><?php endif; ?>. Где top_slider это название позиции модулей в шаблоне. Не забудте прописать его в templateDetails.xml. Добавляйте в админке модуль любого слайдер в позицию top_slider.
Спасибо за ответ, вот сейчас проделываю то, что Вы написали Выше....но я задумалась над дизайном - как теперь сообразить какой слайдер имеено использовал автор дизайна (дизайн не хотелось бы менять). Получается же что если я создаю новый слайдер, то он уже не будет такой как в шаблоне?
Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1340



« Ответ #9 : 24.12.2015, 20:48:32 »

конкретно в этом шаблоне используется FlexSlider насколько я понял. Но суть не в этом, в этом шаблоне блоку <header> жестко прописана высота в 550px
Код
.dd-header {
 height: 550px;
 ....
}
и даже если вы вместо слайдера впилите туда модульную позицию - проблему с пустым местом это не решит
Записан
Vegasmachine
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« Ответ #10 : 24.12.2015, 20:55:21 »

конкретно в этом шаблоне используется FlexSlider насколько я понял. Но суть не в этом, в этом шаблоне блоку <header> жестко прописана высота в 550px
Код
.dd-header {
 height: 550px;
 ....
}
и даже если вы вместо слайдера впилите туда модульную позицию - проблему с пустым местом это не решит

Спасибо за пояснение....как же быть то. Шаблон неудобный, но нужен только он и никакой иной
Записан
Vegasmachine
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« Ответ #11 : 24.12.2015, 21:10:25 »

Спасибо за пояснение....как же быть то. Шаблон неудобный, но нужен только он и никакой иной
Вообще в коде фигурирует отдельный
конкретно в этом шаблоне используется FlexSlider насколько я понял. Но суть не в этом, в этом шаблоне блоку <header> жестко прописана высота в 550px
Код
.dd-header {
 height: 550px;
 ....
}
и даже если вы вместо слайдера впилите туда модульную позицию - проблему с пустым местом это не решит
вообще в коде фигурирует отдельный элемент:
<div class="dd-object1980935317" style="left: 54.5px; top: 220.41px;; margin-left: 0px !important;"><!--slideshow-->
<!-- End Slider --></div>

Вот этот "DD-объект" имеет следующие параметры:

.dd-object1980935317
{
  display: block;
  left: 0%;
  margin-left: -88px;
  position: absolute;
  top: 222px;
  width: 1300px;
  height: 271px;

  z-index: 9999;

Его по существу и необходимо отрезать от страниц с разделами.
Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1340



« Ответ #12 : 24.12.2015, 21:25:23 »

говорю же - этот DD-объект вложен в <header> с фиксированной высотой, если его просто удалить, то пустое место все равно останется. В вашем случае наверное придется проверку на главную устраивать несколько раз и в зависимости от этого подключать разные файлы стилей.
Записан
Vegasmachine
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« Ответ #13 : 24.12.2015, 21:32:01 »

говорю же - этот DD-объект вложен в <header> с фиксированной высотой, если его просто удалить, то пустое место все равно останется. В вашем случае наверное придется проверку на главную устраивать несколько раз и в зависимости от этого подключать разные файлы стилей.
Спасибо за ответ! Не могли бы дать пример как это реализовать?
Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1340



« Ответ #14 : 24.12.2015, 21:44:25 »

Да собс-но так же
вместо строки
Код:
<link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.css" media="screen" type="text/css" />
пропишите например
Код
<?php 
$menu = JFactory::getApplication()->getMenu();
if ($menu->getActive()->id == $menu->getDefault()->id):
$doc->addStyleSheet('templates/'.$this->template.'/css/template1.css');
else:
$doc->addStyleSheet('templates/'.$this->template.'/css/template2.css');
endif; ?>
В template1.css задаете высоту хедера для главной с учетом слайдера, в template2.css - без слайдера. Возможно придется править стили еще и у других дд-объектов
Записан
Vegasmachine
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« Ответ #15 : 24.12.2015, 21:58:23 »

Да собс-но так же
вместо строки
Код:
<link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.css" media="screen" type="text/css" />
пропишите например
Код
<?php 
$menu = JFactory::getApplication()->getMenu();
if ($menu->getActive()->id == $menu->getDefault()->id):
$doc->addStyleSheet('templates/'.$this->template.'/css/template1.css');
else:
$doc->addStyleSheet('templates/'.$this->template.'/css/template2.css');
endif; ?>
В template1.css задаете высоту хедера для главной с учетом слайдера, в template2.css - без слайдера. Возможно придется править стили еще и у других дд-объектов
К сожалению не помогло, сайт полёг..
Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1340



« Ответ #16 : 24.12.2015, 22:21:43 »

а, сорри, пропустил
Код
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
добавьте еще
Записан
Taatshi
Support Team
*****

Репутация: +430/-3
Offline Offline

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #17 : 25.12.2015, 09:25:08 »

Vegasmachine, по тому же условию, по которому удаляли слайдер, пропишите отдельный класс для body главной страницы. И к этому классу привязывайте все изменения стилей на главной.

Или

Класс для body в зависимости от класса пункта меню. Прописываете в пункте меню свой класс страницы - и можете к нему привязывать уникальные стили. Для любой страницы с пунктом меню.

Код
<?php 
 $pageClassSuffix = JFactory::getApplication()->getMenu()->getActive()? JFactory::getApplication()->getMenu()->getActive()->params->get('pageclass_sfx', '-default') : '-default';
?>
<body class="page<?php echo $pageClassSuffix ?>">
...
</body>
Записан
Vegasmachine
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« Ответ #18 : 28.12.2015, 16:57:14 »

Всем большое спасибо за помощь! В итоге реализовала такое решение проблемы: создала копию шаблона, в нем внесла все необходимые правки (удалила слайдер, поменяла стили где понадобилось, вычистила все ненужное) и назначила это шаблон для всех необходимых пунктов меню, а главная страница со слайдером осталась от первоначального шаблона.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet