В компоненте Hikashop есть переменные, от которых зависит работоспособность и визуализация основных модулей и форм. Рассмотрим их поближе. Для различных версий Joomla они принимают разные значения.
Например, "непонятная" переменная $level, которая в различных версиях Hikashop примает значение 0, 1 и 2 и от которой зависит появление определенных <div> и поведение компонента.
При инициализации компонента Hikashop переменная LEVEL принимает значение 'Bussiness' -> затем отдается допонительная команда ucfirst (преобразует первый символ строки в верхний регистр) , далее создается переменная $allPref, отвечающая за конфигурацию компонента, которой в принудительном порядке по принципу $allPref['ключ'] => 'значение' присваивают все отстальные необходимые данные для конфигурации.
При этом переменная $allPref['level'] получает напрямую значение 'Bussiness', а $allPref['Bussiness'] => 2.
В зависимости от версии Joomla, которая может определяется в Hikashop с учетом версии, как например, version_compare(JVERSION, '3.0', '>=') переменная $allPref обрастает новыми значениями (а данные берутся из переменной $jconf):
например: $allPref['from_name'] = $jconf->get('fromname')
Есть и исключения, так основная переменная $allPref['default_params'] представляет уже готовый "строковый" массив данных с заполненными значениями.
При инициализации компонента Hikashop автоматически создаются 7 модулей (семь $elements[k]), которым присваиваются различные параметры в зависимости от инициализированного модуля (семь $params[k]->params)
ВСЕ ЭТИ ДАННЫЕ поступают в переменную !!! $config !!! с использованием функции hikashop_config( ) [при подключении файла "HELPER.PHP"]
Переменная $config - это самая распространенная переменная для нахождения значений заполненных пользователем полей конфигурации (в т.ч. установленных системой по умолчанию) в HIKASHOP. Именно, получение значений через конструкцию $config->get('найти значение поля в переменной') - самая простая операция в Hikashop.
Несомненный лидер использования в шаблонах Hikashop - это псевдо-переменная $this, которая является ссылкой на вызываемый объект (класс) .
Простой пример (взят из шаблонов Hikashop) - вызвать класс внутри другого класса:
class CartViewCart extends HikaShopView {
$this->config = hikashop_config(); или по-другому $CartViewCart->config = hikashop_config();
$this->currencyClass = hikashop_get('class.currency'); или по-другому $CartViewCart->currencyClass = hikashop_get('class.currency')
}
Пример посложнее (с использованием внутри объекта(класса) функции-конструктора __construct($config = array( )) ) - использовать базу данных db по объекту и по покупателю user внутри класса + использовать данные REQUEST по отправленным формам app :
class hikashopCartClass extends hikashopClass { protected $db = null; protected $app = null; protected $config = null; protected $user = null; public function __construct($config = array()) { $ret = parent::__construct($config); $this->db = JFactory::getDBO(); $this->app = JFactory::getApplication(); $this->config = hikashop_config(); $this->user = hikashop_loadUser(true); return $ret; } }
Классы, в которых объявлен метод-конструктор, будут вызывать этот метод при каждом создании нового объекта
$new = new hikashopCartClass();
var_dump($new); //