Новости Joomla

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

Vegasmachine

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Добрый день! Помогите пожалуйста разобраться: работаю над вот этим шаблоном - 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

  • Захожу иногда
  • 51
  • 3 / 0
Основной принцип 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

  • Живу я здесь
  • 3590
  • 247 / 9
А что отключить модуль слайдера нельзя, надо обязательно выгрызать его из кода.
*

caleblt

  • Захожу иногда
  • 51
  • 3 / 0
Как 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

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
А что отключить модуль слайдера нельзя, надо обязательно выгрызать его из кода.
 
Нет нельзя, он встроен в сам шаблон :( Т.е. его нет в разделе "Модули"
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
 
Нет нельзя, он встроен в сам шаблон :( Т.е. его нет в разделе "Модули"
так он может быть в настройках шаблона
*

Vegasmachine

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
так он может быть в настройках шаблона
В настройках сам слайдер можно лишь видоизменить: добавить новые фото, сменить надписи, поставить ссылку на материал. и Всё :(
*

Ilhom666

  • Завсегдатай
  • 1384
  • 184 / 0
да, в диабловских шаблонах придется повозиться чтоб этот слайдер выпилить, там все на дивах с абсолютным позиционированием
*

Vegasmachine

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Основной принцип 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

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

Vegasmachine

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

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

Vegasmachine

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Спасибо за пояснение....как же быть то. Шаблон неудобный, но нужен только он и никакой иной
Вообще в коде фигурирует отдельный
конкретно в этом шаблоне используется FlexSlider насколько я понял. Но суть не в этом, в этом шаблоне блоку <header> жестко прописана высота в 550px
Код: css
.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

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

Vegasmachine

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

Ilhom666

  • Завсегдатай
  • 1384
  • 184 / 0
Да собс-но так же
вместо строки
Код
<link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.css" media="screen" type="text/css" />
пропишите например
Код: php
<?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

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Да собс-но так же
вместо строки
Код
<link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.css" media="screen" type="text/css" />
пропишите например
Код: php
<?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

  • Завсегдатай
  • 1384
  • 184 / 0
а, сорри, пропустил
Код: php
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
добавьте еще
*

Taatshi

  • Глобальный модератор
  • 5259
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Vegasmachine, по тому же условию, по которому удаляли слайдер, пропишите отдельный класс для body главной страницы. И к этому классу привязывайте все изменения стилей на главной.

Или

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

Код: php
<?php 
  $pageClassSuffix = JFactory::getApplication()->getMenu()->getActive()? JFactory::getApplication()->getMenu()->getActive()->params->get('pageclass_sfx', '-default') : '-default';
?>
<body class="page<?php echo $pageClassSuffix ?>">
...
</body>
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Vegasmachine

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Всем большое спасибо за помощь! В итоге реализовала такое решение проблемы: создала копию шаблона, в нем внесла все необходимые правки (удалила слайдер, поменяла стили где понадобилось, вычистила все ненужное) и назначила это шаблон для всех необходимых пунктов меню, а главная страница со слайдером осталась от первоначального шаблона.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Где хранится информация страниц SP-PageBuilder?

Автор olderman

Ответов: 6
Просмотров: 1638
Последний ответ 13.12.2023, 15:58:19
от Vastriet
Ошибка при входе в корзину шаблон jmart

Автор dimiur

Ответов: 5
Просмотров: 2628
Последний ответ 24.05.2023, 14:24:30
от Gleb72
Почему обновление шаблона ломает шаблон?

Автор gorbi_U

Ответов: 8
Просмотров: 1338
Последний ответ 03.05.2023, 22:54:19
от SmiP
Нужно ли переносить custom.css при переезде на новый шаблон?

Автор gorbi_U

Ответов: 3
Просмотров: 1000
Последний ответ 09.02.2023, 21:05:42
от marksetter
Дубли страниц

Автор disig

Ответов: 1
Просмотров: 430
Последний ответ 28.11.2022, 08:28:33
от marksetter