/** !! * After submitting page changes fill out the array * { @link $new_page_settings } with the different pages elements: * left, right, middle, javascripts and css. Afterwards call * { @link set_inner_template() } and { @link generate_inner_html() } to * update the page html. * @param array $request_data data from the server to configure the page with */ function handlePOSTPageSubmit($request_data) { global $error_msg; if (isset($request_data['form_data'])) { $new_page_settings = $request_data['form_data']; $new_page_settings['left'] = array(); $new_page_settings['middle'] = array(); $new_page_settings['right'] = array(); $new_page_settings['javascripts'] = array(); $new_page_settings['page_css'] = array(); if (!empty($request_data['form_data']['left'])) { $new_page_settings['left'] = explode(',', $request_data['form_data']['left']); } if (!empty($request_data['form_data']['middle'])) { $new_page_settings['middle'] = explode(',', $request_data['form_data']['middle']); } if (!empty($request_data['form_data']['right'])) { $new_page_settings['right'] = explode(',', $request_data['form_data']['right']); } if (!empty($request_data['form_data']['javascripts'])) { $new_page_settings['javascripts'] = explode(',', $request_data['form_data']['javascripts']); } if (!empty($request_data['form_data']['page_css'])) { $new_page_settings['page_css'] = explode(',', $request_data['form_data']['page_css']); } if (!empty($request_data['form_data']['navigation_code'])) { $code = trim($request_data['form_data']['navigation_code']); $new_page_settings['navigation_code'] = $code; } if (!empty($request_data['form_data']['boot_code'])) { $bcode = trim($request_data['form_data']['boot_code']); $new_page_settings['boot_code'] = $bcode; } $page_settings = array(); try { $dyn = new DynamicPage($new_page_settings['page_id']); $dyn->initialize(); $save_page = isset($request_data['save_page']) ? true : false; $page_settings = $dyn->buildPageSettings($new_page_settings); $serialized_settings = serialize($page_settings); $this->set_inner_template('submit_success_inner.tpl'); $this->inner_HTML = $this->generate_inner_html(array('page_id' => $this->page_id, 'page_settings' => $page_settings, 'serialized_settings' => $serialized_settings, 'save_page' => $save_page, 'adm_permissions' => $this->adm_permissions)); } catch (DynamicPageException $e) { $error_msg = $e->getMessage(); } } }
} } global $use_theme; // Theme name defined in page XML config file try { $save_page = $app->getRequestParam('save'); $new_page_settings = $app->getRequestParam('page_settings') ? unserialize(urldecode($app->getRequestParam('page_settings'))) : null; $cache_id = "dyn_page_{$req_page}"; if (FileCache::is_cached($cache_id)) { $dynamic_page = FileCache::fetch($cache_id); $page_settings = $dynamic_page->buildPageSettings($new_page_settings); } else { $dynamic_page = new DynamicPage($req_page); $dynamic_page->initialize(); $dynamic_page->save_page = $save_page; $page_settings = $dynamic_page->buildPageSettings($new_page_settings); FileCache::store($cache_id, $dynamic_page, 1200); } // Force login if we're on a private network, unless we're on login.php, register.php or dologin.php. $login_required = $page_settings['page_mode'] != 'public' ? true : false; if (!$login_required && PA::$network_info->is_private() && !@$login_never_required) { $login_required = TRUE; } // Check user session / login status, and redirect to login page (or // request page, for private networks) if required. if (!check_session($login_required, @$page_redirect_function)) { if ($login_required) { exit; } } $use_theme = $page_settings['page_theme'];