2013-06-20 2 views
0

Я хотел бы сортировать по алфавиту элементы в раскрывающемся меню отдела/региона. Этот раскрывающийся список отображается в разделе информации о платежах на странице проверки.Magento: Как отсортировать в алфавитном порядке позиции штата/области выпадающего списка

Я использую Magento CE 1.7.0.2 и устанавливаю адрес во Франции, следовательно, пытаясь разобраться в департаментах Франции.

ответ

0

Одно из решений заключается в переписывании скрипта js/varien/forms.js. В своей функции обновления создайте отсортированную коллекцию регионов, затем перейдите по этой коллекции и добавьте опцию каждого региона.

Лучшее решение, обеспечивающее производительность, заключается в том, чтобы повторно влиять на идентификаторы регионов в таблице directory_country_region. В настоящее время регионы региона упорядочивают регион по country_id и коду. Повторное установление идентификаторов области, чтобы регионы упорядочивались по country_id, а default_name выполняли работу.

+1

Это сработало для меня: http://stackoverflow.com/a/21485997/385619 – Willster

0

Перепишите Mage_Checkout_Block_Onepage_Billing блок (+ Mage_Checkout_Block_Onepage_Shipping, если вам также необходимо), и в новом классе (ов), копировать и адаптировать метод getRegionHtmlSelect($type) от Mage_Checkout_Block_Onepage_Abstract.

Что вам нужно, особенно для сортировки результата $this->getRegionCollection()->toOptionArray() перед использованием его с setOptions(), зная, что это массив массивов с value и label ключей.

+0

Спасибо, но это не работает. Области получаются из базы данных в Mage_Directory_Helper_Data-> getRegionJson(), а затем загружаются в javascript js/varien/forms.js. – matdev

Смежные вопросы