Перейти к содержимому


Фото
* * * * * 2 голосов

[2.3.7/8] vQmod SimplaCms v2.8.0

VQMod Модульность

  • Чтобы отвечать, сперва войдите на форум
111 ответов в теме

#1 yr4ik

yr4ik
  • Фрилансер
  • 846 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 08.10.2016 - 17:10

В связи с анонсами новой версии Simpla с поддержкой модульности - решил внести свою лепту.


vQmod (Virtual Quick Mod) - это система, которая виртуально вносит изменения в исходный код системы но при этом не затрагивая файлы на прямую. Изменения вносятся путем создания XML-файла, в котором программно описывается, что и где искать/заменять. Эти файлы обрабатываются во время загрузки страницы. Затем файлы с уже внесенными изменениями сохраняются как временные, после чего эти файлы будут использоваться в дальнейшем при загрузке страниц.

Данный функционал активно использовался на старых версиях в движках OpenCart 1.5.х
После активного его использования пользователями, авторы OpenCart, решили и себе использовать такой же способ внесения правок для модулей. И с версии 2.0 в стандартный дистрибутив Opencart входит аналогичный модуль OCMod но более адаптирован к движку.

Интеграция пока поверхностная. По хорошему - нужно бы слегка допилить симплу
Пути используются относительные и их проблемно подменять (сделал частичную их подмену в vqmod/xml/vqmod_simpla.xml)

Установка затрагивает файлы:

  • /.htaccess
  • /index.php  удалено с версии 2.2
  • /api/Simpla.php
  • /config/config.php
  • /simpla/index.php удалено с версии 2.2

Установка:
1) Скачиваем архив (приложенный ниже) и распаковываем его в корень сайта
2) При необходимости выставляем права 755 на каталоги vqmod и vqmod/vqcache
3) Проходим по ссылке http://ВАШ_САЙТ/vqmod/install
4) Если увидели сообщение:

VQMOD HAS BEEN INSTALLED ON YOUR SYSTEM!

Значит все прошло успешно и можно начинать пользоваться

Наши моды ложим в папку vqmod/xml
Что касается синтаксиса xml-файлов - то вот (От авторов vqmod на англ) или вот почти тоже самое на русском.
Так же, если кому нужно, то можно установить генератор xml-файлов


Удаление (после версии 1.2):
1) Проходим по ссылке http://ВАШ_САЙТ/vqmod/uninstall
2) Вводим логин и пароль администратора.
3) Если увидели в конце сообщение:

VQMOD HAS BEEN UNISTALLED ON YOUR SYSTEM!

Значит все успешно удалено.


Обновление (после версии 1.2):
1) Выполняем удаление vqmod (инструкция выше).
2) Удаляем все содержимое (!!кроме папок cfg, mod и xml!!) с папки vqmod
3) Дальше устанавливаем новую версию с заменой файлов (инструкция выше) кроме папки cfg (если там делались изменения)

 

 

xml-менеджер (после версии 2.5):

http://ВАШ_САЙТ/vqmod/manager

 

управление компонентами (после версии 2.5):

http://ВАШ_САЙТ/vqmod/mods


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

#VQMOD#
..... код ...
#VQMOD_END#

Их удалять и изменять - нельзя. Иначе будет невозможна деинсталяция vqmod.
 

Примеры xml:
Добавление нового поля к товару
 
Примеры mod:
Все примеры на github
 
Hello World mod 2.3 
Возможность оставлять комментарии к страницам
Recapcha 2.0
Simple Resize
 
 

История изменений:

vqmod-1.0: Первый релиз

vqmod-1.1: Изменена обработка шаблонов smarty

(для обновления с 1.0: заменить vqmod/xml/vqmod_simpla.xml из нового архива)

vqmod-1.2 о версии + как обновить с 1.1

vqmod-1.3 Инсталятор теперь работает если simpla установлена в папку

+ незначительные изминения

 

