$_SERVER['PHP_SELF'] = "/index.php";
$_SERVER['HTTP_HOST'] = $this->_site;
$_SERVER['REMOTE_ADDR'] = "127.0.0.1";
+ $_SERVER['SERVER_SOFTWARE'] = NULL;
+ $_SERVER['REQUEST_METHOD'] = 'GET';
+
// SCRIPT_FILENAME needed by CRM_Utils_System::cmsRootPath
$_SERVER['SCRIPT_FILENAME'] = __FILE__;
+
// CRM-8917 - check if script name starts with /, if not - prepend it.
if (ord($_SERVER['SCRIPT_NAME']) != 47) {
$_SERVER['SCRIPT_NAME'] = '/' . $_SERVER['SCRIPT_NAME'];
$class = 'CRM_Utils_System_' . $this->_config->userFramework;
$cms = new $class();
- if (!CRM_Utils_System::loadBootstrap(array(
- ), FALSE, FALSE, $civicrm_root)) {
+ if (!CRM_Utils_System::loadBootstrap(array(), FALSE, FALSE, $civicrm_root)) {
$this->_log(ts("Failed to bootstrap CMS"));
return FALSE;
}
fputcsv($out, $columns, $this->separator, '"');
$first = false;
}
+ //handle values returned as arrays (i.e. custom fields that allow multiple selections) by inserting a control character
+ foreach ($row as &$field) {
+ if(is_array($field)) {
+ //convert to string
+ $field = implode($field,CRM_Core_DAO::VALUE_SEPARATOR) . CRM_Core_DAO::VALUE_SEPARATOR;
+ }
+ }
fputcsv($out, $row, $this->separator, '"');
}
fclose($out);
function convertLine($data) {
$params = array();
foreach ($this->header as $i => $field) {
+ //split any multiselect data, denoted with CRM_Core_DAO::VALUE_SEPARATOR
+ if (strpos($data[$i], CRM_Core_DAO::VALUE_SEPARATOR) !== FALSE) {
+ $data[$i] = explode(CRM_Core_DAO::VALUE_SEPARATOR,$data[$i]);
+ $data[$i] = array_combine($data[$i], $data[$i]);
+ }
$params[$field] = $data[$i];
}
$params['version'] = 3;