Example #1
0
 /**
  * class constructor
  */
 function __construct($config_name)
 {
     parent::__construct($config_name);
     // read config, set defaults
     $config = $this->_plugin_config;
     if (!isset($config->delimiter)) {
         $config->delimiter = ',';
     }
     if (!isset($config->quotes)) {
         $config->quotes = '"';
     }
     if (!isset($config->header)) {
         $config->header = 1;
     }
     if (!isset($config->columns)) {
         $config->columns = array('txbatch_id', 'tx_id');
     }
     // TODO: extend
     if (!isset($config->rules)) {
         $config->rules = array();
     }
     if (!isset($config->filters)) {
         $config->filters = array();
     }
     if (!isset($config->name)) {
         $config->name = "CiviBanking Transactions";
     }
 }
 function run()
 {
     CRM_Utils_System::setTitle(ts('Bank Transaction Exporter'));
     // get the plugins
     $plugin_list = CRM_Banking_BAO_PluginInstance::listInstances('export');
     $this->assign('plugin_list', $plugin_list);
     // get the IDs
     $txbatch2ids = CRM_Banking_PluginModel_Exporter::getIdLists($_REQUEST);
     $txcount = 0;
     foreach ($txbatch2ids as $txbatchid => $txbatchcontent) {
         $txcount += count($txbatchcontent);
     }
     $this->assign('txbatch_count', count($txbatch2ids));
     $this->assign('tx_count', $txcount);
     if (!empty($_REQUEST['list'])) {
         $this->assign('list', $_REQUEST['list']);
     }
     if (!empty($_REQUEST['s_list'])) {
         $this->assign('s_list', $_REQUEST['s_list']);
     }
     // check for the page mode
     if (isset($_REQUEST['exporter-plugin'])) {
         // EXECUTE
         // get the plugin instance
         $plugin_id = $_REQUEST['exporter-plugin'];
         foreach ($plugin_list as $plugin) {
             if ($plugin->id == $plugin_id) {
                 break;
             }
         }
         $plugin_instance = $plugin->getInstance();
         // TODO: select WHICH mode (this is only file mode)
         // start exporting
         $file_data = $plugin_instance->export_file($txbatch2ids, $_REQUEST);
         // process result (redirect, ...)
         if (empty($file_data['is_error'])) {
             $mime_type = mime_content_type($file_data['path']);
             $buffer = file_get_contents($file_data['path']);
             CRM_Utils_System::download($file_data['file_name'], $file_data['mime_type'], $buffer, $file_data['file_extension']);
         }
     } else {
         // CONFIGURATION MODE:
         $plugin_capabilities = array();
         foreach ($plugin_list as $plugin) {
             $capability = '';
             $instance = $plugin->getInstance();
             if ($instance->does_export_files()) {
                 $capability .= 'F';
             }
             if ($instance->does_export_stream()) {
                 $capability .= 'S';
             }
             $plugin_capabilities[$plugin->id] = $capability;
         }
         $this->assign('plugin_capabilities', $plugin_capabilities);
     }
     // URLs
     $this->assign('url_action', CRM_Utils_System::url('civicrm/banking/export'));
     parent::run();
 }