Shopware 5.2.11 включает JavaScript в мой плагин

Я хочу добавить файл JavaScript в свой плагин. Я следовал этому руководству и смог чтобы успешно получить Лозунг дня на моей установке (vagrant).

Кроме того, я хочу загрузить файл JavaScript. Я изменил index.tpl и добавил следующие строки:

   {* Include own Javascript Code *}
    {block name="frontend_index_header_javascript_jquery_lib"}
      {debug}
      {$smarty.block.parent}
      {if $myVariable}<script type="text/javascript" src="{link   file='frontend/_public/src/js/myFile.js'}"></script>{/if}
    {/block}

Взглянув на исходный код сгенерированного html, тег скрипта успешно загружен. Однако мой файл JavaScript вообще не будет загружен. Куда я должен поместить файл в папке моего плагина?

В настоящее время у меня есть эта структура

NameOfZipfile.zip
└──Frontend
   ├─MyPlugin
   │ └─Views
   │   ├─_public
   │   │ └─src
   │   │   └─js
   │   │     └─myFile.js
   │   └─frontend
   │     └─index
   │       └─index.tpl
   └─Bootstrap.php

Я использую ПО 5.2.11. Я не хочу добавлять встроенный скрипт. Что я делаю не так?


person exa.byte    schedule 29.11.2016    source источник
comment
Привет, ребята. Мне удалось решить проблему самостоятельно. Я отмечу заголовок как решенный! Решение: см. редактирование в вопросе выше.   -  person exa.byte    schedule 30.11.2016
comment
Не вкладывайте ответы в вопросы. Не помещайте решенные в названия вопросов. Напишите фактический ответ и примите его.   -  person Quentin    schedule 30.11.2016
comment
Привет. Спасибо за вашу помощь. Я был занят, но теперь я вернулся. Я сделаю это в будущем. Мне жаль :(   -  person exa.byte    schedule 31.01.2017


Ответы (2)


(Опубликовано от имени OP).

Решение. Я добавил следующее в метод установки Bootstrap.php:

$this->subscribeEvent('Theme_Compiler_Collect_Plugin_Javascript', 'addJsFiles');

И эта функция:

 public function addJsFiles(Enlight_Event_EventArgs $args){
    $jsFiles = array(__DIR__ . '/Views/_public/src/js/myFile.js');

    return new Doctrine\Common\Collections\ArrayCollection($jsFiles);
}
person Community    schedule 30.11.2016
comment
Если вы используете Grunt, не забудьте добавить файлы js в /web/cache/config_' + shopId + '.json' - person aLx13; 09.02.2017

Если вы используете grunt, вы будете использовать эту команду, чтобы добавить все файлы js плагина в ваши файлы /web/cache/config_' + shopId + '.json': bin/console sw:theme:dump:configuration

person Ifbi dev    schedule 14.07.2021