Author: sevein
Date: Thu Jun 21 17:33:20 2012
New Revision: 11794

Log:
Delete old functionality to move siblings in QubitMenu, in favour of new ORM 
methods moveTo{Prev,Next}SiblingOf

Modified:
   trunk/lib/model/QubitMenu.php

Modified: trunk/lib/model/QubitMenu.php
==============================================================================
--- trunk/lib/model/QubitMenu.php       Thu Jun 21 17:16:04 2012        (r11793)
+++ trunk/lib/model/QubitMenu.php       Thu Jun 21 17:33:20 2012        (r11794)
@@ -239,87 +239,6 @@
   }
 
   /**
-   * Called as a method of the intended *parent* menu of the $newMenu object,
-   * inserts $newMenu in position right before $referenceMenu
-   *
-   * @param QubitMenu $newMenu new menu to create or move
-   * @param QubitMenu $referenceMenu reference object for positioning $newMenu
-   * @return QubitMenu $newMenu object
-   */
-  public function insertBefore(QubitMenu $newMenu, $referenceMenu = null)
-  {
-    // TODO: Test if object already exists in hierarchy
-    //$sql = "SELECT count(*) as exists FROM '.QubitMenu::TABLE_NAME.' WHERE 
id = ".$newMenu->id;
-
-    // Lock db, start transaction
-    $sql = 'LOCK TABLE '.QubitMenu::TABLE_NAME.' WRITE;';
-
-    // TODO: Currently NOT testing for $existingObject
-    $existingObject = false;
-    if ($existingObject || true)
-    {
-      if (!is_null($referenceMenu))
-      {
-        // If referenceMenu is set, then insert $newMenu just before it
-        $newLft = $referenceMenu->getLft();
-      }
-      else
-      {
-        // If $referenceMenu is null then insert $newMenu as last child
-        $newLft = $this->getRgt();
-      }
-
-      $sql .= 'SELECT @oldlft := lft, @oldrgt := rgt FROM 
'.QubitMenu::TABLE_NAME.' WHERE id = '.$newMenu->id.';';
-      $sql .= 'SELECT @width  := @oldrgt - @oldlft + 1;';
-      $sql .= 'SELECT @newlft := '.$newLft.';';
-      $sql .= 'SELECT @newrgt := @newlft + @width - 1;';
-      $sql .= 'SELECT @shift  := @newlft - @oldlft;';
-
-      // Make room for $newMenu in new location
-      $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET lft = lft + @width WHERE 
lft >= @newlft;';
-      $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET rgt = rgt + @width WHERE 
rgt >= @newlft;';
-
-      if ($newMenu->getLft() < $newLft)
-      {
-        // Move $newMenu (+ children) to new location
-        $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET lft = lft + @shift WHERE 
lft >= @oldlft AND lft <= @oldrgt;';
-        $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET rgt = rgt + @shift WHERE 
rgt >= @oldlft AND rgt <= @oldrgt;';
-
-        // Close gap left in $newMenu's old location
-        $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET lft = lft - @width WHERE 
lft > @oldrgt;';
-        $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET rgt = rgt - @width WHERE 
rgt > @oldrgt;';
-      }
-      else
-      {
-        // Move $newMenu (+ children) to new location (taking into account that
-        // current lft/right values of $newMenu are + $width)
-        $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET lft = lft + @shift - 
@width WHERE lft >= @oldlft + @width AND lft <= @oldrgt + @width;';
-        $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET rgt = rgt + @shift - 
@width WHERE rgt >= @oldlft + @width AND rgt <= @oldrgt + @width;';
-
-        // Close gap left in $newMenu's old location
-        $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET lft = lft - @width WHERE 
lft > @oldrgt + @width;';
-        $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET rgt = rgt - @width WHERE 
rgt > @oldrgt + @width;';
-      }
-
-      // Update parent_id
-      $sql .= 'UPDATE '.QubitMenu::TABLE_NAME.' SET parent_id = '.$this->id.' 
WHERE id = '.$newMenu->id.';';
-    }
-
-    $sql .= 'UNLOCK TABLES';
-
-    $conn = Propel::getConnection();
-    $stmt = $conn->prepare($sql);
-    $stmt->execute();
-
-    $stmt->closeCursor();
-
-    $conn->clearStatementCache();
-
-    // TODO: return id for newly inserted $newMenu (last insert id?)
-    return QubitMenu::getById($newMenu->id);
-  }
-
-  /**
    * Move this menu before $referenceMenu
    *
    * @param integer reference menu id
@@ -327,20 +246,9 @@
    */
   public function moveBeforeById($referenceMenuId)
   {
-    // Limit re-sorting to list of siblings
-    $parent = $this->parent;
-
-    $criteria = new Criteria;
-    $criteria->add(QubitMenu::ID, $referenceMenuId);
-    $criteria->addAnd(QubitMenu::LFT, $parent->getLft(), 
Criteria::GREATER_THAN);
-    $criteria->addAnd(QubitMenu::RGT, $parent->getRgt(), Criteria::LESS_THAN);
-
-    if ($referenceMenu = QubitMenu::getOne($criteria))
+    if (null !== $prev = QubitMenu::getById($referenceMenuId))
     {
-      $parent->insertBefore($this, $referenceMenu);
-
-      // Refresh moved object to get up-to-date data from db
-      $this->clear();
+      $this->moveToPrevSiblingOf($prev);
     }
 
     return $this;
@@ -354,36 +262,9 @@
    */
   public function moveAfterById($referenceMenuId)
   {
-    // Limit re-sorting to list of siblings
-    $parent = $this->parent;
-
-    $criteria = new Criteria;
-    $criteria->add(QubitMenu::ID, $referenceMenuId);
-    $criteria->addAnd(QubitMenu::LFT, $parent->getLft(), 
Criteria::GREATER_THAN);
-    $criteria->addAnd(QubitMenu::RGT, $parent->getRgt(), Criteria::LESS_THAN);
-
-    if ($nextMenu = QubitMenu::getOne($criteria))
+    if (null !== $next = QubitMenu::getById($referenceMenuId))
     {
-      // Need to get menu *after* the "next" menu, because we only have an
-      // insertBefore() method
-      $criteria = new Criteria;
-      $criteria->add(QubitMenu::LFT, $nextMenu->getRgt(), 
Criteria::GREATER_THAN);
-      $criteria->addAnd(QubitMenu::LFT, $parent->getLft(), 
Criteria::GREATER_THAN);
-      $criteria->addAnd(QubitMenu::RGT, $parent->getRgt(), 
Criteria::LESS_THAN);
-      $criteria->addAscendingOrderByColumn(QubitMenu::LFT);
-
-      if ($referenceMenu = QubitMenu::getOne($criteria))
-      {
-        $parent->insertBefore($this, $referenceMenu);
-      }
-      else
-      {
-        // If no referenceMenu found, then move to end of sibling list
-        $parent->insertBefore($this, null);
-      }
-
-      // Refresh moved object to get up-to-date data from db
-      $this->clear();
+      $this->moveToNextSiblingOf($next);
     }
 
     return $this;

-- 
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/qubit-commits?hl=en.

Reply via email to