} return $initialSetting; } public function toArray() { return array( 'id' => $this->id, 'title' => $this->title, 'context' => $this->context, 'isPresent' => $this->isPresent(), 'grantAccess' => $this->grantAccess, 'defaultVisibility' => $this->visibleByDefault, 'isHiddenByDefault' => $this->isHiddenByDefault, 'className' => get_class($this), ); } public static function fromArray($widgetProperties) { if ( !empty($widgetProperties['className']) ) { $className = $widgetProperties['className']; return new $className($widgetProperties); } return new static($widgetProperties); } protected function setProperties(array $properties) { //Always overwritten. $this->title = strval($properties['title']); $this->callback = ameUtils::get($properties, 'callback'); $this->callbackArgs = ameUtils::get($properties, 'callbackArgs'); $this->context = ameUtils::get($properties, 'context', 'normal'); //Usually only written upon deserialization. $this->grantAccess = ameUtils::get($properties, 'grantAccess', $this->grantAccess); $this->visibleByDefault = ameUtils::get($properties, 'defaultVisibility', $this->visibleByDefault); $this->isHiddenByDefault = ameUtils::get($properties, 'isHiddenByDefault', $this->isHiddenByDefault); } /* * Basic getters & setters */ public function getId() { return $this->id; } public function getTitle() { return $this->title; } public function getContext() { return $this->context; } public function getCallback() { return $this->callback; } public function getHiddenByDefault() { return $this->isHiddenByDefault; } public function setHiddenByDefault($isHidden) { $isChanged = ($this->isHiddenByDefault xor $isHidden); $this->isHiddenByDefault = $isHidden; return $isChanged; } /** * Is the meta box present on the current site? * * @return bool */ public function isPresent() { return true; } }