JavaScript

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

Аватар пользователя snager snager 20 января 2007 в 16:50

Господа !
Нужно повесит событие OnChange на элемент select.
Как это делается в Друпале.
Помогите кто чем может, пожалуйста.

Комментарии

Аватар пользователя rapitosov@drupal.org rapitosov@drupal.org 20 января 2007 в 19:22

Точно так же, как и в повсюду в интернете.

По хорошему:
- на select вешается класс CSS (в зависимости от происхождения селекта это можно сделать через параметер Form API '#attribute' функцией hook_form_alter() (или хаком), переопределение theme_ функции, или банальный хак)
- через drupal_add_js() при генерации страницы, содержащей select, добавляется скрипт, навешивающий на селект эвенты.

По плохому:
- на селект сразу навешиваются эвенты

Так же есть ещё куча откровенно поганых способов, не заслуживающих упоминания Smile

---
http://drupal5.ru - информация для друпателей
качественные ответы только на качественные вопросы

Аватар пользователя seaji seaji 20 января 2007 в 19:42

Самый простой способ цеплять Java код - это через блоки.
1. В файле template.php определяете дополнительный регион.
2. В файле page.tpl.php впечатываете этот регион где нибудь до тэга body
3. В файле block.tpl.php прописываете вид блока для этого региона (без использования доп. тэгов, впечатываете только $block->content)
Примерно так:
<?php switch (true) {
case ($block->region=="top"):
print $block->content;
break; ?>
<?php default: ?>
<div class="blockinner">
<h2 class="title"> <?php print $block->subject; ?> </h2>
<div class="content">
<?php print $block->content; ?>
</div>
</div>
<?php } ?>
4. Теперь Вы можете создавать новые блоки с необходимым кодом и размешать их в новом регионе. Плюс к этому можно гибко настроить подключение того или иного кода для разных страниц.