New upstream version 0.6.27

This commit is contained in:
geos_one
2025-08-06 18:11:51 +02:00
parent a6b4158f1f
commit 56a986c0ba
563 changed files with 45811 additions and 35282 deletions

View File

@@ -1,4 +1,12 @@
<?php defined('SYSPATH') OR die('No direct access allowed.');
<?php
// phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
// phpcs:disable PSR1.Files.SideEffects
defined('SYSPATH') or die('No direct access allowed.');
// phpcs:enable PSR1.Files.SideEffects
// phpcs:disable Squiz.Classes.ValidClassName.NotCamelCaps
/**
* Object Relational Mapping (ORM) "tree" extension. Allows ORM objects to act
* as trees, with parents and children.
@@ -10,67 +18,58 @@
* @copyright (c) 2007-2008 Kohana Team
* @license http://kohanaphp.com/license.html
*/
class ORM_Tree_Core extends ORM {
class ORM_Tree_Core extends ORM
{
// Name of the child
protected $ORM_Tree_children;
// Name of the child
protected $ORM_Tree_children;
// Parent keyword name
protected $ORM_Tree_parent_key = 'parent_id';
// Parent keyword name
protected $ORM_Tree_parent_key = 'parent_id';
/**
* Overload ORM::__get to support "parent" and "children" properties.
*
* @param string column name
* @return mixed
*/
public function __get($column)
{
if ($column === 'parent') {
if (empty($this->related[$column])) {
// Load child model
$model = ORM::factory(inflector::singular($this->ORM_Tree_children));
/**
* Overload ORM::__get to support "parent" and "children" properties.
*
* @param string column name
* @return mixed
*/
public function __get($column)
{
if ($column === 'parent')
{
if (empty($this->related[$column]))
{
// Load child model
$model = ORM::factory(inflector::singular($this->ORM_Tree_children));
if (array_key_exists($this->ORM_Tree_parent_key, $this->object)) {
// Find children of this parent
$model->where($model->primary_key, $this->object[$this->ORM_Tree_parent_key])->find();
}
if (array_key_exists($this->ORM_Tree_parent_key, $this->object))
{
// Find children of this parent
$model->where($model->primary_key, $this->object[$this->ORM_Tree_parent_key])->find();
}
$this->related[$column] = $model;
}
$this->related[$column] = $model;
}
return $this->related[$column];
} elseif ($column === 'children') {
if (empty($this->related[$column])) {
$model = ORM::factory(inflector::singular($this->ORM_Tree_children));
return $this->related[$column];
}
elseif ($column === 'children')
{
if (empty($this->related[$column]))
{
$model = ORM::factory(inflector::singular($this->ORM_Tree_children));
if ($this->ORM_Tree_children === $this->table_name) {
// Load children within this table
$this->related[$column] = $model
->where($this->ORM_Tree_parent_key, $this->object[$this->primary_key])
->find_all();
} else {
// Find first selection of children
$this->related[$column] = $model
->where($this->foreign_key(), $this->object[$this->primary_key])
->where($this->ORM_Tree_parent_key, null)
->find_all();
}
}
if ($this->ORM_Tree_children === $this->table_name)
{
// Load children within this table
$this->related[$column] = $model
->where($this->ORM_Tree_parent_key, $this->object[$this->primary_key])
->find_all();
}
else
{
// Find first selection of children
$this->related[$column] = $model
->where($this->foreign_key(), $this->object[$this->primary_key])
->where($this->ORM_Tree_parent_key, NULL)
->find_all();
}
}
return $this->related[$column];
}
return $this->related[$column];
}
return parent::__get($column);
}
} // End ORM Tree
return parent::__get($column);
}
}
// End ORM Tree