function perform(&$request, &$response) { if($request->has_attribute('popup')) $response->write(close_popup_no_parent_reload_response()); $request->set_status(REQUEST_STATUS_FAILURE); if(!$version = $request->get_attribute('version')) return; if(!$node_id = $request->get_attribute('version_node_id')) return; if(!$site_object = wrap_with_site_object(fetch_one_by_node_id((int)$node_id))) return; if(!is_subclass_of($site_object, 'content_object')) return; if(!$site_object->recover_version((int)$version)) return; if($request->has_attribute('popup')) $response->write(close_popup_response($request)); $request->set_status(REQUEST_STATUS_SUCCESS); }
function _valid_perform(&$request, &$response) { $locale_id = $this->dataspace->get('locale_id'); $object_data = $this->_load_object_data(); $site_object =& wrap_with_site_object($object_data); $site_object->set_locale_id($locale_id); $site_object->update(false); $request->set_status(REQUEST_STATUS_FORM_SUBMITTED); if($request->has_attribute('popup')) $response->write(close_popup_response($request)); if(!$this->dataspace->get('locale_recursive')) return; $params = array('depth' => -1, 'restrict_by_class' => false ); $objects = fetch_sub_branch($object_data['path'], 'site_object', $counter, $params); foreach ($objects as $object_id => $object_data) { $site_object =& wrap_with_site_object($object_data); $site_object->set_locale_id($locale_id); $site_object->update(false); } }
function run(&$filter_chain, &$request, &$response) { debug::add_timing_point('authentication filter started'); if (!($object_data = fetch_requested_object($request))) { if (!($node = map_request_to_node($request))) { if (defined('ERROR_DOCUMENT_404')) { $response->redirect(ERROR_DOCUMENT_404); } else { $response->header("HTTP/1.1 404 Not found"); } return; } $response->redirect('/root/login?redirect=' . urlencode($_SERVER['REQUEST_URI'])); return; } $object =& wrap_with_site_object($object_data); $site_object_controller =& $object->get_controller(); if (($action = $site_object_controller->determine_action($request)) === false) { debug::write_error('"' . $action . '" action not found', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__); if (defined('ERROR_DOCUMENT_404')) { $response->redirect(ERROR_DOCUMENT_404); } else { $response->header("HTTP/1.1 404 Not found"); } debug::add_timing_point('authentication filter finished'); $filter_chain->next(); return; } $actions = $object->get_attribute('actions'); if (!isset($actions[$action])) { $response->redirect('/root/login?redirect=' . urlencode($_SERVER['REQUEST_URI'])); } debug::add_timing_point('authentication filter finished'); $filter_chain->next(); }
function &get_dataset(&$counter, $params = array()) { $counter = 0; $request = request::instance(); if (!($version = $request->get_attribute('version'))) { return new empty_dataset(); } if (!($node_id = $request->get_attribute('version_node_id'))) { return new empty_dataset(); } $version = (int) $version; $node_id = (int) $node_id; if (!($site_object = wrap_with_site_object(fetch_one_by_node_id($node_id)))) { return new empty_dataset(); } if (!is_subclass_of($site_object, 'content_object')) { return new empty_dataset(); } if (($version_data = $site_object->fetch_version($version)) === false) { return new empty_dataset(); } $result = array(); foreach ($version_data as $attrib => $value) { $data['attribute'] = $attrib; $data['value'] = $value; $result[] = $data; } return new array_dataset($result); }
function _valid_perform() { $data = $this->dataspace->export(); if (!isset($data['ids']) || !is_array($data['ids'])) { return new close_popup_response(RESPONSE_STATUS_FAILURE); } $objects = $this->_get_objects(array_keys($data['ids'])); foreach ($objects as $id => $item) { if (!isset($item['actions']['publish']) || !isset($item['actions']['unpublish'])) { continue; } $object = wrap_with_site_object($item); $status = $object->get_attribute('status'); if ($status & SITE_OBJECT_PUBLISHED_STATUS) { $status &= !SITE_OBJECT_PUBLISHED_STATUS; $action = 'unpublish'; } else { $status |= SITE_OBJECT_PUBLISHED_STATUS; $action = 'publish'; } $object->set_attribute('status', $status); $object->update(false); $this->_apply_access_policy($object, $action); } return new close_popup_response(); }
function & get_dataset(&$counter, $params=array()) { $counter = 0; if(!isset($_REQUEST['version'])) return new empty_dataset(); if(!isset($_REQUEST['version_node_id'])) return new empty_dataset(); $version = (int)$_REQUEST['version']; $node_id = (int)$_REQUEST['version_node_id']; if(!$site_object = wrap_with_site_object(fetch_one_by_node_id($node_id))) return new empty_dataset(); if(!is_subclass_of($site_object, 'content_object')) return new empty_dataset(); if(($version_data = $site_object->fetch_version($version)) === false) return new empty_dataset(); $result = array(); foreach($version_data as $attrib => $value) { $data['attribute'] = $attrib; $data['value'] = $value; $result[] = $data; } return new array_dataset($result); }
function perform() { if(!$object = wrap_with_site_object(fetch_mapped_by_url())) return new close_popup_response(); $site_object_controller =& $object->get_controller(); $action = $site_object_controller->determine_action(); switch ($action) { case 'publish': $status = $this->get_publish_status($object); break; case 'unpublish': $status = $this->get_unpublish_status($object); break; default: return new close_popup_response(); break; } $object->set_attribute('status', $status); $object->update(false); $this->_apply_access_policy($object, $action); return new close_popup_response(); }
function _valid_perform(&$request, &$response) { if ($request->has_attribute('popup')) { $response->write(close_popup_response($request)); } $data = $this->dataspace->export(); if (!isset($data['ids']) || !is_array($data['ids'])) { $request->set_status(REQUEST_STATUS_FAILURE); return; } $objects = $this->_get_objects(array_keys($data['ids'])); foreach ($objects as $id => $item) { if (!isset($item['actions']['publish']) || !isset($item['actions']['unpublish'])) { continue; } $object = wrap_with_site_object($item); $status = $object->get_attribute('status'); if ($status & SITE_OBJECT_PUBLISHED_STATUS) { $status &= ~SITE_OBJECT_PUBLISHED_STATUS; $action = 'unpublish'; } else { $status |= SITE_OBJECT_PUBLISHED_STATUS; $action = 'publish'; } $object->set_attribute('status', $status); $object->update(false); $this->_apply_access_policy($object, $action); } $request->set_status(REQUEST_STATUS_SUCCESS); }
function _can_parent_accept_node($parent_node_id, $node_id) { if(!$parent_object = wrap_with_site_object(fetch_one_by_node_id($parent_node_id))) { debug :: write_error('acceptor node is not accessible', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__, array( 'parent_node_id' => $parent_node_id ) ); return false; } if(!$target_data = fetch_one_by_node_id($node_id)) { debug :: write_error('node is not accessible', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__, array( 'node_id' => $node_id ) ); return false; } return $parent_object->can_accept_child_class($target_data['class_name']); }
function perform(&$request, &$response) { $request->set_status(REQUEST_STATUS_SUCCESS); if ($request->has_attribute('popup')) { $response->write(close_popup_response($request)); } if (!($object = wrap_with_site_object(fetch_requested_object()))) { return; } $site_object_controller =& $object->get_controller(); $action = $site_object_controller->determine_action($request); switch ($action) { case 'publish': $status = $this->get_publish_status($object); break; case 'unpublish': $status = $this->get_unpublish_status($object); break; default: return; break; } $object->set_attribute('status', $status); $object->update(false); $this->_apply_access_policy($object, $action); flush_fetcher_cache(); }
function _get_template_path_from_node($node_id) { if (!($site_object =& wrap_with_site_object(fetch_one_by_node_id($node_id)))) { return null; } $controller =& $site_object->get_controller(); return $controller->get_action_property($controller->get_default_action(), 'template_path'); }
function run(&$filter_chain, &$request, &$response) { debug :: add_timing_point('authentication filter started'); if(!$object_data = fetch_requested_object($request)) { if(!$node = map_request_to_node($request)) { if(defined('ERROR_DOCUMENT_404')) $response->redirect(ERROR_DOCUMENT_404); else $response->header("HTTP/1.1 404 Not found"); return; } $response->redirect('/root/login?redirect='. urlencode($request->to_string())); return; } $object =& wrap_with_site_object($object_data); $site_object_controller =& $object->get_controller(); if(($action = $site_object_controller->determine_action($request)) === false) { debug :: write_error('"'. $action . '" action not found', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__); if(defined('ERROR_DOCUMENT_404')) $response->redirect(ERROR_DOCUMENT_404); else $response->header("HTTP/1.1 404 Not found"); debug :: add_timing_point('authentication filter finished'); $filter_chain->next(); return; } $actions = $object->get_attribute('actions'); if(!isset($actions[$action])) { $redirect_path = $site_object_controller->get_action_property($action, 'inaccessible_redirect'); if(!$redirect_path) $redirect_path = '/root/login'; $redirect_strategy =& $this->_get_redirect_strategy($site_object_controller, $action); $response->set_redirect_strategy($redirect_strategy); $response->redirect($redirect_path . '?redirect='. urlencode($request->to_string())); } debug :: add_timing_point('authentication filter finished'); $filter_chain->next(); }
function _valid_perform() { $object =& wrap_with_site_object(fetch_mapped_by_url()); if (!$object->delete()) { message_box::write_notice('Can not be deleted!'); return new failed_response(); } return new close_popup_response(RESPONSE_STATUS_FORM_SUBMITTED, RELOAD_SELF_URL, true); }
function run(&$filter_chain, &$request, &$response) { $filter_chain->next(); debug::add_timing_point('logging filter started'); $object = wrap_with_site_object(fetch_requested_object($request)); $controller = $object->get_controller(); include_once LIMB_DIR . 'core/model/stats/stats_register.class.php'; $stats_register = new stats_register(); $stats_register->register($object->get_node_id(), $controller->get_action(), $request->get_status()); debug::add_timing_point('logging filter finished'); }
function run(&$filter_chain, &$request, &$response) { debug::add_timing_point('site object controller filter started'); $site_object =& wrap_with_site_object(fetch_requested_object($request)); $site_object_controller =& $site_object->get_controller(); $site_object_controller->process($request, $response); if ($response->is_empty()) { $site_object_controller->display_view(); } debug::add_timing_point('site object controller filter finished'); $filter_chain->next(); }
function _valid_perform(&$request, &$response) { $object =& wrap_with_site_object(fetch_requested_object()); if (!$object->delete()) { message_box::write_notice(strings::get('cant_be_deleted', 'error')); $request->set_status(REQUEST_STATUS_FAILURE); return; } $request->set_status(REQUEST_STATUS_FORM_SUBMITTED); if ($request->has_attribute('popup')) { $response->write(close_popup_response($request, RELOAD_SELF_URL, true)); } }
function get_current_template_source_link() { if (!($site_object = wrap_with_site_object(fetch_mapped_by_url()))) { return ''; } $site_object_controller = $site_object->get_controller(); if (($action = $site_object_controller->determine_action()) === false) { return ''; } if (!($template_path = $site_object_controller->get_action_property($action, 'template_path'))) { return ''; } return '/root/template_source?t[]=' . $template_path; }
function _valid_perform(&$request, &$response) { $node_id = $this->dataspace->get('id'); if (!($object = wrap_with_site_object(fetch_one_by_node_id($node_id)))) { $request->set_status(REQUEST_STATUS_FAILURE); return; } $object->set_attribute('controller_id', site_object_controller::get_id($this->dataspace->get('controller_name'))); $object->update(false); $request->set_status(REQUEST_STATUS_SUCCESS); if ($request->has_attribute('popup')) { $response->write(close_popup_response($request)); } }
function get_current_template_source_link() { if(!$site_object = wrap_with_site_object(fetch_requested_object())) return ''; $site_object_controller = $site_object->get_controller(); if(($action = $site_object_controller->determine_action()) === false) return ''; if(!$template_path = $site_object_controller->get_action_property($action, 'template_path')) return ''; return '/root/template_source?t[]=' . $template_path; }
function perform(&$request, &$response) { $request->set_status(REQUEST_STATUS_SUCCESS); if ($request->has_attribute('popup')) { $response->write(close_popup_response($request)); } if (!($object = wrap_with_site_object(fetch_requested_object()))) { return; } $status = $this->get_status($object); $object->set_attribute('status', $status); $object->update(false); $this->_apply_access_policy($object); flush_fetcher_cache(); }
function perform() { if (!isset($_REQUEST['version'])) { return new close_popup_no_reload_response(RESPONSE_STATUS_FAILURE); } if (!isset($_REQUEST['version_node_id'])) { return new close_popup_no_reload_response(RESPONSE_STATUS_FAILURE); } $version = (int) $_REQUEST['version']; $node_id = (int) $_REQUEST['version_node_id']; if (!($site_object = wrap_with_site_object(fetch_one_by_node_id($node_id)))) { return new close_popup_no_reload_response(RESPONSE_STATUS_FAILURE); } if (!is_subclass_of($site_object, 'content_object')) { return new close_popup_no_reload_response(RESPONSE_STATUS_FAILURE); } if ($site_object->recover_version($version)) { return new close_popup_response(RESPONSE_STATUS_SUCCESS); } else { return new close_popup_no_reload_response(RESPONSE_STATUS_FAILURE); } }
function _get_objects_to_delete($node_ids) { $params = array('restrict_by_class' => false); $objects =& fetch_by_node_ids($node_ids, 'site_object', $counter, $params); foreach ($objects as $id => $item) { if (!isset($item['actions']['delete'])) { $objects[$id]['delete_status'] = 1; $objects[$id]['delete_reason'] = strings::get('delete_action_not_accessible', 'error'); continue; } $site_object =& wrap_with_site_object($item); if (!$site_object->can_delete()) { $objects[$id]['delete_status'] = 1; $objects[$id]['delete_reason'] = strings::get('cant_be_deleted', 'error'); continue; } $objects[$id]['delete_reason'] = strings::get('ok'); $objects[$id]['delete_status'] = 0; $objects[$id]['ids'][$item['node_id']] = 1; } return $objects; }
function &_get_mapped_controller() { $object =& wrap_with_site_object(fetch_requested_object()); $controller =& $object->get_controller(); return $controller; }
function run(&$filter_chain, &$request, &$response) { debug :: add_timing_point('authentication filter started'); if(!$object_data = fetch_requested_object($request)) { if(!$node = map_request_to_node($request)) { if(defined('ERROR_DOCUMENT_404')) $response->redirect(ERROR_DOCUMENT_404); else $response->header("HTTP/1.1 404 Not found"); return; } $user =& user :: instance(); if (!$user->is_logged_in()) { $tree = tree :: instance(); $response->redirect('/root/login?redirect='. $tree->get_path_to_node($node)); return; } else { debug :: write_error('content object not allowed or retrieved', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__); if(defined('ERROR_DOCUMENT_403')) $response->redirect(ERROR_DOCUMENT_403); else $response->header("HTTP/1.1 403 Access denied"); return; } } $object =& wrap_with_site_object($object_data); $site_object_controller =& $object->get_controller(); if(($action = $site_object_controller->determine_action($request)) === false) { debug :: write_error('"'. $action . '" action not found', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__); if(defined('ERROR_DOCUMENT_404')) $response->redirect(ERROR_DOCUMENT_404); else $response->header("HTTP/1.1 404 Not found"); debug :: add_timing_point('authentication filter finished'); $filter_chain->next(); return; } $actions = $object->get_attribute('actions'); if(!isset($actions[$action])) { debug :: write_error('"'. $action . '" action is not accessible', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__); if (debug :: is_console_enabled()) echo debug :: parse_html_console(); if(defined("ERROR_DOCUMENT_403")) $response->redirect(ERROR_DOCUMENT_403); else $response->header("HTTP/1.1 403 Access denied"); return; } debug :: add_timing_point('authentication filter finished'); $filter_chain->next(); }
function _get_object(&$request) { return wrap_with_site_object(fetch_requested_object($request)); }
function _valid_perform(&$request, &$response) { $ids = $this->dataspace->get('ids'); $new_parent_node_id = $this->dataspace->get('parent_node_id'); $objects = $this->_get_objects_to_move(array_keys($ids)); $tree =& tree :: instance(); foreach($objects as $id => $item) { $site_object =& wrap_with_site_object($item); $site_object->set_parent_node_id($new_parent_node_id); if(!$site_object->update(false)) { debug :: write_error("object couldn't be moved", __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__, array('node_id' => $id)); $request->set_status(REQUEST_STATUS_FAILURE); return; } } $request->set_status(REQUEST_STATUS_SUCCESS); $response->write(close_popup_response($request)); }