vqmod-1.4 о версии + как обновить с 1.3

vqmod-1.5 о версии

vqmod-2.0 о версии

vqmod-2.1 о версии
 
vqmod-2.2 о версии
 
vqmod-2.3 о версии
 
vqmod-2.4 о версии

 

vqmod-2.5 о версии

 

vqmod-2.6/7 о версии

 

vqmod-2.8.0 о версии

 


Больше версий на github

 

 

PS: По каким то причинам не могу прикреплять файлы к сообщениям.

Поэтому качаем с гита

 

Скачать с github

vqmod-2.6/7 о версии


Изменено: yr4ik, 01.02.2018 - 18:34


#2 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 08.10.2016 - 17:39

1) Скачиваем архив (приложенный ниже) и распаковываем его в корень сайта

 
 
Не видно что-то архива...

#3 yr4ik

yr4ik
  • Фрилансер
  • 846 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 08.10.2016 - 17:59

 
 
Не видно что-то архива...

 


Перезаливаю.. Нашел ошибки


Изменено: yr4ik, 08.10.2016 - 18:07


#4 yr4ik

yr4ik
  • Фрилансер
  • 846 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 08.10.2016 - 18:16

Перезалил

 

.................................................

Вот накидал небольшой примерчик. 

 

Данный xml добавляет поле к товару.

 

Установка:

1) Распаковываем архив в корень сайта.

 

2) Проходим по ссылке http://ВАШ_САЙТ/install.php

 


все)

Прикрепленные файлы:


Изменено: yr4ik, 08.10.2016 - 21:07


#5 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 08.10.2016 - 20:07

Не работает.

В админке у товара новое поле показывает, но введенное значение НЕ сохраняется.
Насколько я понял, в админке при редактировании товара вызывается view/ProductView.php родной, а не модифицированный...



#6 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 08.10.2016 - 20:12

И само просится -  надо бы сделать такое удобство, как задание нужного SQL прямо в XML...



#7 yr4ik

yr4ik
  • Фрилансер
  • 846 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 08.10.2016 - 20:56

Не работает.
В админке у товара новое поле показывает, но введенное значение НЕ сохраняется.
Насколько я понял, в админке при редактировании товара вызывается view/ProductView.php родной, а не модифицированный...

 
Я это как раз и исправлял. Скорее всего вы скачали версию до правок.
Замените vqmod/xml/vqmod_simpla.xml из архива
 
 

И само просится - надо бы сделать такое удобство, как задание нужного SQL прямо в XML...

 

Это все можно самому делать. 

Делаешь install.php, а в нем запрос и удаление установочного фала.

Юзеру достаточно будет просто пройти по ссылке. 

Потому что делать такое в самом xml - нормально не получится. Ему при каждом рекеше придется как то проверять необходимость этого запроса.

 

PS: изменил для примера #4  пост. Добавил install.php


Изменено: yr4ik, 08.10.2016 - 21:08


#8 yr4ik

yr4ik
  • Фрилансер
  • 846 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 10.10.2016 - 18:45

Похоже тема никому не интересна? 

Вопросов - нет. Пак скачали лишь 2 человека.

Не желают фрилансеры упрощать жизнь себе и пользователям...



#9 Kosjak76

Kosjak76
  • Модератор
  • 3 738 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 10.10.2016 - 18:58

Почему, мне например, очень интересно))

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



#10 Kosjak76

Kosjak76
  • Модератор
  • 3 738 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 10.10.2016 - 19:02

Как по мне - сама идея шикарная. И не надо никакого наследования, главное файлы называть по разному.

Если немного подпилить - должна выйти конфетка.



#11 yr4ik

yr4ik
  • Фрилансер
  • 846 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 10.10.2016 - 19:53

Что бы подпилить - нужна правка симплы (не сильно радикальные ну нужные). 

Иначе это будет как другая ветка движка...

 

