示例#1
0
 /**
  * @return CommentsControl
  */
 public function createComponentComments()
 {
     $control = new CommentsControl($this->commentsRepository, $this->formFactory);
     $control->setPageId($this->page->id());
     $control->setArticleId(null);
     return $control;
 }
示例#2
0
 /**
  * @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);
 }