コード例 #1
0
ファイル: Tag.php プロジェクト: kcristiano/civicrm-core
 /**
  * @param array $usedFor
  * @param bool $buildSelect
  * @param bool $all
  * @param int $parentId
  *
  * @return array
  */
 public static function getTagsUsedFor($usedFor = array('civicrm_contact'), $buildSelect = TRUE, $all = FALSE, $parentId = NULL)
 {
     $tags = array();
     if (empty($usedFor)) {
         return $tags;
     }
     if (!is_array($usedFor)) {
         $usedFor = array($usedFor);
     }
     if ($parentId === NULL) {
         $parentClause = " parent_id IS NULL AND ";
     } else {
         $parentClause = " parent_id = {$parentId} AND ";
     }
     foreach ($usedFor as $entityTable) {
         $tag = new CRM_Core_DAO_Tag();
         $tag->fields();
         $tag->orderBy('parent_id');
         if ($buildSelect) {
             $tag->whereAdd("is_tagset = 0 AND {$parentClause} used_for LIKE '%{$entityTable}%'");
         } else {
             $tag->whereAdd("used_for LIKE '%{$entityTable}%'");
         }
         if (!$all) {
             $tag->is_tagset = 0;
         }
         $tag->find();
         while ($tag->fetch()) {
             if ($buildSelect) {
                 $tags[$tag->id] = $tag->name;
             } else {
                 $tags[$tag->id]['name'] = $tag->name;
                 $tags[$tag->id]['parent_id'] = $tag->parent_id;
                 $tags[$tag->id]['is_tagset'] = $tag->is_tagset;
                 $tags[$tag->id]['used_for'] = $tag->used_for;
             }
         }
         $tag->free();
     }
     return $tags;
 }