1) Необходим функционал для отхода от htaccess (роутинг) и что бы вся витрина проходила через index.php (файлы ajax, yandex, sitemap др. Что запускаются сами)

 

2) Фикс относительных путей (я vqmod-ом часть поправил. Но это как то не практично)

 

Ну остальные все удобства я могу настроить через vqmod (подхваты xml из шаблона и другое)



#12 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 555 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 10.10.2016 - 20:37

Лично я реализовывал систему роутинга для симплы раз 5, все варианты сделал разными способами (какой-то лучше какой-то хуже), но я все время упираюсь в проблему статических страниц либо отдачу 404, толкового решения так и не получилось сделать.
P.S. Кто готов помочь доделать роутер для симплы велком в личку или скайп, по итогу выложу в паблик с указанием соавторов :D

#13 yr4ik

yr4ik
  • Фрилансер
  • 846 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 10.10.2016 - 22:05

Это хорошо!

Но хотелось бы что бы это все добавилось в основной функционал.

Иначе получится как "Новая ветка" без возможности обновлений движка



#14 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 10.10.2016 - 22:09

Лично я реализовывал систему роутинга для симплы раз 5, все варианты сделал разными способами (какой-то лучше какой-то хуже), но я все время упираюсь в проблему статических страниц либо отдачу 404, толкового решения так и не получилось сделать.

 

Очень интересно, отчего "упираюсь в проблему статических страниц либо отдачу 404", вроде бы вопрос прозрачный и принципиальных трудностей быть не должно...



#15 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 11.10.2016 - 10:08

Что бы подпилить - нужна правка симплы (не сильно радикальные ну нужные). 

Иначе это будет как другая ветка движка...

 

1) Необходим функционал для отхода от htaccess (роутинг) и что бы вся витрина проходила через index.php (файлы ajax, yandex, sitemap др. Что запускаются сами)

 

2) Фикс относительных путей (я vqmod-ом часть поправил. Но это как то не практично)

 

Ну остальные все удобства я могу настроить через vqmod (подхваты xml из шаблона и другое)

 

Слишком хлопотно будет все это реализовать.

Во-первых, уже сейчас видны нерациональности.  Во многих местах приходится вставлять одно и то же типа (VQMod::modCheck($template)) с модификациями. Такие многочисленные повторы явно говорит о нерациональности организации.

 

Во-вторых, на текущий момент даже эти повторы полностью проблему не решают. Например, не модифицируется  файл шаблона, который включается в другой шаблон в виде {include file='pagination.tpl'}. Устранять эту ошибку надо уже модифицированием класса Smarty - а это плохой стиль и дополнительные проблемы в будущем.

 

В-третьих, приведенный пример - далеко не единственный  из тех случаев, когда нет корректной обработки. Продолжать устранять подобные многочисленные ошибки текущим способом - думаю, будет превращение Simpla в Имперу...

 

В-четвертых, ТС постоянно твердит, что требуется и переделка исходной Simpla под работу с VQMod.  А тут, помимо, теоретических трудностей, есть и практические - по причине известной консервативности автора Simpla и просто отсутствием какой-либо серьезной видимой работы с его стороны за последние пару лет...

 

Сомневаюсь, что стоит идти подобным путем...



#16 yr4ik

yr4ik
  • Фрилансер
  • 846 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 11.10.2016 - 16:50

Слишком хлопотно будет все это реализовать.
Во-первых, уже сейчас видны нерациональности.  Во многих местах приходится вставлять одно и то же типа (VQMod::modCheck($template)) с модификациями. Такие многочисленные повторы явно говорит о нерациональности организации.

 

И в чем тут не рациональность?

Стандартные include/require для тебя рациональны? 

Там если файл уже существует то проверяется лишь время его создания и возвращается имя модификатора

Или ты можешь как то по другому подменить файл? 

 

Во-вторых, на текущий момент даже эти повторы полностью проблему не решают. Например, не модифицируется файл шаблона, который включается в другой шаблон в виде {include file='pagination.tpl'}. Устранять эту ошибку надо уже модифицированием класса Smarty - а это плохой стиль и дополнительные проблемы в будущем.

 

