DimWeb

re_config model

Recommended Posts

В прошлой версии cms в модели re_config было заложено поле vtype где указывали тип инпута, сейчас после обновления это поле пропало и настройки стали type=text, вместо желаемого type=checkbox. Какую инструкцию следует указать в плагине для фиксации настроек-чекбоксов? Вариант - дополнить через /apps/config/admin/config_mask.php - не вариант.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
...
    function __construct() {
        parent::__construct();

        require_once (SITEBILL_DOCUMENT_ROOT.'/apps/config/admin/admin.php');
        $config_admin = new config_admin();
        if ( !$config_admin->check_config_item('apps.custom.enable') ) {
            $config_admin->addParamToConfig('apps.custom.enable','1','Использовать Custom');
        }

        $this->app_title = 'Custom App';
    }

...

интересует участок кода админки приложения ^^

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
/apps/config/admin/admin.php
    function addParamToConfig($conf_new_param_name, $conf_new_param_value, $conf_new_param_title, $vtype = 0) {
	$DBC = DBC::getInstance();
	$query = "INSERT INTO " . DB_PREFIX . "_" . $this->table_name . " (config_key, value, title, vtype) VALUES (?,?,?,?)";
	$stmt = $DBC->query($query, array($this->validateParam($conf_new_param_name), $this->validateParam($conf_new_param_value), $this->validateParamTitle($conf_new_param_title), $vtype), $row, $success);
	if (!$success) {
	    //$this->riseError($DBC->getLastError());
	    //echo 'ERROR ON INSERT<br>';
	}
	$config_id = $DBC->lastInsertId();
	$query = "UPDATE `" . DB_PREFIX . "_" . $this->table_name . "` SET `sort_order`=? WHERE `id`=?";
	$stmt = $DBC->query($query, array($config_id, $config_id));
	$this->reloadCheckConfigStructure();
	return TRUE;
    }

$vtype - по-умолчанию 0.

Вы можете поставить 1 и будет это чекбокс при создании параметра.

            $config_admin->addParamToConfig('apps.custom.enable','1','Использовать Custom', 1);

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, rumantic сказал:

/apps/config/admin/admin.php

$vtype - по-умолчанию 0.

Вы можете поставить 1 и будет это чекбокс при создании параметра.

 

Я же указал свой контекст - 

В 10.07.2017 в 16:11, DimWeb сказал:

...
    function __construct() {
        parent::__construct();

        require_once (SITEBILL_DOCUMENT_ROOT.'/apps/config/admin/admin.php');
        $config_admin = new config_admin();
        if ( !$config_admin->check_config_item('apps.custom.enable') ) {
            $config_admin->addParamToConfig('apps.custom.enable','1','Использовать Custom');
        }

        $this->app_title = 'Custom App';
    }

...

интересует участок кода админки приложения ^^

Размазывать по сторонним контроллерам логику отдельного приложения - не вариант.

И код выше не будет работать, т.к....

В 10.07.2017 в 16:04, DimWeb сказал:

сейчас после обновления это поле пропало

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

собственно, код моего /apps/config/admin/admin.php

в котором отсутствует и аргумент и поле

function addParamToConfig($conf_new_param_name,$conf_new_param_value,$conf_new_param_title){
        $DBC=DBC::getInstance();
        $query="INSERT INTO ".DB_PREFIX."_".$this->table_name." (config_key, value, title) VALUES ('".$this->validateParam($conf_new_param_name)."','".$this->validateParam($conf_new_param_value)."','".$this->validateParamTitle($conf_new_param_title)."')";
        $stmt=$DBC->query($query);
        if ( !$stmt ) {
            //echo 'ERROR ON INSERT<br>';
        }
        $config_id = $DBC->lastInsertId();
        $query = "update ".DB_PREFIX."_".$this->table_name." set sort_order=$config_id where id=$config_id";
        $stmt=$DBC->query($query);
        $this->reloadCheckConfigStructure();
        return TRUE;
    }

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Разобрался. Пропало не после обновления, а на старой 3.0 версии.

В 3.2 и в 3.3 все ок работает. Спасибо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а что за код и для чего тут ?? нам тоже интересно для понимания :)) что он делает - что дает и за что отвечает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, doma сказал:

а что за код и для чего тут ?? нам тоже интересно для понимания :)) что он делает - что дает и за что отвечает?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, TopRaN сказал:

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

это мы понимаем, что что нужно и много изучать и много что знать, но прочитывая и спрашивая тут - просто следя за ответами, можно тоже чему то учиться.
ну и если вы видите как кто то колесо ремонтирует илинапример :) что то делает с ним - лично мне было бы интересно и полезно узнать , опыт будет :) да и вдруг где в дороге пригодится. так что наше любопытство лишь для пользы - хотя заметили такую вещь, что что то "несерьезное" на сайте обсуждается гораздо больше и чаще -нежели то что действительно идет на развитие проекта и удобство пользователей например :))

простой пример -как например просматривая само объявление (не в сетке своих объявлений) применить сразу услуги вип премиум или болд -задаваемый нами вопрос так и не решен :(
хотя на наш взгляд было бы приятно услышать ответ и найти решение -так как это удобство пользователя и меньшее кол-во кликов, чтобы сделать удобно пользователю

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
21 час назад, doma сказал:

а что за код и для чего тут ?? нам тоже интересно для понимания :)) что он делает - что дает и за что отвечает?

Он ничего не делает, это абстрактная конструкция для упрощения понимания сути вопроса относительно возможностей API в CMS.

А код ниже, приведенный @rumantic - вырезка из ядра, отвечающая за добавление новой настройки в реестр настроек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас