Как подключать скрипты к сайту Друпал 6 ?

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

Аватар пользователя avast@ avast@ 10 июля 2015 в 21:28

Здравствуйте очень добрые люди, подскажите пожалуйста как всё таки подключить сторонний скрипт для Drupal 6 ?

Буду благодарен за помощь, сам пробовал разобраться, но не реализовал.

Комментарии

Аватар пользователя avast@ avast@ 12 июля 2015 в 22:10

serega111 wrote:
либо в теме добавить скрипт, либо в модуле через drupal_add_js

Я пробовал у меня не получается напиши пожалуйста, если разбираешься ICQ 645759044

Аватар пользователя serega111 serega111 13 июля 2015 в 9:59

А что ты пробовал? А что не получается? Что за скрипт? Ты хочешь добавить его на определенные страницы или на все? В хидер или в футер?
Я должен все варианты расписать или ты все таки будешь писать хоть какую-то конкретику?

PS Если ты что-то не можешь сделать, всегда есть люди, готовые помочь за N рублей.

Аватар пользователя avast@ avast@ 13 июля 2015 в 12:33

Например хотел подключить скрипт к определенному типу материалов либо скрипт подключить для определенного блока, не знаю как...
Написано в теме есть файл info прописывать нужно стили и скрипты там например:
scripts[] = test.js ***** вот тут не пойму, какой путь к моему скрипту будет прописан, например у меня скрипт будет находиться в папке themes/garland/JS/my-scripts.js, соответственно >>>
scripts[] = themes/garland/JS/my-scripts.js так получается?

2) Скрипт указал в файле info ------ ------ scripts[] = themes/garland/JS/my-scripts.js
- сам скрипт разместил в папке JS ------ themes/garland/JS/my-scripts.js
3) Что дальше делать нужно? Например хочется создать блок для сайта на главной странице, что бы в нём шёл дождик либо снег, только в одном блоке, а не во всех

Аватар пользователя serega111 serega111 13 июля 2015 в 16:15

1. путь должен быть указан относительно папки темы. То есть, если скрипт в папке themes/garland/js/my-script.js, то нужно написать в info файле scripts[] = js/my-script.js
2. у вас используется тема garland? если нет, то нужно скрипт разместить именно в папке используемой темы.
3. Никогда не вносите правки в стандартные друпаловские модули и темы, а также в темы и модули, скачаные с оф сайта. вы потеряете все изменения при очередном обновлении ядра, модулей или темы. Если используете какую-то тему с офсайта, то создайте кастомную тему, которая будет на ней базироваться, и уже в кастомную тему включите скрипт.
Это что касается скриптов в теме.
4. Ваши задачи должны решаться через создание кастомного модуля.
Для добавления к определенным типа материала, нужно использовать hook_nodeapi
<?php
function my_module_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
if ($op == 'view' && $node->type == 'my_node_type') {
drupal_add_js(drupal_get_path('module', 'my_module') . '/my-script.js', 'module')
}
}
?>
Для добавления к определенным блокам - hook_block
<?php
function my_module_block($op, $delat, $edit = array()) {
if ($op == 'view' && $delta == 'my_block_delta') {
drupal_add_js(drupal_get_path('module', 'my_module') . '/my-script.js', 'module')
}
}
?>
Скрипт должен лежать в корне папки с модулем

Аватар пользователя avast@ avast@ 24 июля 2015 в 22:13

"serega111" wrote:

Эх...
написать в info файле scripts[] = js/my-script.js это я пробовал, тема у меня garland,
но что-то не работает...
там же нужно вроде ещё осуществить вывод вроде?

4. А кастомный модуль о нём я ничего не знаю. Без него можно?

Аватар пользователя serega111 serega111 25 июля 2015 в 16:11

после того, как прописали строчку в info файле, кэш обновляли?
вывод чего вы хотите осуществить?

"avast@" wrote:
Без него можно?

Можно, но это говнокод.

Аватар пользователя avast@ avast@ 25 июля 2015 в 18:05

"serega111" wrote:

Я просто не понимаю пошаговую реализацию вывода сторонних скриптов...
1. Я так понял нужно делать так как вы сказали.
2. Нужно использовать hook_nodeapi
3. Для добавления к определенным блокам - hook_block

Теперь по порядку, что куда вставлять (желание реализовать к материалам)
1. в info прописывает так как выше => scripts[] = js/my-script.js
2. Что делать дальше я не понял?
3. Куда это вставлять ? =>

<?php
function my_module_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
if ($op == 'view' && $node->type == 'my_node_type') {
drupal_add_js(drupal_get_path('module', 'my_module') . '/my-script.js', 'module')
}
}
?>

###########

Аватар пользователя serega111 serega111 25 июля 2015 в 20:13

В файле my_module.info нужно прописать только стандартные данные (смотрите любой встроенный модуль для примера), записи scripts[] = js/my-script.js там не должно быть
в файл my_module.module вставить код, что я написал выше
не забыть в папку модуля положить ваш скрипт

PS. В гугле забанили?

Аватар пользователя serega111 serega111 26 июля 2015 в 21:55

"multpix" wrote:
my_module.info где он находиться в какой папке?

