static function &buildMembershipTypeValues(&$form, $membershipTypeID = null) { $whereClause = null; if (is_array($membershipTypeID)) { $allIDs = implode(',', $membershipTypeID); $whereClause = "WHERE id IN ( {$allIDs} )"; } else { if (is_numeric($membershipTypeID) && $membershipTypeID > 0) { $whereClause = "WHERE id = {$membershipTypeID}"; } } $query = "\nSELECT *\nFROM civicrm_membership_type\n {$whereClause};\n"; $dao = CRM_Core_DAO::executeQuery($query); $membershipTypeValues = array(); $membershipTypeFields = array('id', 'minimum_fee', 'name', 'is_active', 'description', 'contribution_type_id', 'auto_renew'); while ($dao->fetch()) { $membershipTypeValues[$dao->id] = array(); foreach ($membershipTypeFields as $mtField) { $membershipTypeValues[$dao->id][$mtField] = $dao->{$mtField}; } } $dao->free(); require_once 'CRM/Utils/Hook.php'; CRM_Utils_Hook::membershipTypeValues($form, $membershipTypeValues); if (is_numeric($membershipTypeID) && $membershipTypeID > 0) { return $membershipTypeValues[$membershipTypeID]; } else { return $membershipTypeValues; } }
/** * Build an array of available membership types. * * @param CRM_Core_Form $form * @param array $membershipTypeID * @param bool $activeOnly * Do we only want active ones? * (probably this should default to TRUE but as a newly added parameter we are leaving default b * behaviour unchanged). * * @return array */ public static function buildMembershipTypeValues(&$form, $membershipTypeID = array(), $activeOnly = FALSE) { $whereClause = " WHERE domain_id = " . CRM_Core_Config::domainID(); $membershipTypeIDS = (array) $membershipTypeID; if ($activeOnly) { $whereClause .= " AND is_active = 1 "; } if (!empty($membershipTypeIDS)) { $allIDs = implode(',', $membershipTypeIDS); $whereClause .= " AND id IN ( {$allIDs} )"; } CRM_Financial_BAO_FinancialType::getAvailableFinancialTypes($financialTypes, CRM_Core_Action::ADD); if ($financialTypes) { $whereClause .= " AND financial_type_id IN (" . implode(',', array_keys($financialTypes)) . ")"; } else { $whereClause .= " AND financial_type_id IN (0)"; } $query = "\nSELECT *\nFROM civicrm_membership_type\n {$whereClause};\n"; $dao = CRM_Core_DAO::executeQuery($query); $membershipTypeValues = array(); $membershipTypeFields = array('id', 'minimum_fee', 'name', 'is_active', 'description', 'financial_type_id', 'auto_renew', 'member_of_contact_id', 'relationship_type_id', 'relationship_direction', 'max_related', 'duration_unit', 'duration_interval'); while ($dao->fetch()) { $membershipTypeValues[$dao->id] = array(); foreach ($membershipTypeFields as $mtField) { $membershipTypeValues[$dao->id][$mtField] = $dao->{$mtField}; } } $dao->free(); CRM_Utils_Hook::membershipTypeValues($form, $membershipTypeValues); if (is_numeric($membershipTypeID) && $membershipTypeID > 0) { return $membershipTypeValues[$membershipTypeID]; } else { return $membershipTypeValues; } }
/** * @param CRM_Core_Form $form * @param int $membershipTypeID * * @return array */ public static function &buildMembershipTypeValues(&$form, $membershipTypeID = NULL) { $whereClause = " WHERE domain_id = " . CRM_Core_Config::domainID(); if (is_array($membershipTypeID)) { $allIDs = implode(',', $membershipTypeID); $whereClause .= " AND id IN ( {$allIDs} )"; } elseif (is_numeric($membershipTypeID) && $membershipTypeID > 0) { $whereClause .= " AND id = {$membershipTypeID}"; } $query = "\nSELECT *\nFROM civicrm_membership_type\n {$whereClause};\n"; $dao = CRM_Core_DAO::executeQuery($query); $membershipTypeValues = array(); $membershipTypeFields = array('id', 'minimum_fee', 'name', 'is_active', 'description', 'financial_type_id', 'auto_renew', 'member_of_contact_id', 'relationship_type_id', 'relationship_direction', 'max_related'); while ($dao->fetch()) { $membershipTypeValues[$dao->id] = array(); foreach ($membershipTypeFields as $mtField) { $membershipTypeValues[$dao->id][$mtField] = $dao->{$mtField}; } } $dao->free(); CRM_Utils_Hook::membershipTypeValues($form, $membershipTypeValues); if (is_numeric($membershipTypeID) && $membershipTypeID > 0) { return $membershipTypeValues[$membershipTypeID]; } else { return $membershipTypeValues; } }