Новости Joomla

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

sergey-911

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
  • https://opticod.ru
Добрый день уважаемые! Прошу помощи!
Сделал шаблон для сайта, прототип сайта - http://stolmaster.smrtp.ru. Все работает, за исключением Lightbox “mediabox ck pro”. На странице http://stolmaster.smrtp.ru/nasha-produktsiya/interery при клике по картинке, она должна открываться во всплывающем окне, как на моем сайте https://opticod.ru/blog/razrabotka/razrabotka-sajta-pod-klyuch. Но вместо этого, картинка просто отображается в браузере.
Из консоли браузера видно, что ошибка из-за скрипта JQuery, видимо конфликт совместимости или версий, здесь, к сожалению я не силен. На сайте установлен плагин Joomla Options, им я отключаю библиотеку Mootools disable. Пытался установить плагин “jquery easy” для запуска jQuery в режиме “no-conflict” – не помогло.
В шаблоне водключен фреймворк и бутстрап:
Код
JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/jquery-3.2.1.min.js', array('version' => 'auto', 'relative' => true)); 
JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/bootstrap.js', array('version' => 'auto', 'relative' => true));
Имперически вычислил, что ошибка плагина появляется из-за строки фреймворка:
Код
JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/jquery-3.2.1.min.js', array('version' => 'auto', 'relative' => true)); 
Если ее удалить, то плагин начинает работать. Но есть шанс, что грохнется что-либо еще…
Подскажите, как правильно подключать фреймворк, чтобы он не конфликтовал с лайтбоксом?
Спасибо.
« Последнее редактирование: 09.04.2018, 22:08:23 от sergey-911 »
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Конфликт Lightbox mediabox ck pro с jQuery
« Ответ #1 : 09.04.2018, 22:40:02 »
А в плагине нет опции отключения загрузки jQuery ?
*

sergey-911

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
  • https://opticod.ru
Re: Конфликт Lightbox mediabox ck pro с jQuery
« Ответ #2 : 09.04.2018, 23:20:53 »
В плагине Joomla Options есть функция Jquery disable, но не помогает.
Если в шаблоне подключить способом:
Код
JHtml::_('bootstrap.framework');
JHtml::_('jquery.framework');
то работает, но версии библиотек, думаю, грузятся другие...
*

wishlight

  • Живу я здесь
  • 4980
  • 293 / 1
  • от 150 руб быстрый хостинг без блокировок
Re: Конфликт Lightbox mediabox ck pro с jQuery
« Ответ #3 : 09.04.2018, 23:22:51 »
https://extensions.joomla.org/extension/jquery-easy/ ну и работает же, если родные загрузить.
*

sergey-911

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
  • https://opticod.ru
Re: Конфликт Lightbox mediabox ck pro с jQuery
« Ответ #4 : 10.04.2018, 08:15:30 »
Так в 1-м топике написал, что плагин jquery easy в режиме no-conflict не помог. А с родными библиотеками тоже не все так гладко. В работе мобильного меню нашел пару багов, думаю их будет гораздо больше в целом. Мне бы обновленные заставить работать нормально...
Спасибо.
« Последнее редактирование: 10.04.2018, 08:20:40 от sergey-911 »
*

sergey-911

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
  • https://opticod.ru
Re: Конфликт Lightbox mediabox ck pro с jQuery
« Ответ #5 : 10.04.2018, 09:36:07 »
Привожу полный листинг файла шаблона index.php, может поможет в решении проблемы:
Код

<?php
/**
 * @package     Joomla.Site
 * @subpackage  Templates.protostar
 *
 * [member=126442]copyright[/member]   Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

/** @var JDocumentHtml $this */

$app  = JFactory::getApplication();
$user = JFactory::getUser();
//$doc=JFactory::getDocument(); //Переменная, которая хранит ссылку на документ

// Output as HTML5
$this->setHtml5(true);

// Getting params from template
$params = $app->getTemplate(true)->params;

// Detecting Active Variables
$option   = $app->input->getCmd('option', '');
$view     = $app->input->getCmd('view', '');
$layout   = $app->input->getCmd('layout', '');
$task     = $app->input->getCmd('task', '');
$itemid   = $app->input->getCmd('Itemid', '');
$sitename = $app->get('sitename');

if ($task === 'edit' || $layout === 'form')
{
$fullWidth = 1;
}
else
{
$fullWidth = 0;
}

