/**
  * Browse all custom data groups.
  *
  * @return void
  * @access public
  * @static
  */
 function browse($action = null)
 {
     // get all custom groups sorted by weight
     $contribution = array();
     $dao =& new CRM_Contribute_DAO_ContributionPage();
     // set the domain_id parameter
     $config =& CRM_Core_Config::singleton();
     $dao->domain_id = $config->domainID();
     $dao->orderBy('title');
     $dao->find();
     while ($dao->fetch()) {
         $contribution[$dao->id] = array();
         CRM_Core_DAO::storeValues($dao, $contribution[$dao->id]);
         // form all action links
         $action = array_sum(array_keys($this->actionLinks()));
         // update enable/disable links depending on custom_group properties.
         if ($dao->is_active) {
             $action -= CRM_CORE_ACTION_ENABLE;
         } else {
             $action -= CRM_CORE_ACTION_DISABLE;
         }
         $contribution[$dao->id]['action'] = CRM_Core_Action::formLink(CRM_Contribute_Page_ContributionPage::actionLinks(), $action, array('id' => $dao->id));
     }
     $this->assign('rows', $contribution);
 }