Мне нужен метод вставки JavaScript, который зависит от контроллера / действия в макете.Этот javascript должен находиться внутри <head>
документа, далеко от того места, где размещается нормальное содержимое.У меня уже есть инфраструктура, которая позволяет использовать несколько просмотров на страницу, и Zend_Layout, который у меня уже есть, в полной мере использует это:
<?php
$script = $this->layout()->script;
if (!is_null($script)) : ?>
<script type="text/javascript"> // <![CDATA[
<?php echo $script; ?>
// ]]>
</script>
<?php endif; ?>
Однако я хотел бы, чтобы выходные данные скрипта были автоматически выбраныточно так же, как обычный вид автоматически помещается в $this->layout()->content
макета по умолчанию.Я понимаю, что эта возможность предоставляется классом ViewRenderer.По сути, я хотел бы проверить экземпляр /VIEWPATH/scripts/CONTROLLER/ACTION.js.php
и отобразить его как именованный выходной сегмент script
, если он существует.
Я мог бы относительно просто создать Zend_Controller_Plugin, который автоматическисделайте это в постдиспетчере, но тогда контроллеры не смогут установить значения в представлении скрипта.Мне также понадобился бы способ репликации того, как плагин контроллера ViewRenderer изменяет имена контроллеров и действий.
В идеале я бы просто как-то привязал это к помощнику ViewRenderer, но, похоже, он не поддерживает это.такие вещи.
Я поступаю по этому поводу совершенно неправильно?Есть ли какой-то механизм для встраивания Javascript для конкретной страницы в фреймворк?(Я не могу быть единственным человеком с этой проблемой ....)
Billy3