Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Копирование / Клонирование 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

 

Змінено користувачем 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.