addScriptFile('civicrm', 'bower_components/jstree/dist/jstree.min.js', 0, 'html-header') ->addStyleFile('civicrm', 'bower_components/jstree/dist/themes/default/style.min.css') ->addPermissions(array('administer reserved tags', 'administer Tagsets')); $usedFor = $tagsets = array(); $result = civicrm_api3('OptionValue', 'get', array( 'return' => array("value", "name"), 'option_group_id' => "tag_used_for", )); foreach ($result['values'] as $value) { $usedFor[$value['value']] = $value['name']; } $result = civicrm_api3('Tag', 'get', array( 'return' => array("name", "used_for", "description", "created_id.display_name", "created_date", "is_reserved"), 'is_tagset' => 1, 'options' => array('limit' => 0), )); foreach ($result['values'] as $id => $tagset) { $used = explode(',', CRM_Utils_Array::value('used_for', $tagset, '')); $tagset['used_for_label'] = array_values(array_intersect_key($usedFor, array_flip($used))); if (isset($tagset['created_id.display_name'])) { $tagset['display_name'] = $tagset['created_id.display_name']; } unset($tagset['created_id.display_name']); $tagsets[$id] = $tagset; } $this->assign('usedFor', $usedFor); $this->assign('tagsets', $tagsets); return parent::run(); } }