yr4ik Опубликовано 8 октября, 2016 Жалоба Поделиться Опубликовано 8 октября, 2016 (изменено) В связи с анонсами новой версии 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/vqcache3) Проходим по ссылке http://ВАШ_САЙТ/vqmod/install4) Если увидели сообщение:VQMOD HAS BEEN INSTALLED ON YOUR SYSTEM!Значит все прошло успешно и можно начинать пользоватьсяНаши моды ложим в папку vqmod/xmlЧто касается синтаксиса xml-файлов - то вот (От авторов vqmod на англ) или вот почти тоже самое на русском.Так же, если кому нужно, то можно установить генератор xml-файловУдаление (после версии 1.2):1) Проходим по ссылке http://ВАШ_САЙТ/vqmod/uninstall2) Вводим логин и пароль администратора.3) Если увидели в конце сообщение:VQMOD HAS BEEN UNISTALLED ON YOUR SYSTEM!Значит все успешно удалено.Обновление (после версии 1.2):1) Выполняем удаление vqmod (инструкция выше).2) Удаляем все содержимое (!!кроме папок cfg, mod и xml!!) с папки vqmod3) Дальше устанавливаем новую версию с заменой файлов (инструкция выше) кроме папки 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.0Simple Resize История изменений:vqmod-1.0: Первый релизvqmod-1.1: Изменена обработка шаблонов smarty(для обновления с 1.0: заменить vqmod/xml/vqmod_simpla.xml из нового архива)vqmod-1.2 о версии + как обновить с 1.1vqmod-1.3 Инсталятор теперь работает если simpla установлена в папку+ незначительные изминения vqmod-1.4 о версии + как обновить с 1.3vqmod-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: По каким то причинам не могу прикреплять файлы к сообщениям.Поэтому качаем с гита Скачать с githubvqmod-2.6/7 о версии Изменено 1 февраля, 2018 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 8 октября, 2016 Жалоба Поделиться Опубликовано 8 октября, 2016 1) Скачиваем архив (приложенный ниже) и распаковываем его в корень сайта Не видно что-то архива... Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 8 октября, 2016 Автор Жалоба Поделиться Опубликовано 8 октября, 2016 (изменено) Не видно что-то архива... Перезаливаю.. Нашел ошибки Изменено 8 октября, 2016 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 8 октября, 2016 Автор Жалоба Поделиться Опубликовано 8 октября, 2016 (изменено) Перезалил .................................................Вот накидал небольшой примерчик. Данный xml добавляет поле к товару. Установка:1) Распаковываем архив в корень сайта. 2) Проходим по ссылке http://ВАШ_САЙТ/install.php все)product-field.zip Изменено 8 октября, 2016 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 8 октября, 2016 Жалоба Поделиться Опубликовано 8 октября, 2016 Не работает.В админке у товара новое поле показывает, но введенное значение НЕ сохраняется.Насколько я понял, в админке при редактировании товара вызывается view/ProductView.php родной, а не модифицированный... Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 8 октября, 2016 Жалоба Поделиться Опубликовано 8 октября, 2016 И само просится - надо бы сделать такое удобство, как задание нужного SQL прямо в XML... Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 8 октября, 2016 Автор Жалоба Поделиться Опубликовано 8 октября, 2016 (изменено) Не работает.В админке у товара новое поле показывает, но введенное значение НЕ сохраняется.Насколько я понял, в админке при редактировании товара вызывается view/ProductView.php родной, а не модифицированный... Я это как раз и исправлял. Скорее всего вы скачали версию до правок.Замените vqmod/xml/vqmod_simpla.xml из архива И само просится - надо бы сделать такое удобство, как задание нужного SQL прямо в XML... Это все можно самому делать. Делаешь install.php, а в нем запрос и удаление установочного фала.Юзеру достаточно будет просто пройти по ссылке. Потому что делать такое в самом xml - нормально не получится. Ему при каждом рекеше придется как то проверять необходимость этого запроса. PS: изменил для примера #4 пост. Добавил install.php Изменено 8 октября, 2016 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 10 октября, 2016 Автор Жалоба Поделиться Опубликовано 10 октября, 2016 Похоже тема никому не интересна? Вопросов - нет. Пак скачали лишь 2 человека.Не желают фрилансеры упрощать жизнь себе и пользователям... Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 10 октября, 2016 Жалоба Поделиться Опубликовано 10 октября, 2016 Почему, мне например, очень интересно))Но я сегодня жутко занят и нет времени потестить. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 10 октября, 2016 Жалоба Поделиться Опубликовано 10 октября, 2016 Как по мне - сама идея шикарная. И не надо никакого наследования, главное файлы называть по разному.Если немного подпилить - должна выйти конфетка. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 10 октября, 2016 Автор Жалоба Поделиться Опубликовано 10 октября, 2016 Что бы подпилить - нужна правка симплы (не сильно радикальные ну нужные). Иначе это будет как другая ветка движка... 1) Необходим функционал для отхода от htaccess (роутинг) и что бы вся витрина проходила через index.php (файлы ajax, yandex, sitemap др. Что запускаются сами) 2) Фикс относительных путей (я vqmod-ом часть поправил. Но это как то не практично) Ну остальные все удобства я могу настроить через vqmod (подхваты xml из шаблона и другое) Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 10 октября, 2016 Жалоба Поделиться Опубликовано 10 октября, 2016 Лично я реализовывал систему роутинга для симплы раз 5, все варианты сделал разными способами (какой-то лучше какой-то хуже), но я все время упираюсь в проблему статических страниц либо отдачу 404, толкового решения так и не получилось сделать. P.S. Кто готов помочь доделать роутер для симплы велком в личку или скайп, по итогу выложу в паблик с указанием соавторов Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 10 октября, 2016 Автор Жалоба Поделиться Опубликовано 10 октября, 2016 Это хорошо!Но хотелось бы что бы это все добавилось в основной функционал.Иначе получится как "Новая ветка" без возможности обновлений движка Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 10 октября, 2016 Жалоба Поделиться Опубликовано 10 октября, 2016 Лично я реализовывал систему роутинга для симплы раз 5, все варианты сделал разными способами (какой-то лучше какой-то хуже), но я все время упираюсь в проблему статических страниц либо отдачу 404, толкового решения так и не получилось сделать. Очень интересно, отчего "упираюсь в проблему статических страниц либо отдачу 404", вроде бы вопрос прозрачный и принципиальных трудностей быть не должно... Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 11 октября, 2016 Жалоба Поделиться Опубликовано 11 октября, 2016 Что бы подпилить - нужна правка симплы (не сильно радикальные ну нужные). Иначе это будет как другая ветка движка... 1) Необходим функционал для отхода от htaccess (роутинг) и что бы вся витрина проходила через index.php (файлы ajax, yandex, sitemap др. Что запускаются сами) 2) Фикс относительных путей (я vqmod-ом часть поправил. Но это как то не практично) Ну остальные все удобства я могу настроить через vqmod (подхваты xml из шаблона и другое) Слишком хлопотно будет все это реализовать.Во-первых, уже сейчас видны нерациональности. Во многих местах приходится вставлять одно и то же типа (VQMod::modCheck($template)) с модификациями. Такие многочисленные повторы явно говорит о нерациональности организации. Во-вторых, на текущий момент даже эти повторы полностью проблему не решают. Например, не модифицируется файл шаблона, который включается в другой шаблон в виде {include file='pagination.tpl'}. Устранять эту ошибку надо уже модифицированием класса Smarty - а это плохой стиль и дополнительные проблемы в будущем. В-третьих, приведенный пример - далеко не единственный из тех случаев, когда нет корректной обработки. Продолжать устранять подобные многочисленные ошибки текущим способом - думаю, будет превращение Simpla в Имперу... В-четвертых, ТС постоянно твердит, что требуется и переделка исходной Simpla под работу с VQMod. А тут, помимо, теоретических трудностей, есть и практические - по причине известной консервативности автора Simpla и просто отсутствием какой-либо серьезной видимой работы с его стороны за последние пару лет... Сомневаюсь, что стоит идти подобным путем... Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 11 октября, 2016 Автор Жалоба Поделиться Опубликовано 11 октября, 2016 Слишком хлопотно будет все это реализовать.Во-первых, уже сейчас видны нерациональности. Во многих местах приходится вставлять одно и то же типа (VQMod::modCheck($template)) с модификациями. Такие многочисленные повторы явно говорит о нерациональности организации. И в чем тут не рациональность?Стандартные include/require для тебя рациональны? Там если файл уже существует то проверяется лишь время его создания и возвращается имя модификатораИли ты можешь как то по другому подменить файл? Во-вторых, на текущий момент даже эти повторы полностью проблему не решают. Например, не модифицируется файл шаблона, который включается в другой шаблон в виде {include file='pagination.tpl'}. Устранять эту ошибку надо уже модифицированием класса Smarty - а это плохой стиль и дополнительные проблемы в будущем. Почему же сразу модифицированием smarty?Можно шаблоны, вызванные через fetch, обрабатывать и заменять в них include на какую то функцию-обвертку. Которая проверит модификацию и вернет файл в {include} В-третьих, приведенный пример - далеко не единственный из тех случаев, когда нет корректной обработки. Продолжать устранять подобные многочисленные ошибки текущим способом - думаю, будет превращение Simpla в Имперу... Про это я уже писал в #11. Что нужны модификации симплы. Причем они и без vqmod лишними - не будут Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 11 октября, 2016 Жалоба Поделиться Опубликовано 11 октября, 2016 И в чем тут не рациональность?Стандартные include/require для тебя рациональны? Уже написал в чем. Из того, что там сказано, видно, что include/require тут ни при чем... Там если файл уже существует то проверяется лишь время его создания и возвращается имя модификатораИли ты можешь как то по другому подменить файл? Можно подменять и по-другому. Думаю, Вы и сами могли бы быстро сообразить, что Ваш способ - не единственный. Можно шаблоны, вызванные через fetch, обрабатывать и заменять в них include на какую то функцию-обвертку. Которая проверит модификацию и вернет файл в {include} Конечно, можно. Простейший момент - и уже Вам понадобилось заменять и переделывать. Это тоже к нерациональности... Про это я уже писал в #11. Что нужны модификации симплы. Причем они и без vqmod лишними - не будут Да, писал. Опять масса переделок. Если считаете, что Ваш путь хорош, доведите свой плагин до состояния, чтоб работал хотя бы в простых ситуациях.Или хотя бы попробуйте для начала составить список нужных Вам переделок и оцените рабочее время (в часах), которое Вам понадобится для этого... Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 11 октября, 2016 Автор Жалоба Поделиться Опубликовано 11 октября, 2016 (изменено) Kors может тогда предложишь что то по существу, а не "можно по-другому"? А то я опять вижу лишь треп... А конкретики - никакой Изменено 11 октября, 2016 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 11 октября, 2016 Жалоба Поделиться Опубликовано 11 октября, 2016 Я ведь сказал очень конкретно: по-моему, метод Ваш сложный.Привел пример КОНКРЕТНЫЙ, когда работает неправильно.Если Вы считаете, что метод хороший и поправить несложно, поправьте быстренько без лишней болтовни указанный КОНКРЕТНЫЙ момент.А потом, думаю, я найду Вам еще случай, когда работает неверно.И так далее... И посмотрим, кому раньше надоест.Если мне, значит, Вы правы и Ваше решение хорошее. А уж если Вам, то выходит, я прав, а с Вашей стороны только непродуманная идея, которую Вы сами до конца не можете довести... Если осознали масштаб работ и тяжело реализовать до конца, Вам предложен опять же КОНКРЕТНЫЙ альтернативный вариант - составить хоть небольшой план.Если же и это не хотите или не можете, тогда треп-то как раз с Вашей стороны... А ситуация достаточно типичная: клюнуло программиста кто-то куда-то, он вскочил и запел - вот сейчас быстренько сделаю, тут все легко, просто и понятно. И действительно, смотришь через часок что-то соорудил. Но все дело в том, что созданный продукт работает лишь в простейших случаях. А как ткнешь его носом в ситуацию чуть посложнее, он и сдувается.Один из последних характерных примеров:http://forum.simplacms.ru/topic/6727-%D0%B2-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B5-bootstrap-simpla-admin/page-3?do=findComment&comment=90717 Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 11 октября, 2016 Автор Жалоба Поделиться Опубликовано 11 октября, 2016 Если Вы считаете, что метод хороший и поправить несложно, поправьте быстренько без лишней болтовни указанный КОНКРЕТНЫЙ момент.А потом, думаю, я найду Вам еще случай, когда работает неверно.И так далее...И посмотрим, кому раньше надоест.Если мне, значит, Вы правы и Ваше решение хорошее. Корс меня на понт не бери! Я тебя просто сейчас опять пошлю (денек в бане посижу, ничего не случится) То ты еще та назойливая гнида! Тебя зацепишь так пол форума засрешь! Я не понимаю почему тебя еще до сих пор не забанили! Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 12 октября, 2016 Жалоба Поделиться Опубликовано 12 октября, 2016 Тебя зацепишь так пол форума засрешь! Я не понимаю почему тебя еще до сих пор не забанили!Банили неоднократно, даже аккаунт сносили, толку 0 он дебил. Цитата Ссылка на сообщение Поделиться на другие сайты
ABSORBER Опубликовано 12 октября, 2016 Жалоба Поделиться Опубликовано 12 октября, 2016 Банили неоднократно, даже аккаунт сносили, толку 0 он дебил. :lol: Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 12 октября, 2016 Жалоба Поделиться Опубликовано 12 октября, 2016 Непонятно, зачем Вы перешли на воровской язык... Напомню суть. Имеем простой технический вопрос. Предложенный метод не работает для шаблона, который включается в другой шаблон в виде {include file='pagination.tpl'}. Вопрос к Вам: можете поправить? Ожидается простой ответ типа:1. Да, могу. Поправил, теперь работает.2. Не могу.3. Могу, но не хочу.4. Могу и хочу, но обстоятельства не позволяют. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 14 октября, 2016 Автор Жалоба Поделиться Опубликовано 14 октября, 2016 Непонятно, зачем Вы перешли на воровской язык... Это не воровской. Это по факту! ............................................... Обновление: версия 1.1 Изменен способ обработки шаблонов smarty Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 15 октября, 2016 Жалоба Поделиться Опубликовано 15 октября, 2016 Спасибо!Новый способ обработки шаблонов прекрасно устраняет замеченный ранее дефект. Продолжаем банкет.Следующий вопрос - о файлах стилей. В xml-файле прописываю <file name="simpla/design/css/style.css"> <operation error="skip" info="ReplaceCSS"> <search position="replace"><![CDATA[width: 290px;]]></search> <add><![CDATA[width: 299px;]]></add> </operation> </file> После этого никаких изменений не видно. Модифицированный файл не генерируется, тем более не используется... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.