Example #1
0
 /**
  * Moves current node and its subtree to be the previous sibling of $sibling
  * The modifications in the current object and the tree are immediate
  *
  * @param      Page $sibling	Propel object for sibling node
  * @param      PropelPDO $con	Connection to use.
  *
  * @return     Page The current Propel object
  */
 public function moveToPrevSiblingOf($sibling, PropelPDO $con = null)
 {
     if (!$this->isInTree()) {
         throw new PropelException('A Page object must be already in the tree to be moved. Use the insertAsPrevSiblingOf() instead.');
     }
     if ($sibling->isRoot()) {
         throw new PropelException('Cannot move to previous sibling of a root node.');
     }
     if ($sibling->isDescendantOf($this)) {
         throw new PropelException('Cannot move a node as sibling of one of its subtree nodes.');
     }
     $this->moveSubtreeTo($sibling->getLeftValue(), $sibling->getLevel() - $this->getLevel(), $con);
     return $this;
 }
 /**
  * Test xxxNestedSet::makeRoot()
  */
 public function testObjectMakeRoot()
 {
     $page = new Page();
     $page->makeRoot();
     $this->assertEquals(1, $page->getLeftValue(), 'Node left value must equal 1');
     $this->assertEquals(2, $page->getRightValue(), 'Node right value must equal 2');
 }
Example #3
0
 /**
  * Filter the query to restrict the result to roots of an object.
  * Same as ancestorsOf(), except that it includes the object passed as parameter in the result
  *
  * @param     Page $page The object to use for roots search
  *
  * @return    PageQuery The current query, for fluid interface
  */
 public function rootsOf($page)
 {
     return $this->addUsingAlias(PagePeer::LEFT_COL, $page->getLeftValue(), Criteria::LESS_EQUAL)->addUsingAlias(PagePeer::RIGHT_COL, $page->getRightValue(), Criteria::GREATER_EQUAL);
 }