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. Идите вперед и делайте эксперименты, это будет весело!
И да, не забудьте поделиться своими мыслями, используя ленту комментариев ниже.