Prestashop 1.6 ошибка при сохранении перевода

Как устранит ошибку 404 при сохранении перевода в Prestashop 1.6?

Добрый времени суток.

Решил я построить магазин на CMS Prestashop. Я не буду здесь описывать почему я его выбрал, почему именно его, а не другой. Это не важно. Важно то, что я столкнулся с проблемой, на решение которой я потратил немало времени. Проблема заключалось в том, что при сохранении перевода модуля с английского языка на русский вылетала ошибка 404. Я начал искать ответ в руненете — не нашел. Пришлось искать на зарубежных сайтах. Вариантов решения проблемы было много, но ни один из них мне не помог победить ошибку. Но, мне повезло, и я нашел способ ее исправить.

Итак, какие могут быть проблемы:

Проблемы хостинга (об этом говорит служба поддержки prestashop). Зачастую, эта проблема решалась именно обращением в службу поддержке хостинга и они меняли настройки. Какие именно — никто не знает. Это конфиденциальная информация. К счастью мне с хостингом повезло и все настройки PHP я мог менять сам, когда это необходимо. Кому интересно это:

У меня была проблема не с хостингом, т.к. до этого я изменял перевод, и prestashop работал без ошибок. Следовательно причина была в другом. Находил советы, которые предлагали добавить разрешение на чтение для директории Land, но проверка показала, что разрешения уже есть. Одним словом проблема не решалась. Для чего я это пишу? Может кому-нибудь помогут эти  советы, т.к. решение, которое я предлагаю ниже — это добавление кода в ядро prestashop.

Решение, которое мне помогло устранить ошибку при сохранении перевода в Prestashop 1.6.

Ищем файл /admin/themes/default/template/header.tpl. Открываем его в любом текстовом редакторе (удобнее использовать Notepad++) опускаемся в самый конец файла и добавляем следующий код:

{if isset($smarty.get.type) && $smarty.get.type == "modules"
 && isset($smarty.get.controller) && $smarty.get.controller == "AdminTranslations" }
<script type="text/javascript">
        $(function(){
                $('#translations_form input:text,textarea').each(function(){
                        $(this).data('name',$(this).attr('name'));
                        $(this).removeAttr('name');
                });
                $('#translations_form').on('change','input:text,textarea',function(){
                        var name = $(this).data('name');
                        if(name) $(this).attr('name',name);
                });
        });
</script>
{/if}

Сохраняем файл.

 Затем вам необходимо  удалить файл /cache/class_index.php. Не забудьте очистить кэш prestashop. Пробуем. Должно все получиться.Это важно!Перед всеми действиями описанными выше, сделайте резервные копии базы данных и файлов Prestashop.

Это важно!

Перед всеми действиями описанными выше, сделайте резервные копии базы данных и файлов Prestashop.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *