/** * @return CommentsControl */ public function createComponentComments() { $control = new CommentsControl($this->commentsRepository, $this->formFactory); $control->setPageId($this->page->id()); $control->setArticleId(null); return $control; }
/** * @param PagesEntity $page * @param PagesEntity $newParent */ public function changeParent(PagesEntity $page, PagesEntity $newParent) { $different = $page->rgt() - $page->lft() + 1; $lft = $newParent->rgt(); $level = $newParent->level() + 1; if ($lft > $page->lft()) { $lft -= $different; } $min_lft = min($lft, $page->lft()); $max_rgt = max($lft + $different - 1, $page->rgt()); $move = $lft - $page->lft(); if ($lft > $page->lft()) { $different = -$different; } $sql = "UPDATE {$this->tableName}\n\t SET level = level + IF(@subtree := lft >= " . $page->lft() . " \n\t AND rgt <= " . $page->rgt() . ", " . ($level - $page->level()) . ", 0),\n\t parent = IF(id = " . $page->id() . ", " . $newParent->id() . ", parent),\n\t lft = lft + IF(@subtree, {$move}, IF(lft >= {$min_lft}, {$different}, 0)),\n\t rgt = rgt + IF(@subtree, {$move}, IF(rgt <= {$max_rgt}, {$different}, 0))\n\t WHERE rgt >= {$min_lft} AND lft <= {$max_rgt} "; $this->db->query($sql); }