return self::$_actionLinks;
}
+ /**
+ * Alphabetize multiple option values
+ *
+ * @return void
+ */
+ public function alphabetize() {
+ $optionGroupID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomField',
+ $this->_fid,
+ 'option_group_id'
+ );
+ $query = "
+SELECT id, label
+FROM civicrm_option_value
+WHERE option_group_id = %1";
+ $params = array(
+ 1 => array($optionGroupID, 'Integer'),
+ );
+ $dao = CRM_Core_DAO::executeQuery($query, $params);
+ $optionValue = array();
+ while ($dao->fetch()) {
+ $optionValue[$dao->id] = $dao->label;
+ }
+ asort($optionValue, SORT_STRING | SORT_FLAG_CASE | SORT_NATURAL);
+
+ $i = 1;
+ foreach ($optionValue as $key => $_) {
+ $clause[] = "WHEN $key THEN $i";
+ $i++;
+ }
+
+ $when = implode(' ', $clause);
+ $sql = "
+UPDATE civicrm_option_value
+SET weight = CASE id
+$when
+END
+WHERE option_group_id = %1";
+
+ $dao = CRM_Core_DAO::executeQuery($sql, $params);
+ }
+
/**
* Browse all custom group fields.
*
// no browse for edit/update/view
$this->edit($action);
}
+ else if ($action & CRM_Core_Action::MAP) {
+ $this->alphabetize();
+ }
else {
$this->browse();
}
{/literal}
<div class="action-link">
+ {crmButton q="reset=1&action=map&fid=$fid&gid=$gid" class="action-item" icon="sort-alpha-asc"}{ts}Alphabetize Options{/ts}{/crmButton}
{crmButton q="reset=1&action=add&fid=$fid&gid=$gid" class="action-item" icon="plus-circle"}{ts}Add Option{/ts}{/crmButton}
{crmButton p="civicrm/admin/custom/group/field" q="reset=1&action=browse&gid=$gid" class="action-item cancel" icon="times"}{ts}Done{/ts}{/crmButton}
</div>