Пример #1
0
 /**
  * Trash view
  *
  * @param mixed $handler_id The ID of the handler.
  * @param Array $args The argument list.
  * @param Array &$data The local request data.
  * @return boolean Indicating success.
  */
 public function _handler_trash_type($handler_id, array $args, array &$data)
 {
     midcom::get('auth')->require_admin_user();
     midcom::get('cache')->content->no_cache();
     $this->type = $args[0];
     $data['view_title'] = midgard_admin_asgard_plugin::get_type_label($this->type);
     midcom::get('head')->set_pagetitle($data['view_title']);
     $dummy = new $this->type();
     $data['midcom_dba_classname'] = midcom::get('dbclassloader')->get_midcom_class_name_for_mgdschema_object($dummy);
     $data['type'] = $this->type;
     $data['reflector'] = midcom_helper_reflector::get($data['type']);
     $data['label_property'] = $data['reflector']->get_label_property();
     if (isset($_POST['undelete']) && !isset($_POST['purge']) && is_array($_POST['undelete'])) {
         $this->_undelete();
         return new midcom_response_relocate("__mfa/asgard/trash/{$this->type}/");
     }
     if (isset($_POST['purge']) && is_array($_POST['undelete'])) {
         $this->_purge();
         return new midcom_response_relocate("__mfa/asgard/trash/{$this->type}/");
     }
     $qb = new org_openpsa_qbpager_direct($data['type'], "{$data['type']}_trash");
     $qb->include_deleted();
     $qb->add_constraint('metadata.deleted', '=', true);
     $qb->add_order('metadata.revised', 'DESC');
     $data['qb'] =& $qb;
     $data['trash'] = $qb->execute_unchecked();
     // Set the breadcrumb data
     $this->add_breadcrumb('__mfa/asgard/', $this->_l10n->get('midgard.admin.asgard'));
     $this->add_breadcrumb("__mfa/asgard/{$this->type}/", $data['view_title']);
     $this->add_breadcrumb("__mfa/asgard/trash/{$this->type}/", sprintf($this->_l10n->get('%s trash'), midgard_admin_asgard_plugin::get_type_label($data['type'])));
 }