Добавление кода в drupal_add_js

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

Аватар пользователя werg werg 21 марта 2011 в 17:48

Может быть немного странный вопрос, но в чем преимущество drupal_add_js перед обычным <script></script>?
При указании параметра inline, он так и вообще становится (как я понял)
К чему я это все.
Переопределил темизацию одной из нод, вставка плеера

        <script type="text/javascript">
                            jwplayer("video_container-<?php print $_SESSION['counter'];?>").setup({
                                flashplayer: "/xx/jwplayer/player.swf",
                                file:  '<?php print $site.$node->field_filefield[0]['filepath'] ?>',
                                height: 370,
                                width: 460,
                                image:'/xx/jwplayer/483.jpg'

                            });
        </script>

Но вот сколько я не пытался, засунуть все это дело в drupal_add_js не получалось..Нужно ли это вообще или вполне можно и так обойтись?

Комментарии

Аватар пользователя werg werg 21 марта 2011 в 18:40

Один из вариантов

       
<div id="video_container-<?php print $_SESSION['counter']; ?>" >
  Loading the player ...
</div>
drupal_add_js('jwplayer("video_container-'.$con.'").setup({
        flashplayer: "/xx/jwplayer/player.swf",
        file:  "'
.$vid.'",
        height: 370,
        width: 460,
        image: "/xx/jwplayer/483.jpg/"});'
,'inline');

Firebug нам говорит

jwplayer("video_container-138") is null
[Прерывать на этой ошибке] jwplayer("video_container-138").setup({

Ориентировался на это
То, что PHP выполняется на сервере, а JS на клиенте - я знаю)

Аватар пользователя Ростислав Ростислав 21 марта 2011 в 18:45

В это не преимущество, а принцип добавления JS при написании собственного модуля. На уровне темы мы можем подключить через тег script, на уровне модуля для правильного добавления и корректного кеширования через drupal_add_js, в таком случае скрипт будет автоматически добавлен в хедер или в body (если указан параметр inline для drupal_add_js) при активации модуля.

Аватар пользователя werg werg 22 марта 2011 в 3:05

xxandeadxx
Спасибо, помогло. Получается, проблема в том, что код выполнялся раньше формирования страницы?
Кстати, спасибо вам за блог, черпаю там для себя)

Ростислав
спасибо, теперь понятно