updateItem() public method

Update menu item
public updateItem ( MenuItem $item ) : MenuItem
$item Xpressengine\Menu\Models\MenuItem menu item instance
return Xpressengine\Menu\Models\MenuItem
Ejemplo n.º 1
0
 /**
  * Update menu item
  *
  * @param MenuItem $item menu item instance
  * @return MenuItem
  */
 public function updateItem(MenuItem $item)
 {
     $item = $this->repo->updateItem($item);
     $key = $this->getItemCacheKey($item->getKey());
     $this->cache->put($key, $item);
     return $item;
 }
Ejemplo n.º 2
0
 /**
  * Move menu item
  *
  * @param Menu          $menu   menu instance
  * @param MenuItem      $item   menu item instance
  * @param MenuItem|null $parent menu item instance
  * @return MenuItem
  * @throws InvalidArgumentException
  */
 public function moveItem(Menu $menu, MenuItem $item, MenuItem $parent = null)
 {
     if ($parent && $menu->getKey() != $parent->menu->getKey()) {
         throw new InvalidArgumentException(['name' => 'parent object']);
     }
     if ($item->{$item->getParentIdName()}) {
         $oldParent = $this->repo->findItem($item->{$item->getParentIdName()});
         $this->unlinkHierarchy($item, $oldParent);
         $item->{$item->getParentIdName()} = null;
     }
     if ($parent) {
         $this->linkHierarchy($item, $parent);
         $item->parentId = $parent->getKey();
     }
     $item->{$item->getAggregatorKeyName()} = $menu->getKey();
     $item = $this->repo->updateItem($item);
     // todo: 캐시 갱신 점검
     // 연관 객체 정보들이 변경 되었으므로 객채를 갱신 함
     return $this->repo->findItem($item->getKey());
 }
Ejemplo n.º 3
0
 /**
  * Update menu item
  *
  * @param MenuItem $item menu item instance
  * @return MenuItem
  */
 public function updateItem(MenuItem $item)
 {
     $this->cache->forget($this->getCacheKey($item->menu->getKey()));
     return $this->repo->updateItem($item);
 }
Ejemplo n.º 4
0
 /**
  * Update menu item
  *
  * @param MenuItem $item menu item instance
  * @return MenuItem
  */
 public function updateItem(MenuItem $item)
 {
     $item = $this->repo->updateItem($item);
     $this->itemBag[$item->getKey()] = $item;
     return $item;
 }
 /**
  * Update menu item
  *
  * @param MenuItem $item menu item instance
  * @return MenuItem
  */
 public function updateItem(MenuItem $item)
 {
     return $this->repo->updateItem($item);
 }
Ejemplo n.º 6
0
 /**
  * Move menu item
  *
  * @param Menu          $menu   menu instance
  * @param MenuItem      $item   menu item instance
  * @param MenuItem|null $parent menu item instance
  * @return MenuItem
  * @throws InvalidArgumentException
  */
 public function moveItem(Menu $menu, MenuItem $item, MenuItem $parent = null)
 {
     if ($parent && $menu->getKey() != $parent->menu->getKey()) {
         throw new InvalidArgumentException(['name' => 'parent object']);
     }
     if ($item->{$item->getParentIdName()}) {
         $oldParent = $this->repo->findItem($item->{$item->getParentIdName()});
         $this->unlinkHierarchy($item, $oldParent);
         $item->{$item->getParentIdName()} = null;
     }
     if ($parent) {
         $this->linkHierarchy($item, $parent);
         $item->parentId = $parent->getKey();
     }
     // 캐시를 사용하는 경우 기존 메뉴를 대상으로 하는 캐시의 갱신이 필요하여
     // 변경전 업데이트를 수행함
     $this->repo->update($item->menu);
     $item->{$item->getAggregatorKeyName()} = $menu->getKey();
     $item->setRelation('menu', $menu);
     $item = $this->repo->updateItem($item);
     // 연관 객체 정보들이 변경 되었으므로 객채를 갱신 함
     return $this->repo->findItem($item->getKey());
 }