Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

[Решено] Копирование / Клонирование default шаблона OpenCart ocStore 3 из linux консоли


 Поделиться

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

Искал как быстро сделать сабж. В интернете есть как кривые так и неплохие решения. Одно из них, по средством bash скрипта и вроде не кривое нашел, адаптировал под русскую версию шаблона, написал себе мануал и решил поделиться.

 

-----Скрипт. Поместить в коневую папку магазина, запустить от root, ввести имя темы без пробелов:

#!/bin/bash

folder=${PWD##*/}
themes=catalog/view/theme
language=admin/language/ru-ru/extension/theme/
view=admin/view/template/extension/theme/
controller=admin/controller/extension/theme/
read -p "Name of new theme (latin): " themename

if [[ -d admin ]]; then
	themenameup=`echo $themename | sed 's/./\U&/1'`
	cp -pr $themes/default $themes/$themename
	cp -p $language/default.php $language/$themename.php
	sed -i "s/по умолчанию/$themename/g" $language/$themename.php
	cp -p $view/default.twig $view/$themename.twig
	sed -i "s/theme_default/theme_$themename/g" $view/$themename.twig
	cp -p $controller/default.php $controller/$themename.php
	sed -i "s/theme_default/theme_$themename/g" $controller/$themename.php
	sed -i "s/theme\/default/theme\/$themename/g" $controller/$themename.php
	sed -i "s/ControllerExtensionThemeDefault/ControllerExtensionTheme"$themenameup"/g" $controller/$themename.php
	sed -i "s/default/$themename/g" $controller/$themename.php
	sed -i "s/default/$themename/g" $themes/$themename/template/common/header.twig
else
	echo "Move the script to site's root directory and try again"
fi

 

-----Настройка
    В админке: Расширения \ Расширения \ Шаблоны \ Кнопка Активировать напротив новой темы
        Кнопка Редактировать, меняем статус на Включено, сохраняем
    В админке: Расширение \ Модификаторы \ Обновить (возможно этого и не нужно, но плохого точно ничего не сделает)
    В админке: Система \ Настройки \ Ваш магазин \ Редактировать \ Общие \ Шаблон
        Выбираем новый шаблон, сохраняем

 

-----Проверка
    Открываем
/var/www/html/octest/catalog/view/theme/ИМЯ_ТЕМЫ/stylesheet/stylesheet.css
        Ищем строки

h1, h2, h3, h4, h5, h6 {
    color: #444;
}


        Меняем на
 

h1, h2, h3, h4, h5, h6 {
    color: #ff0000;
}

        Если всё ок, то все заголовки на сайте станут красными
            Примечание: возможно понадобиться очистка кеша страницы в браузере
            Не забываем вернуть обратно цвет #444;

 

-----ВАЖНО: Не забываем удалить скрипт по завершению работ!

-----ВАЖНО2 (Не проверено, подтвердите, кто в курсе): Тут мы копируем весь каталог темы по умолчанию, но модифицировать его мы скорее всего будем не весь, а поэтому, по окончанию работы над новым шаблоном было бы неплохо оставить в нём только модифицированные файлы, а незатронутые удалить, это упростит понимание изменений в дальнейшем. В случае удаления незатронутые файлы магазин будет подтягивать из дефолтного шаблона.

 

Оригинал скрипта взял отсюда: https://codepad.co/snippet/opencart-v-3-easy-clone-default-theme

 

Изменено пользователем AndreyII
Ссылка на комментарий
Поделиться на других сайтах


1 час назад, AndreyII сказал:

Тут мы копируем весь каталог темы по умолчанию, но модифицировать его мы скорее всего будем не весь, а поэтому, по окончанию работы над новым шаблоном было бы неплохо оставить в нём только модифицированные файлы, а незатронутые удалить, это упростит понимание изменений в дальнейшем.

Из чего следует резонный вывод: "ну, и зачем была вся предыдущая возня, зачем этот скрипт?". 
Что мешало сразу сделать пустой каталог новой темы, и без всяких скриптов копировать в него только те файлы, которые изменяем? Или так интересней - скопировать всё оптом, а потом выяснять, чего надо, чего не надо?

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


3 часа назад, Shureg сказал:

Что мешало сразу сделать пустой каталог новой темы, и без всяких скриптов копировать в него только те файлы, которые изменяем? Или так интересней - скопировать всё оптом, а потом выяснять, чего надо, чего не надо?

Всё просто. Я планирую плотно заняться шаблоном. На данный момент моих знаний не достаточно, чтобы спрогнозировать, что именно пойдёт под нож, а копировать каждый раз по файлу, лишняя морока. А посему переношу всё, а потом удаляю лишнее.

Не пойму, чего вы так возмутились, выяснить чего надо, а чего не надо можно одной строкой в консоли.

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


Как вариант :
1. WinMerge  скачать/установить

2. Скопировать и переименовать папку upload\catalog\view\theme\default (предположим в my_theme) из нужной версии Opencart/OcStore. Заливаем в свой магазин.

3. В админке Дополнения - Шаблоны , выбрать нашу новую тему.

4. Если требуются правки в контроллерах или модели, используем Ocmod (клик/клик)

5. Скачиваем по завершению работы нашу тему catalog\view\theme\my_theme

6. Открываем WinMerg, указываем для сравнения наши папки дефолтную и нашу скаченную my_theme. Жмём "Сравнить".

7. После появления списка файлов с различиями, нажимаем Ctrl+A, далее пкм ---> Заархивировать --> Отличия. Указываем куда сохранить.

8. Получаем архив темы со всеми папками согласно их иерархии, но только с теми файлами, что имеют различия от дефолтной темы опенкарт.

9. Скачиваем и добавляем к архиву наш Ocmod(ы)

10. Готово

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

1 час назад, Tom сказал:

1. WinMerge  скачать/установить

4. Если требуются правки в контроллерах или модели, используем Ocmod (клик/клик)

Спасибо за WinMerge, однозначно в полезности. И за контроллер с моделью, их полагаю мне тоже предстоит поковырять.

 

От себя добавлю те же решения, но для Bash

 

    Чтобы вывести список незатронутых файлов, можно, находясь в корне магазина, использовать команду:

diff -rqs catalog/view/theme/default catalog/view/theme/ИМЯ_ТЕМЫ | grep identical | awk -F '(Files | and | are identical)' '{print $3}'


    Найти отличающиеся и новые файлы новой темы, относительно дефолтной и создать из них архив, включающий структуру каталогов:

diff -rqs catalog/view/theme/default catalog/view/theme/ИМЯ_ТЕМЫ | grep differ | awk -F '(Files | and | differ)' '{print $3}' | zip archDif.zip -@
diff -rqs catalog/view/theme/default catalog/view/theme/ИМЯ_ТЕМЫ | grep "Only in" | awk -F '(Only in |: )' '{print $2 "/" $3}' | zip archDif.zip -@

 

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


Подкину сразу ещё идею.

Как вариант... Вы решили создать некий модуль, для своего шаблона. Модуль этот имеет полноценную панель настроек в админке и выводится, в магазине (как пример).

Но он чертовски похож на то , что уже есть в самом опенкарт и вам нужно взять вычленить этот модуль , в виде папки с файлами, что бы позже так же как и дефолтный шаблон, что то переименовать, что то добавить, что то изменить....

Используем 

Это

и 

Это

В зависимости от своей версии опенкарт.

Ну и это, для работы с модификаторами в админке.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

6 минут назад, Tom сказал:

Подкину сразу ещё идею.

Супер, уже есть идеи, да и в изучении поможет сильно. Полагаю, вы мне сэкономили кучу времени, спасибо!

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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