コード例 #1
0
ファイル: admin.php プロジェクト: nemein/openpsa
 /**
  * Handle the message copying interface
  *
  * @return boolean Indicating success
  */
 public function _handler_copy($handler_id, array $args, array &$data)
 {
     $this->_topic->require_do('midgard:create');
     $this->_message = new org_openpsa_directmarketing_campaign_message_dba($args[0]);
     $guid = $args[0];
     $this->_schemadb = midcom_helper_datamanager2_schema::load_database($this->_config->get('schemadb_message_copy'));
     $this->_controller = midcom_helper_datamanager2_controller::create('nullstorage');
     $this->_controller->schemadb =& $this->_schemadb;
     $this->_controller->initialize();
     $data['targets'] = array();
     switch ($this->_controller->process_form()) {
         case 'save':
             $copy = new midcom_helper_reflector_copy();
             $campaigns = $this->_controller->datamanager->types['campaign']->convert_to_storage();
             $copy_objects = array();
             foreach ($campaigns as $campaign_id) {
                 try {
                     $campaign = new org_openpsa_directmarketing_campaign_dba($campaign_id);
                 } catch (midcom_error $e) {
                     continue;
                 }
                 $new_object = $copy->copy_object($this->_message->guid, $campaign);
                 $guid = $new_object->guid;
                 // Store for later use
                 $copy_objects[] = $new_object;
             }
             if (count($copy_objects) > 1) {
                 $data['targets'] =& $copy_objects;
                 break;
             }
             // Fall through
         // Fall through
         case 'cancel':
             return new midcom_response_relocate("message/{$guid}/");
     }
     midcom::get('head')->set_pagetitle($this->_message->title);
     $this->bind_view_to_object($this->_message);
     $this->_update_breadcrumb_line($handler_id);
 }