21 private static $current;
27 private const MODULE_ID =
'seo';
28 private const CONFIG_OPTION =
'~facebook_business_setup';
30 private const FIELDS_MAP = [
31 self::CHANNEL => SetupFields\Channel::class,
32 self::CURRENCY => SetupFields\Currency::class,
33 self::TIMEZONE => SetupFields\Timezone::class,
34 self::BUSINESS_ID => SetupFields\BusinessId::class,
35 self::BUSINESS_TYPE => SetupFields\BusinessType::class,
39 private static $fieldInstances = [];
41 private static function getField(
string $name) :
Fields\IField
43 if($field = self::FIELDS_MAP[
$name])
45 return static::$fieldInstances[
$name] = static::$fieldInstances[
$name] ??
new $field;
63 $this->value[self::BUSINESS_ID] = SetupFields\BusinessId::getDefaultValue();
73 array_keys(self::FIELDS_MAP),
76 $field = $this::getField(
$code);
77 if($field::available())
79 if($value = $this->
get($code))
90 })->bindTo($this,$this),
97 if(self::getField(
$name)::available())
99 if(self::getField(
$name)::checkValue($value))
101 $this->value[
$name] = $value;
111 return $this->value[
$name] ??
null;
114 public function delete() : void
125 catch (\Throwable $exception)
135 array_keys(self::FIELDS_MAP),
138 $field = static::getField(
$code);
139 if($field::available())
142 if($field instanceof
Fields\IAvailableFieldList)
160 if(
$data =
Config\Option::get(self::MODULE_ID,self::CONFIG_OPTION,
false))
165 self::$current->set(
$key,$value ?? self::getField(
$key)::getDefaultValue());
170 return self::$current;
180 array_keys(self::FIELDS_MAP),
198 array_keys(self::FIELDS_MAP),
static delete($moduleId, array $filter=array())
static set($moduleId, $name, $value="", $siteId="")
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)