Jump to content
покупайте без комиссии
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Recommended Posts

Всем привет!

Контроллер фронта. Модуль, настройки которого хранятся в таблице module

<?php
class ControllerExtensionModuleMymodule extends Controller {
  public function index($setting) {
    // тут настройки модуля из админки 
  }
  
  public function Myfunction() {
    $json = array();
    
    
    // вот здесь можно получить настройки из админки?
    
    
    $this->response->addHeader('Content-Type: application/json');
    $this->response->setOutput(json_encode($json));
  }
}

 

Link to post
Share on other sites

так настройки чего именно? какого модуля? там же $setting а значит модулей несколько у каждого свои настройки.

 

Link to post
Share on other sites
6 часов назад, klaos27 сказал:

// вот здесь можно получить настройки из админки?

нужен id модуля

$this->load->model('extension/module');

$setting = $this->model_extension_module->getModule($this->request->{get,post}['module_id']);

 

Link to post
Share on other sites
5 часов назад, nikifalex сказал:

так настройки чего именно? какого модуля? там же $setting а значит модулей несколько у каждого свои настройки.

Не важно какого. Да могут быть свои настройки.

Не получится?

Link to post
Share on other sites

до тех пор пока вы точно не решите как надо. не получится.


Это программирование, а не философия. Тут казуистика "неважно"  не срабатывает.

Link to post
Share on other sites
2 минуты назад, nikifalex сказал:

до тех пор пока вы точно не решите как надо. не получится.


Это программирование, а не философия. Тут казуистика "неважно"  не срабатывает.

Да любой модуль возьмем, будь то HTML Содержимое, или Рекомендуемые, или Хиты, или Баннеры, или Слайдшоу.

Не понимаю почему это должно быть важно. Важно то, что все они сидят в таблице module.

Link to post
Share on other sites

вы не поняли. 

4 минуты назад, klaos27 сказал:

Содержимое, или Рекомендуемые, или Хиты, или Баннеры, или Слайдшоу.

 

каждого из них может быть много. А контроллер у них общий. нужный как раз задается через $setting

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

  • +1 1
Link to post
Share on other sites
7 часов назад, nikifalex сказал:

вы не поняли. 

каждого из них может быть много. А контроллер у них общий. нужный как раз задается через $setting

Про это я знаю.

 

7 часов назад, nikifalex сказал:

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

для каждого экземпляра свои.

 

Я так понимаю нужен id модуля как написал @ibond

Но в OC2 без вмешательства в движок невозможно получить id модуля. Или я не прав?

Link to post
Share on other sites
31 минуту назад, klaos27 сказал:

Я так понимаю нужен id модуля как написал @ibond

Но в OC2 без вмешательства в движок невозможно получить id модуля. Или я не прав?

Да, правы. Во всяком случае, не находил других способов без вмешательства. Один из вариантов, например, так:

	<file path="catalog/model/extension/module.php">
        <operation>
            <search><![CDATA[
                if ($query->row) {
            ]]></search>
            <add position="after"><![CDATA[
                if (isset($query->row['code']) && $query->row['code'] == 'ВАШ_CODE')  {
                    $query->row['setting'] = preg_replace('/}$/', ',"module_id":"' . (int)$module_id . '"}', $query->row['setting']);
                }
			]]></add>
        </operation>
    </file>

и уже отдавать его из index($setting) в ajax и т.д.

 

Link to post
Share on other sites
9 минут назад, ibond сказал:

Да, правы. Во всяком случае, не находил других способов без вмешательства. Один из вариантов, например, так:


	<file path="catalog/model/extension/module.php">
        <operation>
            <search><![CDATA[
                if ($query->row) {
            ]]></search>
            <add position="after"><![CDATA[
                if (isset($query->row['code']) && $query->row['code'] == 'ВАШ_CODE')  {
                    $query->row['setting'] = preg_replace('/}$/', ',"module_id":"' . (int)$module_id . '"}', $query->row['setting']);
                }
			]]></add>
        </operation>
    </file>

и уже отдавать его из index($setting) в ajax и т.д.

 

Благодарю. Но не то. Ни при каких обстоятельствах в оригинал лезть не хотелось. Ну по крайней мере из-за такого)

Link to post
Share on other sites

По архитектуре - довольно странное желание.

MyFunction может вызываться откуда угодно. Например по ajax запросу.

В данном случае нет нуного контекста при вызове данной функции.

 

Вызов index происходит при переборе модулей и там есть конкретный контекст по id модуля. Что позволяет связать конкретный вызов с конкретными настройками.

 

Что бы MyFunction имела тот же контекст по конфигу, надо её вызывать только из функуии index.

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

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.