Почему же сразу модифицированием smarty?

Можно шаблоны, вызванные через fetch, обрабатывать и заменять в них include на какую то функцию-обвертку. Которая проверит модификацию и вернет файл в {include}

 

В-третьих, приведенный пример - далеко не единственный из тех случаев, когда нет корректной обработки. Продолжать устранять подобные многочисленные ошибки текущим способом - думаю, будет превращение Simpla в Имперу...

 

Про это я уже писал в #11. Что нужны модификации симплы. Причем они и без vqmod лишними - не будут



#17 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 11.10.2016 - 17:36

И в чем тут не рациональность?
Стандартные include/require для тебя рациональны?

 

Уже написал в чем. Из того, что там сказано, видно, что include/require тут ни при чем...

 

Там если файл уже существует то проверяется лишь время его создания и возвращается имя модификатора
Или ты можешь как то по другому подменить файл?

 

Можно подменять и по-другому. Думаю, Вы и сами могли бы быстро сообразить, что Ваш способ - не единственный.

 

Можно шаблоны, вызванные через fetch, обрабатывать и заменять в них include на какую то функцию-обвертку. Которая проверит модификацию и вернет файл в {include}

 

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

 

Про это я уже писал в #11. Что нужны модификации симплы. Причем они и без vqmod лишними - не будут

 

Да, писал. Опять масса переделок.

Если считаете, что Ваш путь хорош, доведите свой плагин до состояния, чтоб работал хотя бы в простых ситуациях.
Или хотя бы попробуйте для начала составить список нужных Вам переделок и оцените рабочее время (в часах), которое Вам понадобится для этого...



#18 yr4ik

yr4ik
  • Фрилансер
  • 846 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 11.10.2016 - 18:17

Kors может тогда предложишь что то по существу, а не "можно по-другому"? 

 

А то я опять вижу лишь треп... А конкретики - никакой


Изменено: yr4ik, 11.10.2016 - 18:18


#19 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 11.10.2016 - 22:40

Я ведь сказал очень конкретно: по-моему, метод Ваш сложный.

Привел пример КОНКРЕТНЫЙ, когда работает неправильно.

Если Вы считаете, что метод хороший и поправить несложно, поправьте быстренько без лишней болтовни указанный КОНКРЕТНЫЙ момент.

А потом, думаю, я найду Вам еще случай, когда работает неверно.

И так далее...

 

И посмотрим, кому раньше надоест.

Если мне, значит, Вы правы и Ваше решение хорошее. 

А уж если Вам, то выходит, я прав, а с Вашей стороны только непродуманная идея, которую Вы сами до конца не можете довести...

 

Если осознали масштаб работ и тяжело реализовать до конца, Вам предложен опять же КОНКРЕТНЫЙ альтернативный вариант - составить хоть небольшой план.

Если же и это не хотите или не можете, тогда треп-то как раз с Вашей стороны...

 

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

Один из последних характерных примеров:

http://forum.simplac...ge-3#entry90717



#20 yr4ik

yr4ik
  • Фрилансер
  • 846 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 12.10.2016 - 00:29

Если Вы считаете, что метод хороший и поправить несложно, поправьте быстренько без лишней болтовни указанный КОНКРЕТНЫЙ момент.
А потом, думаю, я найду Вам еще случай, когда работает неверно.
И так далее...
И посмотрим, кому раньше надоест.
Если мне, значит, Вы правы и Ваше решение хорошее.

 
Корс меня на понт не бери! 
Я тебя просто сейчас опять пошлю (денек в бане посижу, ничего не случится)
 
То ты еще та назойливая гнида! 
Тебя зацепишь так пол форума засрешь! Я не понимаю почему тебя еще до сих пор не забанили!







Также с меткой «VQMod, Модульность»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых