assign() public method

public assign ( $var, $val )
Ejemplo n.º 1
0
 public function frontend()
 {
     if (isset($_GET['debug'])) {
         if ($this->app->make('config')->get('app.debug')) {
             DB::enableQueryLog();
         }
     }
     event_trigger('mw.controller.index');
     if ($this->render_this_url == false and $this->app->url_manager->is_ajax() == false) {
         $page_url = $this->app->url_manager->string();
     } elseif ($this->render_this_url == false and $this->app->url_manager->is_ajax() == true) {
         $page_url = $this->app->url_manager->string(1);
     } else {
         $page_url = $this->render_this_url;
         $this->render_this_url = false;
     }
     if ($this->page_url != false) {
         $page_url = $this->page_url;
     }
     if (strtolower($page_url) == 'index.php') {
         $page_url = '';
     }
     if ($this->create_new_page == true and $this->page_url != false) {
         $page_url = $this->page_url;
     }
     $page = false;
     if ($page == false and !empty($this->page)) {
         $page = $this->page;
     }
     $page_url = rtrim($page_url, '/');
     $is_admin = $this->app->user_manager->is_admin();
     $page_url_orig = $page_url;
     $simply_a_file = false;
     $show_404_to_non_admin = false;
     // if this is a file path it will load it
     if (isset($_REQUEST['view'])) {
         $is_custom_view = $_REQUEST['view'];
     } else {
         $is_custom_view = $this->app->url_manager->param('view');
         if ($is_custom_view and $is_custom_view != false) {
             $is_custom_view = str_replace('..', '', $is_custom_view);
             $page_url = $this->app->url_manager->param_unset('view', $page_url);
         }
     }
     $is_editmode = $this->app->url_manager->param('editmode');
     $is_no_editmode = $this->app->url_manager->param('no_editmode');
     $is_quick_edit = $this->app->url_manager->param('mw_quick_edit');
     if ($is_quick_edit != false) {
         $page_url = $this->app->url_manager->param_unset('mw_quick_edit', $page_url);
     }
     $is_preview_template = $this->app->url_manager->param('preview_template');
     if (!$is_preview_template) {
         $is_preview_template = false;
         if ($this->return_data == false) {
             if (!defined('MW_FRONTEND')) {
                 define('MW_FRONTEND', true);
             }
         }
         if (mw()->user_manager->session_id() and $is_editmode and $is_no_editmode == false) {
             if ($is_editmode == 'n') {
                 $is_editmode = false;
                 $page_url = $this->app->url_manager->param_unset('editmode', $page_url);
                 $this->app->user_manager->session_set('back_to_editmode', true);
                 $this->app->user_manager->session_set('editmode', false);
                 return $this->app->url_manager->redirect($this->app->url_manager->site_url($page_url));
             } else {
                 $editmode_sess = $this->app->user_manager->session_get('editmode');
                 $page_url = $this->app->url_manager->param_unset('editmode', $page_url);
                 if ($is_admin == true) {
                     if ($editmode_sess == false) {
                         $this->app->user_manager->session_set('editmode', true);
                         $this->app->user_manager->session_set('back_to_editmode', false);
                         $is_editmode = false;
                     }
                     return $this->app->url_manager->redirect($this->app->url_manager->site_url($page_url));
                 } else {
                     $is_editmode = false;
                 }
             }
         }
         if (mw()->user_manager->session_id() and !$is_no_editmode) {
             $is_editmode = $this->app->user_manager->session_get('editmode');
         } else {
             $is_editmode = false;
             $page_url = $this->app->url_manager->param_unset('no_editmode', $page_url);
         }
     } else {
         $is_editmode = false;
         $page_url = $this->app->url_manager->param_unset('preview_template', $page_url);
     }
     if ($is_quick_edit == true) {
         $is_editmode = true;
     }
     $preview_module = false;
     $preview_module_template = false;
     $preview_module_id = false;
     $template_relative_layout_file_from_url = false;
     $is_preview_module = $this->app->url_manager->param('preview_module');
     if ($is_preview_module != false) {
         if ($this->app->user_manager->is_admin()) {
             $is_preview_module = module_name_decode($is_preview_module);
             if (is_module($is_preview_module)) {
                 $is_preview_module_skin = $this->app->url_manager->param('preview_module_template');
                 $preview_module_id = $this->app->url_manager->param('preview_module_id');
                 $preview_module = $is_preview_module;
                 if ($is_preview_module_skin != false) {
                     $preview_module_template = module_name_decode($is_preview_module_skin);
                     $is_editmode = false;
                 }
             }
         }
     }
     $is_layout_file = $this->app->url_manager->param('preview_layout');
     if (!$is_layout_file) {
         $is_layout_file = false;
     } else {
         $page_url = $this->app->url_manager->param_unset('preview_layout', $page_url);
     }
     if (isset($_REQUEST['content_id']) and intval($_REQUEST['content_id']) != 0) {
         $page = $this->app->content_manager->get_by_id($_REQUEST['content_id']);
     }
     if ($is_quick_edit or $is_preview_template == true or isset($_REQUEST['isolate_content_field']) or $this->create_new_page == true) {
         if (isset($_REQUEST['content_id']) and intval($_REQUEST['content_id']) != 0) {
             $page = $this->app->content_manager->get_by_id($_REQUEST['content_id']);
         } else {
             $page['id'] = 0;
             $page['content_type'] = 'page';
             if (isset($_REQUEST['content_type'])) {
                 $page['content_type'] = $this->app->database_manager->escape_string($_REQUEST['content_type']);
             }
             if (isset($_REQUEST['subtype'])) {
                 $page['subtype'] = $this->app->database_manager->escape_string($_REQUEST['subtype']);
             }
             template_var('new_content_type', $page['content_type']);
             $page['parent'] = '0';
             if (isset($_REQUEST['parent_id']) and $_REQUEST['parent_id'] != 0) {
                 $page['parent'] = intval($_REQUEST['parent_id']);
             }
             //$page['url'] = $this->app->url_manager->string();
             if (isset($is_preview_template) and $is_preview_template != false) {
                 $page['active_site_template'] = $is_preview_template;
             } else {
             }
             if (isset($is_layout_file) and $is_layout_file != false) {
                 $page['layout_file'] = $is_layout_file;
             }
             if (isset($_REQUEST['inherit_template_from']) and $_REQUEST['inherit_template_from'] != 0) {
                 $page['parent'] = intval($_REQUEST['inherit_template_from']);
                 $inherit_from = $this->app->content_manager->get_by_id($_REQUEST['inherit_template_from']);
                 //$page['parent'] =  $inherit_from ;
                 if (isset($inherit_from['layout_file']) and $inherit_from['layout_file'] == 'inherit') {
                     $inherit_from_id = $this->app->content_manager->get_inherited_parent($inherit_from['id']);
                     $inherit_from = $this->app->content_manager->get_by_id($inherit_from_id);
                 }
                 if (is_array($inherit_from) and isset($inherit_from['active_site_template'])) {
                     $page['active_site_template'] = $inherit_from['active_site_template'];
                     $is_layout_file = $page['layout_file'] = $inherit_from['layout_file'];
                 }
             }
             if (isset($_REQUEST['content_type']) and $_REQUEST['content_type'] != false) {
                 $page['content_type'] = $_REQUEST['content_type'];
             }
             if ($this->content_data != false) {
                 $page = $this->content_data;
             }
             template_var('new_page', $page);
         }
     }
     $output_cache_timeout = false;
     if (isset($is_preview_template) and $is_preview_template != false) {
         if (!defined('MW_NO_SESSION')) {
             define('MW_NO_SESSION', true);
         }
     }
     if (isset($_REQUEST['recart']) and $_REQUEST['recart'] != false) {
         event_trigger('recover_shopping_cart', $_REQUEST['recart']);
     }
     if ($output_cache_timeout != false) {
         $output_cache_id = __FUNCTION__ . crc32($_SERVER['REQUEST_URI']);
         $output_cache_group = 'content/preview';
         $output_cache_content = $this->app->cache_manager->get($output_cache_id, $output_cache_group, $output_cache_timeout);
         if ($output_cache_content != false) {
             echo $output_cache_content;
             return;
         }
     }
     $the_active_site_template = $this->app->option_manager->get('current_template', 'template');
     $date_format = $this->app->option_manager->get('date_format', 'website');
     if ($date_format == false) {
         $date_format = 'Y-m-d H:i:s';
     }
     if ($page == false or $this->create_new_page == true) {
         if (trim($page_url) == '' and $preview_module == false) {
             $page = $this->app->content_manager->homepage();
         } else {
             $found_mod = false;
             $page = $this->app->content_manager->get_by_url($page_url);
             $page_exact = $this->app->content_manager->get_by_url($page_url, true);
             $page_url_segment_1 = $this->app->url_manager->segment(0, $page_url);
             if ($preview_module != false) {
                 $page_url = $preview_module;
             }
             if ($the_active_site_template == false or $the_active_site_template == '') {
                 $the_active_site_template = 'default';
             }
             if ($page_exact == false and $found_mod == false and $this->app->modules->is_installed($page_url) and $page_url != 'settings' and $page_url != 'admin') {
                 $found_mod = true;
                 $page['id'] = 0;
                 $page['content_type'] = 'page';
                 $page['parent'] = '0';
                 $page['url'] = $this->app->url_manager->string();
                 $page['active_site_template'] = $the_active_site_template;
                 template_var('no_edit', 1);
                 $mod_params = '';
                 if ($preview_module_template != false) {
                     $mod_params = $mod_params . " template='{$preview_module_template}' ";
                 }
                 if ($preview_module_id != false) {
                     $mod_params = $mod_params . " id='{$preview_module_id}' ";
                 }
                 $found_mod = $page_url;
                 $page['content'] = '<microweber module="' . $page_url . '" ' . $mod_params . '  />';
                 //  $page['simply_a_file'] = 'clean.php';
                 $page['layout_file'] = 'clean.php';
                 template_var('content', $page['content']);
                 template_var('new_page', $page);
             }
             if ($found_mod == false) {
                 if (empty($page)) {
                     $the_new_page_file = false;
                     $page_url_segment_1 = $this->app->url_manager->segment(0, $page_url);
                     $td = templates_path() . $page_url_segment_1;
                     $td_base = $td;
                     $page_url_segment_2 = $this->app->url_manager->segment(1, $page_url);
                     $directly_to_file = false;
                     $page_url_segment_3 = $this->app->url_manager->segment(-1, $page_url);
                     $page_url_segment_1 = $the_active_site_template = $this->app->option_manager->get('current_template', 'template');
                     $td_base = templates_path() . $the_active_site_template . DS;
                     $page_url_segment_3_str = implode(DS, $page_url_segment_3);
                     if ($page_url_segment_3_str != '') {
                         $page_url_segment_3_str = rtrim($page_url_segment_3_str, DS);
                         $page_url_segment_3_str = rtrim($page_url_segment_3_str, '\\');
                         $page_url_segment_3_str_copy = $page_url_segment_3_str;
                         $is_ext = get_file_extension($page_url_segment_3_str);
                         if ($is_ext == false or $is_ext != 'php') {
                             $page_url_segment_3_str = $page_url_segment_3_str . '.php';
                         }
                         $td_f = $td_base . DS . $page_url_segment_3_str;
                         $td_fd = $td_base . DS . $page_url_segment_3_str_copy;
                         $td_fd2 = $td_base . DS . $page_url_segment_3[0];
                         if (is_file($td_f)) {
                             $the_new_page_file = $page_url_segment_3_str;
                             $simply_a_file = $directly_to_file = $td_f;
                         } else {
                             if (is_dir($td_fd)) {
                                 $td_fd_index = $td_fd . DS . 'index.php';
                                 if (is_file($td_fd_index)) {
                                     $the_new_page_file = $td_fd_index;
                                     $simply_a_file = $directly_to_file = $td_fd_index;
                                 }
                             } else {
                                 $is_ext = get_file_extension($td_fd);
                                 if ($is_ext == false or $is_ext != 'php') {
                                     $td_fd = $td_fd . '.php';
                                 }
                                 $is_ext = get_file_extension($td_fd2);
                                 if ($is_ext == false or $is_ext != 'php') {
                                     $td_fd2 = $td_fd2 . '.php';
                                 }
                                 if (is_file($td_fd)) {
                                     $the_new_page_file = $td_fd;
                                     $simply_a_file = $directly_to_file = $td_fd;
                                 } elseif (is_file($td_fd2)) {
                                     $the_new_page_file = $td_fd2;
                                     $simply_a_file = $directly_to_file = $td_fd2;
                                 } else {
                                     $td_basedef = templates_path() . 'default' . DS . $page_url_segment_3_str;
                                     if (is_file($td_basedef)) {
                                         $the_new_page_file = $td_basedef;
                                         $simply_a_file = $directly_to_file = $td_basedef;
                                     }
                                 }
                             }
                         }
                     }
                     $fname1 = 'index.php';
                     $fname2 = $page_url_segment_2 . '.php';
                     $fname3 = $page_url_segment_2;
                     $tf1 = $td . DS . $fname1;
                     $tf2 = $td . DS . $fname2;
                     $tf3 = $td . DS . $fname3;
                     if ($directly_to_file == false and is_dir($td)) {
                         if (is_file($tf1)) {
                             $simply_a_file = $tf1;
                             $the_new_page_file = $fname1;
                         }
                         if (is_file($tf2)) {
                             $simply_a_file = $tf2;
                             $the_new_page_file = $fname2;
                         }
                         if (is_file($tf3)) {
                             $simply_a_file = $tf3;
                             $the_new_page_file = $fname3;
                         }
                         if ($simply_a_file != false) {
                             $simply_a_file = str_replace('..', '', $simply_a_file);
                             $simply_a_file = normalize_path($simply_a_file, false);
                         }
                     }
                     if ($simply_a_file == false) {
                         //$page = $this->app->content_manager->homepage();
                         $page = false;
                         if (!is_array($page)) {
                             $page = array();
                             $page['id'] = 0;
                             $page['content_type'] = 'page';
                             $page['parent'] = '0';
                             $page['url'] = $this->app->url_manager->string();
                             //  $page['active_site_template'] = $page_url_segment_1;
                             $page['simply_a_file'] = 'clean.php';
                             $page['layout_file'] = 'clean.php';
                             $show_404_to_non_admin = true;
                         }
                         if (is_array($page_url_segment_3)) {
                             foreach ($page_url_segment_3 as $mvalue) {
                                 if ($found_mod == false and $this->app->modules->is_installed($mvalue)) {
                                     $found_mod = true;
                                     $page['id'] = 0;
                                     $page['content_type'] = 'page';
                                     $page['parent'] = '0';
                                     $page['url'] = $this->app->url_manager->string();
                                     $page['active_site_template'] = $page_url_segment_1;
                                     $page['content'] = '<module type="' . $mvalue . '" />';
                                     $page['simply_a_file'] = 'clean.php';
                                     $page['layout_file'] = 'clean.php';
                                     template_var('content', $page['content']);
                                     template_var('new_page', $page);
                                     $show_404_to_non_admin = false;
                                 }
                             }
                         }
                     } else {
                         if (!is_array($page)) {
                             $page = array();
                         }
                         $page['id'] = 0;
                         if (isset($page_data) and isset($page_data['id'])) {
                             //  $page['id'] = $page_data['id'];
                         }
                         $page['content_type'] = 'page';
                         $page['parent'] = '0';
                         $page['url'] = $this->app->url_manager->string();
                         $page['active_site_template'] = $page_url_segment_1;
                         $page['layout_file'] = $the_new_page_file;
                         $page['simply_a_file'] = $simply_a_file;
                         template_var('new_page', $page);
                         template_var('simply_a_file', $simply_a_file);
                     }
                 }
             }
         }
     }
     if ($page['id'] != 0) {
         // if(!isset($page['layout_file']) or $page['layout_file'] == false){
         $page = $this->app->content_manager->get_by_id($page['id']);
         // }
         if ($page['content_type'] == 'post' and isset($page['parent'])) {
             $content = $page;
             $page = $this->app->content_manager->get_by_id($page['parent']);
         } else {
             $content = $page;
         }
     } else {
         $content = $page;
     }
     if (isset($content['created_at']) and trim($content['created_at']) != '') {
         $content['created_at'] = date($date_format, strtotime($content['created_at']));
     }
     if (isset($content['updated_at']) and trim($content['updated_at']) != '') {
         $content['updated_at'] = date($date_format, strtotime($content['updated_at']));
     }
     if ($is_preview_template != false) {
         $is_preview_template = str_replace('____', DS, $is_preview_template);
         $is_preview_template = str_replace('..', '', $is_preview_template);
         $content['active_site_template'] = $is_preview_template;
     }
     if ($is_layout_file != false and $is_admin == true) {
         $is_layout_file = str_replace('____', DS, $is_layout_file);
         if ($is_layout_file == 'inherit') {
             if (isset($_REQUEST['inherit_template_from']) and intval($_REQUEST['inherit_template_from']) != 0) {
                 $inherit_layout_from_this_page = $this->app->content_manager->get_by_id($_REQUEST['inherit_template_from']);
                 if (isset($inherit_layout_from_this_page['layout_file']) and $inherit_layout_from_this_page['layout_file'] != 'inherit') {
                     $is_layout_file = $inherit_layout_from_this_page['layout_file'];
                 }
                 if (isset($inherit_layout_from_this_page['layout_file']) and $inherit_layout_from_this_page['layout_file'] != 'inherit') {
                     $is_layout_file = $inherit_layout_from_this_page['layout_file'];
                 }
             }
         }
         $content['layout_file'] = $is_layout_file;
     }
     if ($is_custom_view and $is_custom_view != false) {
         $content['custom_view'] = $is_custom_view;
     }
     if (isset($content['is_active']) and ($content['is_active'] == 'n' or $content['is_active'] == 0)) {
         if ($this->app->user_manager->is_admin() == false) {
             $page_non_active = array();
             $page_non_active['id'] = 0;
             $page_non_active['content_type'] = 'page';
             $page_non_active['parent'] = '0';
             $page_non_active['url'] = $this->app->url_manager->string();
             $page_non_active['content'] = 'This page is not published!';
             $page_non_active['simply_a_file'] = 'clean.php';
             $page_non_active['layout_file'] = 'clean.php';
             $page_non_active['page_non_active'] = true;
             template_var('content', $page_non_active['content']);
             $content = $page_non_active;
         }
     } elseif (isset($content['is_deleted']) and $content['is_deleted'] == 1) {
         if ($this->app->user_manager->is_admin() == false) {
             $page_non_active = array();
             $page_non_active['id'] = 0;
             $page_non_active['content_type'] = 'page';
             $page_non_active['parent'] = '0';
             $page_non_active['url'] = $this->app->url_manager->string();
             $page_non_active['content'] = 'This page is deleted!';
             $page_non_active['simply_a_file'] = 'clean.php';
             $page_non_active['layout_file'] = 'clean.php';
             $page_non_active['page_is_deleted'] = true;
             template_var('content', $page_non_active['content']);
             $content = $page_non_active;
         }
     }
     if (isset($content['require_login']) and $content['require_login'] == 1) {
         if ($this->app->user_manager->id() == 0) {
             $page_non_active = array();
             $page_non_active['id'] = 0;
             $page_non_active['content_type'] = 'page';
             $page_non_active['parent'] = '0';
             $page_non_active['url'] = $this->app->url_manager->string();
             $page_non_active['content'] = ' <module type="users/login" class="user-require-login-on-view" /> ';
             $page_non_active['simply_a_file'] = 'clean.php';
             $page_non_active['layout_file'] = 'clean.php';
             $page_non_active['page_require_login'] = true;
             template_var('content', $page_non_active['content']);
             $content = $page_non_active;
         }
     }
     if (!defined('IS_HOME')) {
         if (isset($content['is_home']) and $content['is_home'] == 1) {
             define('IS_HOME', true);
         }
     }
     $this->app->content_manager->define_constants($content);
     event_trigger('mw.front', $content);
     event_trigger('mw_frontend', $content);
     $render_file = $this->app->template->get_layout($content);
     $content['render_file'] = $render_file;
     if (defined('TEMPLATE_DIR')) {
         $load_template_functions = TEMPLATE_DIR . 'functions.php';
         if (is_file($load_template_functions)) {
             include_once $load_template_functions;
         }
     }
     if ($this->return_data != false) {
         return $content;
     }
     if (isset($content['original_link']) and $content['original_link'] != '') {
         $content['original_link'] = str_ireplace('{site_url}', $this->app->url_manager->site(), $content['original_link']);
         $redirect = $this->app->format->prep_url($content['original_link']);
         if ($redirect != '') {
             return $this->app->url_manager->redirect($redirect);
         }
     }
     if (!isset($page['title'])) {
         $page['title'] = 'New page';
     }
     if (!isset($content['title'])) {
         $content['title'] = 'New content';
     }
     $category = false;
     if (defined('CATEGORY_ID')) {
         $category = $this->app->category_manager->get_by_id(CATEGORY_ID);
     }
     if ($render_file) {
         $render_params = array();
         if ($show_404_to_non_admin) {
             if (!is_admin()) {
                 $load_template_404 = template_dir() . '404.php';
                 if (is_file($load_template_404)) {
                     $render_file = $load_template_404;
                 }
             }
         }
         $render_params['render_file'] = $render_file;
         $render_params['page_id'] = PAGE_ID;
         $render_params['content_id'] = CONTENT_ID;
         $render_params['post_id'] = POST_ID;
         $render_params['category_id'] = CATEGORY_ID;
         $render_params['content'] = $content;
         $render_params['category'] = $category;
         $render_params['page'] = $page;
         $l = $this->app->template->render($render_params);
         if (is_object($l)) {
             return $l;
         }
         // used for preview from the admin wysiwyg
         if (isset($_REQUEST['isolate_content_field'])) {
             require_once MW_PATH . 'Utils' . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'phpQuery.php';
             $pq = \phpQuery::newDocument($l);
             $isolated_head = pq('head')->eq(0)->html();
             $found_field = false;
             if (isset($_REQUEST['isolate_content_field'])) {
                 foreach ($pq['[field=content]'] as $elem) {
                     $isolated_el = $l = pq($elem)->htmlOuter();
                 }
             }
             $is_admin = $this->app->user_manager->is_admin();
             if ($is_admin == true and isset($isolated_el) != false) {
                 $tb = mw_includes_path() . DS . 'toolbar' . DS . 'editor_tools' . DS . 'wysiwyg' . DS . 'index.php';
                 //$layout_toolbar = file_get_contents($filename);
                 $layout_toolbar = new \Microweber\View($tb);
                 $layout_toolbar = $layout_toolbar->__toString();
                 if ($layout_toolbar != '') {
                     if (strstr($layout_toolbar, '{head}')) {
                         if ($isolated_head != false) {
                             $layout_toolbar = str_replace('{head}', $isolated_head, $layout_toolbar);
                         }
                     }
                     if (strpos($layout_toolbar, '{content}')) {
                         $l = str_replace('{content}', $l, $layout_toolbar);
                     }
                     //$layout_toolbar = mw()->parser->process($layout_toolbar, $options = array('no_apc' => 1));
                 }
             }
         }
         $modify_content = event_trigger('on_load', $content);
         if ($is_editmode == true and !defined('IN_EDIT')) {
             define('IN_EDIT', true);
         }
         if (isset($is_quick_edit) and $is_quick_edit == true and !defined('QUICK_EDIT')) {
             define('QUICK_EDIT', true);
         }
         $l = $this->app->parser->process($l, $options = false);
         if ($preview_module_id != false) {
             $_REQUEST['embed_id'] = $preview_module_id;
         }
         if (isset($_REQUEST['embed_id'])) {
             $find_embed_id = trim($_REQUEST['embed_id']);
             $l = $this->app->parser->get_by_id($find_embed_id, $l);
         }
         $apijs_loaded = $this->app->template->get_apijs_url();
         //$apijs_loaded = $this->app->template->get_apijs_url() . '?id=' . CONTENT_ID;
         $is_admin = $this->app->user_manager->is_admin();
         $default_css = '<link rel="stylesheet" href="' . mw_includes_url() . 'default.css" type="text/css" />';
         $headers = event_trigger('site_header', TEMPLATE_NAME);
         $template_headers_append = '';
         $one = 1;
         if (is_array($headers)) {
             foreach ($headers as $modify) {
                 if ($modify != false and is_string($modify) and $modify != '') {
                     $template_headers_append = $template_headers_append . $modify;
                 }
             }
             if ($template_headers_append != false and $template_headers_append != '') {
                 $l = str_ireplace('</head>', $template_headers_append . '</head>', $l, $one);
             }
         }
         $template_headers_src = $this->app->template->head(true);
         $template_footer_src = $this->app->template->foot(true);
         $template_headers_src_callback = $this->app->template->head_callback($page);
         if (is_array($template_headers_src_callback) and !empty($template_headers_src_callback)) {
             foreach ($template_headers_src_callback as $template_headers_src_callback_str) {
                 if (is_string($template_headers_src_callback_str)) {
                     $template_headers_src = $template_headers_src . "\n" . $template_headers_src_callback_str;
                 }
             }
         }
         if (isset($page['created_by'])) {
             $author = $this->app->user_manager->get_by_id($page['created_by']);
             if (is_array($author) and isset($author['profile_url']) and $author['profile_url'] != false) {
                 $template_headers_src = $template_headers_src . "\n" . '<link rel="author" href="' . trim($author['profile_url']) . '" />' . "\n";
             }
         }
         if ($template_headers_src != false and is_string($template_headers_src)) {
             $l = str_ireplace('</head>', $template_headers_src . '</head>', $l, $one);
         }
         if ($template_footer_src != false and is_string($template_footer_src)) {
             $l = str_ireplace('</body>', $template_footer_src . '</body>', $l, $one);
         }
         $l = str_ireplace('<head>', '<head>' . $default_css, $l);
         if (!stristr($l, $apijs_loaded)) {
             //$apijs_settings_loaded = $this->app->template->get_apijs_settings_url() . '?id=' . CONTENT_ID . '&category_id=' . CATEGORY_ID;;
             $apijs_settings_loaded = $this->app->template->get_apijs_settings_url();
             $apijs_settings_script = "\r\n" . '<script src="' . $apijs_settings_loaded . '"></script>' . "\r\n";
             $apijs_settings_script .= '<script src="' . $apijs_loaded . '"></script>' . "\r\n";
             $l = str_ireplace('<head>', '<head>' . $apijs_settings_script, $l);
         }
         if (isset($content['active_site_template']) and $content['active_site_template'] == 'default' and $the_active_site_template != 'default' and $the_active_site_template != 'mw_default') {
             $content['active_site_template'] = $the_active_site_template;
         }
         if (isset($content['active_site_template']) and trim($content['active_site_template']) != '' and $content['active_site_template'] != 'default') {
             if (!defined('CONTENT_TEMPLATE')) {
                 define('CONTENT_TEMPLATE', $content['active_site_template']);
             }
             $custom_live_edit = TEMPLATES_DIR . DS . $content['active_site_template'] . DS . 'live_edit.css';
             $live_edit_css_folder = userfiles_path() . 'css' . DS . $content['active_site_template'] . DS;
             $live_edit_url_folder = userfiles_url() . 'css/' . $content['active_site_template'] . '/';
             $custom_live_edit = $live_edit_css_folder . DS . 'live_edit.css';
         } else {
             if (!defined('CONTENT_TEMPLATE')) {
                 define('CONTENT_TEMPLATE', $the_active_site_template);
             }
             //                if ($the_active_site_template == 'mw_default') {
             //                    $the_active_site_template = 'default';
             //                }
             $custom_live_edit = TEMPLATE_DIR . DS . 'live_edit.css';
             $live_edit_css_folder = userfiles_path() . 'css' . DS . $the_active_site_template . DS;
             $live_edit_url_folder = userfiles_url() . 'css/' . $the_active_site_template . '/';
             $custom_live_edit = $live_edit_css_folder . 'live_edit.css';
         }
         $custom_live_edit = normalize_path($custom_live_edit, false);
         if (is_file($custom_live_edit)) {
             $custom_live_editmtime = filemtime($custom_live_edit);
             $liv_ed_css = '<link rel="stylesheet" href="' . $live_edit_url_folder . 'live_edit.css?version=' . $custom_live_editmtime . '" id="mw-template-settings" type="text/css" />';
             $l = str_ireplace('</head>', $liv_ed_css . '</head>', $l);
         }
         $liv_ed_css = $this->app->template->get_custom_css_url();
         if ($liv_ed_css != false) {
             $liv_ed_css = '<link rel="stylesheet" href="' . $liv_ed_css . '" id="mw-custom-user-css" type="text/css" />';
             $l = str_ireplace('</head>', $liv_ed_css . '</head>', $l);
         }
         $website_head_tags = $this->app->option_manager->get('website_head', 'website');
         $rep_count = 1;
         if ($website_head_tags != false) {
             $l = str_ireplace('</head>', $website_head_tags . '</head>', $l, $rep_count);
         }
         if (defined('MW_VERSION')) {
             $generator_tag = "\n" . '<meta name="generator" content="Microweber" />' . "\n";
             $l = str_ireplace('</head>', $generator_tag . '</head>', $l, $rep_count);
         }
         if ($is_editmode == true and $this->isolate_by_html_id == false and !isset($_REQUEST['isolate_content_field'])) {
             if ($is_admin == true) {
                 $tb = mw_includes_path() . DS . 'toolbar' . DS . 'toolbar.php';
                 $layout_toolbar = new \Microweber\View($tb);
                 $is_editmode_basic = false;
                 $user_data = $this->app->user_manager->get();
                 if (isset($user_data['basic_mode']) and trim($user_data['basic_mode'] == 'y')) {
                     $is_editmode_basic = true;
                 }
                 if (isset($is_editmode_basic) and $is_editmode_basic == true) {
                     $layout_toolbar->assign('basic_mode', true);
                 } else {
                     $layout_toolbar->assign('basic_mode', false);
                 }
                 event_trigger('mw.live_edit');
                 $layout_toolbar = $layout_toolbar->__toString();
                 if ($layout_toolbar != '') {
                     $layout_toolbar = $this->app->parser->process($layout_toolbar, $options = array('no_apc' => 1));
                     $c = 1;
                     $l = str_ireplace('</body>', $layout_toolbar . '</body>', $l, $c);
                 }
                 $custom_live_edit = TEMPLATES_DIR . DS . TEMPLATE_NAME . DS . 'live_edit.php';
                 $custom_live_edit = normalize_path($custom_live_edit, false);
                 if (is_file($custom_live_edit)) {
                     $layout_live_edit = new \Microweber\View($custom_live_edit);
                     $layout_live_edit = $layout_live_edit->__toString();
                     if ($layout_live_edit != '') {
                         $l = str_ireplace('</body>', $layout_live_edit . '</body>', $l, $c);
                     }
                 }
             }
         } elseif ($is_editmode == false and $is_admin == true and mw()->user_manager->session_id() and !(mw()->user_manager->session_all() == false) and mw()->user_manager->session_get('back_to_editmode')) {
             if (!isset($_REQUEST['isolate_content_field']) and !isset($_REQUEST['content_id'])) {
                 $back_to_editmode = $this->app->user_manager->session_get('back_to_editmode');
                 if ($back_to_editmode == true) {
                     $tb = mw_includes_path() . DS . 'toolbar' . DS . 'toolbar_back.php';
                     $layout_toolbar = new \Microweber\View($tb);
                     $layout_toolbar = $layout_toolbar->__toString();
                     if ($layout_toolbar != '') {
                         $layout_toolbar = $this->app->parser->process($layout_toolbar, $options = array('no_apc' => 1));
                         $c = 1;
                         $l = str_ireplace('</body>', $layout_toolbar . '</body>', $l, $c);
                     }
                 }
             }
         }
         $l = str_replace('{TEMPLATE_URL}', TEMPLATE_URL, $l);
         $l = str_replace('{THIS_TEMPLATE_URL}', THIS_TEMPLATE_URL, $l);
         $l = str_replace('{DEFAULT_TEMPLATE_URL}', DEFAULT_TEMPLATE_URL, $l);
         $l = str_replace('%7BTEMPLATE_URL%7D', TEMPLATE_URL, $l);
         $l = str_replace('%7BTHIS_TEMPLATE_URL%7D', THIS_TEMPLATE_URL, $l);
         $l = str_replace('%7BDEFAULT_TEMPLATE_URL%7D', DEFAULT_TEMPLATE_URL, $l);
         $meta = array();
         $meta['content_image'] = '';
         $meta['description'] = '';
         if (is_home()) {
             $meta['content_url'] = site_url();
         } else {
             $meta['content_url'] = $this->app->url_manager->current(1);
         }
         $meta['og_description'] = $this->app->option_manager->get('website_description', 'website');
         $meta['og_type'] = 'website';
         $meta_content_id = PAGE_ID;
         if (CONTENT_ID > 0) {
             $meta_content_id = CONTENT_ID;
         }
         if ($meta_content_id > 0) {
             $meta = $this->app->content_manager->get_by_id($meta_content_id);
             $content_image = $this->app->media_manager->get_picture($meta_content_id);
             if ($content_image) {
                 $meta['content_image'] = $content_image;
             } else {
                 $meta['content_image'] = '';
             }
             $meta['content_url'] = $this->app->content_manager->link($meta_content_id);
             $meta['og_type'] = $meta['content_type'];
             if ($meta['og_type'] != 'page' and trim($meta['subtype']) != '') {
                 $meta['og_type'] = $meta['subtype'];
             }
             if ($meta['description'] != false and trim($meta['description']) != '') {
                 $meta['description'] = $meta['description'];
             } elseif ($meta['content'] != false and trim($meta['content']) != '') {
                 $meta['description'] = str_replace("\n", ' ', $this->app->format->limit($this->app->format->clean_html(strip_tags($meta['content'])), 500));
             }
             if (isset($meta['description']) and $meta['description'] != '') {
                 $meta['og_description'] = $meta['description'];
             } else {
                 $meta['og_description'] = trim($this->app->format->limit($this->app->format->clean_html(strip_tags($meta['content'])), 500));
             }
         } else {
             $meta['title'] = $this->app->option_manager->get('website_title', 'website');
             $meta['description'] = $this->app->option_manager->get('website_description', 'website');
             $meta['content_meta_keywords'] = $this->app->option_manager->get('website_keywords', 'website');
         }
         $meta['og_site_name'] = $this->app->option_manager->get('website_title', 'website');
         if (!empty($meta)) {
             if (isset($meta['content_meta_title']) and $meta['content_meta_title'] != '') {
                 $meta['title'] = $meta['content_meta_title'];
             } elseif (isset($meta['title']) and $meta['title'] != '') {
             } else {
                 $meta['title'] = $this->app->option_manager->get('website_title', 'website');
             }
             if (isset($meta['description']) and $meta['description'] != '') {
             } else {
                 $meta['description'] = $this->app->option_manager->get('website_description', 'website');
             }
             if (isset($meta['description']) and $meta['description'] != '') {
                 $meta['content_meta_description'] = strip_tags($meta['description']);
                 unset($meta['description']);
             } elseif (isset($meta['content']) and $meta['content'] != '') {
                 $meta['content_meta_description'] = strip_tags($meta['content']);
             } elseif (isset($meta['title']) and $meta['title'] != '') {
                 $meta['content_meta_description'] = strip_tags($meta['title']);
             }
             if (isset($meta['title']) and $meta['title'] != '') {
                 $meta['content_meta_title'] = strip_tags($meta['title']);
             } elseif (isset($found_mod) and $found_mod != false) {
                 $meta['content_meta_title'] = ucwords(str_replace('/', ' ', $found_mod));
             } else {
                 $meta['content_meta_title'] = ucwords(str_replace('/', ' ', $this->app->url_manager->segment(0)));
             }
             if (isset($meta['content_meta_keywords']) and $meta['content_meta_keywords'] != '') {
             } else {
                 $meta['content_meta_keywords'] = $this->app->option_manager->get('website_keywords', 'website');
             }
             if (is_array($meta)) {
                 foreach ($meta as $key => $item) {
                     if (is_string($item)) {
                         $item = html_entity_decode($item);
                         $item = strip_tags($item);
                         $item = str_replace('&amp;zwnj;', ' ', $item);
                         $item = str_replace('"', ' ', $item);
                         $item = str_replace("'", ' ', $item);
                         $item = str_replace('>', '', $item);
                         $item = str_replace('&amp;quot;', ' ', $item);
                         $item = str_replace('quot;', ' ', $item);
                         $item = str_replace('&amp;', ' ', $item);
                         $item = str_replace('amp;', ' ', $item);
                         $item = str_replace('nbsp;', ' ', $item);
                         $item = str_replace('#039;', ' ', $item);
                         $item = str_replace('&amp;nbsp;', ' ', $item);
                         $item = str_replace('&', ' ', $item);
                         $item = str_replace(';', ' ', $item);
                         $item = str_replace('  ', ' ', $item);
                         $item = str_replace(' ', ' ', $item);
                         $l = str_replace('{' . $key . '}', $item, $l);
                     } elseif ($item == false) {
                         $l = str_replace('{' . $key . '}', '', $l);
                     }
                 }
             }
         }
         if ($page != false and empty($this->page)) {
             $this->page = $page;
         }
         $l = execute_document_ready($l);
         event_trigger('frontend');
         $is_embed = $this->app->url_manager->param('embed');
         if ($is_embed != false) {
             $this->isolate_by_html_id = $is_embed;
         }
         if ($this->isolate_by_html_id != false) {
             $id_sel = $this->isolate_by_html_id;
             $this->isolate_by_html_id = false;
             require_once MW_PATH . 'Utils' . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'phpQuery.php';
             $pq = \phpQuery::newDocument($l);
             foreach ($pq['#' . $id_sel] as $elem) {
                 $l = pq($elem)->htmlOuter();
             }
         }
         if (mw()->user_manager->session_id() and !(mw()->user_manager->session_all() == false) and $is_editmode) {
             session_set('last_content_id', CONTENT_ID);
         }
         if ($output_cache_timeout != false) {
             $this->app->cache_manager->save($l, $output_cache_id, $output_cache_group);
         }
         if (isset($_REQUEST['debug'])) {
             if ($this->app->make('config')->get('app.debug')) {
                 $is_admin = $this->app->user_manager->is_admin();
                 if ($is_admin == true) {
                     include mw_includes_path() . 'debug.php';
                 }
             }
         }
         if ($show_404_to_non_admin) {
             $response = \Response::make($l);
             $response->setStatusCode(404);
             return $response;
         }
         return $l;
     } else {
         echo 'Error! Page is not found? Please login in the admin and make a page.';
         $this->app->cache_manager->clear();
         return;
     }
 }
