Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

вывод своего содержимого между фото на странице товара


Recommended Posts

Есть стандартный код вывода доп изображений на странице товара:

{% for image in images %}
	<div class="ss154 scrollflow -slide-left -opacity">
      		<a class="thumbnail" href="{{ image.popup }}">
          			<img src="{{ image.thumb }}" alt="{{ heading_title }}" class="ani2" />
      		</a>
	</div>
{% endfor %}

 

выглядит так: https://prnt.sc/xd5ucl

 

как можно вывести нужный текст между первым и вторым фото? а то они все подряд выводятся.

Надіслати
Поділитися на інших сайтах


в контройлере ищем

			$data['images'] = array();

			$results = $this->model_catalog_product->getProductImages($this->request->get['product_id']);

			foreach ($results as  $result) {
				$data['images'][] = array(

заменяем вот это

			foreach ($results as  $result) {
				$data['images'][] = array(

на это

			foreach ($results as  $key => $result) {
				$data['images'][] = array(
				    'num'   => $key,

в итоге должно получиться вот так примерно

			foreach ($results as  $key => $result) {
				$data['images'][] = array(
				    'num'   => $key,
					'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_height')),
					'thumb' => $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_additional_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_additional_height'))
				);
			}

потом в шаблоне вот так делаем

{% for image in images %}
	<div class="ss154 scrollflow -slide-left -opacity">
	        {% if image.num == 1 %}
			  здесь ваш текст
			{% endif %}  
      		<a class="thumbnail" href="{{ image.popup }}">
          			<img src="{{ image.thumb }}" alt="{{ heading_title }}" class="ani2" />
      		</a>
	</div>
{% endfor %}

1 это вторая картинка, потому как отсчет в массиве идет от 0

 

Вроде должно работать не тестил

  • +1 1
Надіслати
Поділитися на інших сайтах

1 годину назад, Venter сказав:

в контройлере сделать подсчет этих фото и в шаблоне по условию вывести

спасибо большое, помогло на ура))

 

с помощью 

$key

можно так в любой функции foreach делать?) т.е. это своего рода подсчет количества генераций?

Надіслати
Поділитися на інших сайтах


20 минут назад, AlexMax13 сказал:

можно так в любой функции foreach делать?) т.е. это своего рода подсчет количества генераций?

$key => $result

не обязательно называть key

В данном случае $result это значение

а $key это будет ключ нашего значения

если прописать так как было

foreach ($results as  $result) {

то мы будем получать только значение

 

Почитать можно здесь https://www.php.net/manual/ru/control-structures.foreach.php

  • +1 1
Надіслати
Поділитися на інших сайтах

26 минут назад, AlexMax13 сказал:

спасибо большое, помогло на ура))

 

с помощью 


$key

можно так в любой функции foreach делать?) т.е. это своего рода подсчет количества генераций?

Это по сути не подсчет, это мы получаем ключ к каждому значению, у каждого значения, когда автоматом создается массив без присваивания ключа, ключ уникальный и идет счет от нуля

А вот если считать сколько данных в массиве это совсем по другому, просто сначало подумал так, а потом прикинул что вот так как показал проще

  • +1 1
Надіслати
Поділитися на інших сайтах

3 хвилини назад, Venter сказав:

Это по сути не подсчет, это мы получаем ключ к каждому значению, у каждого значения, когда автоматом создается массив без присваивания ключа, ключ уникальный и идет счет от нуля

А вот если считать сколько данных в массиве это совсем по другому, просто сначало подумал так, а потом прикинул что вот так как показал проще

 

во всяком случае спасибо, интересная информация) помогли)

Надіслати
Поділитися на інших сайтах


2 часа назад, AlexMax13 сказал:

как можно вывести нужный текст между первым и вторым фото?

в шаблоне в самом блоке перед {% endfor %}

добавить

{% if loop.first == true %}
	выводим чего-то там после первой итерации
{% endif %}

и не нужно ничего в контроллере править

 

доки по twig в помощь

https://twig.symfony.com/doc/2.x/tags/for.html

  • +1 2
Надіслати
Поділитися на інших сайтах

52 минуты назад, AlexDW сказал:

в шаблоне в самом блоке перед {% endfor %}

добавить


{% if loop.first == true %}
	выводим чего-то там после первой итерации
{% endif %}

и не нужно ничего в контроллере править

 

доки по twig в помощь

https://twig.symfony.com/doc/2.x/tags/for.html

Тоже неплохо. 

 

можно еще так, без правки контройлера

{% for  key, image in images %}
<div class="ss154 scrollflow -slide-left -opacity">
	{% if key  == 1 %}
	здесь ваш текст
	{% endif %}  
    <a class="thumbnail" href="{{ image.popup }}">
        <img src="{{ image.thumb }}" alt="{{ heading_title }}" class="ani2" />
    </a>
</div>
{% endfor %}

Просто первый вариант прикинул вот так сразу что пришло в голову и логически я не думал про твиг, а думал именно за PHP, поэтому и решение такое

Змінено користувачем Venter
  • +1 1
Надіслати
Поділитися на інших сайтах

48 хвилин назад, AlexDW сказав:

в шаблоне в самом блоке перед {% endfor %}

добавить


{% if loop.first == true %}
	выводим чего-то там после первой итерации
{% endif %}

и не нужно ничего в контроллере править

 

доки по twig в помощь

https://twig.symfony.com/doc/2.x/tags/for.html

 

спасибо)

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.