本文整理汇总了PHP中CRM_Contact_BAO_ContactType::suppressSubTypes方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Contact_BAO_ContactType::suppressSubTypes方法的具体用法?PHP CRM_Contact_BAO_ContactType::suppressSubTypes怎么用?PHP CRM_Contact_BAO_ContactType::suppressSubTypes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Contact_BAO_ContactType
的用法示例。
在下文中一共展示了CRM_Contact_BAO_ContactType::suppressSubTypes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: checkProfileType
/**
* Check for mix profile fields (eg: individual + other contact types)
*
* @param int $ufGroupId
*
* @return bool
* true for mix profile else false
*/
public static function checkProfileType($ufGroupId)
{
$ufGroup = new CRM_Core_DAO_UFGroup();
$ufGroup->id = $ufGroupId;
$ufGroup->find(TRUE);
$profileTypes = array();
if ($ufGroup->group_type) {
$typeParts = explode(CRM_Core_DAO::VALUE_SEPARATOR, $ufGroup->group_type);
$profileTypes = explode(',', $typeParts[0]);
}
//early return if new profile.
if (empty($profileTypes)) {
return FALSE;
}
//we need to unset Contact
if (count($profileTypes) > 1) {
$index = array_search('Contact', $profileTypes);
if ($index !== FALSE) {
unset($profileTypes[$index]);
}
}
// suppress any subtypes if present
CRM_Contact_BAO_ContactType::suppressSubTypes($profileTypes);
$contactTypes = array('Contact', 'Individual', 'Household', 'Organization');
$components = array('Contribution', 'Participant', 'Membership', 'Activity');
$fields = array();
// check for mix profile condition
if (count($profileTypes) > 1) {
//check the there are any components include in profile
foreach ($components as $value) {
if (in_array($value, $profileTypes)) {
return TRUE;
}
}
//check if there are more than one contact types included in profile
if (count($profileTypes) > 1) {
return TRUE;
}
} elseif (count($profileTypes) == 1) {
// note for subtype case count would be zero
$profileTypes = array_values($profileTypes);
if (!in_array($profileTypes[0], $contactTypes)) {
return TRUE;
}
}
return FALSE;
}