Ejemplo n.º 2
0
 public function index($input = null)
 {
     if (!is_array($input) || empty($input)) {
         $input = Input::all();
     }
     $allowed_configs = array('database', 'microweber');
     $is_installed = mw_is_installed();
     if ($is_installed) {
         return 'Microweber is already installed!';
     }
     $view = MW_PATH . 'Views/install.php';
     $connection = Config::get('database.connections');
     $this->install_log("Preparing to install");
     if (isset($input['make_install'])) {
         if (!isset($input['db_pass'])) {
             $input['db_pass'] = '';
         }
         if (!isset($input['table_prefix'])) {
             $input['table_prefix'] = '';
         }
         $errors = array();
         if (!isset($input['db_host'])) {
             $errors[] = 'Parameter "db_host" is required';
         } else {
             $input['db_host'] = trim($input['db_host']);
         }
         if (!isset($input['db_name'])) {
             $errors[] = 'Parameter "db_name" is required';
         } else {
             $input['db_name'] = trim($input['db_name']);
         }
         if (!isset($input['db_user'])) {
             $errors[] = 'Parameter "db_user" is required';
         }
         if (!isset($input['admin_email'])) {
             $errors[] = 'Parameter "admin_email" is required';
         }
         if (!isset($input['admin_password'])) {
             $errors[] = 'Parameter "admin_password" is required';
         }
         if (!isset($input['admin_username'])) {
             $errors[] = 'Parameter "admin_username" is required';
         }
         if (!empty($errors)) {
             return implode("\n", $errors);
         }
         if (isset($input['db_driver'])) {
             $dbDriver = $input['db_driver'];
         } else {
             $dbDriver = 'mysql';
         }
         Config::set("database.default", $dbDriver);
         if ($dbDriver == 'sqlite') {
             if (isset($input['db_name_sqlite'])) {
                 $input['db_name'] = $input['db_name_sqlite'];
             }
             Config::set("database.connections.{$dbDriver}.database", $input['db_name']);
             if (!file_exists($input['db_name'])) {
                 touch($input['db_name']);
             }
         }
         Config::set("database.connections.{$dbDriver}.host", $input['db_host']);
         Config::set("database.connections.{$dbDriver}.username", $input['db_user']);
         Config::set("database.connections.{$dbDriver}.password", $input['db_pass']);
         Config::set("database.connections.{$dbDriver}.database", $input['db_name']);
         Config::set("database.connections.{$dbDriver}.prefix", $input['table_prefix']);
         if (isset($input['default_template']) and $input['default_template'] != false) {
             Config::set('microweber.install_default_template', $input['default_template']);
         }
         if (isset($input['with_default_content']) and $input['with_default_content'] != false) {
             Config::set('microweber.install_default_template_content', 1);
         }
         if (Config::get('app.key') == 'YourSecretKey!!!') {
             if (!$this->app->runningInConsole()) {
                 $_SERVER['argv'] = array();
             }
             Artisan::call('key:generate');
         }
         $this->install_log("Saving config");
         Config::save($allowed_configs);
         Cache::flush();
         $install_finished = false;
         try {
             DB::connection($dbDriver)->getDatabaseName();
         } catch (\PDOException $e) {
             return 'Error: ' . $e->getMessage() . "\n";
         } catch (\Exception $e) {
             return 'Error: ' . $e->getMessage() . "\n";
         }
         if (function_exists('set_time_limit')) {
             @set_time_limit(0);
         }
         $this->install_log("Setting up database");
         $installer = new Install\DbInstaller();
         $installer->run();
         $installer = new Install\WebserverInstaller();
         $installer->run();
         $this->install_log("Setting up template");
         $installer = new Install\TemplateInstaller();
         $installer->run();
         $this->install_log("Setting up default options");
         $installer = new Install\DefaultOptionsInstaller();
         $installer->run();
         Config::set('microweber.is_installed', 1);
         if (isset($input['admin_password']) && strlen($input['admin_password'])) {
             $this->install_log("Adding admin user");
             $adminUser = new \User();
             $adminUser->username = $input['admin_username'];
             $adminUser->email = $input['admin_email'];
             $adminUser->password = $input['admin_password'];
             $adminUser->is_admin = 1;
             $adminUser->is_active = 1;
             $adminUser->save();
             Config::set('microweber.has_admin', 1);
         }
         $this->install_log("Saving ready config");
         Config::save($allowed_configs);
         $this->install_log("done");
         return 'done';
     }
     $layout = new View($view);
     $defaultDbEngine = Config::get('database.default');
     if (extension_loaded('pdo_sqlite')) {
         // $defaultDbEngine = 'sqlite';
     }
     $dbEngines = Config::get('database.connections');
     foreach ($dbEngines as $driver => $v) {
         if (!extension_loaded("pdo_{$driver}")) {
             unset($dbEngines[$driver]);
         }
     }
     $viewData = ['config' => $dbEngines[$defaultDbEngine], 'dbDefaultEngine' => $defaultDbEngine, 'dbEngines' => array_keys($dbEngines), 'dbEngineNames' => ['mysql' => 'MySQL', 'sqlite' => 'SQLite', 'sqlsrv' => 'Microsoft SQL Server', 'pgsql' => 'PostgreSQL']];
     $domain = false;
     if (isset($_SERVER['HTTP_HOST'])) {
         $domain = $_SERVER['HTTP_HOST'];
         $domain = str_replace('www.', '', $domain);
         $domain = str_replace('.', '_', $domain);
         $domain = str_replace('-', '_', $domain);
         $domain = substr($domain, 0, 10);
     }
     if (!$viewData['config']['prefix'] and $domain) {
         $viewData['config']['prefix'] = $domain . '_';
     }
     if (extension_loaded('pdo_sqlite') and $domain) {
         $sqlite_path = normalize_path(storage_path() . DS . $domain . '.sqlite', false);
         $viewData['config']['db_name_sqlite'] = $sqlite_path;
     }
     $layout->set($viewData);
     $is_installed = mw_is_installed();
     if ($is_installed) {
         App::abort(403, 'Unauthorized action. Microweber is already installed.');
     }
     $layout->assign('done', $is_installed);
     $layout = $layout->__toString();
     return $layout;
 }
