<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright Tech To The People http:tttp.eu (c) 2008 |
+--------------------------------------------------------------------+
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
* This files provides several classes for doing command line work with
* In addition, there are several additional classes that inherit
* civicrm_cli to do more precise functions.
*
- **/
+ */
/**
* base class for doing all command line operations via civicrm
* used by cli.php
- **/
-
+ */
class civicrm_cli {
// required values that must be passed
// via the command line
// find the value of this arg
if (preg_match('/=/', $arg)) {
$parts = explode('=', $arg);
- $arg = $parts[0];
+ $arg = $parts[0];
$value = $parts[1];
}
else {
$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;
$_SERVER['HTTP_HOST'] = $this->_site;
$_SERVER['REMOTE_ADDR'] = "127.0.0.1";
$_SERVER['SERVER_SOFTWARE'] = NULL;
- $_SERVER['REQUEST_METHOD'] = 'GET';
+ $_SERVER['REQUEST_METHOD'] = 'GET';
// SCRIPT_FILENAME needed by CRM_Utils_System::cmsRootPath
$_SERVER['SCRIPT_FILENAME'] = __FILE__;
$civicrm_root = dirname(__DIR__);
chdir($civicrm_root);
- require_once ('civicrm.config.php');
+ require_once 'civicrm.config.php';
// autoload
- if ( !class_exists('CRM_Core_ClassLoader') ) {
+ if (!class_exists('CRM_Core_ClassLoader')) {
require_once $civicrm_root . '/CRM/Core/ClassLoader.php';
}
CRM_Core_ClassLoader::singleton()->register();
// 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);
+ $_SERVER['HTTP_HOST'] = preg_replace(
+ '!^https?://([^/]+)/$!i',
+ '$1',
+ $this->_config->userFrameworkBaseURL);
}
$class = 'CRM_Utils_System_' . $this->_config->userFramework;
}
if (!empty($this->_user)) {
- if(!CRM_Utils_System::authenticateScript(TRUE, $this->_user, $this->_password, TRUE, FALSE, FALSE)) {
+ if (!CRM_Utils_System::authenticateScript(TRUE, $this->_user, $this->_password, TRUE, FALSE, FALSE)) {
$this->_log(ts("Failed to login as %1. Wrong username or password.", array('1' => $this->_user)));
return FALSE;
}
// that properly logs
print "$error\n";
}
+
}
/**
* class used by csv/export.php to export records from
* the database in a csv file format.
- **/
-
+ */
class civicrm_cli_csv_exporter extends civicrm_cli {
var $separator = ',';
/**
- *
*/
- function __construct() {
+ public function __construct() {
$this->_required_arguments = array('entity');
parent::initialize();
}
- function run() {
+ public function run() {
$out = fopen("php://output", 'w');
fputcsv($out, $this->columns, $this->separator, '"');
$this->row = 1;
$result = civicrm_api($this->_entity, 'Get', $this->_params);
- $first = true;
+ $first = TRUE;
foreach ($result['values'] as $row) {
- if($first) {
+ 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)) {
+ 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, '"');
fclose($out);
echo "\n";
}
+
}
/**
* and civicrm_cli_csv_deleter to add or delete
* records based on those found in a csv file
* passed to the script.
- **/
-
+ */
class civicrm_cli_csv_file extends civicrm_cli {
var $header;
var $separator = ',';
/**
- *
*/
- function __construct() {
- $this->_required_arguments = array('entity','file');
+ public function __construct() {
+ $this->_required_arguments = array('entity', 'file');
$this->_additional_arguments = array('f' => 'file');
parent::initialize();
}
- function run() {
+ public function run() {
$this->row = 1;
$handle = fopen($this->_file, "r");
$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);
}
fclose($handle);
- return;
+ return NULL;
}
/* return a params as expected */
*
* @return array
*/
- function convertLine($data) {
+ public 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];
$params['version'] = 3;
return $params;
}
+
}
/**
* class for processing records to add
* used by csv/import.php
*
- **/
-
+ */
class civicrm_cli_csv_importer extends civicrm_cli_csv_file {
/**
- * @param $params
+ * @param array $params
*/
- function processline($params) {
+ public function processline($params) {
$result = civicrm_api($this->_entity, 'Create', $params);
if ($result['is_error']) {
echo "\nERROR line " . $this->row . ": " . $result['error_message'] . "\n";
echo "\nline " . $this->row . ": created " . $this->_entity . " id: " . $result['id'] . "\n";
}
}
+
}
/**
* class for processing records to delete
* used by csv/delete.php
*
- **/
-
+ */
class civicrm_cli_csv_deleter extends civicrm_cli_csv_file {
/**
- * @param $params
+ * @param array $params
*/
- function processline($params) {
+ public 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";
}
}
+
}