diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2023-09-28 10:55:33 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2023-09-28 10:55:33 +0000 |
| commit | 2bbcfb7bbda30fc0588c1093c9eef36f27d22a60 (patch) | |
| tree | 7967ff64bc37752f1e0a45fd4852119efe23d648 /lib/models/RangeTreeNode.php | |
| parent | 9e3cfdbe768375994ca61d22c11039c151e95239 (diff) | |
proposal for caching, re #3234
Merge request studip/studip!2194
Diffstat (limited to 'lib/models/RangeTreeNode.php')
| -rw-r--r-- | lib/models/RangeTreeNode.php | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/lib/models/RangeTreeNode.php b/lib/models/RangeTreeNode.php index 4d52fed..c142579 100644 --- a/lib/models/RangeTreeNode.php +++ b/lib/models/RangeTreeNode.php @@ -27,6 +27,8 @@ */ class RangeTreeNode extends SimpleORMap implements StudipTreeNode { + use StudipTreeNodeCachableTrait; + protected static function configure($config = []) { $config['db_table'] = 'range_tree'; @@ -41,12 +43,13 @@ class RangeTreeNode extends SimpleORMap implements StudipTreeNode ]; $config['has_many']['children'] = [ 'class_name' => RangeTreeNode::class, - 'foreign_key' => 'item_id', 'assoc_foreign_key' => 'parent_id', 'order_by' => 'ORDER BY priority, name', - 'on_delete' => 'delete' + 'on_delete' => 'delete', ]; + $config = self::registerCachableCallbacks($config); + parent::configure($config); } @@ -240,17 +243,6 @@ class RangeTreeNode extends SimpleORMap implements StudipTreeNode return DBManager::get()->fetchAll($query, $parameters, 'Course::buildExisting'); } - public function getDescendantIds() - { - $ids = []; - - foreach ($this->children as $child) { - $ids = array_merge($ids, [$child->id], $child->getDescendantIds()); - } - - return $ids; - } - public function getAncestors(): array { $path = [ |
