OpenCart была успешной платформой для малых и средних сайтов электронной коммерции. Хотя ядро OpenCart предоставляет множество функций, необходимых для сайта корзины покупок во внешнем интерфейсе, именно сторонние расширения играют важную роль в его успехе.
При этом могут возникнуть обстоятельства, при которых вы будете вынуждены изменить ядро OpenCart. В этом уроке мы увидим, как вы можете изменить ядро OpenCart, используя расширение vQmod.
vQmod — это популярное расширение, которое позволяет вам вносить изменения без фактического изменения основных файлов. Это выдержка из официального сайта vQmod .
«vQmod ™» (он же Virtual Quick Mod) — это система переопределения, разработанная, чтобы избежать необходимости изменять основные файлы. Концепция довольно проста … Вместо того, чтобы вносить изменения в основные файлы напрямую, изменения создаются как файлы сценариев поиска / замены xml. Эти файлы сценариев анализируются во время загрузки страницы, так как каждый основной файл «source» загружается с помощью php-функций «include» или «require». Затем источник исправляется с изменениями файла сценария и сохраняется во временном файле. Этот временный файл затем заменяется оригиналом во время выполнения. Исходный исходный файл никогда не изменяется. Это приводит к «виртуальному» изменению ядра во время выполнения без какой-либо реальной модификации файлов ядра.
Так что это действительно полезно, поскольку делает процесс обновления OpenCart гладким, даже если вы изменили основные файлы.
Как работает vQmod
Прежде чем мы продолжим и узнаем, как использовать vQmod с OpenCart, давайте посмотрим, как именно работает vQmod.
vQmod делает всю свою магию, используя файлы XML. Вам необходимо создать файл XML в соответствии с соглашениями, а остальная часть функциональности будет обрабатываться vQmod. С учетом сказанного давайте посмотрим, как именно должен выглядеть XML-файл.
Это простая демонстрация, показывающая, как можно заменить определенный фрагмент кода в файле другим содержимым.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
<?xml version=»1.0″ encoding=»UTF-8″?>
<modification>
<id>Example of the vQmod</id>
<version>1.0</version>
<vqmver>2.X</vqmver>
<author>Tuts+</author>
<file name=»targetfile.php»>
<operation info=»Example of the vQmod»>
<search position=»replace»><![CDATA[
I am original content.
]]></search>
<add><![CDATA[
I am replaced content!!
]]></add>
</operation>
</file>
</modification>
|
Как видите, он начинается со стандартного объявления <?xml>
за которым следует <modification>
. Другие теги включают в себя <id>
, <version>
и <author>
. Вы не должны изменять <vqmver>
поскольку это указывает на версию vQmod.
Интересная работа начинается с <file>
. Атрибут name
указывает имя файла, который будет исправлен. Возможно, вам потребуется несколько модификаций одного и того же файла. Вот где вступает в игру тег <operation>
. Каждая модификация будет заключена в <operation>
. Атрибут info
позволяет добавить несколько полезных сообщений.
В этом конкретном примере <search>
используется для операции replace
. Вы можете использовать атрибут position
чтобы сообщить vQmod, какая операция будет выполнена. Содержимое, заключенное в <search>
будет заменено содержимым, заключенным в <add>
.
Как вы, возможно, заметили, контент для поиска и замены заключен в тег CDATA
, что означает, что контент будет интерпретироваться не как разметка, а как символьные данные.
Давайте посмотрим другие варианты, доступные для атрибута position
:
-
before
используется для вставки содержимого перед строкой поиска. -
after
используется для вставки содержимого после строки поиска. -
top
используется для вставки данных вверху файла. В этом случае нет необходимости в<search>
. Даже если вы использовали это, оно будет проигнорировано. -
bottom
используется для вставки данных внизу файла. В этом случае нет необходимости в<search>
. Даже если вы использовали это, оно будет проигнорировано. - В случае, если
ibefore
, данные будут добавлены перед данными поиска в той же строке. - В случае
iafter
данные будут добавлены после данных поиска в той же строке.
Есть также несколько необязательных атрибутов, доступных для <search>
. Давайте кратко рассмотрим их.
-
offset
— это атрибут, предназначенный для работы в сочетании с атрибутомposition
. Так, например, если дляposition
задано значениеbefore
а дляoffset
установлено значение3
, это означает, что содержимое будет вставлено перед тремя строками искомых данных. -
index
: Иногда вы хотите заменить только пару экземпляров определенной строки, а не все экземпляры этой строки в данных поиска. Скажем, например, в ваших поисковых данных есть пять экземпляров переменной $ abc, но вы хотите заменить только первые два экземпляра $ abc на $ def. В этом случае вам нужно указатьindex
до1,2
. - Атрибут
regex
полезен, если вы хотите выполнять поиск операций на основе регулярных выражений. В этом случае вам нужно установить дляregex
значениеTRUE
.
Вот краткие сведения о параметрах конфигурации vQmod.
OpenCart и vQmod
Давайте посмотрим, как мы можем установить расширение vQmod OpenCart. Мы также рассмотрим, как вы можете использовать vQmod для изменения ядра OpenCart.
Установка
- Загрузите и распакуйте специфичную для OpenCart библиотеку vQmod .
- Загрузите каталог
vqmod
в корневой каталог вашей установки OpenCart. - Убедитесь, что веб-сервер доступен для записи в каталог
vqcache
который находится вvqmod
. - Посетите http://www.myopencartsite.com/vqmod/install, и вы должны получить сообщение об успехе. Если это не так, скорее всего это проблема с разрешениями.
Теперь вы готовы использовать любое специфичное для vQmod расширение или создать свое собственное.
использование
Теперь, когда вы вооружены всем оружием, давайте рассмотрим практический пример. Создайте файл XML vqmod_homepage.xml
в vqmod/xml
. Скопируйте и вставьте следующее содержимое во вновь созданный файл vqmod_homepage.xml
.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
<?xml version=»1.0″ encoding=»UTF-8″?>
<modification>
<id>Replace the css property in heading title in Home page</id>
<version>1.0</version>
<vqmver>2.X</vqmver>
<author>Tuts+</author>
<file name=»catalog/view/theme/default/template/common/home.tpl»>
<operation info=»Replace the css property in heading title in Home page»>
<search position=»replace»><![CDATA[
<h1 style=»display: none;»>
]]></search>
<add><![CDATA[
<h1>
]]></add>
</operation>
</file>
</modification>
|
Теперь откройте свою домашнюю страницу, и вы должны увидеть, что отображается заголовок <h1>
. По умолчанию это «Твой магазин». Все файлы в vqmod/xml
обнаруживаются автоматически, и изменения применяются соответствующим образом. Вы можете найти кэшированную версию файлов в vqmod/vqcache
.
Это довольно просто, если вы посмотрите на файл vqmod_homepage.xml
. Мы используем операцию replace
в файле home.tpl
. Важно отметить, что путь к файлу указывается относительно vqmod
.
Вишня на торте
На этом этапе вы должны знать, как изменить ядро OpenCart с помощью XML-файлов vQmod. Таким же образом вы можете создать собственные модули OpenCart, основанные на vQmod.
Загрузите некоторые расширения на основе vQmod с сайта OpenCart, чтобы изучить, что вы можете сделать с этим удивительным маленьким жемчужиной. Существует более 2500 расширений, основанных на vQmod.
Кроме того, если вам немного лень создавать XML-файл vQmod, то есть расширение OpenCart vQmod Generator, Editor и Log Viewer, которое предоставляет вам административный интерфейс для ваших файлов vQmod.
Вывод
Из этого руководства вы узнали, что такое библиотека vQmod и как ее можно использовать с OpenCart. Идите вперед и делайте эксперименты, это будет весело!
И да, не забудьте поделиться своими мыслями, используя ленту комментариев ниже.