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

как отказаться от vqmod и перенести все изменения в файлы движка


freelancer

Recommended Posts

в vqmod\vqcache есть список файлов, среди которых файлы создаются для работы vqmod

vqmod\vqcache\vq2-system_engine_controller.php
vqmod\vqcache\vq2-system_engine_front.php
vqmod\vqcache\vq2-system_engine_loader.php
vqmod\vqcache\vq2-system_library_language.php
vqmod\vqcache\vq2-system_library_template.php
vqmod\vqcache\vq2-system_startup.php

 

все остальные файлы, это те, которые были изменены xml-файлами

например

vqmod\vqcache\vq2-admin_model_catalog_product.php
vqmod\vqcache\vq2-admin_model_localisation_language.php
vqmod\vqcache\vq2-admin_model_setting_store.php
vqmod\vqcache\vq2-catalog_controller_common_header.php
vqmod\vqcache\vq2-catalog_controller_module_category.php
vqmod\vqcache\vq2-catalog_controller_product_category.php            

что бы перенести vqmod изменения в движок следует копировать содержимое файлов из vqmod\vqcache\ в аналогичные файлы движка

например

vqmod\vqcache\vq2-admin_model_catalog_product.php это файл admin\model\catalog\product.php

vqmod\vqcache\vq2-admin_model_localisation_language.php это admin\model\localisation\language.php
vqmod\vqcache\vq2-admin_model_setting_store.php это admin\model\setting\store.php

и т.д.

 

при установке vqmod физически меняет два файла index.php и admin\config.php

что бы удалить vqmod их следует вернуть в исходное

т.е. в index.php

// VirtualQMODrequire_once('./vqmod/vqmod.php');$vqmod = new VQMod();// VQMODDED Startuprequire_once($vqmod->modCheck(DIR_SYSTEM . 'startup.php'));// Application Classesrequire_once($vqmod->modCheck(DIR_SYSTEM . 'library/customer.php'));require_once($vqmod->modCheck(DIR_SYSTEM . 'library/affiliate.php'));require_once($vqmod->modCheck(DIR_SYSTEM . 'library/currency.php'));require_once($vqmod->modCheck(DIR_SYSTEM . 'library/tax.php'));require_once($vqmod->modCheck(DIR_SYSTEM . 'library/weight.php'));require_once($vqmod->modCheck(DIR_SYSTEM . 'library/length.php'));require_once($vqmod->modCheck(DIR_SYSTEM . 'library/cart.php'));

заменить на

// Startuprequire_once(DIR_SYSTEM . 'startup.php');// Application Classesrequire_once(DIR_SYSTEM . 'library/customer.php');require_once(DIR_SYSTEM . 'library/affiliate.php');require_once(DIR_SYSTEM . 'library/currency.php');require_once(DIR_SYSTEM . 'library/tax.php');require_once(DIR_SYSTEM . 'library/weight.php');require_once(DIR_SYSTEM . 'library/length.php');require_once(DIR_SYSTEM . 'library/cart.php');

admin\config.php

//VirtualQMODrequire_once('../vqmod/vqmod.php');$vqmod = new VQMod();// VQMODDED Startuprequire_once($vqmod->modCheck(DIR_SYSTEM . 'startup.php'));// Application Classesrequire_once($vqmod->modCheck(DIR_SYSTEM . 'library/currency.php'));require_once($vqmod->modCheck(DIR_SYSTEM . 'library/user.php'));require_once($vqmod->modCheck(DIR_SYSTEM . 'library/weight.php'));require_once($vqmod->modCheck(DIR_SYSTEM . 'library/length.php'));

заменить на

// Startuprequire_once(DIR_SYSTEM . 'startup.php');// Application Classesrequire_once(DIR_SYSTEM . 'library/currency.php');require_once(DIR_SYSTEM . 'library/user.php');require_once(DIR_SYSTEM . 'library/weight.php');require_once(DIR_SYSTEM . 'library/length.php');
  • +1 1
Надіслати
Поділитися на інших сайтах

Отказаться от использования VirtualQMOD-а идея хорошая, но есть ли альтернатива, ведь большинство модификаций писались, пишутся и (предполагаю) будут писаться под VirtualQMOD, забирать сгенерированные файлы и заменять всё в ручную - выход, но не понесёт ли обычный пользователь утраты в магазине, при использовании такого метода... Может проще переписать сам модификатор, на создание непосредственно изменений в коде необходимых файлов, впредь делая бекапы оригинальных файлов ?

Надіслати
Поділитися на інших сайтах

как отказаться от vqmod и перенести все изменения в файлы движка

 