// Add JavaScript Frameworks
//JHtml::_('bootstrap.framework');
//$doc->addScript('/templates/' . $this->template . '/js/jquery-3.2.1.min.js'); //Подключаем новую версию Framework с сайта "http://jquery.com"
//$doc->addScript('/templates/' . $this->template . '/js/bootstrap.js'); //Подключаем сам Bootstrap
//JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/jquery-3.2.1.min.js', array('version' => 'auto', 'relative' => true)); //Подключаем новую версию Framework
//JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/bootstrap.js', array('version' => 'auto', 'relative' => true)); //Подключаем сам Bootstrap
//Конфликт Lightbox mediabox ck pro с jQuery
JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/jquery-3.2.1.min.js', array('version' => 'auto', 'relative' => true)); //Подключаем новую версию Framework
JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/bootstrap.js', array('version' => 'auto', 'relative' => true)); //Подключаем сам Bootstrap
//Подключаем родной Bootstrap и jQuery
//JHtml::_('bootstrap.framework');
//JHtml::_('jquery.framework');


// Add template js
JHtml::_('script', 'template.js', array('version' => 'auto', 'relative' => true));

// Add html5 shiv
JHtml::_('script', 'jui/html5.js', array('version' => 'auto', 'relative' => true, 'conditional' => 'lt IE 9'));

// Add Stylesheets
//JHtml::_('stylesheet', 'template.css', array('version' => 'auto', 'relative' => true));
//$doc->addStyleSheet('/templates/' . $this->template . '/css/bootstrap.css'); //Подключаем стиль Bootstrap
//$doc->addStyleSheet('/templates/' . $this->template . '/css/styleicomoon.css'); //Подключаем стиль шрифтовых иконок
//$doc->addStyleSheet('/templates/' . $this->template . '/css/template.css'); //Подключаем свой стиль
//$doc->addStyleSheet('/templates/' . $this->template . '/css/menu.css'); //Подключаем свой стиль меню
JHtml::_('stylesheet', Juri::base(). 'templates/' . $this->template . '/css/bootstrap.css', array('version' => 'auto', 'relative' => true)); //Подключаем стиль Bootstrap
JHtml::_('stylesheet', Juri::base(). 'templates/' . $this->template . '/css/styleicomoon.css', array('version' => 'auto', 'relative' => true)); //Подключаем стиль шрифтовых иконок
JHtml::_('stylesheet', Juri::base(). 'templates/' . $this->template . '/css/template.css', array('version' => 'auto', 'relative' => true)); //Подключаем свой стиль
JHtml::_('stylesheet', Juri::base(). 'templates/' . $this->template . '/css/menu.css', array('version' => 'auto', 'relative' => true)); //Подключаем свой стиль меню



