Panda58dev Опубликовано 20.05.2022 в 19:06 Поделиться Опубликовано 20.05.2022 в 19:06 Приветствую! Есть задача - на фронтенде, в подключаемом .js файле получить настройку лежащую в oc_setting. Как это можно сделать? Я думаю через ajax, но тогда нужно свой контроллер в catalog делать. Может есть другие способы? 0 Цитата •=|KIᖇIᒪᒪ|=• E-mail: panda58dev@inbox.ru Telegram: @panda58dev Ссылка на комментарий Поделиться на другие сайты Поделиться
mpn2005 Опубликовано 20.05.2022 в 20:32 Поделиться Опубликовано 20.05.2022 в 20:32 Добрый день. Самый подходящий вариант - это в футер добавить JS с нужными переменными. Можно модификатором или событием. AJAX - не очень вариант из за того, что будет лишний запрос на сервер при каждом открытии страницы. 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Panda58dev Опубликовано 21.05.2022 в 06:13 Автор Поделиться Опубликовано 21.05.2022 в 06:13 В 20.05.2022 в 23:32, mpn2005 сказал: AJAX - не очень вариант из за того, что будет лишний запрос на сервер при каждом открытии страницы. Тоже верно. В итоге через модификатор, добавил в контроллер footer-а вывод через 'echo'. То есть скрипт не нужно подключать: echo '<script>js code...</script>'; Туда же вставил данные, получив их так: $value = $this->config->get('code'); //code - код настройки oc_setting 2 Цитата •=|KIᖇIᒪᒪ|=• E-mail: panda58dev@inbox.ru Telegram: @panda58dev Ссылка на комментарий Поделиться на другие сайты Поделиться
mpn2005 Опубликовано 21.05.2022 в 16:18 Поделиться Опубликовано 21.05.2022 в 16:18 Есть ещё вариант. При сохранении настроек генерировать свой js файл со всеми нужными параметрами. И просто его подключать где надо. 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Panda58dev Опубликовано 21.05.2022 в 18:03 Автор Поделиться Опубликовано 21.05.2022 в 18:03 В 21.05.2022 в 19:18, mpn2005 сказал: генерировать свой js Интересный вариант, но каждый раз перезаписывать файл, мне кажется не очень хорошо. Хотя вывод в контроллере по сути тоже тот ещё "костыль", тем более что скрипт попадает не в footer (где делал вывод), а в тег <head>. 0 Цитата •=|KIᖇIᒪᒪ|=• E-mail: panda58dev@inbox.ru Telegram: @panda58dev Ссылка на комментарий Поделиться на другие сайты Поделиться
mpn2005 Опубликовано 21.05.2022 в 18:07 Поделиться Опубликовано 21.05.2022 в 18:07 В 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); Есть ещё вариант - это сделать изменение событием. 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Panda58dev Опубликовано 21.05.2022 в 18:10 Автор Поделиться Опубликовано 21.05.2022 в 18:10 В 21.05.2022 в 21:07, mpn2005 сказал: Заменить на это: Понял, спасибо! 0 Цитата •=|KIᖇIᒪᒪ|=• E-mail: panda58dev@inbox.ru Telegram: @panda58dev Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.