コード例 #1
0
ファイル: article.php プロジェクト: rockylo/ionize
 /**
  * Duplicates one article
  * Called by /views/toolboxes/article_toolbox
  *
  * @param	int		$id_article		Source article ID
  * 
  * TODO :	Check if the article exists and display an error window if not.
  *			JS Callbacks of MUI.formWindow() needs to be implemented
  *
  */
 public function duplicate($id_article)
 {
     // Source article
     $cond = array('id_page' => $this->input->post('id_page'), 'id_article' => $id_article);
     if ($this->input->post('id_page')) {
         $source_article = array_shift($this->article_model->get_linked_lang_items('page', 'article', $cond, Settings::get_lang('default')));
     } else {
         unset($cond['id_page']);
         $source_article = $this->article_model->get($cond, Settings::get_lang('default'));
     }
     // Context page, if any
     $this->template['page'] = $this->page_model->get_by_id($this->input->post('id_page'), Settings::get_lang('default'));
     // Dropdowns Views
     if (is_file(APPPATH . '../themes/' . Settings::get('theme') . '/config/views.php')) {
         require_once APPPATH . '../themes/' . Settings::get('theme') . '/config/views.php';
     }
     $views = isset($views['article']) ? $views['article'] : array();
     if (count($views) > 0) {
         if (!isset($source_article['view'])) {
             $source_article['view'] = FALSE;
         }
         $views = array('' => lang('ionize_select_default_view')) + $views;
         $this->template['views'] = form_dropdown('article_view', $views, $source_article['view'], 'class="select w160"');
     }
     $this->template['all_views'] = $views;
     // All articles type to template
     $types = $this->article_type_model->get_types_select();
     $types = array('' => lang('ionize_select_no_type')) + $types;
     $this->template['all_types'] = $types;
     if (!isset($source_article['id_type'])) {
         $source_article['id_type'] = FALSE;
     }
     $this->template = array_merge($this->template, $source_article);
     $this->template['name'] = $source_article['name'];
     // $this->template['has_url'] = $source_article['has_url'];
     $this->template['title'] = $source_article['title'] != '' ? $source_article['title'] : $source_article['name'];
     // Dropdown menus
     $data = $this->menu_model->get_select();
     $this->template['menus'] = form_dropdown('dup_id_menu', $data, '1', 'id="dup_id_menu" class="select"');
     $this->output('article/duplicate');
 }
コード例 #2
0
ファイル: page.php プロジェクト: trk/ionize
 /**
  * Displays the options side panel
  *
  * @param   int		$id_page     Page ID
  *
  */
 public function get_options($id_page)
 {
     $resource = $this->_get_resource_name('backend', 'page', $id_page);
     if (Authority::can('edit', $resource, null, true)) {
         // Data
         $page = $this->page_model->get_by_id($id_page);
         if (!empty($page)) {
             // Correct the menu ID (for phantom pages)
             if ($page['id_menu'] == '0') {
                 $page['id_menu'] = '1';
             }
             // Page data
             $this->template = array_merge($this->template, $page);
             $this->page_model->feed_lang_template($id_page, $this->template);
             // Load the module's addons
             $this->load_modules_addons($page);
             // Dropdown menus
             $data = $this->menu_model->get_select();
             $this->template['menus'] = form_dropdown('id_menu', $data, $this->template['id_menu'], 'id="id_menu" class="select"');
             // Subnav menu
             $subnav_page = $this->page_model->get_by_id($page['id_subnav']);
             $selected_subnav = !empty($subnav_page['id_menu']) ? $subnav_page['id_menu'] : '-1';
             $this->template['subnav_menu'] = form_dropdown('id_subnav_menu', $data, $selected_subnav, 'id="id_subnav_menu" class="select"');
             // Dropdown Views
             $views = array();
             if (is_file(FCPATH . 'themes/' . Settings::get('theme') . '/config/views.php')) {
                 require_once FCPATH . 'themes/' . Settings::get('theme') . '/config/views.php';
             }
             // Dropdown Page views
             $data = isset($views['page']) ? $views['page'] : array();
             if (count($data) > 0) {
                 $data = $this->_get_views_dropdown_data($data, 'Page');
                 $data = array('' => lang('ionize_select_default_view')) + $data;
                 $this->template['views'] = form_dropdown('view', $data, $this->template['view'], 'class="select"');
                 $this->template['single_views'] = form_dropdown('view_single', $data, $this->template['view_single'], 'class="select"');
             }
             // Dropdown article list views (templates)
             $data = isset($views['article']) ? $views['article'] : array();
             if (count($data) > 0) {
                 $data = $this->_get_views_dropdown_data($data, 'Article');
                 $data = array('' => lang('ionize_select_default_view')) + $data;
                 $this->template['article_list_views'] = form_dropdown('article_list_view', $data, $this->template['article_list_view'], 'class="select"');
                 $this->template['article_views'] = form_dropdown('article_view', $data, $this->template['article_view'], 'class="select"');
             }
             // Roles & Rules
             $frontend_roles_resources = $this->resource_model->get_element_roles_resources('page', $id_page, self::$_AUTHORITY_FRONTEND_ACTIONS, 'frontend');
             $this->template['frontend_roles_resources'] = $frontend_roles_resources;
             $backend_roles_resources = $this->resource_model->get_element_roles_resources('page', $id_page, self::$_AUTHORITY_BACKEND_ACTIONS, 'backend');
             $this->template['backend_roles_resources'] = $backend_roles_resources;
             // Roles which have permission set for this page
             $this->template['frontend_role_ids'] = $this->rule_model->get_element_role_ids('page', $id_page);
             $this->template['backend_role_ids'] = $this->rule_model->get_element_role_ids('page', $id_page, 'backend');
             // Default Deny Action
             if (empty($page['deny_code'])) {
                 $this->template['deny_code'] = '404';
             }
             // Types
             $types = $this->type_model->get_select('page', lang('ionize_select_no_type'));
             if (count($types) > 1) {
                 $this->template['types'] = form_dropdown('id_type', $types, $this->template['id_type'], 'class="select"');
             }
             // Categories
             $categories = $this->category_model->get_categories_select();
             $current_categories = $this->category_model->get_current_categories('page', $id_page);
             $this->template['categories'] = form_dropdown('categories[]', $categories, $current_categories, 'class="select w100p" multiple="multiple"');
             // Output
             $this->output('page/options');
         } else {
             $this->error(lang('ionize_message_page_not_exist'));
         }
     }
 }