예제 #1
0
 public function main()
 {
     $layout_data = array();
     //use to init controller data
     $this->extensions->hk_InitData($this, __FUNCTION__);
     $this->session->data['content_language_id'] = $this->config->get('storefront_language_id');
     $this->document->setTitle($this->language->get('heading_title'));
     $tmpl_id = $this->request->get['tmpl_id'];
     $page_id = $this->request->get['page_id'];
     $layout_id = $this->request->get['layout_id'];
     //Note yet implemented
     if (isset($this->request->get['preview_id'])) {
         $preview_id = $this->request->get['preview_id'];
         $layout_data['preview_id'] = $preview_id;
         $layout_data['preview_url'] = HTTP_CATALOG . '?preview=' . $preview_id . '&layout_id=' . $preview_id . '&page_id=' . $page_id;
     }
     $layout = new ALayoutManager($tmpl_id, $page_id, $layout_id);
     $layout_data['pages'] = $layout->getAllPages();
     $layout_data['current_page'] = $layout->getPageData();
     $params = array('page_id' => $layout_data['current_page']['page_id'], 'layout_id' => $layout->getLayoutId(), 'tmpl_id' => $layout->getTemplateId());
     $url = '&' . $this->html->buildURI($params);
     // get templates
     $layout_data['templates'] = array();
     $directories = glob(DIR_STOREFRONT . 'view/*', GLOB_ONLYDIR);
     foreach ($directories as $directory) {
         $layout_data['templates'][] = basename($directory);
     }
     $enabled_templates = $this->extensions->getExtensionsList(array('filter' => 'template', 'status' => 1));
     foreach ($enabled_templates->rows as $template) {
         $layout_data['templates'][] = $template['key'];
     }
     // breadcrumb path
     $this->document->initBreadcrumb(array('href' => $this->html->getSecureURL('index/home'), 'text' => $this->language->get('text_home')));
     $this->document->addBreadcrumb(array('href' => $this->html->getSecureURL('design/layout'), 'text' => $this->language->get('heading_title') . ' - ' . $params['tmpl_id'], 'current' => true));
     // Layout form data
     $form = new AForm('HT');
     $form->setForm(array('form_name' => 'layout_form'));
     $layout_data['form_begin'] = $form->getFieldHtml(array('type' => 'form', 'name' => 'layout_form', 'attr' => 'data-confirm-exit="true"', 'action' => $this->html->getSecureURL('design/layout/save')));
     $layout_data['hidden_fields'] = '';
     foreach ($params as $name => $value) {
         $layout_data[$name] = $value;
         $layout_data['hidden_fields'] .= $form->getFieldHtml(array('type' => 'hidden', 'name' => $name, 'value' => $value));
     }
     $layout_data['page_url'] = $this->html->getSecureURL('design/layout');
     $layout_data['generate_preview_url'] = $this->html->getSecureURL('design/layout/preview');
     $layout_data['current_url'] = $this->html->getSecureURL('design/layout', $url);
     $layout_data['page_delete_url'] = $this->html->getSecureURL('design/layout/delete');
     $layout_data['insert_url'] = $this->html->getSecureURL('design/layout/insert', $url);
     $layout_data['help_url'] = $this->gen_help_url('layout');
     // Alert messages
     if (isset($this->session->data['warning'])) {
         $layout_data['error_warning'] = $this->session->data['warning'];
         unset($this->session->data['warning']);
     }
     if (isset($this->session->data['success'])) {
         $layout_data['success'] = $this->session->data['success'];
         unset($this->session->data['success']);
     }
     $layoutform = $this->dispatch('common/page_layout', array($layout));
     $layout_data['layoutform'] = $layoutform->dispatchGetOutput();
     $this->view->batchAssign($layout_data);
     $this->processTemplate('pages/design/layout.tpl');
     //update controller data
     $this->extensions->hk_UpdateData($this, __FUNCTION__);
 }