Jump to content

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


Panda58dev
 Share

Recommended Posts

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

•=|KIᖇIᒪᒪ|=•

E-mail: panda58dev@inbox.ru
Telegram: @panda58dev

Link to comment
Share on other sites

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

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

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

 

Link to comment
Share on other sites

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

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

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

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

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

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

 

•=|KIᖇIᒪᒪ|=•

E-mail: panda58dev@inbox.ru
Telegram: @panda58dev

Link to comment
Share on other sites

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

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

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

•=|KIᖇIᒪᒪ|=•

E-mail: panda58dev@inbox.ru
Telegram: @panda58dev

Link to comment
Share on other sites

В 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);

 

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

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...