public function actionSaveLayout() { if (craft()->dashCols->isCpSectionDisabled()) { throw new HttpException(404); } $this->requirePostRequest(); $request = craft()->request; $layout = new DashCols_LayoutModel(); $layout->id = ($layoutId = $request->getPost('layoutId')) ? $layoutId : null; $layout->sectionId = $request->getPost('sectionId'); $layout->categoryGroupId = $request->getPost('categoryGroupId'); $layout->listingHandle = $request->getPost('listingHandle'); if ($layout->sectionId) { $section = craft()->dashCols->getSectionById($layout->sectionId); } else { if ($layout->categoryGroupId) { $section = craft()->dashCols->getCategoryGroupById($layout->categoryGroupId); } else { if ($layout->listingHandle) { $section = craft()->dashCols->getListingByHandle($layout->listingHandle); } else { throw new HttpException(404); } } } $fieldLayout = craft()->fields->assembleLayoutFromPost(); $fieldLayout->type = ElementType::Asset; $layout->setFieldLayout($fieldLayout); // Get hidden fields $hiddenFields = array(); foreach ($request->getPost('hiddenFields') as $key => $value) { if ($value !== '1') { $hiddenFields[] = $key; } } $layout->hiddenFields = !empty($hiddenFields) ? $hiddenFields : false; // Get meta fields $metaFields = array(); foreach ($request->getPost('metaFields') as $key => $value) { if ($value === '1') { $metaFields[] = $key; } } $layout->metaFields = !empty($metaFields) ? $metaFields : false; if (craft()->dashCols_layouts->saveLayout($layout)) { craft()->userSession->setNotice(Craft::t('Layout for ' . $section->name . ' saved!')); $this->redirectToPostedUrl($layout); } else { craft()->userSession->setError(Craft::t('Something went wrong. Layout not saved.')); } craft()->urlManager->setRouteVariables(array('layout' => $layout)); }