mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
Automaticallly fill default values if addon is turned on without saving config
This commit is contained in:
parent
32fa327eb6
commit
954ebf6caa
2 changed files with 44 additions and 3 deletions
|
|
@ -237,6 +237,29 @@ class addonAdminController extends addonController
|
||||||
*/
|
*/
|
||||||
function doInsert($addon, $site_srl = 0, $gtype = 'site', $isUsed = 'N', $extra_vars = null)
|
function doInsert($addon, $site_srl = 0, $gtype = 'site', $isUsed = 'N', $extra_vars = null)
|
||||||
{
|
{
|
||||||
|
if (!is_object($extra_vars))
|
||||||
|
{
|
||||||
|
$extra_vars = new stdClass();
|
||||||
|
}
|
||||||
|
if (!isset($extra_vars->xe_run_method))
|
||||||
|
{
|
||||||
|
$extra_vars->xe_run_method = 'run_selected';
|
||||||
|
}
|
||||||
|
if (!isset($extra_vars->mid_list) || !is_array($extra_vars->mid_list))
|
||||||
|
{
|
||||||
|
$extra_vars->mid_list = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$xml_file = RX_BASEDIR . 'addons/' . $addon . '/conf/info.xml';
|
||||||
|
$addon_info = Rhymix\Framework\Parsers\AddonInfoParser::loadXML($xml_file, $addon);
|
||||||
|
foreach ($addon_info->extra_vars as $key => $val)
|
||||||
|
{
|
||||||
|
if (!isset($extra_vars->$key))
|
||||||
|
{
|
||||||
|
$extra_vars->$key = $val->default;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$args = new stdClass;
|
$args = new stdClass;
|
||||||
$args->addon = $addon;
|
$args->addon = $addon;
|
||||||
if (strlen($isUsed) == 2)
|
if (strlen($isUsed) == 2)
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@ class addonController extends addon
|
||||||
$buff[] = sprintf('$addon_file = RX_BASEDIR . \'addons/%s/%s.addon.php\';', $addon, $addon);
|
$buff[] = sprintf('$addon_file = RX_BASEDIR . \'addons/%s/%s.addon.php\';', $addon, $addon);
|
||||||
|
|
||||||
// Addon configuration
|
// Addon configuration
|
||||||
$buff[] = '$addon_info = unserialize(' . var_export(serialize($extra_vars), true) . ');';
|
$buff[] = '$addon_info = ' . var_export($extra_vars, true) . ';';
|
||||||
|
|
||||||
// Decide whether to run in this mid
|
// Decide whether to run in this mid
|
||||||
if ($run_method === 'no_run_selected')
|
if ($run_method === 'no_run_selected')
|
||||||
|
|
@ -159,9 +159,27 @@ class addonController extends addon
|
||||||
*/
|
*/
|
||||||
function doSetup($addon, $extra_vars, $site_srl = 0, $gtype = 'site')
|
function doSetup($addon, $extra_vars, $site_srl = 0, $gtype = 'site')
|
||||||
{
|
{
|
||||||
if(!is_array($extra_vars->mid_list))
|
if (!is_object($extra_vars))
|
||||||
{
|
{
|
||||||
unset($extra_vars->mid_list);
|
$extra_vars = new stdClass();
|
||||||
|
}
|
||||||
|
if (!isset($extra_vars->xe_run_method))
|
||||||
|
{
|
||||||
|
$extra_vars->xe_run_method = 'run_selected';
|
||||||
|
}
|
||||||
|
if (!isset($extra_vars->mid_list) || !is_array($extra_vars->mid_list))
|
||||||
|
{
|
||||||
|
$extra_vars->mid_list = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$xml_file = RX_BASEDIR . 'addons/' . $addon . '/conf/info.xml';
|
||||||
|
$addon_info = Rhymix\Framework\Parsers\AddonInfoParser::loadXML($xml_file, $addon);
|
||||||
|
foreach ($addon_info->extra_vars as $key => $val)
|
||||||
|
{
|
||||||
|
if (!isset($extra_vars->$key) && isset($val->default))
|
||||||
|
{
|
||||||
|
$extra_vars->$key = $val->default;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$args = new stdClass();
|
$args = new stdClass();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue