set() public method

multiple set config values
public set ( string $group, array $collection, boolean $toDesc = false, callable $filter = null, string $siteKey = 'default' ) : ConfigEntity
$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 ConfigEntity
コード例 #1
0
 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);
 }
コード例 #2
0
 /**
  * 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);
 }
コード例 #3
0
 /**
  * 사용할 아이템들을 설정에 저장
  *
  * @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);
 }
コード例 #4
0
 /**
  * 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);
     }
 }
コード例 #5
0
 /**
  * 주어진 타겟에 지정된 스킨의 설정을 저장한다.
  *
  * @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);
     }
 }
コード例 #6
0
 /**
  * 활성화된 아이템 목록을 반환
  *
  * @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);
     });
 }
コード例 #7
0
 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'));
 }
コード例 #8
0
 /**
  * 관리페이지 관련 설정을 저장한다.
  *
  * @param string $configName 설정 키
  * @param array  $config     config 설정 데이터
  *
  * @return void
  */
 public function setConfig($configName, array $config)
 {
     $this->configManager->set(self::SETTING_CONFIG_NAME . '.' . $configName, $config);
 }
コード例 #9
0
 /**
  * 새로운 인스턴스 설정
  *
  * @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);
 }