<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.4 |
+--------------------------------------------------------------------+
| Copyright Tech To The People http:tttp.eu (c) 2008 |
+--------------------------------------------------------------------+
// optional arguments
var $_site = 'localhost';
var $_user = NULL;
+ var $_password = NULL;
// all other arguments populate the parameters
// array that is passed to civicrm_api
chdir($civicrm_root);
require_once ('civicrm.config.php');
// autoload
- require_once $civicrm_root . '/CRM/Core/ClassLoader.php';
+ if ( !class_exists('CRM_Core_ClassLoader') ) {
+ require_once $civicrm_root . '/CRM/Core/ClassLoader.php';
+ }
CRM_Core_ClassLoader::singleton()->register();
$this->_config = CRM_Core_Config::singleton();
+
+ // HTTP_HOST will be 'localhost' unless overwritten with the -s argument.
+ // Now we have a Config object, we can set it from the Base URL.
+ if ($_SERVER['HTTP_HOST'] == 'localhost') {
+ $_SERVER['HTTP_HOST'] = preg_replace(
+ '!^https?://([^/]+)/$!i',
+ '$1',
+ $this->_config->userFrameworkBaseURL);
+ }
$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;