Конфликт панели управления с JS

Любая помощь по установке/настройке/модификации concrete5

Конфликт панели управления с JS

Сообщение guyasyou » 04 янв 2013, 12:13 ,  »  Сообщение:#1

Установил слайдер на JS (не плагин, сам вставил в код шаблона), работает отлично, вот только кнопки в панели управления не грузятся. Когда скрипт отключаю, то все ок.
Где может быть конфликт?

Вот скрипт:
Код: Выделить всё
<link rel="stylesheet" href="/css/page.css" type="text/css" media="screen" />
<link rel="stylesheet" href="/css/slider.css" type="text/css" media="screen" />
<script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/js/jquery.easing.1.2.js"></script>
<script type="text/javascript" src="/js/jquery.anythingslider.js"></script>

<script type="text/javascript">
    function formatText(index, panel) {
        return index + "";
       }
            $(function () {
            $('.anythingSlider').anythingSlider({
                easing: "easeInOutExpo",        // Anything other than "linear" or "swing" requires the easing plugin
                autoPlay: true,                 // This turns off the entire FUNCTIONALY, not just if it starts running or not.
                delay: 5000,                    // How long between slide transitions in AutoPlay mode
                startStopped: false,            // If autoPlay is on, this can force it to start stopped
                animationTime: 800,             // How long the slide transition takes
                hashTags: true,                 // Should links change the hashtag in the URL?
                buildNavigation: true,          // If true, builds and list of anchor links to link to each slide
              pauseOnHover: true,             // If true, and autoPlay is enabled, the show will pause on hover
              startText: "Старт",             // Start text
              stopText: "Стоп",               // Stop text
              navigationFormatter: formatText       // Details at the top of the file on this use (advanced use)
            });
            $("#slide-jump").click(function(){
                $('.anythingSlider').anythingSlider(6);
            });
        });
</script>
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Конфликт панели управления с JS

Сообщение guyasyou » 05 янв 2013, 11:44 ,  »  Сообщение:#2

Установил модуль
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
. И он тоже не работает вместе с этим слайдером. Вместо того, чтобы открыть картинку на этой же странице, он грузит его отдельно.

UPD.
Когда-то, подобное случалось, когда я поставил кнопку "Вверх". Решил проверить, что общего в этих скриптах, и нашел.
Это <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script> и <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
Закомментировал его, и все ок стало. К тому же слайдер вроде работает и без него. Я так понимаю, теперь слайдер начал использовать jquery от движка?

Что она вообще делает?
Последний раз редактировалось guyasyou 05 янв 2013, 15:10, всего редактировалось 1 раз.
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Конфликт панели управления с JS

Сообщение MonoStas » 07 янв 2013, 14:21 ,  »  Сообщение:#3

guyasyou писал(а):Установил модуль
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
.
Когда-то, подобное случалось, когда я поставил кнопку "Вверх". Решил проверить, что общего в этих скриптах, и нашел.
Это <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script> и <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
Закомментировал его, и все ок стало. К тому же слайдер вроде работает и без него. Я так понимаю, теперь слайдер начал использовать jquery от движка?

Что она вообще делает?


Кто она то?
Скорее всего нужно тут смотреть ваш пресловутый конфликт:
<script type="text/javascript" src="/js/jquery.anythingslider.js"></script>

