Upgrade to 3.7.1
This commit is contained in:
@@ -20,190 +20,190 @@ namespace Kirby\Cms;
|
||||
*/
|
||||
class StructureObject extends Model
|
||||
{
|
||||
use HasSiblings;
|
||||
use HasSiblings;
|
||||
|
||||
/**
|
||||
* The content
|
||||
*
|
||||
* @var Content
|
||||
*/
|
||||
protected $content;
|
||||
/**
|
||||
* The content
|
||||
*
|
||||
* @var Content
|
||||
*/
|
||||
protected $content;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $id;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* @var \Kirby\Cms\Site|\Kirby\Cms\Page|\Kirby\Cms\File|\Kirby\Cms\User|null
|
||||
*/
|
||||
protected $parent;
|
||||
/**
|
||||
* @var \Kirby\Cms\Site|\Kirby\Cms\Page|\Kirby\Cms\File|\Kirby\Cms\User|null
|
||||
*/
|
||||
protected $parent;
|
||||
|
||||
/**
|
||||
* The parent Structure collection
|
||||
*
|
||||
* @var Structure
|
||||
*/
|
||||
protected $structure;
|
||||
/**
|
||||
* The parent Structure collection
|
||||
*
|
||||
* @var Structure
|
||||
*/
|
||||
protected $structure;
|
||||
|
||||
/**
|
||||
* Modified getter to also return fields
|
||||
* from the object's content
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $arguments
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call(string $method, array $arguments = [])
|
||||
{
|
||||
// public property access
|
||||
if (isset($this->$method) === true) {
|
||||
return $this->$method;
|
||||
}
|
||||
/**
|
||||
* Modified getter to also return fields
|
||||
* from the object's content
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $arguments
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call(string $method, array $arguments = [])
|
||||
{
|
||||
// public property access
|
||||
if (isset($this->$method) === true) {
|
||||
return $this->$method;
|
||||
}
|
||||
|
||||
return $this->content()->get($method);
|
||||
}
|
||||
return $this->content()->get($method);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new StructureObject with the given props
|
||||
*
|
||||
* @param array $props
|
||||
*/
|
||||
public function __construct(array $props)
|
||||
{
|
||||
$this->setProperties($props);
|
||||
}
|
||||
/**
|
||||
* Creates a new StructureObject with the given props
|
||||
*
|
||||
* @param array $props
|
||||
*/
|
||||
public function __construct(array $props)
|
||||
{
|
||||
$this->setProperties($props);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the content
|
||||
*
|
||||
* @return \Kirby\Cms\Content
|
||||
*/
|
||||
public function content()
|
||||
{
|
||||
if (is_a($this->content, 'Kirby\Cms\Content') === true) {
|
||||
return $this->content;
|
||||
}
|
||||
/**
|
||||
* Returns the content
|
||||
*
|
||||
* @return \Kirby\Cms\Content
|
||||
*/
|
||||
public function content()
|
||||
{
|
||||
if (is_a($this->content, 'Kirby\Cms\Content') === true) {
|
||||
return $this->content;
|
||||
}
|
||||
|
||||
if (is_array($this->content) !== true) {
|
||||
$this->content = [];
|
||||
}
|
||||
if (is_array($this->content) !== true) {
|
||||
$this->content = [];
|
||||
}
|
||||
|
||||
return $this->content = new Content($this->content, $this->parent());
|
||||
}
|
||||
return $this->content = new Content($this->content, $this->parent());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the required id
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function id(): string
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
/**
|
||||
* Returns the required id
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function id(): string
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares the current object with the given structure object
|
||||
*
|
||||
* @param mixed $structure
|
||||
* @return bool
|
||||
*/
|
||||
public function is($structure): bool
|
||||
{
|
||||
if (is_a($structure, 'Kirby\Cms\StructureObject') === false) {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Compares the current object with the given structure object
|
||||
*
|
||||
* @param mixed $structure
|
||||
* @return bool
|
||||
*/
|
||||
public function is($structure): bool
|
||||
{
|
||||
if (is_a($structure, 'Kirby\Cms\StructureObject') === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $this === $structure;
|
||||
}
|
||||
return $this === $structure;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the parent Model object
|
||||
*
|
||||
* @return \Kirby\Cms\Model
|
||||
*/
|
||||
public function parent()
|
||||
{
|
||||
return $this->parent;
|
||||
}
|
||||
/**
|
||||
* Returns the parent Model object
|
||||
*
|
||||
* @return \Kirby\Cms\Model
|
||||
*/
|
||||
public function parent()
|
||||
{
|
||||
return $this->parent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the Content object with the given parent
|
||||
*
|
||||
* @param array|null $content
|
||||
* @return $this
|
||||
*/
|
||||
protected function setContent(array $content = null)
|
||||
{
|
||||
$this->content = $content;
|
||||
return $this;
|
||||
}
|
||||
/**
|
||||
* Sets the Content object with the given parent
|
||||
*
|
||||
* @param array|null $content
|
||||
* @return $this
|
||||
*/
|
||||
protected function setContent(array $content = null)
|
||||
{
|
||||
$this->content = $content;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the id of the object.
|
||||
* The id is required. The structure
|
||||
* class will use the index, if no id is
|
||||
* specified.
|
||||
*
|
||||
* @param string $id
|
||||
* @return $this
|
||||
*/
|
||||
protected function setId(string $id)
|
||||
{
|
||||
$this->id = $id;
|
||||
return $this;
|
||||
}
|
||||
/**
|
||||
* Sets the id of the object.
|
||||
* The id is required. The structure
|
||||
* class will use the index, if no id is
|
||||
* specified.
|
||||
*
|
||||
* @param string $id
|
||||
* @return $this
|
||||
*/
|
||||
protected function setId(string $id)
|
||||
{
|
||||
$this->id = $id;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the parent Model
|
||||
*
|
||||
* @return $this
|
||||
* @param \Kirby\Cms\Site|\Kirby\Cms\Page|\Kirby\Cms\File|\Kirby\Cms\User|null $parent
|
||||
*/
|
||||
protected function setParent(Model $parent = null)
|
||||
{
|
||||
$this->parent = $parent;
|
||||
return $this;
|
||||
}
|
||||
/**
|
||||
* Sets the parent Model
|
||||
*
|
||||
* @return $this
|
||||
* @param \Kirby\Cms\Site|\Kirby\Cms\Page|\Kirby\Cms\File|\Kirby\Cms\User|null $parent
|
||||
*/
|
||||
protected function setParent(Model $parent = null)
|
||||
{
|
||||
$this->parent = $parent;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the parent Structure collection
|
||||
*
|
||||
* @param \Kirby\Cms\Structure|null $structure
|
||||
* @return $this
|
||||
*/
|
||||
protected function setStructure(Structure $structure = null)
|
||||
{
|
||||
$this->structure = $structure;
|
||||
return $this;
|
||||
}
|
||||
/**
|
||||
* Sets the parent Structure collection
|
||||
*
|
||||
* @param \Kirby\Cms\Structure|null $structure
|
||||
* @return $this
|
||||
*/
|
||||
protected function setStructure(Structure $structure = null)
|
||||
{
|
||||
$this->structure = $structure;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the parent Structure collection as siblings
|
||||
*
|
||||
* @return \Kirby\Cms\Structure
|
||||
*/
|
||||
protected function siblingsCollection()
|
||||
{
|
||||
return $this->structure;
|
||||
}
|
||||
/**
|
||||
* Returns the parent Structure collection as siblings
|
||||
*
|
||||
* @return \Kirby\Cms\Structure
|
||||
*/
|
||||
protected function siblingsCollection()
|
||||
{
|
||||
return $this->structure;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts all fields in the object to a
|
||||
* plain associative array. The id is
|
||||
* injected into the array afterwards
|
||||
* to make sure it's always present and
|
||||
* not overloaded in the content.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray(): array
|
||||
{
|
||||
$array = $this->content()->toArray();
|
||||
$array['id'] = $this->id();
|
||||
/**
|
||||
* Converts all fields in the object to a
|
||||
* plain associative array. The id is
|
||||
* injected into the array afterwards
|
||||
* to make sure it's always present and
|
||||
* not overloaded in the content.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray(): array
|
||||
{
|
||||
$array = $this->content()->toArray();
|
||||
$array['id'] = $this->id();
|
||||
|
||||
ksort($array);
|
||||
ksort($array);
|
||||
|
||||
return $array;
|
||||
}
|
||||
return $array;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user