Вставьте виджет JavaScript на одной странице сайта Drupal - PullRequest
2 голосов
/ 24 июля 2011

У меня есть виджет JavaScript, который можно вставить на обычную HTML-страницу, подобную этой:

<html>
    <head>
        <script type='text/javascript' src="http://example.com/widget.js"></script>
    </head>
    <body>
        <script type='text/javascript'>
            //<![CDATA[            
            try{ widget_constructor('key',500,400); }
            catch(e){ alert(e.message); }
            //]]>
        </script>
    </body>
</html>

Я хотел бы вставить этот JavaScript на одну страницу сайта Drupal 6 (не каждыйстраница).

Это то, что я до сих пор пытался получить тег сценария в заголовке:

  • Я установил полный формат ввода HTML, чтобы разрешить php.
  • Для страницы Drupal я установил формат ввода Full HTML

Затем я добавил это в верхнюю часть тела моей страницы Drupal:

<?php 
  drupal_set_html_head('<script type="text/javascript" src="http://example.com/widget.js"> </script>'); 
?>

Но Drupalне анализирует php и вместо этого печатает это вверху страницы:

<?php drupal_set_html_head(''); ?> 

Есть какие-нибудь предложения относительно того, как я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 25 июля 2011

@ Джефф: Вы не должны действительно пересматривать это.Использование фильтра PHP, как правило, является плохой идеей, поскольку потенциально может открыть дыры в безопасности.(В случае, если кто-то получит доступ к вашей учетной записи пользователя или у вас неправильная конфигурация в настройках, это прямой путь к компрометации всего сервера)

Я бы скорее предложил добавить js через template.php вашеготема.Также правильный метод для использования это drupal_add_js с опцией inline: http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_add_js/6

Вот некоторые дальнейшие чтения о том, как его использовать:

http://drupal.org/node/304178#comment-1000798 http://drupal.org/node/482542

2 голосов
/ 24 июля 2011

Я не слишком знаком с Drupal, поэтому этот ответ просто обходит ваш виджет без загрузки, фактически не отвечая на вопрос, почему этот блок PHP не анализируется как PHP.вызовите тег <script> внутри <head>.Вы можете просто поместить эту строку прямо над тегом <script>, который вызывает конструктор виджета.

<html>
    <head>

    </head>
    <body>
        <script type='text/javascript' src="http://example.com/widget.js"></script>
        <script type='text/javascript'>
            //<![CDATA[            
            try{ widget_constructor('key',500,400); }
            catch(e){ alert(e.message); }
            //]]>
        </script>
    </body>
</html>
0 голосов
/ 24 июля 2011

После написания всего этого я выяснил проблему ...

В полном формате ввода html по умолчанию включен фильтр корректора HTML, и этот фильтр, по-видимому, вызвал проблемы с кодом PHP,Изменение порядка фильтров для установки оценщика PHP сначала решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...