JavaScript. Получить значение глобальной переменной Drupal

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

Аватар пользователя Bahiya Bahiya 17 февраля 2009 в 21:33

Возможно ли из сценария JavaScript обращаться к переменным Drupal? Если это возможно, то покажите пожалуйста, как, например, можно получить значение $base_url на примере кода. Спасибо.

Задался целью доработать TinyMCE под свои нужды. Пока плаваю в определениях и способе решения.

Комментарии

Аватар пользователя Ромка Ромка 17 февраля 2009 в 22:11

kosilko wrote:
как вариант - прописать в начале page.tpl.php нечто вроде

<script>
var base_url='<?=$base_url;?>';
</script>


Кривой вариант. А как ты поступишь, если переменную в JS надо передать из модуля? Правильнее делать так. В модуле вызываешь функцию:

drupal_add_js(array('var_name' => 'var_value'), 'setting');

затем в ява-скрипте:

var_name = Drupal.settings.var_name;

И, кстати, переменная basePath в шестом Друпале доступна через ява-скрипт:

Drupal.settings.basePath
Аватар пользователя Bahiya Bahiya 17 февраля 2009 в 22:57

Т.е. могу обратиться к любой переменной описанной в global.php используя конструкцию вида Drupal.settings.varname ?

Аватар пользователя Ромка Ромка 17 февраля 2009 в 23:00

Bahiya wrote:
Т.е. могу обратиться к любой переменной описанной в global.php используя конструкцию вида Drupal.settings.varname ?

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

Аватар пользователя kosilko kosilko 18 февраля 2009 в 0:47

"Ромка" wrote:
Кривой вариант. А как ты поступишь, если переменную в JS надо передать из модуля?

Вы мне прям Америку открыли. Вопроса о нужде в передаче переменной именно из модуля не стояло. Тем более, если речь идет о правке стороннего модуля, то это уже само по себе криво, раз уж речь пошла о правильностях Smile

Аватар пользователя Ромка Ромка 18 февраля 2009 в 10:39

kosilko wrote:
Вы мне прям Америку открыли. Вопроса о нужде в передаче переменной именно из модуля не стояло. Тем более, если речь идет о правке стороннего модуля, то это уже само по себе криво, раз уж речь пошла о правильностях :)

А кто говорил о правках чужого модуля? Эту функцию можно использовать в template.php, например, или в любом другом файле, который подгружается при формировании страницы. К тому же, зачем править шаблон, таким кривым способом, который предложил ты, если для решения поставленной задачи в Друпале есть удобный инструмент?

Аватар пользователя kosilko kosilko 18 февраля 2009 в 12:18

"Ромка" wrote:
А кто говорил о правках чужого модуля?

автор темы видимо
"Bahiya" wrote:
Задался целью доработать TinyMCE под свои нужды.

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