Господа! Помогите пожалуйста с твигом! Уже задавал этот вопрос вот здесь, но ответа к сожалению не получил.
Ситуация следующая:
Хочется что-бы хедер отображался по-разному в зависимости от того, главная это страница или нет. Для второго опенкарта на PHP существует вот такое решение:
$path = "common/home";
$url = $_SERVER['REQUEST_URI'];
if ($url == "/" or strripos($url, $path)) {
$is_home = TRUE;
}else{
$is_home = false;
}
Но с твигом это решение не прокатывает. Насколько я понял - код нужно сунуть в header.php, и передать значение в шаблон, но КАК???
Три дня смотрю в монитор и никак не могу понять. Вижу в header.php следующий код:
$data['language'] = $this->load->controller('common/language');
$data['currency'] = $this->load->controller('common/currency');
$data['search'] = $this->load->controller('common/search');
$data['cart'] = $this->load->controller('common/cart');
$data['menu'] = $this->load->controller('common/menu');
return $this->load->view('common/header', $data);
По видимому это означает что тут объявляется массив $data с кучей значений, которые передаются в шаблон командой return и всё должно быть просто - если я хочу передать шаблонизатору еще одну переменную, мне достаточно её здесь обьявить к примеру так:
$data['main'] = 'главная';
или так:
$main = 'главная';
return $this->load->view('common/header', $data, $main);
а в шаблоне вызвать в фигурных скобочках на экран так:
{{ main }}
Но куда я только ни пытался сунуть свою переменную, и в language и создавал новый php и в нем объявлял переменную и создавал массив и и пытался передать и через точку и в скобочках, модификаторы обновлял, кеш чистил и руками и ногами и отключал и через админку и в конфиге - всё тщетно! Уже разбил голову об клавиатуру... Я не силен в PHP, возможно я не поставил где-то точечку или скобочку, скажите пожалуйста, что не так??? Как создать в пхп переменную $main и вывести её на экран в хэдэре в третьем опенкарте??? Дальше я додумаю сам.