// Use of Google Font
if ($this->params->get('googleFont'))
{
JHtml::_('stylesheet', '//fonts.googleapis.com/css?family=' . $this->params->get('googleFontName'));
$this->addStyleDeclaration("
h1, h2, h3, h4, h5, h6, .site-title {
font-family: '" . str_replace('+', ' ', $this->params->get('googleFontName')). "', sans-serif;
}");
}

// Template color
if ($this->params->get('templateColor'))
{
$this->addStyleDeclaration('
body.site {
border-top: 3px solid ' . $this->params->get('templateColor'). ';
background-color: ' . $this->params->get('templateBackgroundColor'). ';
}
a {
color: ' . $this->params->get('templateColor'). ';
}
.nav-list > .active > a,
.nav-list > .active > a:hover,
.dropdown-menu li > a:hover,
.dropdown-menu .active > a,
.dropdown-menu .active > a:hover,
.nav-pills > .active > a,
.nav-pills > .active > a:hover,
.btn-primary {
background: ' . $this->params->get('templateColor'). ';
}');
}

// Check for a custom CSS file
JHtml::_('stylesheet', 'user.css', array('version' => 'auto', 'relative' => true));

// Check for a custom js file
JHtml::_('script', 'user.js', array('version' => 'auto', 'relative' => true));

// Load optional RTL Bootstrap CSS
JHtml::_('bootstrap.loadCss', false, $this->direction);

// Adjusting content width (Настройка ширины контента)
if ($this->countModules('position-7') && $this->countModules('position-8')) /*Знак ! означает логическое не (отрицание)*/
{
$span = "col-md-6";
}
elseif ($this->countModules('position-7') && !$this->countModules('position-8'))
{
$span = "col-md-9";
}
elseif (!$this->countModules('position-7') && $this->countModules('position-8'))
{
$span = "col-md-9";
}
else
{
$span = "col-md-12";
}

// Logo file or site title param
if ($this->params->get('logoFile'))
{
$logo = '<img src="' . JUri::root(). $this->params->get('logoFile'). '" alt="' . $sitename . '" />';
}
elseif ($this->params->get('sitetitle'))
{
$logo = '<span class="site-title" title="' . $sitename . '">' . htmlspecialchars($this->params->get('sitetitle'), ENT_COMPAT, 'UTF-8'). '</span>';
}
else
{
$logo = '<span class="site-title" title="' . $sitename . '">' . $sitename . '</span>';
}

//Значение переменной $menuClass (класса меню), в зависимости от настройки, указанной в шаблоне (настройка стилядля меню), получаем ее конструкцией ($this->params->get('menuStyle'))
if ($this->params->get('menuStyle') == 0)
{
$menuClass = "navbar-default";
}
elseif ($this->params->get('menuStyle') == 1)
{
$menuClass = "navbar-red";
}
else
{
$menuClass = "navbar-purple";
}


?>

<!--Заменили стандартную конструкцию текстом из файла index.html-->
<!DOCTYPE html>
<!--<html lang="en">-->
<html lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>"> <!--Выбор языка контента-->
<head>
<!--<meta charset="UTF-8">-->
<meta name="viewport" content="width=device-width, initial-scale=1"> <!--Адаптация сайта к ширине экрана-->
<!--<title>Document</title>-->
<jdoc:include type="head" /> <!--Вывод метатегов-->
<!--<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/styleicomoon.css">
<link rel="stylesheet" href="css/template.css">-->
</head>
<body>

<!--Вставка CSS кода, в зависимости от условия-->
<?php if ($this->params->get('fonFile')) : ?> <!--Проверяем наличие фонового рисунока сайта-->
<style type="text/css">
body {
background: url("<?php echo '/' . $this->params->get('fonFile'); ?>") repeat #e4e4e4;
}
</style>
<?php endif; ?>

<div class="contayner" id="main">
<div class="row" id="header">
<div class="col-sm-2  col-xs-12" id="logo"> <!--Логотип-->
<a href="<?php echo $this->baseurl; ?>/"><img src="<?php echo $this->params->get('headerlogoFile'); ?>" width="141px" height="141px" alt="Логотип" /></a>
</div>
<div class="col-sm-4  col-xs-12">
<div id="headerurl"><a href="<?php echo $this->baseurl; ?>/">СТОЛМАСТЕР</a></div>
<div id="headerline"></div>
<div id="headerdesc">Искусство создавать прекрасное</div>
</div>
<div  class="hidden-xs col-sm-1"> <!--Отступ перед телефонами в десктопной версии-->
<div id="headerotstup"></div>
</div>
<div class="col-sm-4 col-xs-12">
<div id="headertel"><a href="tel:+79032665525">8 (903) 266-55-25</a><br><a href="tel:+79160153347">8 (916) 015-33-47</a></div>
</div>
<?php if ($this->countModules('position-0')) : ?> <!--Проверка наличия модуля поиска-->
<div class="hidden-sm visible-xs-block col-xs-12" id="search">
<jdoc:include type="modules" name="position-0" style="none" /> <!--Подключение модулей-->
</div>
<?php endif; ?>
</div>


<?php if ($this->countModules('position-1')) : ?> <!--Проверка наличия модуля меню-->
<div class="row">
<!--Меню (см. http://getbootstrap.com => Components => Navbar (http://getbootstrap.com/components/#navbar))-->
<!--<nav class="navbar navbar-default" id="mainmenu">-->

<!--Прикрепление меню к верхней части страницы-->
<!--Зафиксировать меню при прокрутке (https://itchief.ru/lessons/bootstrap-3/38-bootstrap-3-navigation-menu)-->

<?php if ($this->params->get('menusticky') == 1) : ?> <!--Зафиксировать меню, в зависимости от настроек шаблона-->
<!--<?php $menuClass //= $menuClass  . " navbar-static-top" . '"' . ' data-spy=' . '"affix"' . ' data-offset-top=' . '"176' ?>-->
<?php $menuClass = $menuClass  . " navbar-static-top" . '"' . ' data-spy=' . '"affix"' . ' data-offset-top=' . '"' . $this->params->get('dataoffsettop')?>
<?php endif; ?>

<nav class="navbar <?php echo $menuClass;?>" id="mainmenu"> <!--меню, в зависимости от настройки шаблона (настройка стилядля меню)-->
  <div class="container-fluid"> <!--Контейнер меню-->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#topmenu" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <!-- Бренд или название сайта (отображается в левой части меню) -->
      <!--В качестве бренда можно использовать не только текст, но и изображение (img)-->
      <?php if ($this->params->get('menulogoFile')) : ?>
  <a class="navbar-brand" href="/">
  <img src="<?php echo $this->params->get('menulogoFile'); ?>" height="36" alt="<?php echo $this->params->get('sitename'); ?>">
  </a>
  <?php endif; ?>
  <!-- Надпись в меню правее брэнда (отображается в мобильной версии) -->
  <p class="navbar-text visible-xs-block hidden-sm, hidden-md, hidden-lg"><?php echo $this->params->get('headername'); ?></p>
    </div>

    <!--Меню-->
    <div class="collapse navbar-collapse" id="topmenu">
<!--Подключаем меню динамическим способом-->
<jdoc:include type="modules" name="position-1" style="none" /> <!--Подключение модулей-->
<!--Модуль поиска-->
<?php if ($this->countModules('position-0')) : ?> <!--Проверка наличия модуля поиска-->
<!--Подключаем поиск к меню-->
<div class="col-sm-2 hidden-xs" id="search">
<jdoc:include type="modules" name="position-0" style="none" /> <!--Подключение модулея поиска-->
</div>
<?php endif; ?>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav><!-- /.navbar -->
</div><!-- /.row -->
<?php endif; ?>

<!--Слайдер-->
<!--<div class="row">-->
<?php if ($this->countModules('position-5')) : ?> <!--Проверка наличия модуля-->
<div class="row" id="slider"> <!--Присваиваем идентификатор для создания в CSS отступа контента от слайдера-->
<!--Слайдер-->
<div class="col-xs-12">
<jdoc:include type="modules" name="position-5" style="none" /> <!--Подключение модулей-->
</div>
</div>
<?php endif; ?>

<div class="row">
<!--Контент сайта-->
<?php if ($this->countModules('position-8')) : ?> <!--Проверка наличия модуля-->
<div class="col-md-3">
<!--Левый сайдбар-->
<!--<jdoc:include type="modules" name="position-8" style="xhtml" />--> <!--Подключение модулей-->
<jdoc:include type="modules" name="position-8" style="mystyle" /> <!--Подключение модулей, указываем стиль из файла "stolmaster\templates\stolmaster\html\modules.php"-->
</div>
<?php endif; ?>
<div class="<?php echo $span; ?>" id="content"> <!--Вывод ширины текстового блока из переменной $this-->
<div id="content-inner">
<!--Контент-->
<jdoc:include type="message" /> <!--Системные сообщения при регистрации и т.п. в блоке на сайте-->
<jdoc:include type="component" /> <!--Размещение компонентов Joomla в блоке на сайте-->
</div>
</div>
<?php if ($this->countModules('position-7')) : ?> <!--Проверка наличия модуля-->
<div class="col-md-3">
<!--Правый сайдбар-->
<jdoc:include type="modules" name="position-7" style="mystyle" /> <!--Подключение модулей, указываем стиль из файла "stolmaster\templates\stolmaster\html\modules.php"-->
</div>
<?php endif; ?>
</div>
</div>
<div class="container-fluid" id="footer"> <!--Футер, во всю ширину сайта-->
<div class="row">
<div class=".hidden-xs col-sm-2 col-xs-12" id="informer">
<p>
  <!--Yandex.Metrika--> <!--Вывод счетчиков (информера), скрывающихся при отображении на мобильных устройствах (.hidden-xs)-->
      <?php if ($this->params->get('metrika')) : ?>
  <?php echo $this->params->get('metrika'); ?>
  <?php endif; ?>
</p>
</div>
<div class="col-sm-9 col-xs-12"> <!--При отображении на мобильном устройстве - на всю ширину, при отображении на компьютере - оставшаяся область от счетчика-->
<!--Вывод нижнего меню сайта-->
<jdoc:include type="modules" name="position-9" style="none" /> <!--Подключение модулей-->
<!--Вывод футера-->
<p>
&nbsp Copyright &copy; 2018-<?php echo date('Y'); ?>. <?php echo $sitename; ?>.
All Rights Reserved. <a target="_blank" href="https://opticod.ru/">Design by Sergey Mayorov</a>.
</p>
</div>
<div class="col-sm-1 col-xs-12" id=footertop> <!--При отображении на мобильном устройстве - на всю ширину, при отображении на компьютере - оставшаяся область от счетчика-->
<a href="#">
Наверх
</a>
</div>

</div>
</div>
</body>
</html>

*

sergey-911

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
  • https://opticod.ru
Re: Конфликт Lightbox mediabox ck pro с jQuery
« Ответ #6 : 10.04.2018, 16:06:31 »
В общем расклад следующий. Если подключен родные библиотеки:
Код
JHtml::_('bootstrap.framework');
JHtml::_('jquery.framework');
то работает Lightbox.
Если новые:
Код
JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/jquery-3.2.1.min.js', array('version' => 'auto', 'relative' => true));
JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/bootstrap.js', array('version' => 'auto', 'relative' => true));
то работает меню.
А можно использовать и те и те? Если да - то как?
Прошу прощения за ламерский вопрос, сильно не ругайте....
Спасибо.
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Конфликт Lightbox mediabox ck pro с jQuery
« Ответ #7 : 10.04.2018, 16:17:08 »
mediabox ck pro”
Я спрашивал про этот плагин.
А в плагине нет опции отключения загрузки jQuery ?
Скачал, посмотрел опции отключения нет. В коде плагина есть подключение
Код
		// loads jQuery
        JHTML::_('jquery.framework',true);
Попробуйте отключить руками
Код
		// loads jQuery
      //  JHTML::_('jquery.framework',true);
« Последнее редактирование: 10.04.2018, 16:25:50 от draff »
*

sergey-911

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
  • https://opticod.ru
Re: Конфликт Lightbox mediabox ck pro с jQuery
« Ответ #8 : 10.04.2018, 18:55:01 »
Спасибо за помощь Draff.
Не прокатило, компонент перестал работать после отключения jQuery:
Код
//JHTML::_('jquery.framework',true);
в файле "C:\OpenServer\domains\stolmaster.wix\plugins\system\mediabox_ck\mediabox_ck.php"

Зато я понял, откуда берется подключенный jQuery v. 1.4.1 в сайте, при отключении jQuery v.3.2.1 в шаблоне:
Код
//JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/jquery-3.2.1.min.js', array('version' => 'auto', 'relative' => true));
Похоже из таких вот компонентов и берется, сам бы не додумался. ;D
При этом, как ни странно (при отключении jQuery в шаблоне), сайт в целом вместе с компонентом работает. Может, конечно, где-либо сглючит что...
Буду ковыряться дальше. Какие есть идеи?
*

sergey-911

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
  • https://opticod.ru
Re: Конфликт Lightbox mediabox ck pro с jQuery
« Ответ #9 : 10.04.2018, 20:55:54 »
Слегка разобрался.
Если я в шаблоне не подключаю jQuery в коде:
Код
JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/jquery-3.2.1.min.js', array('version' => 'auto', 'relative' => true));
, то jQuery подключается в ядре Joomla. Поэтому в плагине Joomla Options отключил загрузку "родных" Mootools и Bootstrap, а загрузку "родного" Jquery оставил (Jquery disable = нет).
Новую версию Бутстрап подключил в шаблоне:
Код
JHtml::_('script', Juri::base(). 'templates/' . $this->template . '/js/bootstrap.js', array('version' => 'auto', 'relative' => true));
Далее, что не обязательно ( т.к. если этого не сделать - то подключится через ядро Joomla), подключаю "родной" Jquery:
Код
JHtml::_('jquery.framework');
Теперь видимых багов нет. Хочу узнать Ваше мнение, правильный ли выход я нашел?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести Alt картинки в описание Lightbox?

Автор art22

Ответов: 2
Просмотров: 850
Последний ответ 14.05.2023, 09:21:39
от sivers
Конфликт jQuery tabs в шаблонах Vina

Автор heartlink

Ответов: 3
Просмотров: 877
Последний ответ 04.07.2020, 21:33:53
от heartlink
ВОПРОС по UIkit. Как применять UIkit.lightbox к ссылкам с определенным классом?

Автор IlyaJom

Ответов: 5
Просмотров: 687
Последний ответ 12.03.2019, 17:28:05
от dm-krv
Отключение jQuery в шаблоне

Автор Stasweb

Ответов: 2
Просмотров: 829
Последний ответ 23.11.2018, 20:09:29
от beliyadm
[Решено] Helix 3 и AJAX Popup Contact Form - конфликт

Автор epson950

Ответов: 3
Просмотров: 2722
Последний ответ 29.01.2017, 15:36:52
от markizmds