Ejemplo n.º 3
0
 function index($params)
 {
     if (is_admin() == false) {
         return;
     }
     if (isset($params['content_type']) and $params['content_type'] == 'category') {
         print load_module('categories/edit_category', $params);
         return;
     }
     $data = false;
     $just_saved = false;
     $is_new_content = false;
     $is_current = false;
     $is_live_edit = false;
     if (!isset($is_quick)) {
         $is_quick = false;
     }
     //	if (isset($params['is_shop'])) {
     //            if (trim($params['is_shop']) == 'y') {
     //				$params['is_shop'] = 1;
     //			} else if (trim($params['is_shop']) == 'n') {
     //				$params['is_shop'] = 0;
     //			}
     //        }
     if (isset($params['live_edit'])) {
         $is_live_edit = $params['live_edit'];
     } elseif (isset($params['from_live_edit'])) {
         $is_live_edit = $params['from_live_edit'];
     }
     if (isset($params['quick_edit'])) {
         $is_quick = $params['quick_edit'];
     }
     if ($is_live_edit == true) {
         $is_quick = false;
     }
     if (isset($params['just-saved'])) {
         $just_saved = $params['just-saved'];
     }
     if (isset($params['is-current'])) {
         $is_current = $params['is-current'];
     }
     if (isset($params['page-id'])) {
         $data = $this->app->content_manager->get_by_id(intval($params["page-id"]));
     }
     if (isset($params['content-id'])) {
         $data = $this->app->content_manager->get_by_id(intval($params["content-id"]));
     }
     $recommended_parent = false;
     if (isset($params['recommended_parent']) and $params['recommended_parent'] != false) {
         $recommended_parent = $params['recommended_parent'];
     } elseif (isset($params['parent']) and $params['parent'] != false) {
         $recommended_parent = $params['parent'];
     }
     // dd($params);
     $categories_active_ids = false;
     $title_placeholder = false;
     if (isset($params['category']) and $params['category'] != false) {
         $categories_active_ids = $params['category'];
     } elseif (isset($params['selected-category-id']) and $params['selected-category-id'] != false) {
         $categories_active_ids = $params['selected-category-id'];
     }
     /* FILLING UP EMPTY CONTENT WITH DATA */
     if ($data == false or empty($data)) {
         $is_new_content = true;
         $data = $this->empty_data;
         if (isset($params['content_type'])) {
             $data['content_type'] = $params['content_type'];
         }
         if (isset($params['subtype'])) {
             $data['subtype'] = $params['subtype'];
             if ($data['subtype'] == 'post') {
                 $data['content_type'] = 'post';
             }
         }
         if (isset($data['content_type']) and $data['content_type'] == 'post' and $data['subtype'] == 'static') {
             $data['subtype'] = 'post';
         } else {
             if (isset($data['content_type']) and $data['content_type'] == 'product' and $data['subtype'] == 'static') {
                 $data['content_type'] = 'product';
                 $data['subtype'] = 'product';
             }
         }
     }
     if (isset($params['add-to-menu'])) {
         $data['add_to_menu'] = $params["add-to-menu"];
     }
     /* END OF FILLING UP EMPTY CONTENT  */
     /* SETTING PARENT AND ACTIVE CATEGORY */
     $forced_parent = false;
     if (intval($data['id']) == 0 and intval($data['parent']) == 0 and isset($params['parent-category-id']) and $params['parent-category-id'] != 0 and !isset($params['parent-page-id'])) {
         $cat_page = get_page_for_category($params['parent-category-id']);
         if (is_array($cat_page) and isset($cat_page['id'])) {
             $forced_parent = $params['parent-page-id'] = $cat_page['id'];
         }
     }
     if (intval($data['id']) == 0 and intval($data['parent']) == 0 and isset($params['parent-page-id'])) {
         $data['parent'] = $params['parent-page-id'];
         if (isset($params['content_type']) and $params['content_type'] == 'product') {
             $parent_content = $this->app->content_manager->get_by_id($params['parent-page-id']);
             // if(!isset($parent_content['is_shop']) or $parent_content['is_shop'] != 1){
             // $data['parent'] = 0;
             // }
         }
         if (isset($params['parent-category-id']) and $params['parent-category-id'] != 0) {
             $categories_active_ids = $params['parent-category-id'];
         }
     } else {
         if (intval($data['id']) != 0) {
             $categories = $this->app->category_manager->get_for_content($data['id']);
             if (is_array($categories)) {
                 $c = array();
                 foreach ($categories as $category) {
                     $c[] = $category['id'];
                 }
                 $categories_active_ids = implode(',', $c);
             }
         }
     }
     /* END OF SETTING PARENT AND ACTIVE CATEGORY  */
     if ($recommended_parent != false and $data['parent'] == 0) {
         $data['parent'] = $recommended_parent;
     }
     /* SETTING PARENT AND CREATING DEFAULT BLOG OR SHOP IF THEY DONT EXIST */
     if ($recommended_parent != false and intval($data['id']) == 0) {
         if (isset($data['subtype']) and $data['subtype'] == 'post') {
             if (isset($data['is_shop']) and $data['is_shop'] == 0) {
                 $parent_content = $this->app->content_manager->get_by_id($recommended_parent);
                 if (isset($parent_content['is_shop']) and $parent_content['is_shop'] == 1) {
                     $parent_content_params = array();
                     $parent_content_params['subtype'] = 'dynamic';
                     $parent_content_params['content_type'] = 'page';
                     $parent_content_params['limit'] = 1;
                     $parent_content_params['one'] = 1;
                     $parent_content_params['fields'] = 'id';
                     $parent_content_params['order_by'] = 'posted_at desc, updated_at desc';
                     $parent_content_params['is_shop'] = 0;
                     $parent_content = $this->app->content_manager->get($parent_content_params);
                     if (isset($parent_content['id']) and $parent_content['id'] != 0) {
                         $data['parent'] = $recommended_parent = $parent_content['id'];
                         $categories_active_ids = false;
                     }
                 }
             }
         }
     }
     if ($recommended_parent == false and intval($data['id']) == 0 and intval($data['parent']) == 0) {
         $parent_content_params = array();
         $parent_content_params['subtype'] = 'dynamic';
         $parent_content_params['content_type'] = 'page';
         $parent_content_params['limit'] = 1;
         $parent_content_params['one'] = 1;
         $parent_content_params['parent'] = 0;
         $parent_content_params['fields'] = 'id';
         $parent_content_params['order_by'] = 'posted_at desc, updated_at desc';
         if (isset($params['subtype']) and $params['subtype'] == 'post') {
             $parent_content_params['is_shop'] = 0;
             $parent_content_params['is_home'] = 0;
             $parent_content = $this->app->content_manager->get($parent_content_params);
             if (!isset($parent_content['id'])) {
                 unset($parent_content_params['parent']);
                 $parent_content = $this->app->content_manager->get($parent_content_params);
             }
             if (isset($parent_content['id'])) {
                 $data['parent'] = $parent_content['id'];
             } else {
                 $this->app->content_manager->create_default_content('blog');
                 $parent_content_params['no_cache'] = true;
                 $parent_content = $this->app->content_manager->get($parent_content_params);
             }
         } elseif (isset($params['subtype']) and $params['content_type'] == 'product') {
             $parent_content_params['is_shop'] = 1;
             $parent_content = $this->app->content_manager->get($parent_content_params);
             if (isset($parent_content['id'])) {
                 $data['parent'] = $parent_content['id'];
             } else {
                 $this->app->content_manager->create_default_content('shop');
                 $parent_content_params['no_cache'] = true;
                 $parent_content = $this->app->content_manager->get($parent_content_params);
             }
         }
         if (isset($parent_content) and isset($parent_content['id'])) {
             $data['parent'] = $parent_content['id'];
         }
     } elseif ($forced_parent == false and (intval($data['id']) == 0 and intval($data['parent']) != 0) and isset($data['subtype']) and $data['content_type'] == 'product') {
         //if we are adding product in a page that is not a shop
         $parent_shop_check = $this->app->content_manager->get_by_id($data['parent']);
         if (!isset($parent_shop_check['is_shop']) or $parent_shop_check['is_shop'] != 1) {
             $parent_content_shop = $this->app->content_manager->get('content_type=page&order_by=updated_at desc&one=true&is_shop=0');
             if (isset($parent_content_shop['id'])) {
                 $data['parent'] = $parent_content_shop['id'];
             }
         }
     } elseif ($forced_parent == false and (intval($data['id']) == 0 and intval($data['parent']) != 0) and isset($data['subtype']) and $data['subtype'] == 'post') {
         $parent_shop_check = $this->app->content_manager->get_by_id($data['parent']);
         if (!isset($parent_shop_check['content_type']) or $parent_shop_check['content_type'] != 'page') {
             $parent_content_shop = $this->app->content_manager->get('order_by=updated_at desc&one=true&content_type=page&subtype=dynamic&is_shop=1');
             if (isset($parent_content_shop['id'])) {
                 $data['parent'] = $parent_content_shop['id'];
             }
         }
     }
     /* END OF SETTING PARENT AND CREATING DEFAULT BLOG OR SHOP IF THEY DONT EXIST */
     $module_id = $params['id'];
     $post_list_view = $this->views_dir . 'edit.php';
     $this->app->event_manager->trigger('module.content.edit.main', $data);
     //d($params);
     //d($data['content_type']);
     //d($data);
     $view = new View($post_list_view);
     $view->assign('params', $params);
     $view->assign('module_id', $module_id);
     $view->assign('just_saved', $just_saved);
     $view->assign('is_new_content', $is_new_content);
     $view->assign('is_current', $is_current);
     $view->assign('is_live_edit', $is_live_edit);
     $view->assign('recommended_parent', $recommended_parent);
     $view->assign('categories_active_ids', $categories_active_ids);
     $view->assign('title_placeholder', $title_placeholder);
     $view->assign('rand', rand());
     $view->assign('data', $data);
     $view->assign('is_quick', $is_quick);
     return $view->display();
 }
