/** * 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(); }