multiple set config values
public set ( string $group, array $collection, boolean $toDesc = false, callable $filter = null, string $siteKey = 'default' ) : |
||
$group | string | the name of target |
$collection | array | items and values to be set |
$toDesc | boolean | descendants modify if true |
$filter | callable | filter function |
$siteKey | string | site key |
return |
public function postDetailSetting(Request $request, EditorHandler $handler, ConfigManager $configs, $instanceId) { $this->validate($request, ['height' => 'required|numeric', 'fontSize' => 'required', 'fileMaxSize' => 'numeric', 'attachMaxSize' => 'numeric']); $configs->set($handler->getConfigKey($instanceId), ['height' => $request->get('height'), 'fontSize' => $request->get('fontSize'), 'fontFamily' => empty($request->get('fontFamily')) ? null : $request->get('fontFamily'), 'uploadActive' => !!$request->get('uploadActive', false), 'fileMaxSize' => $request->get('fileMaxSize', 0), 'attachMaxSize' => $request->get('attachMaxSize', 0), 'extensions' => empty($request->get('extensions')) ? null : strtolower($request->get('extensions')), 'tools' => $request->get('tools', [])]); $this->permissionRegister($request, $handler->getPermKey($instanceId), ['html', 'tool', 'upload', 'download']); return redirect()->route('settings.editor.setting.detail', $instanceId); }
/** * Get editor id by instance id * * @param string $instanceId instance id * @return string */ public function getEditorId($instanceId) { if (!($config = $this->configManager->get(self::MAP_CONFIG_NAME))) { $config = $this->configManager->set(self::MAP_CONFIG_NAME, []); } return $config->get($instanceId); }
/** * 사용할 아이템들을 설정에 저장 * * @param string $id target plugin id * @param string|null $instanceId instance id * @param array $keys menu item keys * @return \Xpressengine\Config\ConfigEntity */ public function setActivates($id, $instanceId = null, array $keys = []) { $config = []; if (count($keys) > 0) { $config = ['activate' => $keys]; } return $this->cfg->set($this->getConfigKey($id, $instanceId), $config); }
/** * Set setting information * * @param array $data setting data * @return void */ public function set(array $data) { $this->config = $this->cfg->set($this->key, $data); if (!$this->config->get('uuid')) { $this->config->set('uuid', $this->keygen->generate()); $this->cfg->modify($this->config); } }
/** * 주어진 타겟에 지정된 스킨의 설정을 저장한다. * * @param string $key target key * @param string $skinId skin id * @param array $config skin config data * * @return void */ public function setConfigs($key, $skinId, $config = null) { if ($config === null) { $config = $skinId; $skinId = null; } $key = $this->makeStoreKey(static::PREFIX_KEY_CONFIGS, $key); if ($skinId === null) { $this->store->set($key, $config); } else { $this->store->setVal("{$key}.{$skinId}", $config); } }
/** * 활성화된 아이템 목록을 반환 * * @param string $id target plugin id * @param string|null $instanceId instance id * @return array */ public function getActivated($id, $instanceId = null) { // todo: 임시? seed 로 추가되면 제거? if ($this->cfg->get($this->getConfigKey($id, null)) === null) { $this->cfg->set($this->getConfigKey($id, null), []); } if (($config = $this->cfg->get($this->getConfigKey($id, $instanceId))) === null) { $config = $this->setActivates($id, $instanceId); } $keys = $config->get('activate', []); $activated = array_intersect_key($this->all($id), array_flip($keys)); // sort $activated = array_merge(array_flip($keys), $activated); return array_filter($activated, function ($val) { return !empty($val); }); }
public function testSetsCreateNewConfigWhenNotExists() { list($repo, $validator) = $this->getMocks(); $mockConfig = m::mock('Xpressengine\\Config\\ConfigEntity'); $mockConfig->siteKey = 'default'; $mockConfig->name = 'board.notice'; $mockConfig->shouldReceive('get')->once()->with('listCount')->andReturn(20); $mockConfig->shouldReceive('get')->once()->with('downloadable')->andReturn(true); $repo->shouldReceive('find')->twice()->with('default', 'board.notice')->andReturnNull(); $repo->shouldReceive('fetchParent')->with('default', 'board.notice')->andReturn([]); $repo->shouldReceive('save')->once()->withAnyArgs()->andReturn($mockConfig); $repo->shouldReceive('fetchChildren')->with('default', 'board.notice')->andReturn([]); $validate = m::mock('Illuminate\\Validation\\Validator'); $validate->shouldReceive('fails')->andReturn(false); $validator->shouldReceive('validate')->once()->withAnyArgs()->andReturn($validate); $instance = new ConfigManager($repo, $validator); $config = $instance->set('board.notice', ['listCount' => 20, 'downloadable' => true], true); $this->assertEquals(20, $config->get('listCount')); $this->assertEquals(true, $config->get('downloadable')); }
/** * 관리페이지 관련 설정을 저장한다. * * @param string $configName 설정 키 * @param array $config config 설정 데이터 * * @return void */ public function setConfig($configName, array $config) { $this->configManager->set(self::SETTING_CONFIG_NAME . '.' . $configName, $config); }
/** * 새로운 인스턴스 설정 * * @param string $instanceId instance identifier * @param bool $division if true, set table division * @return void */ public function createInstance($instanceId, $division = false) { $key = $this->getConfigKey($instanceId); $information = array_merge($this->defaultConfig, ['division' => $division]); $this->configs->set($key, $information); $this->repo->createInstance($instanceId); }