mirror of
https://github.com/Pathduck/gallery3.git
synced 2026-07-14 02:50:13 -04:00
During this process, remove a considerable number of files from kohana
that we will not be needing in Gallery3, including the following files
and directories:
kohana/application
kohana/example.htaccess
kohana/index.php
kohana/install.php
kohana/kohana.png
kohana/modules/archive
kohana/modules/auth
kohana/modules/flot
kohana/modules/gmaps
kohana/modules/kodoc
kohana/modules/payment
kohana/modules/smarty
kohana/modules/unit_test/i18n
kohana/modules/unit_test/tests/Example_Test.php
kohana/modules/unit_test/tests/Valid_Test.php
kohana/system/config/captcha.php
kohana/system/controllers/captcha.php
kohana/system/fonts
kohana/system/i18n
kohana/system/libraries/Calendar.php
kohana/system/libraries/Calendar_Event.php
kohana/system/libraries/Captcha.php
kohana/system/libraries/Tagcloud.php
kohana/system/vendor
kohana/system/views/pagination
kohana/system/views/kohana_calendar.php
76 lines
1.8 KiB
PHP
76 lines
1.8 KiB
PHP
<?php defined('SYSPATH') OR die('No direct access allowed.');
|
|
/**
|
|
* Object Relational Mapping (ORM) "tree" extension. Allows ORM objects to act
|
|
* as trees, with parents and children.
|
|
*
|
|
* $Id$
|
|
*
|
|
* @package ORM
|
|
* @author Kohana Team
|
|
* @copyright (c) 2007-2008 Kohana Team
|
|
* @license http://kohanaphp.com/license.html
|
|
*/
|
|
class ORM_Tree_Core extends ORM {
|
|
|
|
// Name of the child
|
|
protected $children;
|
|
|
|
// Parent keyword name
|
|
protected $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->children));
|
|
|
|
if (array_key_exists($this->parent_key, $this->object))
|
|
{
|
|
// Find children of this parent
|
|
$model->where($model->primary_key, $this->object[$this->parent_key])->find();
|
|
}
|
|
|
|
$this->related[$column] = $model;
|
|
}
|
|
|
|
return $this->related[$column];
|
|
}
|
|
elseif ($column === 'children')
|
|
{
|
|
if (empty($this->related[$column]))
|
|
{
|
|
$model = ORM::factory(inflector::singular($this->children));
|
|
|
|
if ($this->children === $this->table_name)
|
|
{
|
|
// Load children within this table
|
|
$this->related[$column] = $model
|
|
->where($this->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->parent_key, NULL)
|
|
->find_all();
|
|
}
|
|
}
|
|
|
|
return $this->related[$column];
|
|
}
|
|
|
|
return parent::__get($column);
|
|
}
|
|
|
|
} // End ORM Tree
|