function _valid_perform(&$request, &$response)
  {
    $data = $this->dataspace->export();

    $request->set_status(REQUEST_STATUS_FAILURE);

    if($request->has_attribute('popup'))
      $response->write(close_popup_response($request));

    if(!isset($data['ids']) || !is_array($data['ids']))
      return;

    $objects = $this->_get_objects_to_delete(array_keys($data['ids']));

    foreach($objects as $id => $item)
    {
      if($item['delete_status'] !== 0 )
        continue;

      $site_object =& wrap_with_site_object($item);

      if(!$site_object->delete())
      {
        debug :: write_error("object couldn't be deleted",
         __FILE__ . ' : ' . __LINE__ . ' : ' .  __FUNCTION__,
        array('node_id' => $id));

        return;
      }
    }
    $request->set_status(REQUEST_STATUS_SUCCESS);

    $response->write(close_popup_response($request));
  }
 function _valid_perform(&$request, &$response)
 {
     if (!($objects_amounts = $this->dataspace->get('amount'))) {
         $request->set_status(REQUEST_STATUS_FAILURE);
         if ($request->has_attribute('popup')) {
             $response->write(close_popup_response($request));
         }
         return;
     }
     $objects_data =& fetch_by_node_ids(array_keys($objects_amounts), $this->_define_catalog_object(), $counter);
     if (!$objects_data) {
         $request->set_status(REQUEST_STATUS_FAILURE);
         if ($request->has_attribute('popup')) {
             $response->write(close_popup_response($request));
         }
         return;
     }
     $object =& site_object_factory::create($this->_define_catalog_object());
     if (!method_exists($object, 'get_cart_item')) {
         $request->set_status(REQUEST_STATUS_FAILURE);
         if ($request->has_attribute('popup')) {
             $response->write(close_popup_response($request));
         }
         return;
     }
     $cart =& cart::instance();
     foreach ($objects_data as $key => $object_data) {
         $object->import_attributes($object_data);
         $cart_item =& $object->get_cart_item();
         $cart_item->set_amount($objects_amounts[$key]);
         $cart->add_item($cart_item);
     }
     $response->redirect('/root/cart?popup=1');
 }
  function _valid_perform(&$request, &$response)
  {
    $parent_object_data =& $this->_load_parent_object_data();

    $data['parent_node_id'] = $parent_object_data['node_id'];
    $data['controller_id'] = $this->_get_controller_id();

    $this->_valid_perform_prepare_data($data);

    $this->object->merge_attributes($data);

    if($this->_create_object_operation() === false)
    {
      $request->set_status(REQUEST_STATUS_FAILURE);
      return;
    }

    $this->indexer->add($this->object);

    $this->_write_create_access_policy();

    $request->set_status(REQUEST_STATUS_FORM_SUBMITTED);

    if($request->has_attribute('popup'))
      $response->write(close_popup_response($request));
  }
 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 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 _valid_perform(&$request, &$response)
  {
    if (!$this->dataspace->get('group_id'))
    {
      $request->set_status(REQUEST_STATUS_FAILURE);
      return;
    }

    $links_manager = new links_manager();

    $result = $links_manager->update_links_group(
        $this->dataspace->get('group_id'),
        $this->dataspace->get('identifier'),
        $this->dataspace->get('title')
    );

    if ($result !== false)
    {
      $request->set_status(REQUEST_STATUS_FORM_SUBMITTED);

      if($request->has_attribute('popup'))
        $response->write(close_popup_response($request));
    }
    else
      $request->set_status(REQUEST_STATUS_FAILURE);
  }
 function perform(&$request, &$response)
 {
     $request->set_status(REQUEST_STATUS_FAILURE);
     if ($request->has_attribute('popup')) {
         $response->write(close_popup_response($request));
     }
     if (!($id = $request->get_attribute('id'))) {
         return;
     }
     if (!($object_data =& fetch_one_by_node_id((int) $id))) {
         return;
     }
     $object =& site_object_factory::create($object_data['class_name']);
     if (!method_exists($object, 'get_cart_item')) {
         $request->set_status(REQUEST_STATUS_FAILURE);
         return;
     }
     $object->import_attributes($object_data);
     $cart_item =& $object->get_cart_item();
     $cart =& cart::instance();
     if ($quantity = (int) $request->get_attribute('quantity')) {
         $cart_item->set_amount($quantity);
     }
     $cart->add_item($cart_item);
     $request->set_status(REQUEST_STATUS_SUCCESS);
     $response->redirect('/root/cart?popup=1');
 }
 function _valid_perform(&$request, &$response)
 {
     $tree =& tree::instance();
     $params = array();
     $params['identifier'] = $this->dataspace->get('identifier');
     $params['class'] = $this->dataspace->get('class_name');
     $params['title'] = $this->dataspace->get('title');
     $params['parent_node_id'] = $this->dataspace->get('parent_node_id');
     $params['controller_id'] = site_object_controller::get_id($this->dataspace->get('controller_name'));
     $object =& site_object_factory::create($params['class']);
     if (!($parent_data = fetch_one_by_node_id($params['parent_node_id']))) {
         error("parent wasn't retrieved", __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__);
     }
     $object->merge_attributes($params);
     if (!$object->create()) {
         error("object wasn't registered", __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__);
     }
     $parent_object =& site_object_factory::create($parent_data['class_name']);
     $parent_object->merge_attributes($parent_data);
     $access_policy =& access_policy::instance();
     $access_policy->save_initial_object_access($object, $parent_object);
     $request->set_status(REQUEST_STATUS_FORM_SUBMITTED);
     if ($request->has_attribute('popup')) {
         $response->write(close_popup_response($request));
     }
 }
 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 perform(&$request, &$response)
 {
     $manager = new full_page_cache_manager();
     $manager->flush();
     $request->set_status(REQUEST_STATUS_SUCCESS);
     if ($request->has_attribute('popup')) {
         $response->write(close_popup_response($request));
     }
 }
  function perform(&$request, &$response)
  {
    $files = fs :: find(VAR_DIR . '/compiled', 'f');
    foreach($files as $file)
      unlink($file);

    if($request->has_attribute('popup'))
      $response->write(close_popup_response($request));

    $request->set_status(REQUEST_STATUS_SUCCESS);
  }
 function perform(&$request, &$response)
 {
     $files = fs::find_subitems(CACHE_DIR, 'f');
     foreach ($files as $file) {
         unlink($file);
     }
     if ($request->has_attribute('popup')) {
         $response->write(close_popup_response($request));
     }
     $request->set_status(REQUEST_STATUS_SUCCESS);
 }
 function _valid_perform(&$request, &$response)
 {
     $data = $this->dataspace->export();
     $links_manager = new links_manager();
     if (isset($data['priority'])) {
         $links_manager->set_links_priority($data['priority']);
     }
     $request->set_status(REQUEST_STATUS_SUCCESS);
     if ($request->has_attribute('popup')) {
         $response->write(close_popup_response($request));
     }
 }
 function _valid_perform(&$request, &$response)
 {
     $data = $this->dataspace->export();
     $object =& site_object_factory::create('site_structure');
     if (isset($data['priority'])) {
         $object->save_priority($data['priority']);
     }
     $request->set_status(REQUEST_STATUS_SUCCESS);
     if ($request->has_attribute('popup')) {
         $response->write(close_popup_response($request));
     }
 }
 function perform(&$request, &$response)
 {
     parent::perform($request, $response);
     if (!$this->_changing_own_password()) {
         return;
     }
     if (REQUEST_STATUS_SUCCESS == $request->get_status()) {
         if ($request->has_attribute('popup')) {
             $response->write(close_popup_response($request, '/'));
         }
     }
 }
 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 _valid_perform(&$request, &$response)
 {
     $links_manager = new links_manager();
     $result = $links_manager->delete_link($this->dataspace->get('link_id'));
     if ($result !== false) {
         $request->set_status(REQUEST_STATUS_FORM_SUBMITTED);
         if ($request->has_attribute('popup')) {
             $response->write(close_popup_response($request));
         }
     } else {
         $request->set_status(REQUEST_STATUS_FAILURE);
     }
 }
 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 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 _valid_perform(&$request, &$response)
 {
     $this->_update_items_amount();
     $this->_update_items_notes();
     $cart =& cart::instance();
     if ($cart->count_items() == 0) {
         message_box::write_error(strings::get('no_items_in_cart', 'cart'));
         $request->set_status(REQUEST_STATUS_FAILURE);
         if ($request->has_attribute('popup')) {
             $response->write(close_popup_response($request));
         }
         return;
     }
     $request->set_status(REQUEST_STATUS_FORM_SUBMITTED);
     $response->redirect('/root/cart?action=checkout&popup=1');
 }
 function _valid_perform(&$request, &$response)
 {
     $locale_id = $this->dataspace->get('locale_id');
     if ($request->has_attribute('popup')) {
         $response->write(close_popup_response($request));
     } elseif (isset($_SERVER['HTTP_REFERER'])) {
         $response->redirect($_SERVER['HTTP_REFERER']);
     } else {
         $response->redirect('/');
     }
     if (!locale::is_valid_locale_id($locale_id)) {
         $request->set_status(REQUEST_STATUS_FAILURE);
     }
     $user =& user::instance();
     $user->set_locale_id($locale_id);
     $request->set_status(REQUEST_STATUS_SUCCESS);
 }
 function _valid_perform(&$request, &$response)
 {
     //$html_body = $this->_get_mail_body('/cart/mail_template.html');
     $text_body = $this->_get_mail_body('/cart/mail_template.txt');
     $subject = sprintf(strings::get('message_subject', 'cart'), $_SERVER['HTTP_HOST']);
     $recipient_email = $this->_get_email();
     if (!send_plain_mail(array($recipient_email), $_SERVER['SERVER_ADMIN'] . '<' . $_SERVER['HTTP_HOST'] . '> ', $subject, $text_body)) {
         message_box::write_error(strings::get('mail_not_sent', 'cart'));
         $request->set_status(REQUEST_STATUS_FAILURE);
         if ($request->has_attribute('popup')) {
             $response->write(close_popup_response($request));
         }
         return;
     }
     $this->_clear_cart();
     message_box::write_error(strings::get('message_was_sent', 'cart'));
     $request->set_status(REQUEST_STATUS_FORM_SUBMITTED);
     if ($request->has_attribute('popup')) {
         $response->write(close_popup_response($request));
     }
 }
 function _valid_perform(&$request, &$response)
 {
     $tree =& tree::instance();
     $params = array();
     $params['identifier'] = $this->dataspace->get('identifier');
     $params['parent_path'] = $this->dataspace->get('parent_path');
     $params['class'] = $this->dataspace->get('class_name');
     $params['title'] = $this->dataspace->get('title');
     $object =& site_object_factory::create($params['class']);
     $is_root = false;
     if (!($parent_data = fetch_one_by_path($params['parent_path']))) {
         if ($params['parent_path'] == '/') {
             $is_root = true;
         } else {
             error("parent wasn't retrieved", __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__);
         }
     }
     if (!$is_root) {
         $params['parent_node_id'] = $parent_data['node_id'];
     } else {
         $params['parent_node_id'] = 0;
     }
     $object->import_attributes($params);
     if (!$object->create($is_root)) {
         error("object wasn't registered", __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__);
     }
     if (!$is_root) {
         $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);
     }
     $request->set_status(REQUEST_STATUS_FORM_SUBMITTED);
     if ($request->has_attribute('popup')) {
         $response->write(close_popup_response($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));
  }