<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright Tech To The People http:tttp.eu (c) 2008 |
+--------------------------------------------------------------------+
var $_errors = array();
+ /**
+ * @return bool
+ */
public function initialize() {
if (!$this->_accessing_from_cli()) {
return FALSE;
}
}
+ /**
+ * @return bool
+ */
public function callApi() {
require_once 'api/api.php';
return TRUE;
}
+ /**
+ * @return bool
+ */
private function _parseOptions() {
$args = $_SERVER['argv'];
// remove the first argument, which is the name
$this->_joblog = TRUE;
}
else {
- while(list($short, $long) = each ($this->_additional_arguments)) {
+ while(list($short, $long) = each($this->_additional_arguments)) {
if ($arg == '-' . $short || $arg == '--' . $long) {
$property = '_' . $long;
$this->$property = $value;
return TRUE;
}
+ /**
+ * @return bool
+ */
private function _bootstrap() {
// so the configuration works with php-cli
$_SERVER['PHP_SELF'] = "/index.php";
$civicrm_root = dirname(__DIR__);
chdir($civicrm_root);
- require_once ('civicrm.config.php');
+ require_once 'civicrm.config.php';
// autoload
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',
+ $_SERVER['HTTP_HOST'] = preg_replace(
+ '!^https?://([^/]+)/$!i',
'$1',
$this->_config->userFrameworkBaseURL);
}
return TRUE;
}
+ /**
+ * @return bool
+ */
private function _validateOptions() {
$required = $this->_required_arguments;
while (list(, $var) = each($required)) {
return TRUE;
}
+ /**
+ * @param $value
+ *
+ * @return string
+ */
private function _sanitize($value) {
// restrict user input - we should not be needing anything
// other than normal alpha numeric plus - and _.
return trim(preg_replace('#^[^a-zA-Z0-9\-_=/]$#', '', $value));
}
+ /**
+ * @return string
+ */
private function _getUsage() {
$out = "Usage: cli.php -e entity -a action [-u user] [-s site] [--output] [PARAMS]\n";
$out .= " entity is the name of the entity, e.g. Contact, Event, etc.\n";
return ts($out);
}
+ /**
+ * @param $error
+ */
private function _log($error) {
// fixme, this should call some CRM_Core_Error:: function
// that properly logs
class civicrm_cli_csv_exporter extends civicrm_cli {
var $separator = ',';
+ /**
+ *
+ */
function __construct() {
$this->_required_arguments = array('entity');
parent::initialize();
$this->row = 1;
$result = civicrm_api($this->_entity, 'Get', $this->_params);
- $first = true;
+ $first = TRUE;
foreach ($result['values'] as $row) {
if($first) {
$columns = array_keys($row);
fputcsv($out, $columns, $this->separator, '"');
- $first = false;
+ $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;
+ $field = implode($field, CRM_Core_DAO::VALUE_SEPARATOR) . CRM_Core_DAO::VALUE_SEPARATOR;
}
}
fputcsv($out, $row, $this->separator, '"');
var $header;
var $separator = ',';
+ /**
+ *
+ */
function __construct() {
- $this->_required_arguments = array('entity','file');
+ $this->_required_arguments = array('entity', 'file');
$this->_additional_arguments = array('f' => 'file');
parent::initialize();
}
$this->header = $header;
while (($data = fgetcsv($handle, 0, $this->separator)) !== FALSE) {
// skip blank lines
- if(count($data) == 1 && is_null($data[0])) continue;
+ if(count($data) == 1 && is_null($data[0])) { continue;
+ }
$this->row++;
$params = $this->convertLine($data);
$this->processLine($params);
}
/* return a params as expected */
+ /**
+ * @param $data
+ *
+ * @return array
+ */
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] = explode(CRM_Core_DAO::VALUE_SEPARATOR, $data[$i]);
$data[$i] = array_combine($data[$i], $data[$i]);
}
$params[$field] = $data[$i];
**/
class civicrm_cli_csv_importer extends civicrm_cli_csv_file {
+ /**
+ * @param array $params
+ */
function processline($params) {
$result = civicrm_api($this->_entity, 'Create', $params);
if ($result['is_error']) {
**/
class civicrm_cli_csv_deleter extends civicrm_cli_csv_file {
+ /**
+ * @param array $params
+ */
function processline($params) {
$result = civicrm_api($this->_entity, 'Delete', $params);
if ($result['is_error']) {
echo "\nERROR line " . $this->row . ": " . $result['error_message'] . "\n";
- } else {
+ }
+ else {
echo "\nline " . $this->row . ": deleted\n";
}
}