Перейти к содержанию

Получить настройки из oc_setting на стороне фронтенда.


Рекомендуемые сообщения

Приветствую! Есть задача - на фронтенде, в подключаемом .js файле получить настройку лежащую в oc_setting. Как это можно сделать? Я думаю через ajax, но тогда нужно свой контроллер в catalog делать. Может есть другие способы? 

Ссылка на комментарий
Поделиться на другие сайты

Воспользуйтесь расширенным поиском по форуму opencart Воспользоваться поиском

Ознакомьтесь с руководством по использованию opencart Перейти к Документации

Расширьте возможности интернет-магазина дополнениями Подобрать Модуль

Выберите исполнителя для вашего технического задания Выбрать Исполнителя

Добрый день. Самый подходящий вариант - это в футер добавить JS с нужными переменными.

Можно модификатором или событием.

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

 

Ссылка на комментарий
Поделиться на другие сайты

В 20.05.2022 в 23:32, mpn2005 сказал:

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

Тоже верно. В итоге через модификатор, добавил в контроллер footer-а вывод через 'echo'. То есть скрипт не нужно подключать:

echo '<script>js code...</script>';

Туда же вставил данные, получив их так:

$value = $this->config->get('code'); //code - код настройки oc_setting

 

Ссылка на комментарий
Поделиться на другие сайты

Есть ещё вариант.

При сохранении настроек генерировать свой js файл со всеми нужными параметрами.

И просто его подключать где надо.

Ссылка на комментарий
Поделиться на другие сайты

В 21.05.2022 в 19:18, mpn2005 сказал:

генерировать свой js

Интересный вариант, но каждый раз перезаписывать файл, мне кажется не очень хорошо. Хотя вывод в контроллере по сути тоже тот ещё "костыль", тем более что скрипт попадает не в footer (где делал вывод), а в тег <head>.

Ссылка на комментарий
Поделиться на другие сайты

В 21.05.2022 в 21:03, Panda58dev сказал:

Интересный вариант, но каждый раз перезаписывать файл, мне кажется не очень хорошо. Хотя вывод в контроллере по сути тоже тот ещё "костыль", тем более что скрипт попадает не в footer (где делал вывод), а в тег <head>.

В контроллере нельзя делать echo, иначе он в начало HTML вообще попадёт.

Там нужно перед возвратом вставить нужный скрипт.

Например можно сделать так в контроллере футера.

Это

return $this->load->view('common/footer', $data);


Заменить на это:

return '<script>'.$script_text.'</script>' . $this->load->view('common/footer', $data);

 

Или можно получить сам скрипт из другого контроллера:

return $this->load->view('extention/module/mymod/script') . $this->load->view('common/footer', $data);

 

Есть ещё вариант - это сделать изменение событием.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...