Ну и два раза jQuery библиотеку подключать - это есть моветон.
Пользую: CentOS 6.5, Ubuntu, Nginx, PHP, MySQL, Python, Sublime Text 3, CSS3, HTML5, jQuery...... Concrete5 (-;
Аватара пользователя
MonoStas
 
Сообщения: 80
Зарегистрирован: 11 окт 2012, 19:21
Откуда: Москва

Re: Конфликт панели управления с JS

Сообщение Count_Raven » 10 янв 2013, 21:08 ,  »  Сообщение:#4

Да, именно.
Если вы используете код на jQuery, то его не нужно подключать дополнению или шаблону. Он уже в header_required находится, т.е. всегда грузится у Concrete5 вне зависимости от того используете вы jQuery или нет. Если он не нужен и вы используете Mootools к примеру, то можно отключить постоянную загрузку jQuery, а в режиме админа (в шаблоне, в блоке) проверять и делать соответствующие корректировки (чтобы избежать конфликтов).

Т.е. уберите строки
Код: Выделить всё
<script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script

jQuery у вас грузится сам. Такие вещи из шаблона и из своего кода убирайте.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Конфликт панели управления с JS

Сообщение MonoStas » 11 янв 2013, 15:33 ,  »  Сообщение:#5

вспомнил, что читал уже хороший метод грузить jQuery только в случае когда вы под админом. Это статья с официального сайта скопирована:
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку


В 1ом пункте очень доходчиво описано. Ну и вообще добротные методы оптимизации скорости там.
Я лично стараюсь включать только то, что нужно.
ccm.base.css, и ccm.base.js по дефолту зачем-то стоят включёными, даже если не под админом находимся. Мелочь конечно, но всё таки два лишних файлика, такими вещами не шутят. Странно, что в официальную версию Конкрете5 не входят данные изменения в коде, как описано в статье.

Я лично после отключения в header_required решил дополнительно написать своё видение вопроса на тему подключения css и js. стандартная идея подключения мне не нравится. слишком много кода на экране:
Код: Выделить всё
<style type="text/css">@import "<?php  echo $this->getThemePath()?>/css/3445345345/345345345345345.css";</style>

и так каждый раз для разных страниц, для js ещё такие же длинные строки и т.д.

я сделал так:
Код: Выделить всё
function CssPrintStyle($cssName) {
      $themeFolder = '/packages/имя_темы/themes/тема';
      print '<style type="text/css">@import "'.$themeFolder.'/'.$cssName.'";</style>'; echo "\n";
   }

и потом вызываю очень наглядным методом
Код: Выделить всё
if (!empty($sidebar_location) && $sidebar_location == "left") {
         CssPrintStyle('css/bootstrap.css');
         CssPrintStyle('css/left-sidebar.css');
         JsPrintStyle('MainScript.js');
   }

у меня css и js-код для разных типов страниц очень отличается. Может решение странноватое, но в плане удобства мне так проще, чем смотреть на длинные строки. ну вы догадались, что js я подключаю аналогичной функцией.
Пользую: CentOS 6.5, Ubuntu, Nginx, PHP, MySQL, Python, Sublime Text 3, CSS3, HTML5, jQuery...... Concrete5 (-;
Аватара пользователя
MonoStas
 
Сообщения: 80
Зарегистрирован: 11 окт 2012, 19:21
Откуда: Москва

Re: Конфликт панели управления с JS

Сообщение Kiskenbassker » 26 апр 2013, 12:55 ,  »  Сообщение:#6

Добрый день!

Возникла та же проблема. Подключаю скрипт через <script src="..." type="text/javascript"></script>. Код несложный:
Код: Выделить всё
jQuery.noConflict();
jQuery(document).ready(function(){

jQuery("ul.nav-header li").hover(
      function () {
        jQuery(this).addClass("hover");
      },
      function () {
        jQuery(this).removeClass("hover");
      }
    );
  });


Как результат - на панели управления пропали кнопки, а модуль фотогалереи
Galleria Image Gallery, который стоит у меня на сайте, перестал работать. Но JQuery я отдельно в шаблоне не прописывал.

Может кто-то подсказать, в чем проблема? В Джумле очень часто прописывал подобный код, в т.ч. на сайтах с разными фотогалереями, и он никогда ни с чем не конфликтовал.
CONCRETE cold face cased in steel... (King Crimson)
Аватара пользователя
Kiskenbassker
 
Сообщения: 35
Зарегистрирован: 19 апр 2013, 10:13

Re: Конфликт панели управления с JS

Сообщение cmsservice » 26 апр 2013, 13:46 ,  »  Сообщение:#7

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

А зачем noConflict? В concrete5 и так JQuery зашит.
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: Конфликт панели управления с JS

Сообщение guyasyou » 26 апр 2013, 15:26 ,  »  Сообщение:#8

Если ты подключал jQuery, то удали его. Его подключать не нужно.
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск


Вернуться в Помощь по concrete5

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron