App\Http\Controllers\MenuController::storeItem PHP Method

storeItem() public method

storeItem
public storeItem ( MenuHandler $handler, string $menuId )
$handler Xpressengine\Menu\MenuHandler menu handler
$menuId string where to store
    public function storeItem(MenuHandler $handler, $menuId)
    {
        XeDB::beginTransaction();
        $menu = $handler->get($menuId);
        try {
            $inputs = Input::except(['_token', 'theme_desktop', 'theme_mobile']);
            $parentThemeMode = Input::get('parentTheme', false);
            if ($parentThemeMode === false) {
                $desktopTheme = Input::get('theme_desktop');
                $mobileTheme = Input::get('theme_mobile');
            } else {
                $desktopTheme = null;
                $mobileTheme = null;
            }
            list($itemInput, $menuTypeInput) = $this->inputClassify($inputs);
            $itemInput['parent'] = $itemInput['parent'] === $menu->getKey() ? null : $itemInput['parent'];
            $item = $handler->createItem($menu, ['title' => $itemInput['itemTitle'], 'url' => $itemInput['itemUrl'], 'description' => $itemInput['itemDescription'], 'target' => $itemInput['itemTarget'], 'type' => $itemInput['selectedType'], 'ordering' => $itemInput['itemOrdering'], 'activated' => isset($itemInput['itemActivated']) ? $itemInput['itemActivated'] : 0, 'parentId' => $itemInput['parent']], $menuTypeInput);
            // link image 등록
            $this->registerItemImage($item, 'basicImage');
            $this->registerItemImage($item, 'hoverImage');
            $this->registerItemImage($item, 'selectedImage');
            $this->registerItemImage($item, 'mBasicImage');
            $this->registerItemImage($item, 'mHoverImage');
            $this->registerItemImage($item, 'mSelectedImage');
            $handler->putItem($item, $menuTypeInput);
            $handler->setMenuItemTheme($item, $desktopTheme, $mobileTheme);
            $this->permissionRegisterGrant($handler->permKeyString($item), null, $menu->siteKey);
        } catch (Exception $e) {
            XeDB::rollback();
            Input::flash();
            return Redirect::back()->with('alert', ['type' => 'danger', 'message' => $e->getMessage()]);
        }
        XeDB::commit();
        return Redirect::route('settings.menu.index');
    }