本文整理汇总了PHP中CRM_Core_PseudoConstant::stateProvinceForCountry方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Core_PseudoConstant::stateProvinceForCountry方法的具体用法?PHP CRM_Core_PseudoConstant::stateProvinceForCountry怎么用?PHP CRM_Core_PseudoConstant::stateProvinceForCountry使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Core_PseudoConstant
的用法示例。
在下文中一共展示了CRM_Core_PseudoConstant::stateProvinceForCountry方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: buildQuickForm
public function buildQuickForm()
{
$config =& CRM_Core_Config::singleton();
$this->add('select', 'country_id', ts('Country'), array('' => ts('- select -')) + CRM_Core_PseudoConstant::country());
$countryID = isset($_POST['country_id']) ? $_POST['country_id'] : null;
if (!$countryID) {
$countryID = isset($this->_params['country_id']) ? $this->_params['country_id'] : null;
}
if ($countryID) {
$this->add('select', 'state_province_id', ts('State'), array('' => ts('- select a state -')) + CRM_Core_PseudoConstant::stateProvinceForCountry($countryID));
} else {
$this->add('select', 'state_province_id', ts('State'), array('' => ts('- select a country first -')));
}
$stateCountryURL = CRM_Utils_System::url('civicrm/ajax/jqState');
$this->assign('stateCountryURL', $stateCountryURL);
$this->addButtons(array(array('type' => 'refresh', 'name' => ts('Search'), 'isDefault' => true), array('type' => 'cancel', 'name' => ts('Cancel'))));
}
示例2: buildQuickForm
/**
* Build the form
*
* @access public
*
* @return void
*/
function buildQuickForm($form, $proxSearch)
{
// is proximity search required (2) or optional (1)?
$proxRequired = $proxSearch == 2 ? TRUE : FALSE;
$form->assign('proximity_search', TRUE);
$form->add('text', 'prox_street_address', ts('Street Address'), NULL, FALSE);
$form->add('text', 'prox_city', ts('City'), NULL, FALSE);
$form->add('text', 'prox_postal_code', ts('Postal Code'), NULL, FALSE);
$defaults = self::setDefaultValues($form);
if (CRM_Utils_Array::value('prox_country_id', $defaults)) {
$stateProvince = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvinceForCountry($defaults['prox_country_id']);
} else {
$stateProvince = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvince();
}
$form->add('select', 'prox_state_province_id', ts('State/Province'), $stateProvince, $proxRequired);
$country = array('' => ts('- select -')) + CRM_Core_PseudoConstant::country();
$form->add('select', 'prox_country_id', ts('Country'), $country, $proxRequired);
$form->add('text', 'prox_distance', ts('Distance'), NULL, $proxRequired);
$proxUnits = array('km' => ts('km'), 'miles' => ts('miles'));
$form->add('select', 'prox_distance_unit', ts('Units'), $proxUnits, $proxRequired);
// prox_distance_unit
// state country js, CRM-5233
$stateCountryMap = array();
$stateCountryMap[] = array('state_province' => 'prox_state_province_id', 'country' => 'prox_country_id');
CRM_Core_BAO_Address::addStateCountryMap($stateCountryMap);
CRM_Core_BAO_Address::fixAllStateSelects($this, $defaults);
$form->addFormRule(array('CRM_Contact_Form_Task_ProximityCommon', 'formRule'), $form);
}
示例3: fixStateSelect
static function fixStateSelect(&$form, $countryElementName, $stateElementName, $countyElementName, $countryDefaultValue, $stateDefaultValue = NULL)
{
$countryID = $stateID = NULL;
if (isset($form->_elementIndex[$countryElementName])) {
//get the country id to load states -
//first check for submitted value,
//then check for user passed value.
//finally check for element default val.
$submittedVal = $form->getSubmitValue($countryElementName);
if ($submittedVal) {
$countryID = $submittedVal;
} elseif ($countryDefaultValue) {
$countryID = $countryDefaultValue;
} else {
$countryID = CRM_Utils_Array::value(0, $form->getElementValue($countryElementName));
}
}
$stateTitle = ts('State/Province');
if (isset($form->_fields[$stateElementName]['title'])) {
$stateTitle = $form->_fields[$stateElementName]['title'];
}
if (isset($form->_elementIndex[$stateElementName])) {
$submittedValState = $form->getSubmitValue($stateElementName);
if ($submittedValState) {
$stateID = $submittedValState;
} elseif ($stateDefaultValue) {
$stateID = $stateDefaultValue;
} else {
$stateID = CRM_Utils_Array::value(0, $form->getElementValue($stateElementName));
}
}
if (isset($form->_elementIndex[$stateElementName])) {
if ($countryID) {
$stateProvinces = CRM_Core_PseudoConstant::stateProvinceForCountry($countryID);
} else {
$stateProvinces = CRM_Core_PseudoConstant::stateProvince();
}
$stateSelect =& $form->addElement('select', $stateElementName, $stateTitle, array('' => ts('- select -')) + $stateProvinces);
}
if (isset($form->_elementIndex[$stateElementName]) && isset($form->_elementIndex[$countyElementName])) {
if ($stateID) {
$counties = CRM_Core_PseudoConstant::countyForState($stateID);
} else {
$counties = CRM_Core_PseudoConstant::county();
}
$form->addElement('select', $countyElementName, ts('County'), array('' => ts('- select -')) + $counties);
}
// CRM-7296 freeze the select for state if address is shared with household
// CRM-9070 freeze the select for state if it is view only
if (isset($form->_fields) && !empty($form->_fields[$stateElementName]) && (!empty($form->_fields[$stateElementName]['is_shared']) || !empty($form->_fields[$stateElementName]['is_view']))) {
$stateSelect->freeze();
}
}
示例4: testStateCountry
function testStateCountry()
{
$this->webtestLogin();
$config = CRM_Core_Config::singleton();
// Add new profile.
$this->openCiviPage('admin/uf/group', 'reset=1');
$this->click('newCiviCRMProfile-top');
$this->waitForElementPresent('_qf_Group_next-bottom');
//Name of profile
$profileTitle = 'Country state province web test temp';
$this->type('title', $profileTitle);
// Standalone form or directory
$this->click('uf_group_type_Profile');
//click on save
$this->click('_qf_Group_next');
$this->waitForPageToLoad($this->getTimeoutMsec());
//check for profile create
$this->waitForText('crm-notification-container', "Profile '{$profileTitle}' has been added. You can add fields to this profile now.");
$gid = $this->urlArg('gid');
//Add Country field to profile
$this->openCiviPage('admin/uf/group/field/add', array('action' => 'add', 'reset' => 1, 'gid' => $gid), 'field_name[0]');
$this->click('field_name[0]');
$this->select('field_name[0]', 'value=Contact');
$this->click("//option[@value='Contact']");
$this->click('field_name[1]');
$this->select('field_name[1]', 'value=country');
$this->click("//option[@value='country']");
$this->click('is_required');
$this->click('_qf_Field_next_new');
$this->waitForPageToLoad($this->getTimeoutMsec());
//Add State field to profile
$this->click('field_name[0]');
$this->select('field_name[0]', 'value=Contact');
$this->click("//option[@value='Contact']");
$this->click('field_name[1]');
$this->select('field_name[1]', 'value=state_province');
$this->click("xpath=//select[@id='field_name_1']/option[@value='state_province']");
$this->click('is_required');
//click on save
$this->click('_qf_Field_next');
$this->waitForPageToLoad($this->getTimeoutMsec());
if ($gid) {
$this->openCiviPage('admin/setting/localization', 'reset=1', '_qf_Localization_next-bottom');
$country = array(1001 => 'Afghanistan', 1013 => 'Australia', 1039 => 'Canada', 1101 => 'India');
$enabledCountries = $this->getSelectOptions("countryLimit-t");
$enabledStates = $this->getSelectOptions("provinceLimit-t");
$newCountry = array();
foreach ($country as $countryID => $countryName) {
if (!in_array($countryName, $enabledCountries)) {
$newCountry[$countryID] = $countryName;
$this->addSelection("countryLimit-f", "label={$countryName}");
$this->click("xpath=//select[@id='countryLimit-f']/option[@value='{$countryID}']");
$this->click("xpath=//tr[@class='crm-localization-form-block-countryLimit']/td[2]/table//tbody/tr/td[2]/input[@name='add']");
}
if (!in_array($countryName, $enabledStates)) {
$this->addSelection("provinceLimit-f", "label={$countryName}");
$this->click("//option[@value='{$countryID}']");
$this->click("xpath=//tr[@class='crm-localization-form-block-provinceLimit']/td[2]/table//tbody/tr/td[2]/input[@name='add']");
}
$added = true;
}
if ($added) {
$this->click("_qf_Localization_next-bottom");
$this->waitForPageToLoad($this->getTimeoutMsec());
$this->waitForText('crm-notification-container', "Saved");
}
$this->openCiviPage("profile/create", "gid={$gid}&reset=1", NULL);
$this->waitForElementPresent("xpath=//form[@id='Edit']/div[2]/div/div/div[2]/select");
$this->click("xpath=//form[@id='Edit']/div[2]/div/div/div[2]/select");
$countryID = array_rand($country);
$states = CRM_Core_PseudoConstant::stateProvinceForCountry($countryID, 'id');
$stateID = array_rand($states);
$this->select("xpath=//form[@id='Edit']/div[2]/div/div/div[2]/select", "value={$countryID}");
$this->waitForElementPresent("xpath=//form[@id='Edit']/div[2]/div/div[2]/div[2]/select/option[@value={$stateID}]");
$this->click("xpath=//form[@id='Edit']/div[2]/div/div[2]/div[2]/select");
$this->select("xpath=//form[@id='Edit']/div[2]/div/div[2]/div[2]/select", "value={$stateID}");
$this->clickLink('_qf_Edit_next', NULL);
// Delete profile
$this->openCiviPage('admin/uf/group', 'action=delete&id=' . $gid, '_qf_Group_next-bottom');
$this->clickLink('_qf_Group_next-bottom', 'newCiviCRMProfile-bottom');
$this->waitForText('crm-notification-container', "Profile '{$profileTitle}' has been deleted.");
$this->openCiviPage("admin/setting/localization", "reset=1", "_qf_Localization_next-bottom");
$enabledCountries = $this->getSelectOptions("countryLimit-t");
$enabledStates = $this->getSelectOptions("provinceLimit-t");
$removed = false;
foreach ($newCountry as $countryID => $countryName) {
$this->addSelection("countryLimit-t", "label={$countryName}");
$this->click("xpath=//select[@id='countryLimit-t']/option[@value='{$countryID}']");
$this->click("xpath=//tr[@class='crm-localization-form-block-countryLimit']/td[2]/table//tbody/tr/td[2]/input[@name='remove']");
$this->addSelection("provinceLimit-t", "label={$countryName}");
$this->click("//option[@value='{$countryID}']");
$this->click("xpath=//tr[@class='crm-localization-form-block-provinceLimit']/td[2]/table//tbody/tr/td[2]/input[@name='remove']");
$removed = true;
}
if ($removed) {
$this->click("_qf_Localization_next-bottom");
$this->waitForPageToLoad($this->getTimeoutMsec());
$this->waitForText('crm-notification-container', "Saved");
}
}
//.........这里部分代码省略.........
示例5: fopen
//initialize civicrm
$rootPath = '/var/www/drupal7/sites/all/modules/civicrm/';
require_once $rootPath . 'civicrm.config.php';
require_once $rootPath . 'CRM/Core/Config.php';
$config = CRM_Core_Config::singleton();
CRM_Core_DAO::$_dbColumnValueCache = NULL;
//readfile
$fileName = 'MyImport2.csv';
CRM_Core_Error::debug('$fileName', $fileName);
exit;
//$fileName = 'test1.csv';
$read = fopen($fileName, 'r');
$rows = fgetcsv($read);
$contactSubType = array('Associate Supplier' => 'Associate', 'Foodservice Operator' => 'Food_Service_Operator');
$stateProvince = CRM_Core_PseudoConstant::stateProvinceForCountry(1039, 'abbreviation');
$errors['org'] = $errors['ind'] = $errors['mem'] = array();
$totalImported = 0;
while ($rows = fgetcsv($read)) {
CRM_Core_Error::debug('$rows', $rows[0] . '/n \\n');
$contactResult = civicrm_api3('Contact', 'get', array('return' => 'id', 'external_identifier' => $rows[0]));
$membershipResult = array();
if (empty($contactResult['id'])) {
$contactParams = array('external_identifier' => $rows[0], 'contact_type' => 'Organization', 'sort_name' => $rows[3], 'contact_sub_type' => $contactSubType[$rows[2]], 'display_name' => $rows[3], 'source' => 'Import via script', 'organization_name' => $rows[5], 'email' => $rows[19], 'api.Address.create' => array('location_type_id' => 3, 'is_primary' => 1, 'street_address' => $rows[7], 'city' => $rows[13], 'state_province_id' => array_search($rows[14], $stateProvince), 'postal_code' => $rows[15], 'country_id' => 1039), 'api.Phone.create' => array(array('location_type_id' => 3, 'is_primary' => 1, 'phone' => $rows[11], 'phone_type_id' => 1), array('location_type_id' => 3, 'is_primary' => 1, 'phone' => $rows[12], 'phone_type_id' => 3)));
$contactResult = civicrm_api3('Contact', 'create', $contactParams);
} else {
$errors['org'][] = $rows[0];
// check for membership for CFRA ID
$membershipResult = civicrm_api3('Membership', 'get', array('contact_id' => $contactResult['id'], 'return' => 'id'));
}
if (!empty($rows[9]) && !empty($rows[10])) {
示例6: resolveDefaults
/**
* Get the values for pseudoconstants for name->value and reverse.
*
* @param array $defaults
* (reference) the default values, some of which need to be resolved.
* @param bool $reverse
* True if we want to resolve the values in the reverse direction (value -> name).
*/
public static function resolveDefaults(&$defaults, $reverse = FALSE)
{
// Hack for birth_date.
if (!empty($defaults['birth_date'])) {
if (is_array($defaults['birth_date'])) {
$defaults['birth_date'] = CRM_Utils_Date::format($defaults['birth_date'], '-');
}
}
CRM_Utils_Array::lookupValue($defaults, 'prefix', CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'prefix_id'), $reverse);
CRM_Utils_Array::lookupValue($defaults, 'suffix', CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'suffix_id'), $reverse);
CRM_Utils_Array::lookupValue($defaults, 'gender', CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'gender_id'), $reverse);
CRM_Utils_Array::lookupValue($defaults, 'communication_style', CRM_Core_PseudoConstant::get('CRM_Contact_DAO_Contact', 'communication_style_id'), $reverse);
//lookup value of email/postal greeting, addressee, CRM-4575
foreach (self::$_greetingTypes as $greeting) {
$filterCondition = array('contact_type' => CRM_Utils_Array::value('contact_type', $defaults), 'greeting_type' => $greeting);
CRM_Utils_Array::lookupValue($defaults, $greeting, CRM_Core_PseudoConstant::greeting($filterCondition), $reverse);
}
$blocks = array('address', 'im', 'phone');
foreach ($blocks as $name) {
if (!array_key_exists($name, $defaults) || !is_array($defaults[$name])) {
continue;
}
foreach ($defaults[$name] as $count => &$values) {
//get location type id.
CRM_Utils_Array::lookupValue($values, 'location_type', CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id'), $reverse);
if ($name == 'address') {
// FIXME: lookupValue doesn't work for vcard_name
if (!empty($values['location_type_id'])) {
$vcardNames = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array('labelColumn' => 'vcard_name'));
$values['vcard_name'] = $vcardNames[$values['location_type_id']];
}
if (!CRM_Utils_Array::lookupValue($values, 'country', CRM_Core_PseudoConstant::country(), $reverse) && $reverse) {
CRM_Utils_Array::lookupValue($values, 'country', CRM_Core_PseudoConstant::countryIsoCode(), $reverse);
}
// CRM-7597
// if we find a country id above, we need to restrict it to that country
// rather than the list of all countries
if (!empty($values['country_id'])) {
$stateProvinceList = CRM_Core_PseudoConstant::stateProvinceForCountry($values['country_id']);
} else {
$stateProvinceList = CRM_Core_PseudoConstant::stateProvince();
}
if (!CRM_Utils_Array::lookupValue($values, 'state_province', $stateProvinceList, $reverse) && $reverse) {
if (!empty($values['country_id'])) {
$stateProvinceList = CRM_Core_PseudoConstant::stateProvinceForCountry($values['country_id'], 'abbreviation');
} else {
$stateProvinceList = CRM_Core_PseudoConstant::stateProvinceAbbreviation();
}
CRM_Utils_Array::lookupValue($values, 'state_province', $stateProvinceList, $reverse);
}
if (!empty($values['state_province_id'])) {
$countyList = CRM_Core_PseudoConstant::countyForState($values['state_province_id']);
} else {
$countyList = CRM_Core_PseudoConstant::county();
}
CRM_Utils_Array::lookupValue($values, 'county', $countyList, $reverse);
}
if ($name == 'im') {
CRM_Utils_Array::lookupValue($values, 'provider', CRM_Core_PseudoConstant::get('CRM_Core_DAO_IM', 'provider_id'), $reverse);
}
if ($name == 'phone') {
CRM_Utils_Array::lookupValue($values, 'phone_type', CRM_Core_PseudoConstant::get('CRM_Core_DAO_Phone', 'phone_type_id'), $reverse);
}
// Kill the reference.
unset($values);
}
}
}
示例7: jqState
function jqState(&$config)
{
if (!isset($_GET['_value']) || empty($_GET['_value'])) {
exit;
}
require_once 'CRM/Core/PseudoConstant.php';
$result =& CRM_Core_PseudoConstant::stateProvinceForCountry($_GET['_value']);
$elements = array(array('name' => ts('- select a state-'), 'value' => ''));
foreach ($result as $id => $name) {
$elements[] = array('name' => $name, 'value' => $id);
}
require_once "CRM/Utils/JSON.php";
echo json_encode($elements);
exit;
}
示例8: simpledonate_civicrm_pageRun
function simpledonate_civicrm_pageRun(&$page)
{
$pageName = $page->getVar('_name');
if ($pageName == 'Civi\\Angular\\Page\\Main' && $page->urlPath[1] == 'simple') {
//Get all contribution page detils and session details to be used in js
$settingVal = simpledonate_getSimpleDonateSetting();
$session = CRM_Core_Session::singleton();
$contactID = $session->get('userID');
if ($settingVal['donatePageID']) {
$extends = CRM_Core_Component::getComponentID('CiviContribute');
$priceSetID = CRM_Price_BAO_PriceSet::getFor('civicrm_contribution_page', $settingVal['donatePageID'], $extends);
$priceField = civicrm_api3('PriceField', 'get', array("price_set_id" => $priceSetID));
//Check for is_quick_config
$isQuickConfig = civicrm_api3('PriceSet', 'getvalue', array('id' => $priceSetID, 'return' => "is_quick_config"));
//Check for Other amount
$otherAmount = FALSE;
foreach ($priceField['values'] as $key => $value) {
if ($value['name'] == 'other_amount') {
$otherAmount = TRUE;
} else {
$priceFieldVal = civicrm_api3('PriceFieldValue', 'get', array('return' => "amount, title, name, is_default", "price_field_id" => $value['id']));
$priceList = $priceFieldVal['values'];
$htmlPriceList[$value['html_type']] = $priceFieldVal['values'];
}
}
//Get donation page details
$donateConfig = $donatePage = civicrm_api3('ContributionPage', 'getsingle', array('id' => $settingVal['donatePageID']));
CRM_Utils_System::setTitle($donateConfig['title']);
// Set the page title
$currencySymbol = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_Currency', $donatePage['currency'], 'symbol', 'name');
$test = !empty($_GET['test']) ? 'test' : 'live';
// Check for test or live donation
//Get payment processor details
if (is_array($donatePage['payment_processor'])) {
$paymentProcessors = CRM_Financial_BAO_PaymentProcessor::getPayments($donatePage['payment_processor'], $test);
} else {
$paymentProcessor = CRM_Financial_BAO_PaymentProcessor::getPayment($donatePage['payment_processor'], $test);
$paymentProcessors[$paymentProcessor['id']] = $paymentProcessor;
$paymentProcessors[$paymentProcessor['id']]['hide'] = $donateConfig['is_pay_later'] ? FALSE : TRUE;
}
//set Country and State value
$config = CRM_Core_Config::singleton();
$defaultContactCountry = $config->defaultContactCountry;
$stateProvince = array_flip(CRM_Core_PseudoConstant::stateProvinceForCountry($defaultContactCountry));
$countryList = CRM_Core_PseudoConstant::country();
$stateList = array();
foreach ($countryList as $key => $val) {
$stateList[$key] = CRM_Core_PseudoConstant::stateProvinceForCountry($key);
}
CRM_Core_Resources::singleton()->addSetting(array('simpledonate' => array('sessionContact' => $contactID, 'priceSetID' => $priceSetID, 'ziptasticEnable' => $settingVal['ziptasticEnable'], 'countryList' => CRM_Core_PseudoConstant::country(), 'stateList' => $stateList, 'country' => $defaultContactCountry, 'allStates' => $stateProvince, 'currency' => $currencySymbol, 'config' => $donateConfig, 'paymentProcessor' => $paymentProcessors, 'priceList' => $priceList, 'otherAmount' => $otherAmount, 'isTest' => $test == 'test' ? 1 : 0, 'htmlPriceList' => $htmlPriceList, 'isQuickConfig' => $isQuickConfig)));
//Include bootstrap and custom css files to affect this angular page only
CRM_Core_Resources::singleton()->addStyleFile('com.webaccessglobal.simpledonate', 'css/bootstrap.min.css', 103, 'page-header');
CRM_Core_Resources::singleton()->addStyleFile('com.webaccessglobal.simpledonate', 'css/simpledonate.css', 100, 'page-body');
}
if ($contactID) {
$id = array('id' => $contactID);
$result = civicrm_api3('Contact', 'getSingle', $id);
CRM_Core_Resources::singleton()->addSetting(array('simpledonateVal' => $result));
}
}
}
示例9: fixStateSelect
static function fixStateSelect(&$form, $countryElementName, $stateElementName, $countryDefaultValue)
{
$countryID = null;
if (isset($form->_elementIndex[$countryElementName])) {
$countryValue = $form->getElementValue($countryElementName);
if ($countryValue) {
$countryID = $countryValue[0];
} else {
$countryID = $countryDefaultValue;
}
}
$stateTitle = ts('State/Province');
if (isset($form->_fields[$stateElementName]['title'])) {
$stateTitle = $form->_fields[$stateElementName]['title'];
}
if ($countryID && isset($form->_elementIndex[$stateElementName])) {
$form->addElement('select', $stateElementName, $stateTitle, array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvinceForCountry($countryID));
}
}
示例10: buildForm
function buildForm(&$form)
{
$config =& CRM_Core_Config::singleton();
$countryDefault = $config->defaultContactCountry;
$tag = array('' => ts('- any tag -')) + CRM_Core_PseudoConstant::tag();
$form->addElement('select', 'tag', ts('Tag'), $tag);
$form->add('text', 'distance', ts('Distance'));
$form->add('text', 'street_address', ts('Street Address'));
$form->add('text', 'city', ts('City'));
$form->add('text', 'postal_code', ts('Postal Code'));
$stateCountryMap = array();
$stateCountryMap[] = array('state_province' => 'state_province_id', 'country' => 'country_id');
$defaults = array();
if ($countryDefault) {
$stateProvince = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvinceForCountry($countryDefault);
$defaults['country_id'] = $countryDefault;
} else {
$stateProvince = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvince();
}
$form->addElement('select', 'state_province_id', ts('State/Province'), $stateProvince);
$country = array('' => ts('- select -')) + CRM_Core_PseudoConstant::country();
$form->add('select', 'country_id', ts('Country'), $country, true);
$form->add('text', 'distance', ts('Radius for Proximity Search (in km)'), null, true);
// state country js, CRM-5233
require_once 'CRM/Core/BAO/Address.php';
CRM_Core_BAO_Address::addStateCountryMap($stateCountryMap);
CRM_Core_BAO_Address::fixAllStateSelects($form, $defaults);
/**
* You can define a custom title for the search form
*/
$this->setTitle('Proximity Search');
/**
* if you are using the standard template, this array tells the template what elements
* are part of the search criteria
*/
$form->assign('elements', array('tag', 'street_address', 'city', 'postal_code', 'country_id', 'state_province_id', 'distance'));
}
示例11: jqState
static function jqState($config)
{
if (!isset($_GET['_value']) || empty($_GET['_value'])) {
CRM_Utils_System::civiExit();
}
$result = CRM_Core_PseudoConstant::stateProvinceForCountry($_GET['_value']);
$elements = array(array('name' => ts('- select a state -'), 'value' => ''));
foreach ($result as $id => $name) {
$elements[] = array('name' => $name, 'value' => $id);
}
echo json_encode($elements);
CRM_Utils_System::civiExit();
}
示例12: location
static function location(&$form)
{
// Build location criteria based on _submitValues if
// available; otherwise, use $form->_formValues.
$formValues = $form->_submitValues;
if (empty($formValues) && !empty($form->_formValues)) {
$formValues = $form->_formValues;
}
$form->addElement('hidden', 'hidden_location', 1);
$addressOptions = CRM_Core_BAO_Setting::valueOptions(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'address_options', TRUE, NULL, TRUE);
$attributes = CRM_Core_DAO::getAttribute('CRM_Core_DAO_Address');
$elements = array('street_address' => array(ts('Street Address'), $attributes['street_address'], NULL, NULL), 'city' => array(ts('City'), $attributes['city'], NULL, NULL), 'postal_code' => array(ts('Zip / Postal Code'), $attributes['postal_code'], NULL, NULL), 'county' => array(ts('County'), $attributes['county_id'], 'county', TRUE), 'state_province' => array(ts('State / Province'), $attributes['state_province_id'], 'stateProvince', TRUE), 'country' => array(ts('Country'), $attributes['country_id'], 'country', FALSE), 'address_name' => array(ts('Address Name'), $attributes['address_name'], NULL, NULL), 'street_number' => array(ts('Street Number'), $attributes['street_number'], NULL, NULL), 'street_name' => array(ts('Street Name'), $attributes['street_name'], NULL, NULL), 'street_unit' => array(ts('Apt/Unit/Suite'), $attributes['street_unit'], NULL, NULL));
$parseStreetAddress = CRM_Utils_Array::value('street_address_parsing', $addressOptions, 0);
$form->assign('parseStreetAddress', $parseStreetAddress);
foreach ($elements as $name => $v) {
list($title, $attributes, $select, $multiSelect) = $v;
if (in_array($name, array('street_number', 'street_name', 'street_unit'))) {
if (!$parseStreetAddress) {
continue;
}
} elseif (!$addressOptions[$name]) {
continue;
}
if (!$attributes) {
$attributes = $attributes[$name];
}
if ($select) {
$config = CRM_Core_Config::singleton();
$countryDefault = $config->defaultContactCountry;
$stateCountryMap[] = array('state_province' => 'state_province', 'country' => 'country', 'county' => 'county');
if ($select == 'stateProvince') {
if ($countryDefault && !isset($formValues['country'])) {
$selectElements = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvinceForCountry($countryDefault);
} elseif ($formValues['country']) {
$selectElements = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvinceForCountry($formValues['country']);
} else {
//if not setdefault any country
$selectElements = array('' => ts('- select -')) + CRM_Core_PseudoConstant::$select();
}
$element = $form->addElement('select', $name, $title, $selectElements);
} elseif ($select == 'country') {
if ($countryDefault) {
//for setdefault country
$defaultValues = array();
$defaultValues[$name] = $countryDefault;
$form->setDefaults($defaultValues);
}
$selectElements = array('' => ts('- select -')) + CRM_Core_PseudoConstant::$select();
$element = $form->addElement('select', $name, $title, $selectElements);
} elseif ($select == 'county') {
if (array_key_exists('state_province', $formValues) && !CRM_Utils_System::isNull($formValues['state_province'])) {
$selectElements = array('' => ts('- select -')) + CRM_Core_PseudoConstant::countyForState($formValues['state_province']);
} else {
$selectElements = array('' => ts('- select a state -'));
}
$element = $form->addElement('select', $name, $title, $selectElements);
} else {
$selectElements = array('' => ts('- select -')) + CRM_Core_PseudoConstant::$select();
$element = $form->addElement('select', $name, $title, $selectElements);
}
if ($multiSelect) {
$element->setMultiple(TRUE);
}
} else {
$form->addElement('text', $name, $title, $attributes);
}
if ($addressOptions['postal_code']) {
$form->addElement('text', 'postal_code_low', ts('Range-From'), CRM_Utils_Array::value('postal_code', $attributes));
$form->addElement('text', 'postal_code_high', ts('To'), CRM_Utils_Array::value('postal_code', $attributes));
}
}
// extend addresses with proximity search
$form->addElement('text', 'prox_distance', ts('Find contacts within'));
$form->addElement('select', 'prox_distance_unit', NULL, array('miles' => ts('Miles'), 'kilos' => ts('Kilometers')));
// is there another form rule that does decimals besides money ? ...
$form->addRule('prox_distance', ts('Please enter positive number as a distance'), 'numeric');
CRM_Core_BAO_Address::addStateCountryMap($stateCountryMap);
$worldRegions = array('' => ts('- any region -')) + CRM_Core_PseudoConstant::worldRegion();
$form->addElement('select', 'world_region', ts('World Region'), $worldRegions);
// checkboxes for location type
$location_type = array();
$locationType = CRM_Core_PseudoConstant::locationType();
foreach ($locationType as $locationTypeID => $locationTypeName) {
$location_type[] = $form->createElement('checkbox', $locationTypeID, NULL, $locationTypeName);
}
$form->addGroup($location_type, 'location_type', ts('Location Types'), ' ');
// custom data extending addresses -
$extends = array('Address');
$groupDetails = CRM_Core_BAO_CustomGroup::getGroupDetail(NULL, TRUE, $extends);
if ($groupDetails) {
$form->assign('addressGroupTree', $groupDetails);
foreach ($groupDetails as $group) {
foreach ($group['fields'] as $field) {
$elementName = 'custom_' . $field['id'];
CRM_Core_BAO_CustomField::addQuickFormElement($form, $elementName, $field['id'], FALSE, FALSE, TRUE);
}
}
}
}
示例13: buildQuickForm
/**
* Function to build the form
*
* @return None
* @access public
*/
public function buildQuickForm()
{
$config = CRM_Core_Config::singleton();
$i18n = CRM_Core_I18n::singleton();
CRM_Utils_System::setTitle(ts('Settings - Localization'));
$locales = CRM_Core_I18n::languages();
$warningTitle = json_encode(ts("Warning"));
$domain = new CRM_Core_DAO_Domain();
$domain->find(TRUE);
if ($domain->locales) {
// for multi-lingual sites, populate default language drop-down with available languages
$lcMessages = array();
foreach ($locales as $loc => $lang) {
if (substr_count($domain->locales, $loc)) {
$lcMessages[$loc] = $lang;
}
}
$this->addElement('select', 'lcMessages', ts('Default Language'), $lcMessages);
// add language limiter and language adder
$this->addCheckBox('languageLimit', ts('Available Languages'), array_flip($lcMessages), NULL, NULL, NULL, NULL, ' ');
$this->addElement('select', 'addLanguage', ts('Add Language'), array_merge(array('' => ts('- select -')), array_diff($locales, $lcMessages)));
// add the ability to return to single language
$warning = ts('This will make your CiviCRM installation a single-language one again. THIS WILL DELETE ALL DATA RELATED TO LANGUAGES OTHER THAN THE DEFAULT ONE SELECTED ABOVE (and only that language will be preserved).');
$this->assign('warning', $warning);
$warning = json_encode($warning);
$this->addElement('checkbox', 'makeSinglelingual', ts('Return to Single Language'), NULL, array('onChange' => "if (this.checked) CRM.alert({$warning}, {$warningTitle})"));
} else {
// for single-lingual sites, populate default language drop-down with all languages
$this->addElement('select', 'lcMessages', ts('Default Language'), $locales);
$warning = ts('Enabling multiple languages changes the schema of your database, so make sure you know what you are doing when enabling this function; making a database backup is strongly recommended.');
$this->assign('warning', $warning);
$warning = json_encode($warning);
$validTriggerPermission = CRM_Core_DAO::checkTriggerViewPermission(TRUE);
if ($validTriggerPermission && !$config->logging) {
$this->addElement('checkbox', 'makeMultilingual', ts('Enable Multiple Languages'), NULL, array('onChange' => "if (this.checked) CRM.alert({$warning}, {$warningTitle})"));
}
}
$this->addElement('checkbox', 'inheritLocale', ts('Inherit CMS Language'));
$this->addElement('text', 'monetaryThousandSeparator', ts('Thousands Separator'), array('size' => 2));
$this->addElement('text', 'monetaryDecimalPoint', ts('Decimal Delimiter'), array('size' => 2));
$this->addElement('text', 'moneyformat', ts('Monetary Amount Display'));
$this->addElement('text', 'moneyvalueformat', ts('Monetary Value Display'));
$country = array();
CRM_Core_PseudoConstant::populate($country, 'CRM_Core_DAO_Country', TRUE, 'name', 'is_active');
$i18n->localizeArray($country, array('context' => 'country'));
asort($country);
$includeCountry =& $this->addElement('advmultiselect', 'countryLimit', ts('Available Countries') . ' ', $country, array('size' => 5, 'style' => 'width:150px', 'class' => 'advmultiselect'));
$includeCountry->setButtonAttributes('add', array('value' => ts('Add >>')));
$includeCountry->setButtonAttributes('remove', array('value' => ts('<< Remove')));
$includeState =& $this->addElement('advmultiselect', 'provinceLimit', ts('Available States and Provinces') . ' ', $country, array('size' => 5, 'style' => 'width:150px', 'class' => 'advmultiselect'));
$includeState->setButtonAttributes('add', array('value' => ts('Add >>')));
$includeState->setButtonAttributes('remove', array('value' => ts('<< Remove')));
$this->addElement('select', 'defaultContactCountry', ts('Default Country'), array('' => ts('- select -')) + $country);
/***Default State/Province***/
$stateCountryMap = array();
$stateCountryMap[] = array('state_province' => 'defaultContactStateProvince', 'country' => 'defaultContactCountry');
$countryDefault = isset($this->_submitValues['defaultContactCountry']) ? $this->_submitValues['defaultContactCountry'] : $config->defaultContactCountry;
if ($countryDefault) {
$selectStateProvinceOptions = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvinceForCountry($countryDefault);
} else {
$selectStateProvinceOptions = array('' => ts('- select a country -'));
}
$i18n->localizeArray($selectStateProvinceOptions, array('context' => 'state_province'));
asort($selectStateProvinceOptions);
$this->addElement('select', 'defaultContactStateProvince', ts('Default State/Province'), $selectStateProvinceOptions);
// state country js
CRM_Core_BAO_Address::addStateCountryMap($stateCountryMap);
$defaults = array();
CRM_Core_BAO_Address::fixAllStateSelects($form, $defaults);
// we do this only to initialize currencySymbols, kinda hackish but works!
$config->defaultCurrencySymbol();
$symbol = $config->currencySymbols;
foreach ($symbol as $key => $value) {
$this->_currencySymbols[$key] = "{$key}";
if ($value) {
$this->_currencySymbols[$key] .= " ({$value})";
}
}
$this->addElement('select', 'defaultCurrency', ts('Default Currency'), $this->_currencySymbols);
$includeCurrency =& $this->addElement('advmultiselect', 'currencyLimit', ts('Available Currencies') . ' ', $this->_currencySymbols, array('size' => 5, 'style' => 'width:150px', 'class' => 'advmultiselect'));
$includeCurrency->setButtonAttributes('add', array('value' => ts('Add >>')));
$includeCurrency->setButtonAttributes('remove', array('value' => ts('<< Remove')));
$this->addElement('text', 'legacyEncoding', ts('Legacy Encoding'));
$this->addElement('text', 'customTranslateFunction', ts('Custom Translate Function'));
$this->addElement('text', 'fieldSeparator', ts('Import / Export Field Separator'), array('size' => 2));
$this->addFormRule(array('CRM_Admin_Form_Setting_Localization', 'formRule'));
parent::buildQuickForm();
}
示例14: buildForm
function buildForm(&$form)
{
$config = CRM_Core_Config::singleton();
$countryDefault = $config->defaultContactCountry;
$form->add('text', 'distance', ts('Distance'), NULL, TRUE);
$proxUnits = array('km' => ts('km'), 'miles' => ts('miles'));
$form->add('select', 'prox_distance_unit', ts('Units'), $proxUnits, TRUE);
$form->add('text', 'street_address', ts('Street Address'));
$form->add('text', 'city', ts('City'));
$form->add('text', 'postal_code', ts('Postal Code'));
$stateCountryMap = array();
$stateCountryMap[] = array('state_province' => 'state_province_id', 'country' => 'country_id');
$defaults = array();
if ($countryDefault) {
$stateProvince = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvinceForCountry($countryDefault);
$defaults['country_id'] = $countryDefault;
} else {
$stateProvince = array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvince();
}
$form->addElement('select', 'state_province_id', ts('State/Province'), $stateProvince);
$country = array('' => ts('- select -')) + CRM_Core_PseudoConstant::country();
$form->add('select', 'country_id', ts('Country'), $country, TRUE);
$group = array('' => ts('- any group -')) + CRM_Core_PseudoConstant::group();
$form->addElement('select', 'group', ts('Group'), $group);
$tag = array('' => ts('- any tag -')) + CRM_Core_PseudoConstant::get('CRM_Core_DAO_EntityTag', 'tag_id', array('onlyActive' => FALSE));
$form->addElement('select', 'tag', ts('Tag'), $tag);
// state country js, CRM-5233
CRM_Core_BAO_Address::addStateCountryMap($stateCountryMap);
CRM_Core_BAO_Address::fixAllStateSelects($form, $defaults);
/**
* You can define a custom title for the search form
*/
$this->setTitle('Proximity Search');
/**
* if you are using the standard template, this array tells the template what elements
* are part of the search criteria
*/
$form->assign('elements', array('distance', 'prox_distance_unit', 'street_address', 'city', 'postal_code', 'country_id', 'state_province_id', 'group', 'tag'));
}
示例15: fixStateSelect
static function fixStateSelect(&$form, $countryElementName, $stateElementName, $countryDefaultValue)
{
$countryID = null;
if (isset($form->_elementIndex[$countryElementName])) {
//get the country id to load states -
//first check for submitted value,
//then check for user passed value.
//finally check for element default val.
$submittedVal = $form->getSubmitValue($countryElementName);
if ($submittedVal) {
$countryID = $submittedVal;
} else {
if ($countryDefaultValue) {
$countryID = $countryDefaultValue;
} else {
$countryID = CRM_Utils_Array::value(0, $form->getElementValue($countryElementName));
}
}
}
$stateTitle = ts('State/Province');
if (isset($form->_fields[$stateElementName]['title'])) {
$stateTitle = $form->_fields[$stateElementName]['title'];
}
if ($countryID && isset($form->_elementIndex[$stateElementName])) {
$form->addElement('select', $stateElementName, $stateTitle, array('' => ts('- select -')) + CRM_Core_PseudoConstant::stateProvinceForCountry($countryID));
}
}