/** * Builds a single string for the given scope columns values. Useful for * making array keys for grouping. * * @param Tree\Node $node * @return string */ protected function keyForScope($node) { return implode('-', array_map(function ($column) use($node) { $value = $node->getAttribute($column); if (is_null($value)) { return 'NULL'; } return $value; }, $node->getScopedColumns())); }
/** * Return an array with the last node we could reach and its nesting level * * @param Tree\Node $node * @param integer $nesting * @return array */ protected function determineDepth($node, $nesting = 0) { // Traverse back up the ancestry chain and add to the nesting level count while ($parent = $node->parent()->first()) { $nesting = $nesting + 1; $node = $parent; } return array($node, $nesting); }