+--------------------------------------------------------------------+
| CiviCRM version 4.6 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014 |
+ | Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
* Our base DAO class. All DAO classes should inherit from this class.
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2014
+ * @copyright CiviCRM LLC (c) 2004-2015
* $Id$
*
*/
*/
static $_testEntitiesToSkip = array();
/**
- * The factory class for this application
+ * The factory class for this application.
* @var object
*/
static $_factory = NULL;
static $_checkedSqlFunctionsExist = FALSE;
/**
- * Class constructor
+ * Class constructor.
*
* @return \CRM_Core_DAO
*/
}
/**
- * Empty definition for virtual function
+ * Empty definition for virtual function.
*/
public static function getTableName() {
return NULL;
}
/**
- * Initialize the DAO object
+ * Initialize the DAO object.
*
* @param string $dsn
* The database connection string.
}
/**
- * Returns list of FK relationships
+ * Returns list of FK relationships.
*
*
* @return array
}
/**
- * Returns all the column names of this table
+ * Returns all the column names of this table.
*
*
* @return array
return $this;
}
+ /**
+ * Deletes items from table which match current objects variables.
+ *
+ * Returns the true on success
+ *
+ * for example
+ *
+ * Designed to be extended
+ *
+ * $object = new mytable();
+ * $object->ID=123;
+ * echo $object->delete(); // builds a conditon
+ *
+ * $object = new mytable();
+ * $object->whereAdd('age > 12');
+ * $object->limit(1);
+ * $object->orderBy('age DESC');
+ * $object->delete(true); // dont use object vars, use the conditions, limit and order.
+ *
+ * @param bool $useWhere (optional) If DB_DATAOBJECT_WHEREADD_ONLY is passed in then
+ * we will build the condition only using the whereAdd's. Default is to
+ * build the condition only using the object parameters.
+ *
+ * * @return mixed Int (No. of rows affected) on success, false on failure, 0 on no data affected
+ */
public function delete($useWhere = FALSE) {
$result = parent::delete($useWhere);
}
/**
- * Get the size and maxLength attributes for this text field
+ * Get the size and maxLength attributes for this text field.
* (or for all text fields) in the DAO object.
*
* @param string $class
}
/**
- * Check if there is a record with the same name in the db
+ * Check if there is a record with the same name in the db.
*
* @param string $value
* The value of the field we are checking.
}
/**
- * Check if there is a given column in a specific table
+ * Check if there is a given column in a specific table.
*
* @param string $tableName
* @param string $columnName
}
/**
- * Check whether a specific column in a specific table has always the same value
+ * Check whether a specific column in a specific table has always the same value.
*
* @param string $tableName
* @param string $columnName
}
/**
- * Check whether a specific column in a specific table is always NULL
+ * Check whether a specific column in a specific table is always NULL.
*
* @param string $tableName
* @param string $columnName
}
/**
- * Check if there is a given table in the database
+ * Check if there is a given table in the database.
*
* @param string $tableName
*
}
/**
- * Get sort string
+ * Get sort string.
*
* @param array|object $sort either array or CRM_Utils_Sort
* @param string $default
}
/**
- * Fetch object based on array of properties
+ * Fetch object based on array of properties.
*
* @param string $daoName
* Name of the dao object.
}
/**
- * Delete the object records that are associated with this contact
+ * Delete the object records that are associated with this contact.
*
* @param string $daoName
* Name of the dao object.
}
/**
- * Execute a query
+ * Execute a query.
*
* @param string $query
* Query to be executed.
* @param bool $i18nRewrite
* @param bool $trapException
*
- * @return CRM_Core_DAO
+ * @return CRM_Core_DAO|object
* object that holds the results of the query
+ * NB - if this is defined as just returning a DAO phpstorm keeps pointing
+ * out all the properties that are not part of the DAO
*/
public static function &executeQuery(
$query,
if ($freeDAO ||
preg_match('/^(insert|update|delete|create|drop|replace)/i', $queryStr)
) {
- // we typically do this for insert/update/delete stataments OR if explicitly asked to
+ // we typically do this for insert/update/delete statements OR if explicitly asked to
// free the dao
$dao->free();
}
}
/**
- * Execute a query and get the single result
+ * Execute a query and get the single result.
*
* @param string $query
* Query to be executed.
}
/**
- * make a shallow copy of an object
+ * make a shallow copy of an object.
* and all the fields in the object
*
* @param string $daoName
return $newObject;
}
+ /**
+ * Cascade update through related entities.
+ *
+ * @param string $daoName
+ * @param $fromId
+ * @param $toId
+ * @param array $newData
+ *
+ * @return null
+ */
public static function cascadeUpdate($daoName, $fromId, $toId, $newData = array()) {
$object = new $daoName();
$object->id = $fromId;
}
/**
- * Fetch object based on array of properties
+ * Fetch object based on array of properties.
*
* @param string $daoName
* Name of the dao object.
}
/**
- * Deletes the this object plus any dependent objects that are associated with it
+ * Deletes the this object plus any dependent objects that are associated with it.
* ONLY USE FOR TESTING
*
* @param string $daoName
}
/**
- * Set defaults when creating new entity
+ * Set defaults when creating new entity.
* (don't call this set defaults as already in use with different signature in some places)
*
* @param array $params
}
/**
- * Wrapper function to drop triggers
+ * Wrapper function to drop triggers.
*
* @param string $tableName
* the specific table requiring a rebuild; or NULL to rebuild all tables.
*/
public static function buildOptionsContext($context = NULL) {
$contexts = array(
- 'get' => "All options are returned, even if they are disabled. Labels are translated.",
- 'create' => "Options are filtered appropriately for the object being created/updated. Labels are translated.",
- 'search' => "Searchable options are returned. Labels are translated.",
- 'validate' => "All options are returned, even if they are disabled. Machine names are used in place of labels.",
+ 'get' => "get: all options are returned, even if they are disabled; labels are translated.",
+ 'create' => "create: options are filtered appropriately for the object being created/updated; labels are translated.",
+ 'search' => "search: searchable options are returned; labels are translated.",
+ 'validate' => "validate: all options are returned, even if they are disabled; machine names are used in place of labels.",
+ 'abbreviate' => "abbreviate: enabled options are returned; labels are replaced with abbreviations.",
+ 'match' => "match: enabled options are returned using machine names as keys; labels are translated.",
);
// Validation: enforce uniformity of this param
if ($context !== NULL && !isset($contexts[$context])) {