A customer required me to limit the available towns a customer can order from. So I thought it would be best to make the city field a select option. But Isotope does not seem to offer that option.
I've created a second checkout module with one change from the original. At a certain point inside function generateAddressWidgets, the function checks the field value for the country field. That's where I decided to go hacking and do the following:
This works perfectly so far, but is this a good method to solve this issue. Or does Isotope provide an even better way??Code:if ($field['value'] == 'country') { $arrCountries = ($strAddressType == 'billing_address' ? $this->Isotope->Config->billing_countries : $this->Isotope->Config->shipping_countries); $arrData['options'] = array_values(array_intersect($arrData['options'], $arrCountries)); $arrData['default'] = $this->Isotope->Config->country; } elseif ($field['value'] == 'city') { $objFields = $this->Database->prepare("SELECT * FROM tl_iso_allowed_places WHERE published = 1") ->execute(); if ($objFields->numRows) { unset($arrData['eval']['maxlength']); $strClass = 'FormSelectMenu'; $arrData['inputType'] = 'select'; $arrData['eval']['includeBlankOption'] = true; while ($objFields->next()) { $arrData['options'][htmlspecialchars($objFields->city)] = htmlspecialchars($objFields->city); $arrData['reference'][htmlspecialchars($objFields->city)] = $objFields->city; } } }


Reply With Quote
Bookmarks