Example #1
0
 /**
  * @param array|Navigation\Item $item
  */
 public function saveItem($item)
 {
     $object = null;
     if (is_array($item)) {
         $itemData = $item;
         if ($item['id'] > 0) {
             $object = $this->findItem($item['id']);
         } else {
             $object = new Navigation\Item();
         }
         if (isset($itemData['parentItemId']) && $itemData['parentItemId'] > 0) {
             $parentItem = $this->findItem($itemData['parentItemId']);
             $object->setParentItem($parentItem);
         }
         if (isset($itemData['parentItemId'])) {
             unset($itemData['parentItemId']);
         }
         if (isset($itemData['navigationId']) && $itemData['navigationId'] > 0) {
             $parentItem = $this->find($itemData['navigationId']);
             $object->setNavigation($parentItem);
         }
         if (isset($itemData['navigationId'])) {
             unset($itemData['navigationId']);
         }
         $this->assignArrayToObject($object, $itemData);
     } else {
         if (!$object instanceof Navigation\Item) {
             $this->addErrorMessage(self::ERROR_WRONG_OBJECT);
         }
     }
     if (!$this->hasError()) {
         $check = $this->navigationManager->saveItem($object);
         if ($check) {
             $this->addSuccessMessage(self::SUCCESS_SAVED);
         }
     }
     return $object;
 }