Как подключить javascript в footer OpenCart?

Подключение скриптов в OpenCart происходит через библиотеку Document, которую вы можете найти в system/library/document.php. Для этого достаточно сделать 2 вещи:

  1. В контроллере любого модуля, дополнения или блока вставить $this->document->addScript('path/to/script.php');. Эта строка добавит в многомерный массив новый элемент, который потом можно будет вызвать в цикле.
  2. Вывести через цикл foreach скрипты, например так это делается в header:
<?php foreach ($scripts as $script) { ?>
 <script src="<?php echo $script; ?>" type="text/javascript"></script>
 <?php } ?>

Внимательный читатель обратил внимание, что в п.1 употребляется слово многомерный в контексте массива. Суть в том, что если заглянуть в код библиотеки Document, то можно обратить внимание, что у методов addScript  и getScripts в качестве параметра присутствует postion, который по-умолчанию равен header, этот параметр дает возможность складывать скрипты в отдельные блоки. Нам совершенно ничего не мешает менять его скажем на footer. Тогда, чтобы добавить скрипт в footer сайта, а в последствии вызвать его нужно:

В контроллере модуля написать: $this->document->addScript('path/to/script.php','footer');

В контроллере footer’а проверить, чтобы присутствовала строка получения скриптов и что важно именно в таком виде:

$data['scripts'] = $this->document->getScripts('footer');

Ну и в самой .tpl в удобном вам месте вставить:

<?php foreach ($scripts as $script) { ?>
 <script src="<?php echo $script; ?>" type="text/javascript"></script>
 <?php } ?>

В свежих версиях OpenCart ветки 2.х ошибку в слове position исправили. Я написал так, как было в моей — ocStore 2.3 – postion, чтобы облегчить вам поиск по коду.

Игорь Чишкала

Директор по технологиям в SoftForge. Люблю ИТ, пишу технические статьи в этом блоге или для сайта фриланс-биржи Upwork. Кодю на PHP с использованием фреймворков Laravel или Symfony.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *