本文整理汇总了PHP中CRM_Core_DAO_CustomGroup::getTableName方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Core_DAO_CustomGroup::getTableName方法的具体用法?PHP CRM_Core_DAO_CustomGroup::getTableName怎么用?PHP CRM_Core_DAO_CustomGroup::getTableName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Core_DAO_CustomGroup
的用法示例。
在下文中一共展示了CRM_Core_DAO_CustomGroup::getTableName方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: array
/**
* Store and return an array of all active custom fields.
*
* @param string $customDataType
* Type of Custom Data; empty is a synonym for "all contact data types".
* @param bool $showAll
* If true returns all fields (includes disabled fields).
* @param bool $inline
* If true returns all inline fields (includes disabled fields).
* @param int $customDataSubType
* Custom Data sub type value.
* @param int $customDataSubName
* Custom Data sub name value.
* @param bool $onlyParent
* Return only top level custom data, for eg, only Participant and ignore subname and subtype.
* @param bool $onlySubType
* Return only custom data for subtype.
* @param bool $checkPermission
* If false, do not include permissioning clause.
*
* @return array
* an array of active custom fields.
*
*/
public static function &getFields($customDataType = 'Individual', $showAll = FALSE, $inline = FALSE, $customDataSubType = NULL, $customDataSubName = NULL, $onlyParent = FALSE, $onlySubType = FALSE, $checkPermission = TRUE)
{
if (empty($customDataType)) {
$customDataType = array('Contact', 'Individual', 'Organization', 'Household');
}
if ($customDataType && !is_array($customDataType)) {
if (in_array($customDataType, CRM_Contact_BAO_ContactType::subTypes())) {
// This is the case when getFieldsForImport() requires fields
// limited strictly to a subtype.
$customDataSubType = $customDataType;
$customDataType = CRM_Contact_BAO_ContactType::getBasicType($customDataType);
$onlySubType = TRUE;
}
if (in_array($customDataType, array_keys(CRM_Core_SelectValues::customGroupExtends()))) {
// this makes the method flexible to support retrieving fields
// for multiple extends value.
$customDataType = array($customDataType);
}
}
$customDataSubType = CRM_Utils_Array::explodePadded($customDataSubType);
if (is_array($customDataType)) {
$cacheKey = implode('_', $customDataType);
} else {
$cacheKey = $customDataType;
}
$cacheKey .= !empty($customDataSubType) ? '_' . implode('_', $customDataSubType) : '_0';
$cacheKey .= $customDataSubName ? "{$customDataSubName}_" : '_0';
$cacheKey .= $showAll ? '_1' : '_0';
$cacheKey .= $inline ? '_1_' : '_0_';
$cacheKey .= $onlyParent ? '_1_' : '_0_';
$cacheKey .= $onlySubType ? '_1_' : '_0_';
$cacheKey .= $checkPermission ? '_1_' : '_0_';
$cgTable = CRM_Core_DAO_CustomGroup::getTableName();
// also get the permission stuff here
if ($checkPermission) {
$permissionClause = CRM_Core_Permission::customGroupClause(CRM_Core_Permission::VIEW, "{$cgTable}.");
} else {
$permissionClause = '(1)';
}
// lets md5 permission clause and take first 8 characters
$cacheKey .= substr(md5($permissionClause), 0, 8);
if (strlen($cacheKey) > 40) {
$cacheKey = md5($cacheKey);
}
if (!self::$_importFields || CRM_Utils_Array::value($cacheKey, self::$_importFields) === NULL) {
if (!self::$_importFields) {
self::$_importFields = array();
}
// check if we can retrieve from database cache
$fields = CRM_Core_BAO_Cache::getItem('contact fields', "custom importableFields {$cacheKey}");
if ($fields === NULL) {
$cfTable = self::getTableName();
$extends = '';
if (is_array($customDataType)) {
$value = NULL;
foreach ($customDataType as $dataType) {
if (in_array($dataType, array_keys(CRM_Core_SelectValues::customGroupExtends()))) {
if (in_array($dataType, array('Individual', 'Household', 'Organization'))) {
$val = "'" . CRM_Utils_Type::escape($dataType, 'String') . "', 'Contact' ";
} else {
$val = "'" . CRM_Utils_Type::escape($dataType, 'String') . "'";
}
$value = $value ? $value . ", {$val}" : $val;
}
}
if ($value) {
$extends = "AND {$cgTable}.extends IN ( {$value} ) ";
}
}
if (!empty($customDataType) && empty($extends)) {
// $customDataType specified a filter, but there is no corresponding SQL ($extends)
self::$_importFields[$cacheKey] = array();
return self::$_importFields[$cacheKey];
}
if ($onlyParent) {
$extends .= " AND {$cgTable}.extends_entity_column_value IS NULL AND {$cgTable}.extends_entity_column_id IS NULL ";
//.........这里部分代码省略.........
示例2: array
/**
* Store and return an array of all active custom fields.
*
* @param string $customDataType type of Custom Data
* @param boolean $showAll If true returns all fields (includes disabled fields)
* @param boolean $inline If true returns all inline fields (includes disabled fields)
* @param int $customDataSubType Custom Data sub type value
* @param int $customDataSubName Custom Data sub name value
* @param boolean $onlyParent return only top level custom data, for eg, only Participant and ignore subname and subtype
*
* @return array $fields - an array of active custom fields.
*
* @access public
* @static
*/
public static function &getFields($customDataType = 'Individual', $showAll = false, $inline = false, $customDataSubType = null, $customDataSubName = null, $onlyParent = false)
{
$onlySubType = false;
if ($customDataType && !is_array($customDataType)) {
if (in_array($customDataType, CRM_Contact_BAO_ContactType::subTypes())) {
// This is the case when getFieldsForImport() requires fields
// limited strictly to a subtype.
$customDataSubType = $customDataType;
$customDataType = CRM_Contact_BAO_ContactType::getBasicType($customDataType);
$onlySubType = true;
}
if (in_array($customDataType, array_keys(CRM_Core_SelectValues::customGroupExtends()))) {
// this makes the method flexible to support retrieving fields
// for multiple extends value.
$customDataType = array($customDataType);
}
}
if (is_array($customDataType)) {
$cacheKey = implode('_', $customDataType);
} else {
$cacheKey = $customDataType;
}
$cacheKey .= $customDataSubType ? "{$customDataSubType}_" : "_0";
$cacheKey .= $customDataSubName ? "{$customDataSubName}_" : "_0";
$cacheKey .= $showAll ? "_1" : "_0";
$cacheKey .= $inline ? "_1_" : "_0_";
$cacheKey .= $onlyParent ? "_1_" : "_0_";
$cacheKey .= $onlySubType ? "_1_" : "_0_";
$cgTable = CRM_Core_DAO_CustomGroup::getTableName();
// also get the permission stuff here
require_once 'CRM/Core/Permission.php';
$permissionClause = CRM_Core_Permission::customGroupClause(CRM_Core_Permission::VIEW, "{$cgTable}.");
// lets md5 permission clause and take first 8 characters
$cacheKey .= substr(md5($permissionClause), 0, 8);
if (strlen($cacheKey) > 40) {
$cacheKey = md5($cacheKey);
}
if (!self::$_importFields || CRM_Utils_Array::value($cacheKey, self::$_importFields) === null) {
if (!self::$_importFields) {
self::$_importFields = array();
}
// check if we can retrieve from database cache
require_once 'CRM/Core/BAO/Cache.php';
$fields =& CRM_Core_BAO_Cache::getItem('contact fields', "custom importableFields {$cacheKey}");
if ($fields === null) {
$cfTable = self::getTableName();
$extends = '';
if (is_array($customDataType)) {
$value = null;
foreach ($customDataType as $dataType) {
if (in_array($dataType, array_keys(CRM_Core_SelectValues::customGroupExtends()))) {
if (in_array($dataType, array('Individual', 'Household', 'Organization'))) {
$val = "'" . CRM_Utils_Type::escape($dataType, 'String') . "', 'Contact' ";
} else {
$val = "'" . CRM_Utils_Type::escape($dataType, 'String') . "'";
}
$value = $value ? $value . ", {$val}" : $val;
}
}
if ($value) {
$extends = "AND {$cgTable}.extends IN ( {$value} ) ";
}
}
if ($onlyParent) {
$extends .= " AND {$cgTable}.extends_entity_column_value IS NULL AND {$cgTable}.extends_entity_column_id IS NULL ";
}
$query = "SELECT {$cfTable}.id, {$cfTable}.label,\n {$cgTable}.title,\n {$cfTable}.data_type, {$cfTable}.html_type,\n {$cfTable}.options_per_line,\n {$cgTable}.extends, {$cfTable}.is_search_range,\n {$cgTable}.extends_entity_column_value,\n {$cgTable}.extends_entity_column_id,\n {$cfTable}.is_view,\n {$cfTable}.option_group_id,\n {$cfTable}.date_format,\n {$cfTable}.time_format,\n {$cgTable}.is_multiple\n FROM {$cfTable}\n INNER JOIN {$cgTable}\n ON {$cfTable}.custom_group_id = {$cgTable}.id\n WHERE ( 1 ) ";
if (!$showAll) {
$query .= " AND {$cfTable}.is_active = 1 AND {$cgTable}.is_active = 1 ";
}
if ($inline) {
$query .= " AND {$cgTable}.style = 'Inline' ";
}
//get the custom fields for specific type in
//combination with fields those support any type.
if ($customDataSubType) {
$customDataSubType = CRM_Core_DAO::VALUE_SEPARATOR . $customDataSubType . CRM_Core_DAO::VALUE_SEPARATOR;
$query .= " AND ( {$cgTable}.extends_entity_column_value LIKE '%{$customDataSubType}%'";
if (!$onlySubType) {
$query .= " OR {$cgTable}.extends_entity_column_value IS NULL";
}
$query .= " )";
}
if ($customDataSubName) {
$query .= " AND ( {$cgTable}.extends_entity_column_id = {$customDataSubName} ) ";
//.........这里部分代码省略.........
示例3: array
/**
* Store and return an array of all active custom fields.
*
* @param string $contactType Contact type
* @param boolean $showAll If true returns all fields (includes disabled fields)
*
* @return array $fields - an array of active custom fields.
*
* @access public
* @static
*/
function &getFields($contactType = 'Individual', $showAll = false)
{
if (!$GLOBALS['_CRM_CORE_BAO_CUSTOMFIELD']['_importFields'] || !CRM_Utils_Array::value($contactType, $GLOBALS['_CRM_CORE_BAO_CUSTOMFIELD']['_importFields'])) {
if (!$GLOBALS['_CRM_CORE_BAO_CUSTOMFIELD']['_importFields']) {
$GLOBALS['_CRM_CORE_BAO_CUSTOMFIELD']['_importFields'] = array();
}
$cfTable = CRM_Core_BAO_CustomField::getTableName();
$cgTable = CRM_Core_DAO_CustomGroup::getTableName();
$extends = '';
if ($contactType) {
if (in_array($contactType, array('Individual', 'Household', 'Organization'))) {
$value = "'" . CRM_Utils_Type::escape($contactType, 'String') . "', 'Contact' ";
} else {
$value = "'" . CRM_Utils_Type::escape($contactType, 'String') . "'";
}
$extends = "AND {$cgTable}.extends IN ( {$value} ) ";
}
$query = "SELECT {$cfTable}.id, {$cfTable}.label,\n {$cgTable}.title,\n {$cfTable}.data_type, {$cfTable}.html_type,\n {$cfTable}.options_per_line,\n {$cgTable}.extends, {$cfTable}.is_search_range\n FROM {$cfTable}\n INNER JOIN {$cgTable}\n ON {$cfTable}.custom_group_id = {$cgTable}.id\n WHERE ";
if (!$showAll) {
$query .= "{$cfTable}.is_active = 1\n AND {$cgTable}.is_active = 1";
} else {
$query .= " 1 ";
}
$query .= " {$extends}\n ORDER BY {$cgTable}.weight, {$cgTable}.title,\n {$cfTable}.weight, {$cfTable}.label";
$crmDAO =& new CRM_Core_DAO();
$crmDAO->query($query);
$result = $crmDAO->getDatabaseResult();
$fields = array();
while (($row = $result->fetchRow()) != null) {
$id = array_shift($row);
$fields[$id] = $row;
}
$GLOBALS['_CRM_CORE_BAO_CUSTOMFIELD']['_importFields'][$contactType] = $fields;
}
// CRM_Core_Error::debug( 's', self::$_importFields );
return $GLOBALS['_CRM_CORE_BAO_CUSTOMFIELD']['_importFields'][$contactType];
}