Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


Recommended Posts

Искал как быстро сгделать сабж. В интернете есть как кривые ик и неплохие решения. Одно из них, по средством 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

 

Edited by AndreyII
Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites


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

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

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

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

Link to comment
Share on other sites


Как вариант :
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
Link to comment
Share on other sites

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 [email protected]
diff -rqs catalog/view/theme/default catalog/view/theme/ИМЯ_ТЕМЫ | grep "Only in" | awk -F '(Only in |: )' '{print $2 "/" $3}' | zip archDif.zip [email protected]

 

Link to comment
Share on other sites


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

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

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

Используем 

Это

и 

Это

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

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

  • +1 1
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.