Пытаюсь сделать слайдер, помогите понять логику Drupal

Главные вкладки

Аватар пользователя Omumar Omumar 29 августа 2015 в 19:12

Здравствуйте!
Не могу больше ковыряться, пытаясь запихать треугольник в круг, хочу хоть как-то понять логику (надеюсь, вы одобрите это моё желание :---))

Пытаюсь сделать, чтоб jQuery-слайдер (https://www.drupal.org/project/vegas) работал только на главной странице сайта, а не на всех, как он делает если установить его в виде модуля. Поэтому, модуль я отключил, хочу встроить вручную. Вопрос - как встраивать?

Сейчас у меня в библиотеках есть скрипт модуля, стиль модуля и код в конце page.tpl.php:


<?php if ($is_front): ?>

<?php drupal_add_js('http://sitename.ru/sites/all/libraries/vegas/jquery.vegas.js');?>
<?php drupal_add_css
('http://sitename.ru/sites/all/libraries/vegas/jquery.vegas.css');?>

<?php endif; ?>

Много русского и иностранного гугла перелопатил, но там почти никогда не говорится какой именно файл править, подразумевая, что я это и так пойму. И не понятно как сказать скрипту откуда и как он должен брать картинки, то есть где его конфигурировать, если друпаломодуля, допустим, нет, а есть только jQuery script.
Подскажите, пожалуйста, как надо.

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 29 августа 2015 в 19:50

"Omumar" wrote:
встроить вручную

Ну Вы раликал батенька, если модуль уже все делает только на всех страницах - этож все навсего надо условия одно прописать что drupal_is_front_page() и дел, то! Намного быстрее сделать fork модуля этого ( если конечно настройки не позволяют в нем самом ) который уже все делает и ограничить вывод этого всего - только главной страницей.

Аватар пользователя Omumar Omumar 29 августа 2015 в 20:28

Да, спасибо большое! Это очень хороший путь. Я изначально хотел где-то поставить условие, мол if... 'front' then ... execute script. Но так и не понял где и как это сделать. Не развернёте ли чуть подробнее в каком файле модуля нужно вносить исправления? Модуль as is, к сожалению, этого не позволяет.

И если будет время прояснить, то у меня по структуре вселенной вопрос, всё ли я правильно понимаю?:
Сначала был HTML, но он был статичен и тогда был создан Апач, который читал слова php, обращался к Библиотекам Данных, и рождал при этом HTML. Но рождая HTML Апач каждый раз смотрит в Каскадные Свитки Стилей. И ещё были скрипты, они были в стороне и были всегда, но к ним можно воззвать и придут они.

Аватар пользователя Omumar Omumar 30 августа 2015 в 1:21

Goodboy, спасибо большое, помогло. Cкрипт работает только на главной.

Но если без модуля - как надо было бы? Goodboy, ни в коем случае не хочу обесценивать вашу помощь, но плохо, что у меня понимание опять осталось на уровне бубна - скрипт запихал, модуль накатил, патч накатил, в гуе через админку галочку поставил и вроде не падает.

Аватар пользователя goodboy goodboy 30 августа 2015 в 9:05

Да какая помощь, я этот патч не писал, только нашел. В данном случае, модуль маленький; скрипт сложный, со множеством настроек. Так что использование модуля оправдано. Если на каждый скрипт устанавливать модуль, будет большой расход ресурсов, зато экономится время разработки и удобно в админке менять параметры. Важно соблюсти золотую середину и не впадать в крайности.

Почему сайт должен падать от модуля? Модуль с drupal.org, проверенный. Для того модули и пишутся. Не стоит огорчаться, что все так просто, наверняка еще будут сайты со сложностями.

Аватар пользователя ihappy ihappy 30 августа 2015 в 3:01

Views Slideshow+Views Slideshow: Cycle
Создаешь материал для слайдера. Создаешь вьюху. Настраиваешь вьюху. Выводишь в блоке. Добавляешь слайдер на любую страницу.
30минут работы.

Аватар пользователя Omumar Omumar 30 августа 2015 в 15:33

Goodboy, не получилось просто, к сожалению. На мобильных устройствах задник грузится поверх контента, на ПК при сжатии и растягивании окна задник деформируется.

В итоге у меня получился франкенштейн.
- Два файла от старой версии вегаса jquery.vegas.js и <...>.css помещаются в папку libraries/vegas

- Новая версия модуля при автоматической установке устанавливается в modules/vegas

Инструкция по установке (https://www.drupal.org/project/vegas) предлагает новые файлы модуля, не говоря из корня или из папки /dist/ класть опять в libraries/vegas (при этом в админке ничего не меняется)

В итоге новая панель управления работает с файлами старого модуля. Не понятно как вообще она до них доставала, если все имена изменились. В итоге откатил базу и сайт.
-----------------------------------
Так что прошу подсказать конкретную вещь - как мне установить vegas начисто?
Того что написано на странице проекта мне почему-то не хватает.
Всё ли я правильно понимаю?:
0. Все отключаю -> удаляю -> на фтп удаляю папки и файлы из /modules и /libraries, относящиеся к вегасу
1. В друпале делаю install module, даю ему ссылку на tar.gz со страницы проекта
2. В фтп копирую содержимое папки vegas/dist из гитхаба в libraries/vegas ////вот тут не уверен////
3. Скачиваю файлы из modules/vegas на локалку и патчу их, заливаю назад
4. Настраиваю через админку друпала.

Аватар пользователя goodboy goodboy 30 августа 2015 в 17:34

Правильные действия, в результате ведь скрипт работает. Пока не понимаю проблемы и причины откатов. Может, настройка параметров скрипта в модуле не подходит для последней версии скрипта (например, модуль писался в 2013 когда была 1-я версия, а вы скачали 2-ю версию)? Если так, попробуйте найти версию скрипта за 2013 год.

Если есть проблемы со скриптом - пишите http://vegas.jaysalvat.com/ . Кстати, а демо http://vegas.jaysalvat.com/demo/ работает правильно на мобильных устройствах?

Аватар пользователя Omumar Omumar 30 августа 2015 в 18:38

Спасибо за помощь, которую вы оказываете. Нет-нет, обнаружились проблемы, пропатченный модуль стал грузить бэкграунд поверх контента на мобильных устройствах. При ресайзе ведет себя ужасно. При возврате на непропатченную версию модуля проблемы остались, это для меня уже "трики проблем", бороться с которой можно от пяти минут до пяти дней, потому и откат.

Теперь придется отказаться от красивостей, я взял styles.css моей темы и прописал внизу

html {
background: #fff;
background-image:url('/bg.jpg');
background-position:center center;
background-repeat:no-repeat;
background-attachment: fixed;
background-size: cover;
height:100%;
}

Как сделать, чтобы, опять же, это показывалось только на главной? И всё. А то вместо того чтобы делать контент, я уже n дней пытаюсь запустить старый скрипт через новый пропатченный на коленке модуль, смех.

UPD:

Написал .front.html{...}
И теперь только на главной, хорошо. У прочих элементов у меня в строке
CSS class(es) прописано "fadeIn wow". Можно как-нибудь применить эти стили к загружаемому бэкграунду? Чтоб он тоже плавно проявлялся?

Аватар пользователя goodboy goodboy 31 августа 2015 в 0:01

Насколько могу судить, патч модуля не влияет на работу скрипта. Проблемы ведь есть в обоих версиях? Подозреваю, что все же дело в верстке сайта. Здесь, я, к сожалению, не помогу.

Аватар пользователя Omumar Omumar 31 августа 2015 в 14:57

Да, наверное дело в вёрстке. Так что данный тикет подходит к концу Smile Я сейчас сделал со статичной картинкой через CSS, но получилось ни разу не responsive. Особенно, если заходить через смартфон в портретном положении.

Что сейчас:
.front.html {
background: #fff;
background-image:url('/Background.png');
background-position:center center;
background-repeat:no-repeat;
background-attachment: fixed;
background-size: cover;
height:100%;
image-rendering: auto;
}

У кого-нибудь есть советы и уловки как улучшить только с помощью CSS? Подкиньте пару идей или строчек. Хочется чтоб задник (я его переделаю под портрейт) вел себя примерно так:

Аватар пользователя Omumar Omumar 31 августа 2015 в 16:26

Проявилась проблема насчёт относительных путей
С главной страницы

<a href="node/12"><img src="Button1.png" height="60" width="60" hspace="20"></a>

работала и работает нормально.
Но абсолютно такая же ссылка с одной из внутренних нод или не отображает картинку (потому что ищет её не в "/" где она и лежит, а в /node/) или начинает вести к node/node/12, что естественно выдает ошибку.

Подскажите пожалуйста - почему ссылки сами то надстраиваются то нет и как это исправить?