Его создать нужно и положить в папку модуля, которую тоже нужно создать.
http://ramech.net/courses/drupal6-development/module-create.html

PS Это последний мой ответ в теме, вы надоели своей ленью и глупостью. Если вы ничего не понимаете, нафига вообще занялись программированием?

@multpix, не путайте человека, от пытается создать модуль, а вы ему ссылки на создание темы кидаете.

Аватар пользователя multpix multpix 26 июля 2015 в 22:08

@serega111,
во первых - цитата выше, не моя, уволь ))

во вторых:

"serega111" wrote:
не путайте человека, от пытается создать модуль, а вы ему ссылки на создание темы кидаете.

то, что он начал пытаться создавать модуль - исключительно твоя заслуга))
ибо изначально озвученное:
"avast@" wrote:
Например хочется создать блок для сайта на главной странице, что бы в нём шёл дождик либо снег, только в одном блоке, а не во всех

это можно сделать модулем, но более верно визуальные рюшики делать в слое темы.

вы тут скрипт уже вторую неделю подключаете, а что будет с хуками меню и блоков?
счет пойдет на годы?
соизмеряй силы вопрошающего)))))

Аватар пользователя serega111 serega111 27 июля 2015 в 0:14

Тема определяет общий вид сайта, а рюшечки, которые применяются к какому то блоку, лучше как раз таки вынести в модуль, тогда можно будет использовать это на разных темах, на разных сайтах. В идеале, этот модуль должен еще и программно создавать блок.
К тому же, вы уверены, что создать подтему гарланда для подключения одного скрипта - это хорошая идея? Или вы тоже за то, чтобы прямо в гарланде поменять info файл и положить свой кастомный скрипт в папку друпаловской темы?

"multpix" wrote:
соизмеряй силы вопрошающего)))))

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

Аватар пользователя serega111 serega111 27 июля 2015 в 9:26

"ХулиGUN" wrote:
Дык а в чём проблема сделать подтему гарланда? Добавить добавить 2 файла?

Дык а в чем проблема сделать модуль? Добавить два файла?
Как видишь, не каждый может.

Аватар пользователя multpix multpix 27 июля 2015 в 9:30

"serega111" wrote:
Тема определяет общий вид сайта, а рюшечки, которые применяются к какому то блоку, лучше как раз таки вынести в модуль,

этот бред оставлю без комментариев)))

"serega111" wrote:
К тому же, вы уверены, что создать подтему гарланда для подключения одного скрипта - это хорошая идея?

Денис ответил выше, я лишь добавлю,
в этом случае не два а пять файлов:
info (определяем базовую тему и свои css, js)

page-front.tpl.php (копируем из дефолтной и добавляем свой блок (div) к которому будем цеплять рюшик)

script.js (тут свой код)

some_vendor.js (сторонняя либа с рюшиком - и да, тут нет смысла делать ее через libraries)

style.css (и свои стили - куда уж без них)

дополнительно - каталог images - если необходимо.

Вот и все, конец урока))

Аватар пользователя serega111 serega111 28 июля 2015 в 22:52

"multpix" wrote:
page-front.tpl.php (копируем из дефолтной и добавляем свой блок (div) к которому будем цеплять рюшик)

Я тоже оставлю это без комментариев ))
"ХулиGUN" wrote:
Но решаться задача должна на уровне темы, но никак не модуля, если только этот js не имеет никакой унификации и нет возможности и необходимости использовать в будущем в других темах.

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

Аватар пользователя avast@ avast@ 24 августа 2015 в 13:41

"multpix" wrote:
page-front.tpl.php (копируем из дефолтной и добавляем свой блок (div) к которому будем цеплять рюшик)

"multpix" wrote:

Рюшик это что такое?

Аватар пользователя avast@ avast@ 24 августа 2015 в 13:43

"ХулиGUN" wrote:
ли только этот js не имеет никакой унификации и нет возможности и необходимости использовать в будущем в других темах.

Я пробовал как написали, но что то js не работает, почему?
Я создал в теме папку, пихнул туда скрипт js и прописал его в инфо файле, но не работает...

Аватар пользователя avast@ avast@ 25 августа 2015 в 19:36

ХулиGUN wrote:
"avast@" wrote:
Я создал в теме папку, пихнул туда скрипт js и прописал его в инфо файле, но не работает...

Что консоль говорит?

Ни чего не говорит консоль, не работает скрипт и всё

Аватар пользователя drupby drupby 25 августа 2015 в 20:25

"avast@" wrote:
не работает скрипт и всё

бида-печаль
ну тут же есть варианты
1. скрипт банально не подключился (смотри исходный код страницы) либо же подключен, но путь неправильный (смотри вкладку network в devtools)
2. скрипт нерабочий (то же вполне вероятно в данном случае) либо его нужно переписывать

p.s. сам себя не понимаю, когда отвечаю в топике про подключение дождика/снега, который будет идти в конкретном созданном блоке

Аватар пользователя drupby drupby 25 августа 2015 в 21:27

"avast@" wrote:
В исходном коде нет скрипта, смотрел нет его.

такого не должно быть, если тема включена и в info добавлен scripts[] = ... и очищен кеш, то в исходном коде скрипт будет, даже если путь неправильно указан