This article explores OXID eSales, a robust e-commerce platform, focusing on its theming system and customization capabilities. Part one introduced the platform; this part delves into theme creation and modification.
Key Concepts:
Understanding OXID Themes:
OXID themes function similarly to those in other applications. They allow developers and designers to manipulate data accessed through core libraries, custom modules, and extensions. The Smarty engine enables PHP-like syntax and full PHP core access if needed.
The following header.tpl
snippet illustrates Smarty tags within HTML:
<code>[{assign var="slogoImg" value="logo.png"}] <a href="//m.sbmmt.com/link/0b49b88c68f7ecbdb73f50496c084a1e" id="logo"> </a> <img src="/static/imghw/default1.png" data-src="https://img.php.cn/" class="lazy" alt="PHP Master | OXID eSales - The E-Commerce Platform that Just Works! 2">oxshops__oxtitleprefix->value}]"> [{oxid_include_widget cl="oxwCategoryTree" cnid=$oView->getCategoryId() sWidgetType="header" _parent=$oView->getClassName() nocookie=1}] [{if $oxcmp_basket->getProductsCount()}] [{assign var="blAnon" value=0}] [{assign var="force_sid" value=$oViewConf->getSessionId()}] [{else}] [{assign var="blAnon" value=1}] [{/if}] [{oxid_include_widget cl="oxwMiniBasket" nocookie=$blAnon force_sid=$force_sid}] [{include file="widget/header/search.tpl"}] [{if $oView->getClassName()=='start' && $oView->getBanners()|@count > 0 }] <div class="oxSlider"> [{include file="widget/promoslider.tpl" }] </div> [{/if}]</code>
OXID provides custom Smarty plugins under /core/smarty/plugins
. The example above demonstrates conditional logic, template inclusion, and widget usage (oxwCategoryTree
, oxwMiniBasket
). Database access is achieved via magic methods on OXID objects (e.g., $oxcmp_shop->oxshops__oxtitleprefix->value
).
Theme File Structure (CE 4.7 , PE/EE 5.0 ):
/application/views/<theme>/</theme>
: Templates, translations, configuration files./out/<theme>/</theme>
: Public files (CSS, JavaScript, images).Creating a Custom Theme ("sitepoint"):
We'll extend the "Azure" theme. Create application/views/sitepoint/theme.php
:
<code>[{assign var="slogoImg" value="logo.png"}] <a href="//m.sbmmt.com/link/0b49b88c68f7ecbdb73f50496c084a1e" id="logo"> </a> <img src="/static/imghw/default1.png" data-src="https://img.php.cn/" class="lazy" alt="PHP Master | OXID eSales - The E-Commerce Platform that Just Works! 2">oxshops__oxtitleprefix->value}]"> [{oxid_include_widget cl="oxwCategoryTree" cnid=$oView->getCategoryId() sWidgetType="header" _parent=$oView->getClassName() nocookie=1}] [{if $oxcmp_basket->getProductsCount()}] [{assign var="blAnon" value=0}] [{assign var="force_sid" value=$oViewConf->getSessionId()}] [{else}] [{assign var="blAnon" value=1}] [{/if}] [{oxid_include_widget cl="oxwMiniBasket" nocookie=$blAnon force_sid=$force_sid}] [{include file="widget/header/search.tpl"}] [{if $oView->getClassName()=='start' && $oView->getBanners()|@count > 0 }] <div class="oxSlider"> [{include file="widget/promoslider.tpl" }] </div> [{/if}]</code>
Create /out/sitepoint/img
and /out/sitepoint/src
, adding theme.jpg
and a modified logo.png
. Activate the theme in the admin panel. Clear the /tmp
directory to clear OXID's cache.
Customization Examples:
logo.png
updates the logo.application/views/sitepoint/tpl/layout/header.tpl
(copied from azure
).application/views/sitepoint/tpl/page/account/dashboard.tpl
and adding translations in application/views/sitepoint/de/cust_lang.php
and application/views/sitepoint/en/cust_lang.php
.Conclusion:
This guide demonstrates OXID's theming system, enabling straightforward customization. Part 3 will explore custom module development for advanced customization.
(Note: Image URLs are assumed to be correctly functional within the original context. They are retained in the output as requested.)
The above is the detailed content of PHP Master | OXID eSales - The E-Commerce Platform that Just Works! 2. For more information, please follow other related articles on the PHP Chinese website!