2016-04-25 4 views
0

Я пытаюсь создать некоторые события отслеживания в OXID eShop Framework на настраиваемом модуле, но я не могу найти никаких обработчиков событий или что-то, что бы поместить код на некоторые пользовательские страницы без редактирования основных файлов. Я хочу, чтобы сделать некоторые пользовательские вызовы API, если я на странице продукта, странице категории, корзине и т. Д. Есть ли способ, которым я могу справиться с этим в пользовательском модуле?Обработчики событий Oxid eShop

+1

Не знаете, чего вы хотите достичь. Было бы здорово, если бы вы предоставили функциональность класса, которую вы хотели бы изменить. Существует учебное пособие по созданию модуля оксида, возможно, это будет полезно для вас: http://www.sitepoint.com/build-infinite-scroll-list-oxid-eshop-basics/ –

+0

Оксид не предоставляет никаких событий, которые вы можете висеть (по крайней мере, в версии 4.xx). Однако вы можете расширить Oxid без изменения каких-либо файлов, написав специальные модули. Вы можете захотеть найти несколько руководств в Интернете, чтобы понять, как это работает. Если вы ищете примеры и шаблоны при создании своего собственного модуля, я рекомендую вам проверить официальный модуль PayPal, который поставляется с Oxid или некоторыми из [этих] (https://github.com/OXIDCookbook) модулей. Также проверьте [файл метаданных] (http://wiki.oxidforge.org/Features/Extension_metadata_file), чтобы узнать, что на самом деле возможно. – Patchee

ответ

1

У OXID нет таких событий или крючков, которые вы, возможно, знаете из magento или shopware. У вас есть два варианта:


1) Для запуска сервера коды на сторону PHP, нужно расширить функции оксидных в, например, render() для страниц, которые вы хотите отслеживать. Для страницы продукта было бы «детали» -> приложения/контроллеры/details.php категория страницы «alist.php» и корзина basket.php


2) сделать на стороне клиента API звонки с простой JS. Вы могли бы добавить весь свой js-код в блок tempalte (например, в верхнем нижнем колонтитуле) и создать некоторую логику if-else для разных классов контроллеров. Как и здесь: https://github.com/OXID-eSales/oxideshop_ce/blob/b-5.3-ce/source/application/views/azure/tpl/layout/base.tpl#L32

Вы также можете просмотреть любой модуль отслеживания для аналитики Google или пивика, они очень похожи на то, что вы хотите сделать. Я могу дать вам больше примеров, если вы хотите.

Смежные вопросы