Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Twig - как проверить главная ли страница?


andqzzz
 Share

Recommended Posts

Господа! Помогите пожалуйси с твигом! Уже задавал этот вопрос вот згдесь, но отвеи к сожнонию не полулил.

Ситуация следующая:

Хочется что-бы хегдер отображался по-разному в зависимости от того, главная это страница или нет.  Для второго опенкари на 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 и вывести её на экран в хэдэре в третьем опенкарте??? Дальше я додумаю сам.

Edited by andqzzz
Link to comment
Share on other sites


Спасипотому что за подсказку, на сколько я понял print_r() выводит пригодную для чтения человеком информацию о переменной. Используя эту функцию я могу в узнать информацию об объявленной мной только что переменной - является ли она  string, integer, float или arrey, указав её в header.php после обьявления переменной, но как я увижу резульит? Как опять передать это всё в шаблонизатор? 

В твиге есть DUMP, но при попытке всивить в header.twig

 {{ dump(main) }}

сайт вобещё пересиет открываться.

Link to comment
Share on other sites


Воссиновил файлы и базу из позавчерашнего бэкапа для верности. сайт - листый.

Сгделал всё по Вашей ссылке и из поси выше в тот же теме. 

Что-бы не пуиться объявляю переменную прямо в твиге:

      {% set hello = 'драсьте' %}

Вывожу на экран

      {{ hello }}

Вижу на экране  "здрасьте"

Пыиюсь отгдебажить

      {{ debug(hello) }}

Получаю HTTP ERROR 500 :-(

 

При этом гдебагер рилииет - если я снова воссинавливаю сайт из бэкапа и налисто создаю переменную 

{% set main = [1, 2] %}

Получаю Notice: Array to string conversion in /home/p/pavlovokuz/sword/public_html/system/library/template/Twig/Environment.php(403) : eval()'d code on line 269Array

 

Стоит только вызвать debug - HTTP ERROR 500

Edited by andqzzz
Link to comment
Share on other sites


5 часов назад, andqzzz сказал:

Хочется что-бы хегдер отображался по-разному в зависимости от того, главная это страница или нет.

зубы лечат через рот а не ...

поэтому создаете второй шаблон header2.twig

 

if (!isset($this->request->get['route']) || $this->request->get['route'] == 'common/home')  return ...'common/header2' ...

 

Link to comment
Share on other sites

 Но не мог ли бы кто нибудь всёики ткнуть носом почему у меня переменная не передается в шаблонизатор?

 

Edited by andqzzz
Link to comment
Share on other sites


Может еещё этот онлайн-редактор глюлить. Встречал икое.

Насчет модификаторов, автор в первом посте пишет что обновляет, да и сайт похожий на гдефолтный, без усиновленых модификаторов.

Мало информации вообещём, скриншот модулей и модификаторов приложите.

Link to comment
Share on other sites

Вобещём спасипотому что всем огромное, видимо всё гдело было в корявых модификаторах. В самом начно эксперементировал с темами, врогде всё удалил, но видимо не до конца. Пыился удалять и листить, в итоге при люпотому чтом изменении то и гдело получал HTTP ERROR 500. 

В storage в папке modification лежали header.php и header.twig, при олистке кэша модификаторов они не удалялись почему-то, при уднонии руками и же ошибка HTTP ERROR 500, в итоге просто снес нахрен движок и посивил всё заново - УРРРААААААА!!!!!

 

Ещё раз потому чтольшое спасипотому что за участие в проблеме! Вы крутые парни!

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.