Navigation Menu

Magento + список областей Украины

Апр 15, 2011

При настройке чекаута как оказалось в Magento не было, к сожалению,  списка областей Украины. Немного погуглив на эту тему выяснил что областя следует добавлять прямо в базу данных через, к примеру, phpMyAdmin. За список областей (регионов) в базе данных Magento отвечает таблица «directory_country_region». Найда в базе эту таблицу. Есть 2 способа что бы добавить областей в базу: Вручную SQL-запросом Рассмотрим оба способа поочередно. 1. Добавление областей вручную через phpMyAdmin Зайди в таблицу «directory_country_region» и нажми на кнопку Вставить, которая располагается сверху таблицы. После перезагрузки страницы ты увидишь 2 блока для вставки 2х значений в базу. Тут детальнее про поля: region_id — уникальный идентификатор области. Это поле оставляем пустым так как оно будет выставлено автоматически. country_id — тут выставь id страны (его можно узнать из таблицы «directory_country»). В нашем с тобой случае выставь «UA». code — забугром областя имеют свои уникальный код, но так как погуглив я не нашёл какой-либо информации что в Украине области имеют код или индекс или неч0то подобное то мы будем использовать в качестве кода название самой области (транслитом). default_name — название области. Я сюда ввёл название области транслитом а потом (об этом расскажу ниже) её русскоязычный перевод в таблицу «directory_country_region_name». Но, возможно, если ты внесёшь сюда сразу русскоязычное название, то уже после этого все отобразится корректно. Пример: region_id — пустое значение country_id — UA code — Ivano-Frankivsk default_name — Ivano-Frankivsk Теперь позаботимся о том что бы в базе хранились русскоязычные названия. Для этого открой таблицу «directory_country_region_name» и нажми Вставить. Тут ты увидишь опять 2 блока, но уже по 3 поля для ввода данных. Разберём что каждое из них значит: locale — тут указывается код локализации. Для русскоязычной локализации используем «ru_RU» region_id — это идентификатор области. Когда ты добавлял области в таблицу «directory_country_region» то оставлял пустым значение в поле «region_id», которое генерировалось автоматически. Вот следует теперь посмотреть соответствующий идентификатор и вставить его в данное поле. К примеру если ты добавил область «Ivano-Frankivsk» и база сгенерировалла запись с id под номером «522» то именно это значение вставь в это поле. name — русскоязычное название области. Ну вроде как на этом и всё. Таким образом вручную можно внести все областя любой страны в базу данных Magento. 2. Добавление областей SQL-запросом через phpMyAdmin Так как я уже проделал этот...

Далее

Magento + jqZoom + prettyPhoto + изображение продукта

Апр 14, 2011

В интернете есть куча всевозможных jQuery-плагинов для увеличения изображений и одни из достойнейших это — jqZoom Evolution и prettyPhoto. jqZoom будем использовать для мгновенного показа картинки, а prettyPhoto для показа галереи рисунков. Сейчас мы научим Magento CMS работать с этими плагиноми на странице продукта. 1. Подключаем jQuery к Magento. Дело в том что и Prototype, который используется в Magento, и jQuery используют функцию «$» по этому нужно изначально предотвратить любые конфликты между этими фреймворками. Для этого, согласно документации, открой файл jquery-1.5.1.js в редакторе и в самый конец файла допиши строку: [code lang=»js»] var $j = jQuery.noConflict(); [/code] и сохрани, к примеру,  с именем jquery-1.5.1.noConflict.js. Ну а теперь создай следующие директории: /magento/js/jquery/ /magento/js/jquery/plugins/ В папку «jquery» скопируй файл jquery-1.5.1.noConflict.js. /magento/js/jquery/jquery-1.5.1.noConflict.js Следующим шагом будет подключение jQuery к Magento. Открой файл /magento/app/design/frontend/your_theme/default/layout/catalog.xml и найди следующую строку: [coda lang=’xml’] <action method=»addItem»><type>js</type><name>calendar/calendar-setup.js</name><!—<params/><if/><condition>can_load_calendar_js</condition>—></action> [/code] После этой строки подключаем jQuery так: [code lang=»xml»] <!— jQuery —> <action method="addJs"><script>jquery/jquery-1.5.1.noConflict.js</script></action> <!— /jQuery —> [/code] Сохрани файл. В этом примере показано как подключить jQuery и jqZoom только на странице продукта (т.е. на остальных страницах сайта эти файлы не подключены, если, конечно, ты этого не сделал ранее). Но в случае если тебе нужно подключить jQuery для всех страниц сайта то ищи решение в спойлере… [spoiler effect=»slide» show=»Показать спойлер» hide=»Спрятать спойлер»]Открой файл /magento/app/design/frontend/your_theme/default/layout/page.xml и найди следующие строки которые отвечают за подключение стандартных js-файлов Magento [code lang=»xml»] <action method="addJs"><script>prototype/prototype.js</script></action> <action method="addJs" ifconfig="dev/js/deprecation"><script>prototype/deprecation.js</script></action> <action method="addJs"><script>lib/ccard.js</script></action> <action method="addJs"><script>prototype/validation.js</script></action> <action method="addJs"><script>scriptaculous/builder.js</script></action> <action method="addJs"><script>scriptaculous/effects.js</script></action> <action method="addJs"><script>scriptaculous/dragdrop.js</script></action> <action method="addJs"><script>scriptaculous/controls.js</script></action> <action method="addJs"><script>scriptaculous/slider.js</script></action> <action method="addJs"><script>varien/js.js</script></action> <action method="addJs"><script>varien/form.js</script></action> <action method="addJs"><script>varien/menu.js</script></action> <action method="addJs"><script>mage/translate.js</script></action> <action method="addJs"><script>mage/cookies.js</script></action> [/code] После этих строк подключаем jQuery [code lang=»xml»] <!— jQuery —> <action method="addJs"><script>jquery/jquery-1.5.1.noConflict.js</script></action> <!— /jQuery —> [/code] и сохраняем файл. [/spoiler] Можешь проверить Firebug’ом — jQuery должен подключится. 2. Подключаем jqZoom к Magento. Тут в основном всё проще. Скопируй файл jquery.jqzoom.2.2.js в папку /magento/js/jquery/plugins/jqZoom/jquery.jqzoom.2.2.js А в xml после jQuery подключаем jqZoom так: [code lang=»xml»]<!— jQuery —> <action method="addJs"><script>jquery/jquery-1.5.1.noConflict.js</script></action> <!— /jQuery —> <!— jQuery plugins —> <action method="addJs"><script>jquery/plugins/jqZoom/jquery.jqzoom.2.2.js</script></action> <!— /jQuery plugins —>[/code] И не забудь его css-файл также [code lang=»xml»]<action method="addItem"><type>js_css</type><name>jquery/plugins/jqZoom/jquery.jqzoom.css</name><params/></action>[/code] Сохрани файл и проверь в браузере, к примеру, Firebug`ом. Пример показан в прикрепленном к посту файле в самом низу (catalog.xml). 3. Активируем jqZoom Ну а теперь давай-ка заставим работать зум на странице продукта. Для этого открой...

Далее