Вносить изменения в файлы вручную, использую при этом систему контроля версий (например, git)

Надіслати
Поділитися на інших сайтах

Вносить изменения в файлы вручную, использую при этом систему контроля версий (например, git)

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

P.S. Мои пять копеек по данной теме:

Опишу, как это делаю я:

1. Скопировать модификацию в чистую папку vqmod/xml (помимо самой модификации должен присутствовать только vqmod_opencart.xml);

2. Зайти в магазин и обновить главную страницу для создания кеша;

3. В директории vqmod/vqcache будет сгенерирован кеш с модифицированными файлами системы, их необходимо переименовать и переместить в соответствующие директории, после чего саму модификацию можно удалить.

Шаблон имени файлов кеша используемый vQmod:

vq2-путь_имя_файла.расширение
Модифицированные файлы необходимо переименовать в соответствии с шаблоном имя_файла.расширение и переместить по указанному пути.

Файлы кеша генерируемые vQmod (их не нужно переименовывать и перемещать):

vq2-system_engine_controller.php
vq2-system_engine_front.php
vq2-system_engine_loader.php
vq2-system_library_language.php
vq2-system_library_template.php
vq2-system_startup.php
Надіслати
Поділитися на інших сайтах


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

 

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

 

UNUSQUISQUE SUA NOVERIT IRE VIA :-)

Надіслати
Поділитися на інших сайтах

А там уже дальше топикстартер пусть сам решает для себя, будет он этим пользоваться, или останется на vqmod, или будет в ворде свои изменения фиксировать.

Я думаю, что freelancer не для себя этот гайд писал, а для тех пользователей, которые хотят установить вручную дополнения использующие vQmod.

Надіслати
Поділитися на інших сайтах


Гайд для ленивых, или как прописать изменения в файл с VQMOD-а:

1. Устанавливаем сам VQMOD.

2. Находим и открываем файл: 

vqmod\vqmod.php
3. Находим строку: 108
$cacheFile = self::_cacheName($stripped_filename);
заменяем на:
$cacheFile = $sourcePath;//self::_cacheName($stripped_filename);
а так же начиная с 130 строки, находим условие проверки:
if (sha1($fileData) != $fileHash) {	$writePath = $cacheFile;		if(!file_exists($writePath) || is_writable($writePath)) {			file_put_contents($writePath, $fileData);			$changed = true;	}}
и комментируем проверку первого:
//if (sha1($fileData) != $fileHash) {	$writePath = $cacheFile;		if(!file_exists($writePath) || is_writable($writePath)) {			file_put_contents($writePath, $fileData);			$changed = true;	}//}
Сохраняем, и сёрфим по сайту, что бы прописались изменения.

 

P.S. После этого можно удалить сам vQmod, но так же не забываем, что надо восстановить файлы на дефолтные:

system_engine_controller.phpsystem_engine_front.phpsystem_engine_loader.phpsystem_library_language.phpsystem_library_template.phpsystem_startup.php+ index.php + admin/index.php
Если что то не прописывается, удалите файл: mods.cache и удалите файлы из vqmod\vqcache\
Надіслати
Поділитися на інших сайтах

 

Гайд для ленивых, или как прописать изменения в файл с VQMOD-а:

 

а этот способ  не будет записывать данные при каждом вызове файла?

Надіслати
Поділитися на інших сайтах

а этот способ  не будет записывать данные при каждом вызове файла?

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

Надіслати
Поділитися на інших сайтах

Отказаться от использования VirtualQMOD-а идея хорошая, но есть ли альтернатива, ведь большинство модификаций писались, пишутся и (предполагаю) будут писаться под VirtualQMOD, забирать сгенерированные файлы и заменять всё в ручную - выход, но не понесёт ли обычный пользователь утраты в магазине, при использовании такого метода... Может проще переписать сам модификатор, на создание непосредственно изменений в коде необходимых файлов, впредь делая бекапы оригинальных файлов ?

А может просто сразу писать модули без vqmod ;)

Как вариант можно вообще сделать хуки, на основе перехвата registry и слежения за процессами. Попользовался процессом, отдал другому.

Т.е. выполняются все процессы разных разработчиков на основе  оригинального

Надіслати
Поділитися на інших сайтах

Хуки тоже не самая крутая идея. Одно время я плотно работал с punbb, так вот там расширяемость на хуках основана

Это тот еще гемор, скажу я вам - межмодульные конфликты и т.п. После этого мне намного больше по душе идея vqmod.

Хотя в итоге я все-равно все правки руками вношу в файлы движка :)

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

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

×
×
  • Створити...

Important Information

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