Как добавить перед </body> JS и JS inline?

Необходимо добавить $wa->js

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/script/5.4.1/script.min.js"></script>

А за ним сразу просто код js

<script>
let modalButtonItems = document.querySelectorAll(".openModalMultiOreder");
</script>

11 ответов

  • 1
    Михаил Ушенин 4 июля 2024 09:05 #

    На какой странице вам это нужно сделать?

    • +1
      Katvizkiy Stanislav Katvizkiy Stanislav 4 июля 2024 09:51 #

      1. на всех страницах сайта

      2. только на странице оформления заказа

      • +1
        Михаил Ушенин Михаил Ушенин 4 июля 2024 11:49 #

        Используйте хуки, которые срабатывают на нужных вам страницах, и добавляйте нужное содержимое при обработке хуков.

        Если вы уже пробовали так делать и не получили нужного результата, расскажите, с какими трудностями вы столкнулись.

        • +1
          Katvizkiy Stanislav Katvizkiy Stanislav 4 июля 2024 13:37 #

          При установке плагина, мне нужно, чтобы вышеупомянутые скрипты добавились на все страницы сайта перед тегом </body>.

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

          Логично предположить, что нужно добавить некий код в файл плагина: /

          wa-apps/shop/plugins/cartsmanager/lib/shopNameplugin.plugin.php

          https://developers.webasyst.ru...

          варианты с этой страницы не сработали, сайт просто упал с ошибкой 500

          <?php
          
          class shopNamepluginPlugin extends shopPlugin
          {
                  $this->addJs('js/script.js'); // тут не сработало
          	public static function scriptInsert()
              {
          		$this->addJs('js/script.js'); // тут, тоже, не сработало
              }
          }
      • +1
        Михаил Ушенин Михаил Ушенин 4 июля 2024 14:28 #

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

        • +1
          Katvizkiy Stanislav Katvizkiy Stanislav 4 июля 2024 16:09 #

          В этом случае мне придется писать сложную инструкцию по интеграции плагина.
          Я не совсем понимаю, зачем, если есть работающий инструмент?
          Просто подскажите мне, как этот инструмент правильно использовать.
          Буду очень благодарен вам

          Просто документация сложна для моего понимания.
          Я облазил ее всю, но так и не нашел решения.
          Без примеров, очень сложно понять

  • 1
    Михаил Ушенин 4 июля 2024 17:51 #

    Именно перед закрывающим тегом </body> получилось бы добавить нужное вам содержимое, только если бы в этом месте в любой теме дизайна был код вставки результата обработчиков какого-то хука. Даже в стандартной теме «Дефолт» я не вижу такого кода.

    Получается, что либо реализовать вам вашу логику нужно как-то иначе, чем вы здесь описали, либо, если это невозможно, написать-таки более сложную инструкцию для интеграции плагина.

    • +1
      Katvizkiy Stanislav Katvizkiy Stanislav 4 июля 2024 18:03 #

      {$wa->js()} в шаблоне так выводится - это я выяснил

      как мне из плагина добавить туда свои скрипты?

      что тут было написано неправильно?

      <?php
      
      class shopNamepluginPlugin extends shopPlugin
      {
              $this->addJs('js/script.js'); // тут не сработало
              public static function scriptInsert()
          {
                      $this->addJs('js/script.js'); // тут, тоже, не сработало
          }
      }

      • +1
        Михаил Ушенин Михаил Ушенин 5 июля 2024 09:12 #
        что тут было написано неправильно?
        1. Исполняемый код вне метода класса — это нарушение правил синтаксиса PHP.
        2. В статическом методе класса недоступна переменная $this.

        Похоже, что вам стоит тщательнее изучить документацию PHP, прежде чем приступать к написанию плагинов для публикации в магазине Webasyst.

        • +1
          Katvizkiy Stanislav Katvizkiy Stanislav 5 июля 2024 10:18 #

          Уважаемый Михаил, я крайне благодарен за вашу оценку моих знаний и способностей!
          Я правильно понимаю, что вы не знаете, что нужно добавить в этом коде, чтобы мои скрипты добавились к этому выводу {$wa->js()}?

          <?php
          
          class shopNamepluginPlugin extends shopPlugin
          {
                  $this->addJs('js/script.js'); // тут не сработало
                  public static function scriptInsert()
              {
                          $this->addJs('js/script.js'); // тут, тоже, не сработало
              }
          }

          • +1
            Михаил Ушенин Михаил Ушенин 5 июля 2024 10:36 #

            $this->addJs('js/script.js');

            Эту строку нужно использовать в обработчике хука. В вашем примере кода я не увидел метода, похожего на обработчик хука.

Эта тема в архиве. Добавление комментариев к ней отключено.