Ejemplo n.º 1
0
 protected function _buildQuery(Library\DatabaseRowInterface $row)
 {
     $table = $row->getTable();
     $query = $this->getObject('lib:database.query.select')->table(array('tbl' => $table->getName()))->join(array('crumbs' => $table->getClosureTable()->getName()), 'crumbs.descendant_id = tbl.' . $table->getIdentityColumn(), 'INNER')->join(array('closures' => $table->getClosureTable()->getName()), 'closures.descendant_id = tbl.' . $table->getIdentityColumn(), 'INNER')->group('tbl.' . $table->getIdentityColumn())->having('COUNT(`crumbs`.`ancestor_id`) = :level')->bind(array('level' => $row->level));
     if ($row->level > 1) {
         $query->where('closures.ancestor_id = :ancestor_id')->bind(array('ancestor_id' => $row->getParentId()));
     }
     // Custom
     $query->where('tbl.pages_menu_id = :pages_menu_id')->bind(array('pages_menu_id' => $row->pages_menu_id));
     return $query;
 }