当前位置: 首页>>代码示例>>PHP>>正文


PHP CRM_Dedupe_BAO_RuleGroup::combos方法代码示例

本文整理汇总了PHP中CRM_Dedupe_BAO_RuleGroup::combos方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Dedupe_BAO_RuleGroup::combos方法的具体用法?PHP CRM_Dedupe_BAO_RuleGroup::combos怎么用?PHP CRM_Dedupe_BAO_RuleGroup::combos使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CRM_Dedupe_BAO_RuleGroup的用法示例。


在下文中一共展示了CRM_Dedupe_BAO_RuleGroup::combos方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: canProfilesDedupe

 /**
  * Check if the profiles collect enough information to dedupe.
  *
  * @param $profileIds
  * @param int $rgId
  * @return bool
  */
 public static function canProfilesDedupe($profileIds, $rgId = 0)
 {
     // find the unsupervised rule
     $rgParams = array('used' => 'Unsupervised', 'contact_type' => 'Individual');
     if ($rgId > 0) {
         $rgParams['id'] = $rgId;
     }
     $activeRg = CRM_Dedupe_BAO_RuleGroup::dedupeRuleFieldsWeight($rgParams);
     // get the combinations that could be a match for the rule
     $okCombos = $combos = array();
     CRM_Dedupe_BAO_RuleGroup::combos($activeRg[0], $activeRg[1], $combos);
     // create an index of what combinations involve each field
     $index = array();
     foreach ($combos as $comboid => $combo) {
         foreach ($combo as $cfield) {
             $index[$cfield][$comboid] = TRUE;
         }
         $combos[$comboid] = array_fill_keys($combo, 0);
         $okCombos[$comboid] = array_fill_keys($combo, 2);
     }
     // get profiles and see if they have the necessary combos
     $profileReqFields = array();
     foreach ($profileIds as $profileId) {
         if ($profileId && is_numeric($profileId)) {
             $fields = CRM_Core_BAO_UFGroup::getFields($profileId);
             // walk through the fields in the profile
             foreach ($fields as $field) {
                 // check each of the fields in the index against the profile field
                 foreach ($index as $ifield => $icombos) {
                     if (strpos($field['name'], $ifield) !== FALSE) {
                         // we found the field in the profile, now record it in the index
                         foreach ($icombos as $icombo => $dontcare) {
                             $combos[$icombo][$ifield] = $combos[$icombo][$ifield] != 2 && !$field['is_required'] ? 1 : 2;
                             if ($combos[$icombo] == $okCombos[$icombo]) {
                                 // if any combo is complete with 2s (all fields are present and required), we can go home
                                 return 2;
                             }
                         }
                     }
                 }
             }
         }
     }
     // check the combos to see if everything is > 0
     foreach ($combos as $comboid => $combo) {
         $complete = FALSE;
         foreach ($combo as $cfield) {
             if ($cfield > 0) {
                 $complete = TRUE;
             } else {
                 // this combo isn't complete--skip to the next combo
                 continue 2;
             }
         }
         if ($complete) {
             return 1;
         }
     }
     // no combo succeeded
     return 0;
 }
开发者ID:vakeesan26,项目名称:civicrm-core,代码行数:68,代码来源:Registration.php


注:本文中的CRM_Dedupe_BAO_RuleGroup::combos方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。