Example #1
0
 public function edit()
 {
     $subpages = $this->model->getSubpageTree();
     $pagescheme_id = $this->id;
     // selected by user
     if (Helper::getViewId() > 0 && $pagescheme_id != $this->registry->core->getParam(0)) {
         // if it is not current view pagescheme change it
         App::redirect(__ADMINPANE__ . '/subpagelayout/edit/' . $pagescheme_id . ',' . $this->model->getFirstPageScheme($pagescheme_id));
     }
     $subpage_id = $this->registry->core->getParam(1);
     // id from URL
     if ((int) $subpage_id == 0 || empty($subpages[$pagescheme_id . ',' . $subpage_id])) {
         // change pagescheme if subpage is not inside active
         $pagescheme_id = App::getModel('view')->getViewPagescheme(Helper::getViewId());
         App::redirect(__ADMINPANE__ . '/subpagelayout/edit/' . $pagescheme_id . ',' . $this->model->getFirstPageScheme($pagescheme_id));
     }
     $subpageLayout = App::getModel('subpagelayout')->getSubPageLayoutAll($subpage_id);
     if (!isset($subpageLayout[0]['name'])) {
         App::redirect(__ADMINPANE__ . '/subpagelayout');
     }
     $tree = new FormEngine\Elements\Form(array('name' => 'scheme_tree', 'action' => '', 'method' => 'post'));
     $tree->AddChild(new FormEngine\Elements\Tree(array('name' => 'pagescheme', 'sortable' => false, 'retractable' => false, 'selectable' => false, 'clickable' => true, 'deletable' => false, 'addable' => false, 'items' => $subpages, 'onClick' => 'openSubpageEditor', 'active' => $pagescheme_id . ',' . $subpage_id)));
     $form = new FormEngine\Elements\Form(array('name' => 'subpagelayout', 'action' => '', 'method' => 'post'));
     $columnsEdit = $form->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'columns', 'label' => _('TXT_SUBPAGE_COLUMNS'))));
     $subpages = App::getModel('subpagelayout')->getSubPageLayoutAllToSelect($subpage_id);
     $subpagelayoutid = $columnsEdit->AddChild(new FormEngine\Elements\Constant(array('name' => 'subpagelayout_subpage', 'label' => _('Podstrona'))));
     $subpagelayoutid = $columnsEdit->AddChild(new FormEngine\Elements\Hidden(array('name' => 'subpagelayoutid')));
     $columnsDataEdit = $columnsEdit->AddChild(new FormEngine\Elements\FieldsetRepeatable(array('name' => 'columns_data', 'label' => _('TXT_COLUMNS_DATA'), 'repeat_min' => 1, 'repeat_max' => FormEngine\FE::INFINITE)));
     $columnsDataEdit->AddChild(new FormEngine\Elements\Tip(array('tip' => '<p>Aby kolumna rozciągnęła się na całą, pozostałą część strony, jako jej szerokość podaj wartość <strong>0</strong>.</p><p>Jeśli kilka kolumn będzie miało szerokość 0, wówczas zostaną im automatycznie przyznane równe części pozostałego miejsca.</p>', 'retractable' => false)));
     $columnsDataEdit->AddChild(new FormEngine\Elements\TextField(array('name' => 'columns_width', 'label' => _('TXT_WIDTH'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_WIDTH'))))));
     $boxDataEdit = $columnsDataEdit->AddChild(new FormEngine\Elements\LayoutBoxesList(array('name' => 'layout_boxes', 'label' => 'Wybierz boksy', 'boxes' => FormEngine\Option::Make(App::getModel('subpagelayout')->getBoxesAllToSelect($subpageLayout[0]['name'], $pagescheme_id)))));
     $form->AddFilter(new FormEngine\Filters\Trim());
     $form->AddFilter(new FormEngine\Filters\Secure());
     $subpagelayoutcolumn = App::getModel('subpagelayout')->getSubPageLayoutColumn($subpage_id);
     $populate = array();
     if (is_array($subpagelayoutcolumn) && count($subpagelayoutcolumn) > 0) {
         if (isset($subpagelayoutcolumn['subpagelayoutid']) && $subpagelayoutcolumn['subpagelayoutid'] > 0) {
             $populate['columns']['subpagelayout_subpage'] = $subpages[$subpagelayoutcolumn['subpagelayoutid']];
             $populate['columns']['subpagelayoutid'] = $subpagelayoutcolumn['subpagelayoutid'];
         }
         if (isset($subpagelayoutcolumn['columns']) && count($subpagelayoutcolumn['columns']) > 0) {
             foreach ($subpagelayoutcolumn['columns'] as $column) {
                 $populate['columns']['columns_data'][$column['idsubpagelayoutcolumn']] = array('columns_width' => $column['width']);
                 if (count($column['subpagelayoutcolumnbox']) > 0) {
                     foreach ($column['subpagelayoutcolumnbox'] as $boxes) {
                         $populate['columns']['columns_data'][$column['idsubpagelayoutcolumn']]['layout_boxes'][$boxes['order']] = array('box' => $boxes['layoutboxid'], 'span' => $boxes['colspan'], 'collapsed' => (int) $boxes['collapsed']);
                     }
                 }
             }
         }
         $form->Populate($populate);
     }
     if ($form->Validate(FormEngine\FE::SubmittedData())) {
         try {
             App::getModel('subpagelayout')->editSubpageLayout($form->getSubmitValues(), $subpage_id);
             App::getModel('subpagelayout')->flushCache($subpages[$subpagelayoutcolumn['subpagelayoutid']]);
             App::redirect(__ADMINPANE__ . '/subpagelayout/edit/' . $pagescheme_id . ',' . $subpage_id);
         } catch (Exception $e) {
             Session::setVolatileSubpageLayoutAdd(1, false);
         }
     }
     $error = Session::getVolatileSubpageLayoutAdd();
     if ($error[0] == 1) {
         $this->registry->template->assign('error', $e->getMessage());
     }
     $this->registry->xajaxInterface->registerFunction(array('DeleteSubpageLayout', $this, 'DeleteSubpageLayoutForAjax'));
     $this->renderLayout(array('subpageLayout' => $subpageLayout[0], 'form' => $form->Render(), 'tree' => $tree->Render()));
 }