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