Перейти к содержанию
liquidcore

[Решено] ocStore 2.3.0.2.2 использует только шаблон default

Рекомендуемые сообщения

Собственно решил таки проапгрейдить магазины до последнего движка. Начал разбираться, что поменялось с архитектуры 1.4.9 - и погряз на несколько часов, попутно выполняя несколько типичных и нетипичных задач, а именно: сменить все названия корневых папок (для исключения взлома типичными скриптами), создать модифицированный архив для чистой установки и затем клонировать штатную тему и заняться кастомизацией CSS.

Первая задача решилась достаточно легко, но пришлось поискать прямые пути в скриптах и временно их изменить ручками, отложив замену на дефайны. А вот вторая заставила меня перерыть весь движок. Огорчением было, что недостаточно скопировать папку с темой - оказалось, что нужно теперь поступать так, как это было с модулями в 1.4.9. Если кому интересно, то подробности под спойлером.

Spoiler

По указанным ниже путям лежат соответвующие файлы theme_default.php (.tpl), где необходимо их задублировать, переименовав default на нужное Вам название темы (например newone). Так же необходимо во всех файлах редактором заменить default по аналогии. В итоге получите следующее:

admin\controller\extension\theme\theme_newone.php
admin\language\en-gb\extension\theme\theme_newone.php
admin\language\ru-ru\extension\theme\theme_newone.php
admin\view\template\extension\theme\theme_newone.tpl
catalog\view\theme\newone - это копия темы default

 

Так же Вам потребуется поменять в файлах-шаблонах все найденные жесткие привязки к теме default (например в header.tpl)

 

Теперь тема отображается в админке - ее стоит можно установить и настроить. Название темы для админки меняется в файлах папки language.

А теперь суть проблемы, причину которой я долго не мог найти - при смене темы, все настройки меняются верно, а рендерится тема дефолтная. Вот. Ошибка оказалась в хитром (для неведующих, типа меня) месте - в скрипте обработки события по адресу catalog\controller\event\theme.php:

//На 16 строчке вместо
$theme = $this->config->get('config_theme');
//Стоит поставить
$theme = $this->config->get($this->config->get('config_theme').'_directory');
//И все становится отлично!

Прошу внести правки в дистрибутив, если вышеизложенное верно. Спасибо за внимание.

Изменено пользователем liquidcore

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все проще 

 

admin\controller\extension\theme\newone.php
admin\language\en-gb\extension\theme\newone.php
admin\language\ru-ru\extension\theme\newone.php
admin\view\template\extension\theme\newone.tpl

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проще, но тогда неправильное использование поля directory в настройке шаблона приведет к той же ошибке. Если дизайнер захочет изменить название папки шаблона - он будет обязан менять и контролы. Это не согласуется с концепцией движка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.