function perform()
	{
		$object_data = fetch_mapped_by_url();
		
		$parent_data = fetch_one_by_node_id($object_data['parent_node_id']);
		$path = $parent_data['path'];
		
		$params = complex_array :: array_merge($_GET, $_POST);

		$sep = '';
		$query = '';
		
		$flat_params = array();
		complex_array :: to_flat_array($params, $flat_params);
		
		foreach ($flat_params as $key => $value)
		{
			$query .= $sep . $key . '=' . urlencode($value);
			$sep = '&';
		} 
		if (!empty($query))
			$path .= '?' . $query;
		
		return new redirect_response(RESPONSE_STATUS_SUCCESS, $path);
	}
	function _is_home_hit()
	{
		if(!$object_data = fetch_mapped_by_url())
			return false;
			
		return ($object_data['parent_node_id'] == 0);
	}
 function _is_home_hit()
 {
     if (!($object_data = fetch_mapped_by_url())) {
         return false;
     }
     return $object_data['parent_node_id'] == 0;
 }
 function &get_dataset(&$counter, $params = array())
 {
     $object_data = fetch_mapped_by_url();
     if (!count($object_data)) {
         return new array_dataset(array());
     }
     $db_table =& db_table_factory::instance('sys_object_version');
     $arr = $db_table->get_list('object_id=' . $object_data['id'], 'version DESC');
     $result = array();
     $users =& fetch_sub_branch('/root/users', 'user_object', $counter);
     foreach ($arr as $data) {
         $record = $data;
         $user = '';
         if (count($users)) {
             foreach ($users as $user_data) {
                 if ($user_data['id'] == $data['creator_id']) {
                     $user = $user_data;
                     break;
                 }
             }
         }
         if ($user) {
             $record['creator_identifier'] = $user['identifier'];
             $record['creator_email'] = $user['email'];
             $record['creator_name'] = $user['name'];
             $record['creator_lastname'] = isset($user['lastname']) ? $user['lastname'] : '';
         }
         $result[] = $record;
     }
     return new array_dataset($result);
 }
 function _init_dataspace()
 {
     parent::_init_dataspace();
     $parent_object_data =& fetch_mapped_by_url();
     $data['subscribe_mail_content'] = $parent_object_data['mail_template'];
     $this->dataspace->import($data);
 }
	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()
 {
     $object_data =& fetch_mapped_by_url();
     $data = $this->_export();
     $object =& site_object_factory::create('user_object');
     $object->save_membership($object_data['id'], $data['membership']);
     return true;
 }
 function _write_create_access_policy(&$object)
 {
     $parent_data =& fetch_mapped_by_url();
     $parent_object =& site_object_factory::instance($parent_data['class_name']);
     $parent_object->import_attributes($parent_data);
     $access_policy =& access_policy::instance();
     $access_policy->save_object_access($object, $parent_object);
 }
 function _valid_perform()
 {
     $object_data =& fetch_mapped_by_url();
     $data = $this->dataspace->export();
     $object =& site_object_factory::create('user_object');
     $object->save_membership($object_data['id'], $data['membership']);
     return new response(RESPONSE_STATUS_FORM_SUBMITTED);
 }
 function perform()
 {
     $chat_room_data =& fetch_mapped_by_url();
     session::destroy('last_message_ids');
     setcookie('chat_room_id', $chat_room_data['object_id'], time() + 365 * 24 * 3600);
     chat_user::enter_chat_room($chat_room_data['object_id']);
     return parent::perform();
 }
 function get_path()
 {
     if (!$this->path) {
         $object_arr =& fetch_mapped_by_url();
         $this->path = $object_arr['path'];
     }
     return $this->path;
 }
 function _valid_perform()
 {
     $object_data =& fetch_mapped_by_url();
     $data = $this->_export();
     $phpbb_user_data['user_rank'] = $data['rank'];
     $db =& db_factory::instance();
     return $db->sql_update('phpbb_users', $phpbb_user_data, array('user_id' => $object_data['id']));
 }
 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 perform()
	{
		$object_data =& fetch_mapped_by_url();
		
		ob_end_clean();
		if(!file_exists(MEDIA_DIR . $object_data['media_id'] . '.media'))
		{
			header("HTTP/1.1 404 Not found");
			return new exit_response(RESPONSE_STATUS_FAILURE);
		}
		
		if (isset($_GET['icon']))
		{
			$size = 16;
			if (!empty($_GET['icon']))
				$size = $_GET['icon'];
			
			header("Content-type: image/gif");
			
			$mime_type = $object_data['mime_type'];
			
			if($mime_type == 'application/x-zip-compressed')
				$mime_type = 'application/zip';
			elseif($mime_type == 'application/x-shockwave-flash')
				$mime_type = 'application/swf';
			
			$file_name = SHARED_DIR . 'images/mime_icons/' . str_replace('/', '_' , $mime_type) . '.' . $size . '.gif';

			if (file_exists($file_name))
				readfile($file_name);
			else
				readfile(SHARED_DIR . "images/mime_icons/file.{$size}.gif");
				
			return new exit_response();
		}
		
		if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] == $object_data['etag'])
		{
			header("HTTP/1.1 304 Not modified");
			header("Pragma: public");
			header("Cache-Control: private");
			header("Date: " . date("D, d M Y H:i:s") . " GMT");
			header("Etag: {$object_data['etag']}");
		}
		else
		{
			header("Pragma: public");
			header("Cache-Control: private");
			header("Date: " . date("D, d M Y H:i:s") . " GMT");
			header("Etag: {$object_data['etag']}");
			header("Content-type: {$object_data['mime_type']}");
			header("Content-Disposition: attachment; filename=\"{$object_data["file_name"]}\"");
			readfile(MEDIA_DIR . $object_data['media_id'] . '.media');
		}
		
		return new exit_response();
	}
 function _init_validator()
 {
     parent::_init_validator();
     $object_data =& fetch_mapped_by_url();
     $this->validator->add_rule(new unique_user_rule('identifier', $object_data['identifier']));
     $this->validator->add_rule(new unique_user_email_rule('email', $object_data['email']));
     $this->validator->add_rule(new required_rule('name'));
     $this->validator->add_rule(new required_rule('email'));
     $this->validator->add_rule(new email_rule('email'));
 }
 function _init_dataspace()
 {
     $object_data =& fetch_mapped_by_url();
     if (!isset($_REQUEST['class_id'])) {
         close_popup($object_data['path']);
     }
     $access_policy =& access_policy::instance();
     $data['policy'] = $access_policy->get_group_action_access_by_class($_REQUEST['class_id']);
     $this->_import($data);
 }
 function _valid_perform()
 {
     $object_data =& fetch_mapped_by_url();
     $object =& site_object_factory::create($this->definition['site_object']);
     $object->import_attributes($object_data);
     if (!$object->delete()) {
         return false;
     }
     $parent_object_data = fetch_one_by_node_id($object_data['parent_id']);
     close_popup(null, true);
 }
 function _valid_perform()
 {
     $object_data =& fetch_mapped_by_url();
     $data = $this->dataspace->export();
     $data['id'] = $object_data['id'];
     $object =& site_object_factory::create('site_object');
     $object->import_attributes($data);
     if (!$object->save_metadata()) {
         return new failed_response();
     }
     return new response(RESPONSE_STATUS_FORM_SUBMITTED);
 }
 function init_node_select()
 {
     if (defined('NODE_SELECT_LOAD_SCRIPT')) {
         return;
     }
     echo "<script type='text/javascript' src='/shared/js/node_select.js'></script>";
     define('NODE_SELECT_LOAD_SCRIPT', 1);
     if (!($node_id = $this->get_value())) {
         $object_data = fetch_mapped_by_url();
         $this->set_value($object_data['node_id']);
     }
 }
 function _valid_perform()
 {
     $object_data =& fetch_mapped_by_url();
     $data = $this->dataspace->export();
     $data['id'] = $object_data['id'];
     $object =& site_object_factory::create('content_object');
     $object->import_attributes($data);
     if (!$object->save_metadata()) {
         return false;
     }
     return true;
 }
 function _valid_perform()
 {
     $object_data =& fetch_mapped_by_url();
     $data = $this->dataspace->export();
     $phpbb_user_data['user_rank'] = $data['rank'];
     $db =& db_factory::instance();
     if ($db->sql_update('phpbb_users', $phpbb_user_data, array('user_id' => $object_data['id']))) {
         return new response(RESPONSE_STATUS_FORM_SUBMITTED);
     } else {
         return new failed_response();
     }
 }
 function _valid_perform()
 {
     $object_data =& fetch_mapped_by_url();
     $object =& site_object_factory::create($this->definition['site_object']);
     $object->import_attributes($object_data);
     if (!$object->delete()) {
         message_box::write_notice('Can not be deleted!');
         return new failed_response();
     }
     $parent_object_data = fetch_one_by_node_id($object_data['parent_node_id']);
     return new close_popup_response(RESPONSE_STATUS_FORM_SUBMITTED, RELOAD_SELF_URL, true);
 }
	function fetch_mapped_by_url()
	{
		$object_arr = fetch_mapped_by_url();
		
		if (isset($_REQUEST['version']))
		{
			$site_object = site_object_factory :: create($object_arr['class_name']);
			$site_object->import_attributes($object_arr);
			$object_arr = $site_object->fetch_version($_REQUEST['version']);
		}
		
		$this->import($object_arr);
	}
 function perform()
 {
     $chat_room_data =& fetch_mapped_by_url();
     session::destroy('last_message_ids');
     setcookie('chat_room_id', $chat_room_data['object_id'], time() + 365 * 24 * 3600);
     if ($chat_user_data = chat_user::get_chat_user_data()) {
         if ($chat_user_data['chat_room_id'] != $chat_room_data['object_id']) {
             chat_system::leave_chat_room($chat_user_data['id'], $chat_user_data['nickname'], $chat_user_data['chat_room_id']);
             chat_system::enter_chat_room($chat_user_data['id'], $chat_user_data['nickname'], $chat_room_data['object_id']);
         }
         $this->view->set('nickname', $chat_user_data['nickname']);
     }
     return parent::perform();
 }
 function set_publish_status($status)
 {
     $object_data = fetch_mapped_by_url();
     $object_data['status'] = $status;
     $object =& site_object_factory::create($object_data['class_name']);
     $object->import_attributes($object_data);
     $access_policy =& access_policy::instance();
     $site_object_controller =& $object->get_controller();
     $action = $site_object_controller->determine_action();
     if (!$access_policy->save_object_access_for_action($object, $action)) {
         error('access template for action not defined', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__, array('action' => $action));
     }
     return $object->update(false, false);
 }
 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 set_publish_status($status)
 {
     $object_data = fetch_mapped_by_url();
     $object_data['status'] = $status;
     $object =& site_object_factory::create($object_data['class_name']);
     $object->import_attributes($object_data);
     $access_policy =& access_policy::instance();
     $site_object_controller =& $object->get_controller();
     $action = $site_object_controller->determine_action();
     if (!$access_policy->save_object_access_for_action($object, $action)) {
         return false;
     }
     return $object->update(false, false);
 }
 function _update_object_operation(&$object)
 {
     if (isset($_FILES[$this->name]['tmp_name']['file'])) {
         if ($_FILES[$this->name]['size']['file'] > ini_get('upload_max_filesize') * 1024 * 1024) {
             message_box::write_warning('uploaded file size exceeds limit');
             return false;
         }
         $object_data =& fetch_mapped_by_url();
         $object->set_attribute('media_id', $object_data['media_id']);
         $object->set_attribute('tmp_file_path', $_FILES[$this->name]['tmp_name']['file']);
         $object->set_attribute('file_name', $_FILES[$this->name]['name']['file']);
         $object->set_attribute('mime_type', $_FILES[$this->name]['type']['file']);
     }
     return parent::_update_object_operation(&$object);
 }
 function _get_params_array()
 {
     $params = $this->parameters;
     if (!isset($params['path']) || !$params['path']) {
         $object_arr =& fetch_mapped_by_url();
         $params['path'] = $object_arr['path'];
     }
     if (!isset($params['loader_class_name'])) {
         $params['loader_class_name'] = 'site_object';
     }
     if (!isset($params['fetch_method'])) {
         $params['fetch_method'] = 'fetch_by_ids';
     }
     return $params;
 }
 function perform()
 {
     $object_data =& fetch_mapped_by_url();
     ob_end_clean();
     $ini =& get_ini('image_variations.ini');
     $image_variations = $ini->get_named_array();
     foreach ($image_variations as $key => $value) {
         if (array_key_exists($key, $_GET)) {
             $variation = $key;
             break;
         }
     }
     if (empty($variation)) {
         $variation = 'thumbnail';
     }
     $image = $object_data['variations'][$variation];
     if (!$image) {
         header("Content-type: image/gif");
         readfile(SHARED_DIR . 'images/1x1.gif');
         if ($variation == 'original') {
             return new exit_response(RESPONSE_STATUS_FAILURE);
         } else {
             exit;
         }
         //for speed
     }
     if (!file_exists(MEDIA_DIR . $image['media_id'] . '.media')) {
         header("HTTP/1.1 404 Not found");
         if ($variation == 'original') {
             return new exit_response(RESPONSE_STATUS_FAILURE);
         } else {
             exit;
         }
         //for speed
     }
     if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] == $image['etag']) {
         header("HTTP/1.1 304 Not modified");
         header("Pragma: public");
         header("Cache-Control: private");
         header("Date: " . date("D, d M Y H:i:s") . " GMT");
         header("Etag: {$image['etag']}");
     } else {
         header("Pragma: public");
         header("Cache-Control: private");
         header("Date: " . date("D, d M Y H:i:s") . " GMT");
         header("Etag: {$image['etag']}");
         header("Content-type: {$image['mime_type']}");
         header("Content-Disposition: filename={$image['file_name']}");
         readfile(MEDIA_DIR . $image['media_id'] . '.media');
     }
     if ($variation == 'original') {
         return new exit_response();
     } else {
         exit;
     }
     //for speed
 }