mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-08 03:01:43 +09:00
64 lines
1.6 KiB
PHP
64 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Rhymix\Modules\Extravar\Controllers;
|
|
|
|
use Context;
|
|
use ModuleController;
|
|
use ModuleModel;
|
|
use Rhymix\Framework\Exceptions\TargetNotFound;
|
|
use Rhymix\Framework\Storage;
|
|
|
|
/**
|
|
* Controller for module configuration by administrator.
|
|
*/
|
|
class Config extends Base
|
|
{
|
|
/**
|
|
* Display the config page.
|
|
*/
|
|
public function dispExtravarAdminConfig()
|
|
{
|
|
// Get current module config.
|
|
$config = ModuleModel::getModuleConfig($this->module) ?: new \stdClass;
|
|
Context::set('config', $config);
|
|
|
|
// Get the list of installed skins.
|
|
$skins = ModuleModel::getSkins($this->module_path);
|
|
Context::set('skin_list', $skins);
|
|
|
|
// Set admin template path.
|
|
$this->setTemplatePath($this->module_path . 'views');
|
|
$this->setTemplateFile('config.blade.php');
|
|
}
|
|
|
|
/**
|
|
* Save module config.
|
|
*/
|
|
public function procExtravarAdminInsertConfig()
|
|
{
|
|
// Get current module config.
|
|
$config = ModuleModel::getModuleConfig($this->module) ?: new \stdClass;
|
|
|
|
// Update the config object.
|
|
$vars = Context::getRequestVars();
|
|
$config->skin = trim($vars->skin ?? '');
|
|
if (!Storage::isDirectory(sprintf('%s/skins/%s/', rtrim($this->module_path, '/'), $config->skin)))
|
|
{
|
|
throw new TargetNotFound;
|
|
}
|
|
|
|
// Save the updated config.
|
|
$output = ModuleController::getInstance()->insertModuleConfig($this->module, $config);
|
|
if (!$output->toBool())
|
|
{
|
|
return $output;
|
|
}
|
|
|
|
// Redirect back to the config page.
|
|
$this->setMessage('success_updated');
|
|
$this->setRedirectUrl(Context::get('success_return_url') ?: getNotEncodedUrl([
|
|
'module' => 'admin',
|
|
'act' => 'dispExtravarAdminConfig',
|
|
]));
|
|
}
|
|
}
|