Перейти к содержанию
freelancer

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

Рекомендуемые сообщения

в 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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