Panda58dev Posted May 20, 2022 at 07:06 PM Share Posted May 20, 2022 at 07:06 PM Приветствую! Есть задача - на фронтенде, в подключаемом .js файле получить настройку лежащую в oc_setting. Как это можно сделать? Я думаю через ajax, но тогда нужно свой контроллер в catalog делать. Может есть другие способы? 0 Quote •=|KIᖇIᒪᒪ|=• E-mail: panda58dev@inbox.ru Telegram: @panda58dev Link to comment Share on other sites More sharing options...
mpn2005 Posted May 20, 2022 at 08:32 PM Share Posted May 20, 2022 at 08:32 PM Добрый день. Самый подходящий вариант - это в футер добавить JS с нужными переменными. Можно модификатором или событием. AJAX - не очень вариант из за того, что будет лишний запрос на сервер при каждом открытии страницы. 1 Quote Link to comment Share on other sites More sharing options...
Panda58dev Posted May 21, 2022 at 06:13 AM Author Share Posted May 21, 2022 at 06:13 AM В 20.05.2022 в 23:32, mpn2005 сказал: AJAX - не очень вариант из за того, что будет лишний запрос на сервер при каждом открытии страницы. Тоже верно. В итоге через модификатор, добавил в контроллер footer-а вывод через 'echo'. То есть скрипт не нужно подключать: echo '<script>js code...</script>'; Туда же вставил данные, получив их так: $value = $this->config->get('code'); //code - код настройки oc_setting 2 Quote •=|KIᖇIᒪᒪ|=• E-mail: panda58dev@inbox.ru Telegram: @panda58dev Link to comment Share on other sites More sharing options...
mpn2005 Posted May 21, 2022 at 04:18 PM Share Posted May 21, 2022 at 04:18 PM Есть ещё вариант. При сохранении настроек генерировать свой js файл со всеми нужными параметрами. И просто его подключать где надо. 1 Quote Link to comment Share on other sites More sharing options...
Panda58dev Posted May 21, 2022 at 06:03 PM Author Share Posted May 21, 2022 at 06:03 PM В 21.05.2022 в 19:18, mpn2005 сказал: генерировать свой js Интересный вариант, но каждый раз перезаписывать файл, мне кажется не очень хорошо. Хотя вывод в контроллере по сути тоже тот ещё "костыль", тем более что скрипт попадает не в footer (где делал вывод), а в тег <head>. 0 Quote •=|KIᖇIᒪᒪ|=• E-mail: panda58dev@inbox.ru Telegram: @panda58dev Link to comment Share on other sites More sharing options...
mpn2005 Posted May 21, 2022 at 06:07 PM Share Posted May 21, 2022 at 06:07 PM В 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 Quote Link to comment Share on other sites More sharing options...
Panda58dev Posted May 21, 2022 at 06:10 PM Author Share Posted May 21, 2022 at 06:10 PM В 21.05.2022 в 21:07, mpn2005 сказал: Заменить на это: Понял, спасибо! 0 Quote •=|KIᖇIᒪᒪ|=• E-mail: panda58dev@inbox.ru Telegram: @panda58dev Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.