Администратор Magento 1.5.0.1: не удалось добавить пользовательскую перезапись URL-адреса при установке mutistore

#php #magento #url-rewriting #custom-url

#php #magento #url-перезапись #пользовательский url

Вопрос:

Чтобы исправить некоторые ошибки 404, о которых сообщают инструменты для веб-мастеров, мне нужно добавить некоторые пользовательские перезаписи URL-адресов (перенаправления URL-адресов) для каждого магазина в мою установку Magento с несколькими магазинами, но я не могу этого сделать: как только я выбираю «Пользовательский» тип перезаписи URL-адреса изв верхнем селекторе появляется форма редактирования пользовательской перезаписи URL-адреса, но в выпадающем списке «Магазин» нет магазинов, которые можно выбрать, и — поскольку поле «Магазин» является обязательным, администратор Magento не позволяет мне сохранять перенаправление.

Кто-нибудь может пролить свет на это? Моя версия Magento 1.5.0.1, но если это ошибка, как я подозреваю, она может присутствовать и в других (даже более поздних) версиях.

Спасибо

Ответ №1:

Это действительно ошибка. Чтобы исправить это, примените следующий патч или просто замените строку 120 вашего app/code/core/Mage/Adminhtml/Block/Urlrewrite/Edit/Form.php с этими строками.

Я бы посоветовал вам не изменять «основной» файл напрямую, а вместо этого создать ту же структуру папок в app / code / local, скопировать туда основной файл и отредактировать его. Файлы с тем же путем в «local» имеют более высокий приоритет и будут загружены Magento вместо файлов в «core», их также легче обнаружить и в конечном итоге удалить, восстановив функциональность Magento по умолчанию, если потребуется в будущем.

app/code/core/Mage/Adminhtml/Block/Urlrewrite/Edit/Form.php => app/code/local/Mage/Adminhtml/Block/Urlrewrite/Edit/Form.php

119a120,130

 120:     } else {
121:        foreach ($stores as $i => $store) {
122:            if (isset($store['value']) amp;amp; $store['value']) {
123:                $found = false;
124:                foreach ($store['value'] as $_k => $_v) {
125:                    if (isset($_v['value']) amp;amp; $_v['value']) {
126:                        array_push( $entityStores, $_v['value'] );
127:                    }
128:                }
129:            }
130:        }