Jump to content
покупайте без комиссии
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Как выдернуть ссылку из хлебных крошек?


Recommended Posts

Есть задача в карточке продукта вывести дополнительно название категории, к которой относится данный товар. В принципе название категории уже хранится в хлебных крошках, но как его достать из этого массива и вывести в нужном месте? 

Link to post
Share on other sites

1 час назад, spectre сказал:

предпоследний элемент массива breadcrumbs

 

это понятно, но вывести его конкретно как?

Link to post
Share on other sites

49 минут назад, elen11 сказал:

 

это понятно, но вывести его конкретно как?

 

= $*[count($*)-1]

Link to post
Share on other sites
15 минут назад, Otvet сказал:

 

= $*[count($*)-1]

как условие предпоследнего элемента прописать для twig расширения?

Link to post
Share on other sites

8 минут назад, elen11 сказал:

на тройке не работает

у синтаксис конечно другой. .речь о том, чтобы не из крошек дергать. методологический пример, так сказать )

Link to post
Share on other sites
15 минут назад, anboza сказал:

у синтаксис конечно другой. .речь о том, чтобы не из крошек дергать. методологический пример, так сказать )

надо как раз из крошек. Есть конструкция вида , она обрезает последний пункт крошек. А как правильно прописать условие именно на предпоследний элемент? Вопрос именно синтаксиса)

{% for key, breadcrumb in breadcrumbs %}
{% if key +1 < breadcrumbs|length %}
    <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>    
{% endif %}
{% endfor %}

 

Link to post
Share on other sites

Цитата

 

Не стыдно?

 

// Set the last category breadcrumb - а это не о чем не говорит, да?

 

 

не стыдно. Что проще прописать условие или куча кода, который вы прислали?

Edited by elen11
Link to post
Share on other sites

9 минут назад, elen11 сказал:

Что проще прописать условие или куча кода, который вы прислали?

Ну так определите переменную в контроллере равную бредкрамбс и сделайте с ней 2 раза array_pop и выведите её в шаблон.

 

И куча кода там не при чем, вам в переменную нужно было добавить только:

'text' => $category_info['name'],
'href' => $this->url->link('product/category', 'language=' . $this->config->get('config_language') . '&path=' . $this->request->get['path'] . $url)
Link to post
Share on other sites
8 минут назад, optimlab сказал:

Ну так определите переменную в контроллере равную бредкрамбс и сделайте с ней 2 раза array_pop и выведите её в шаблон.

Уважаемый человек, мне как получайнику в опенкарте Ваши слова что горох об стену) Что в саму переменную включить я понимаю, а в силу отсутствия более глубоких познаний, объявить по всей видимости правильно не получается. Я могу работать с движком, править, но самой переменную добавить это уже вышка для меня) Поэтому было принято искать более простые решения. Мне вот инструкция выше пригодилась очень. Она рабочая и гениально простая.

Link to post
Share on other sites

решение найдено, для предпоследнего элемента можно задать условие. Данная конструкция выведет название Категории при условии, что хлебные крошки полные

{% if key +2 == breadcrumbs|length %}
    <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>    
{% endif %}
{% endfor %}

 

Link to post
Share on other sites

@elen11 очень интересно на итоговое решение посмотреть, это во первых.

А во вторых, за расчеты в шаблоне, которые можно сделать в контроллере, я бы вас уволил.

 

Таким образом вы, как новичок, формируете у себя неправильную технику кодирования...

Link to post
Share on other sites
On 6/30/2018 at 7:06 PM, elen11 said:

решение найдено, для предпоследнего элемента можно задать условие. Данная конструкция выведет название Категории при условии, что хлебные крошки полные


{% if key +2 == breadcrumbs|length %}
    <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>    
{% endif %}
{% endfor %}

 

чем не устраивает ответ данный вам на стековерфлоу

{{ breadcrumbs[breadcrumbs|length-2].text }}

 

ну или с условием

  {% if breadcrumbs|length > 2 %}
  <div>входит в категорию {{ breadcrumbs[breadcrumbs|length-2].text }}</div>
  {% endif %}
 

Edited by lexxkrt
Link to post
Share on other sites

  • 3 weeks later...
В 02.07.2018 в 15:02, optimlab сказал:

@elen11 очень интересно на итоговое решение посмотреть, это во первых.

А во вторых, за расчеты в шаблоне, которые можно сделать в контроллере, я бы вас уволил.

 

Таким образом вы, как новичок, формируете у себя неправильную технику кодирования...

к чему демагогию разводить? меня решение устраивает. Оно простое и рабочее. А чтобы кого-то уволнять, надо чтобы на вас работал кто-то. А это не так. Так что фантазируйте в другом месте. 

Link to post
Share on other sites

В 03.07.2018 в 09:50, lexxkrt сказал:

чем не устраивает ответ данный вам на стековерфлоу

{{ breadcrumbs[breadcrumbs|length-2].text }}

 

ну или с условием

  {% if breadcrumbs|length > 2 %}
  <div>входит в категорию {{ breadcrumbs[breadcrumbs|length-2].text }}</div>
  {% endif %}
 

я не понимаю про что вы. В любом случае проблема была решена тем методом, который озвучен

Link to post
Share on other sites

23 hours ago, elen11 said:

я не понимаю про что вы. В любом случае проблема была решена тем методом, который озвучен

https://ru.stackoverflow.com/questions/848591/Как-вывести-предпоследний-элемент-массива-twig-opencart

Получение циклом элемента массива с известным индексом как бы не есть хорошо. Работает, Вас устраивает, ну и ладно.

Link to post
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
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • 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.