Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Решено] Копирование / Клонирование 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
Ссылка на комменирий
Погделиться на других сайих


  13.02.2022 в 11:36, AndreyII сказал:

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

Раскрыть  

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

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


  13.02.2022 в 13:26, 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
Ссылка на комменирий
Погделиться на других сайих

  13.02.2022 в 18:46, 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]

 

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


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

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

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

Используем 

Это

и 

Это

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

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

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

  13.02.2022 в 20:20, Tom сказал:

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

Раскрыть  

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

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


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

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

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

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

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

Войти

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

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

×
×
  • Создать...

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

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