Ejemplo n.º 4
0
 function index($params)
 {
     if (isset($params['manage_categories'])) {
         print load_module('categories/manage', $params);
         return;
     }
     if (isset($params['is_shop']) and $params['is_shop'] == 'y') {
         $params['is_shop'] = 1;
     } else {
         if (isset($params['is_shop']) and $params['is_shop'] == 'n') {
             $params['is_shop'] = 0;
         }
     }
     $no_page_edit = false;
     $posts_mod = array();
     // $posts_mod['type'] = 'content/admin_posts_list';
     if (isset($params['data-page-id'])) {
         $posts_mod['page-id'] = $params['data-page-id'];
     }
     if (isset($params['no_page_edit'])) {
         $no_page_edit = $params['no_page_edit'];
     }
     if (isset($params['keyword'])) {
         $posts_mod['search_by_keyword'] = $params['keyword'];
     }
     if (isset($params['content_type']) and $params['content_type'] != false) {
         $posts_mod['content_type'] = $params['content_type'];
     }
     if (isset($params['subtype']) and $params['subtype'] != false) {
         $posts_mod['subtype'] = $params['subtype'];
     }
     if (isset($params['is_shop']) and $params['is_shop'] == 1) {
         $posts_mod['content_type'] = 'product';
     } else {
         if (isset($params['is_shop']) and $params['is_shop'] == 0) {
             $posts_mod['subtype'] = 'post';
         }
     }
     if (isset($params['content_type']) and $params['content_type'] == 'product') {
         $posts_mod['content_type'] = 'product';
         // $posts_mod['content_type'] = 'post';
     }
     if (isset($params['content_type']) and $params['content_type'] == 'post') {
         if (!isset($params['subtype']) or $params['subtype'] == false) {
             //	$posts_mod['subtype'] = 'post';
         }
     }
     if (isset($params['content_type_filter']) and $params['content_type_filter'] != '') {
         $posts_mod['content_type'] = $params['content_type_filter'];
     }
     if (isset($params['subtype_filter']) and $params['subtype_filter'] != '') {
         $posts_mod['subtype'] = $params['subtype_filter'];
     }
     if (!isset($params['category-id']) and isset($params['page-id']) and $params['page-id'] != 'global') {
         $check_if_exist = $this->provider->get_by_id($params['page-id']);
         if (is_array($check_if_exist)) {
             if (isset($check_if_exist['is_shop']) and trim($check_if_exist['is_shop']) == 1) {
                 //  $posts_mod['subtype'] = 'product';
             }
         }
     }
     $page_info = false;
     if (isset($params['page-id'])) {
         if ($params['page-id'] == 'global') {
             if (isset($params['is_shop']) and $params['is_shop'] == 1) {
                 $page_info = $this->provider->get('limit=1&one=1&content_type=page&is_shop=0');
             }
         } else {
             $page_info = $this->provider->get_by_id($params['page-id']);
             if (isset($page_info['is_shop']) and trim($page_info['is_shop']) == 1) {
                 //  $posts_mod['subtype'] = 'product';
             }
         }
     }
     if (isset($params['category-id']) and $params['category-id'] != 'global') {
         $check_if_exist = $this->category_provider->get_page($params['category-id']);
         if (is_array($check_if_exist)) {
             $page_info = $check_if_exist;
             if (isset($check_if_exist['is_shop']) and trim($check_if_exist['is_shop']) == 1) {
                 $posts_mod['content_type'] = 'product';
             } else {
                 // $posts_mod['subtype'] = $check_if_exist['subtype'];
             }
         }
     }
     $posts_mod['paging_param'] = 'pg';
     $posts_mod['orderby'] = 'position desc';
     if (isset($posts_mod['page-id'])) {
         $posts_mod['parent'] = $posts_mod['page-id'];
     }
     if (isset($params['pg'])) {
         $posts_mod['pg'] = $params['pg'];
     }
     if (isset($params['data-category-id'])) {
         $posts_mod['category'] = $params['data-category-id'];
     } else {
         if (isset($params['parent-category-id'])) {
             $posts_mod['category'] = $params['parent-category-id'];
         } elseif (isset($params['category-id'])) {
             $posts_mod['category'] = $params['category-id'];
         }
     }
     if (isset($params[$posts_mod['paging_param']])) {
         $posts_mod['page'] = $params[$posts_mod['paging_param']];
     }
     $keyword = false;
     if (isset($posts_mod['search_by_keyword'])) {
         $keyword = strip_tags($posts_mod['search_by_keyword']);
     }
     if (isset($params['parent-page-id'])) {
         $posts_mod['parent'] = intval($params['parent-page-id']);
     }
     $data = $this->provider->get($posts_mod);
     if (empty($data) and isset($posts_mod['page'])) {
         if (isset($posts_mod['paging_param'])) {
             $posts_mod[$posts_mod['paging_param']] = 1;
         }
         unset($posts_mod['page']);
         $data = $this->provider->get($posts_mod);
     }
     $post_params_paging = $posts_mod;
     $post_params_paging['page_count'] = true;
     $pages = $this->provider->get($post_params_paging);
     $this->event_manager->trigger('module.content.manager', $posts_mod);
     $post_toolbar_view = $this->views_dir . 'toolbar.php';
     $toolbar = new View($post_toolbar_view);
     $toolbar->assign('page_info', $page_info);
     $toolbar->assign('keyword', $keyword);
     $toolbar->assign('params', $params);
     $post_list_view = $this->views_dir . 'manager.php';
     if ($no_page_edit == false) {
         if ($data == false) {
             if (isset($posts_mod['category-id']) and isset($page_info['content_type']) and $page_info['content_type'] == 'page' and $page_info['subtype'] != 'static') {
                 if (isset($posts_mod['category-id']) and $posts_mod['category-id'] != 0) {
                 } else {
                     $manager = new Edit();
                     return $manager->index($params);
                 }
             } elseif (isset($page_info['content_type']) and $page_info['content_type'] == 'page' and isset($page_info['subtype']) and isset($page_info['id'])) {
                 if ($page_info['subtype'] != 'dynamic') {
                     $manager = new Edit();
                     return $manager->index($params);
                 }
             }
         }
     }
     $view = new View($post_list_view);
     $view->assign('params', $params);
     $view->assign('page_info', $page_info);
     $view->assign('toolbar', $toolbar);
     $view->assign('data', $data);
     $view->assign('pages', $pages);
     $view->assign('keyword', $keyword);
     $view->assign('post_params', $posts_mod);
     $view->assign('paging_param', $posts_mod['paging_param']);
     return $view->display();
 }