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

Бренды из карусели в список


Recommended Posts

Есть карусель из брендов, нужно сделать список из них.

Вроде получилось это сделать, только в карусели бренды повторялись по два раза, и так же вышло в списке.

Как убрать повторяемый список?

Вот код:

 

 <div class="dropdown-menu">

                                 <?php if ($manufacturers) { ?>    

                                 <div class="container" >

                                    <div  style="display: block;">

                                       <?php foreach ($manufacturers as $manufacturer) { ?>

                                          <?php if ($manufacturer['image']) { ?> 

                                       <div class="col-lg-2 col-md-2 col-sm-3 col-xs-6">

                                          <a href="<?php echo $manufacturer['href']; ?>"> <span><?php echo $manufacturer['name']; ?></span>
                                           <img src="<?php echo $manufacturer['image']; ?>"  style="display: none;" title="<?php echo $manufacturer['name']; ?>" alt="<?php echo $manufacturer['name']; ?>" /> 
                                          </a>

                                       </div>

                                     <?php } ?>  

                                       <?php } ?>

                                    </div>

                                 </div>

                                 <?php } ?>

                              </div>

 

Знімок екрана 2021-05-10 101959.png

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


7 минут назад, dixel сказал:

только в карусели бренды повторялись по два раза,

а зачем?

7 минут назад, dixel сказал:

Как убрать повторяемый список?

сформировать в контроллере массив без повторений.

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

12 минут назад, fanatic сказал:

а зачем?

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

 

в контроллере только здесь есть упоминание о manufacturer.

	if (isset($this->request->get['route'])) {
			if (isset($this->request->get['product_id'])) {
				$class = '-' . $this->request->get['product_id'];
			} elseif (isset($this->request->get['path'])) {
				$class = '-' . $this->request->get['path'];
			} elseif (isset($this->request->get['manufacturer_id'])) {
				$class = '-' . $this->request->get['manufacturer_id'];
			} else {
				$class = '';
			}

 

15 минут назад, fanatic сказал:

сформировать в контроллере массив без повторений.

Это нужно отдельно что-то прописывать?

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


25 минут назад, dixel сказал:

в контроллере только здесь есть упоминание о manufacturer.

не может быть

должен быть код,  формирующий массив $manufacturers

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

3 минуты назад, fanatic сказал:

должен быть код,  формирующий массив $manufacturers

я правильно ищу? если вывод этого сайдера в template/common/header.php, то и в controller/common/header.php нужно смотреть?

вот весь код

 

<?php
class ControllerCommonHeader extends Controller {
	public function index() {
		// Analytics
		$this->load->model('extension/extension');

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

		$analytics = $this->model_extension_extension->getExtensions('analytics');

		foreach ($analytics as $analytic) {
			if ($this->config->get($analytic['code'] . '_status')) {
				$data['analytics'][] = $this->load->controller('analytics/' . $analytic['code']);
			}
		}

		if ($this->request->server['HTTPS']) {
			$server = $this->config->get('config_ssl');
		} else {
			$server = $this->config->get('config_url');
		}

		if (is_file(DIR_IMAGE . $this->config->get('config_icon'))) {
			$this->document->addLink($server . 'image/' . $this->config->get('config_icon'), 'icon');
		}

		$data['title'] = $this->document->getTitle();

		$data['base'] = $server;
		$data['description'] = $this->document->getDescription();
		$data['keywords'] = $this->document->getKeywords();
		$data['links'] = $this->document->getLinks();
		$data['styles'] = $this->document->getStyles();
		$data['scripts'] = $this->document->getScripts();
		$data['lang'] = $this->language->get('code');
		$data['direction'] = $this->language->get('direction');

		$data['name'] = $this->config->get('config_name');

		if (is_file(DIR_IMAGE . $this->config->get('config_logo'))) {
			$data['logo'] = $server . 'image/' . $this->config->get('config_logo');
		} else {
			$data['logo'] = '';
		}

		$this->load->language('common/header');
		$data['og_url'] = (isset($this->request->server['HTTPS']) ? HTTPS_SERVER : HTTP_SERVER) . substr($this->request->server['REQUEST_URI'], 1, (strlen($this->request->server['REQUEST_URI'])-1));
		$data['og_image'] = $this->document->getOgImage();
		$data['hreflang_url'] = substr($this->request->server['REQUEST_URI'], 1, (strlen($this->request->server['REQUEST_URI'])-1));
	
		$data['text_home'] = $this->language->get('text_home');

		// Wishlist
		if ($this->customer->isLogged()) {
			$this->load->model('account/wishlist');

			$data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), $this->model_account_wishlist->getTotalWishlist());
		} else {
			$data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0));
		}

		$data['text_shopping_cart'] = $this->language->get('text_shopping_cart');
		$data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));

		$data['text_account'] = $this->language->get('text_account');
		$data['text_register'] = $this->language->get('text_register');
		$data['text_login'] = $this->language->get('text_login');
		$data['text_order'] = $this->language->get('text_order');
		$data['text_transaction'] = $this->language->get('text_transaction');
		$data['text_download'] = $this->language->get('text_download');
		$data['text_logout'] = $this->language->get('text_logout');
		$data['text_checkout'] = $this->language->get('text_checkout');
		$data['text_page'] = $this->language->get('text_page');
		$data['text_category'] = $this->language->get('text_category');
		$data['text_all'] = $this->language->get('text_all');

		$data['home'] = $this->url->link('common/home');
		$data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL');
		$data['logged'] = $this->customer->isLogged();
		$data['account'] = $this->url->link('account/account', '', 'SSL');
		$data['register'] = $this->url->link('account/register', '', 'SSL');
		$data['login'] = $this->url->link('account/login', '', 'SSL');
		$data['order'] = $this->url->link('account/order', '', 'SSL');
		$data['transaction'] = $this->url->link('account/transaction', '', 'SSL');
		$data['download'] = $this->url->link('account/download', '', 'SSL');
		$data['logout'] = $this->url->link('account/logout', '', 'SSL');
		$data['shopping_cart'] = $this->url->link('checkout/cart');
		$data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');
		$data['contact'] = $this->url->link('information/contact');
		$data['telephone'] = $this->config->get('config_telephone');

		$status = true;

		if (isset($this->request->server['HTTP_USER_AGENT'])) {
			$robots = explode("\n", str_replace(array("\r\n", "\r"), "\n", trim($this->config->get('config_robots'))));

			foreach ($robots as $robot) {
				if ($robot && strpos($this->request->server['HTTP_USER_AGENT'], trim($robot)) !== false) {
					$status = false;

					break;
				}
			}
		}

		// Menu
		$this->load->model('catalog/category');

		$this->load->model('catalog/product');

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

		$categories = $this->model_catalog_category->getCategories(0);

		foreach ($categories as $category) {
			if ($category['top']) {
				// Level 2
				$children_data = array();

				$children = $this->model_catalog_category->getCategories($category['category_id']);

				foreach ($children as $child) {
					$filter_data = array(
						'filter_category_id'  => $child['category_id'],
						'filter_sub_category' => true
					);

					$children_data[] = array(
						'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
						'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
					);
				}

				// Level 1
				$data['categories'][] = array(
					'name'     => $category['name'],
					'children' => $children_data,
					'column'   => $category['column'] ? $category['column'] : 1,
					'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
				);
			}
		}

		$data['language'] = $this->load->controller('common/language');
		$data['is_home'] = (!isset($this->request->get['route']) || $this->request->get['route'] == 'common/home') ? true : false;
		$data['currency'] = $this->load->controller('common/currency');
		$data['search'] = $this->load->controller('common/search');
		$data['cart'] = $this->load->controller('common/cart');

		// For page specific css
		if (isset($this->request->get['route'])) {
			if (isset($this->request->get['product_id'])) {
				$class = '-' . $this->request->get['product_id'];
			} elseif (isset($this->request->get['path'])) {
				$class = '-' . $this->request->get['path'];
			} elseif (isset($this->request->get['manufacturer_id'])) {
				$class = '-' . $this->request->get['manufacturer_id'];
			} else {
				$class = '';
			}

			$data['class'] = str_replace('/', '-', $this->request->get['route']) . $class;
		} else {
			$data['class'] = 'common-home';
		}

		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
			return $this->load->view($this->config->get('config_template') . '/template/common/header.tpl', $data);
		} else {
			return $this->load->view('default/template/common/header.tpl', $data);
		}
	}
}

 

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


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

я правильно ищу? если вывод этого сайдера в template/common/header.php, то и в controller/common/header.php нужно смотреть?

 неправильно

слайдер, это скорей всего модуль

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

system/storage/modification/catalog/controller/common/header.php

есть такой файл?

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

6 минут назад, dixel сказал:

выше его и скинул

там нет формирования массива $manufacturers

следовательно, в шаблоне header.tpl  не может выводиться данный массив, потому как из контроллера он не передается

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

4 минуты назад, fanatic сказал:

там нет формирования массива $manufacturers

следовательно, в шаблоне header.tpl  не может выводиться данный массив, потому как из контроллера он не передается

вот изначальный код (ДО перевода его в список)

 

  <li class="menu_brands dropdown">

                              <a class="arrow" href="/brands"><?php echo $text_brand; ?></a>      

                              <div class="dropdown-menu">

                                 <?php if ($manufacturers) { ?>    

                                 <div class="container">

                                    <div class="owl-carousel brand_carousel">

                                       <?php $counter = 0; foreach ($manufacturers as $manufacturer) { ?>

                                       <?php if ($manufacturer['image']) { ?>

                                       <div class="col-lg-2 col-md-2 col-sm-3 col-xs-6">

                                          <a href="<?php echo $manufacturer['href']; ?>"><img src="<?php echo $manufacturer['image']; ?>" title="<?php echo $manufacturer['name']; ?>" alt="<?php echo $manufacturer['name']; ?>" /></a>

                                       </div>

                                       <?php } ?>

                                       <?php $counter++; } ?>

                                    </div>

                                 </div>

                                 <?php } ?>

                              </div>

 

а ниже еще есть скрипт

 

  $(document).ready(function() {

               $(".brand_carousel").owlCarousel({

               itemsCustom : [[320, 2],[600, 4],[768, 5],[992, 6],[1170, 7]],											   

               navigation : true,

               navigationText: ['<i class="fa fa-angle-left"></i>', '<i class="fa fa-angle-right"></i>'],

               scrollPerPage : true,

               pagination: false

               });

               });

 

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


5 минут назад, fanatic сказал:

следовательно, в шаблоне header.tpl  не может выводиться данный массив, потому как из контроллера он не передается

может, если $manufacturers формируется в самом tpl шаблоне))

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

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

Нет, тут в шаблоне ничего нет, он точно из контроллера берёт.

А вот в контроллере который вы скинули выше производители два раза формируются. 

Надо убрать один раз 

Спойлер

$results = $this->model_catalog_manufacturer->getManufacturers();
        foreach ($results as $result) {    
            if ($result['image']) {
                        $image = $result['image'];
                    } else {
                        $image = 'no_image.jpg';
                    }            
            $data['manufacturers'][] = array(
                'name' => $result['name'],
                'image' => $this->model_tool_image->resize($image, 150, 50),
                'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id'])
            );
        }

Ну а точней наверное найти модификатор, который это изменение вносит и поправить.

У вас там многие переменные назначаются 2 раза.

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

7 минут назад, iglin сказал:

Ну а точней наверное найти модификатор

вот блин, еще же есть модификаторы

 

 <file path="catalog/controller/common/header.php">
      <operation>
         <search>
		 <![CDATA[$this->load->language('common/header');]]>
		 </search>
         <add position="after">
		 <![CDATA[$this->load->language('theme');
		 $data['quicksignup'] = $this->load->controller('common/quicksignup');
         $data['callme'] = $this->load->controller('common/callme');
		 $data['content_slide'] = $this->load->controller('common/content_slide');
		 $data['text_search_theme'] = $this->language->get('text_search_theme');
         $data['regim'] = $this->language->get('text_regim');
		 $data['heading_title_callme'] = $this->language->get('heading_title_callme');		 
		 $data['text_brand'] = $this->language->get('text_brand');
		 $data['name_customer'] = $this->customer->getFirstName();
		 $data['manufacturer'] = $this->url->link('product/manufacturer');
		 $data['text_special'] = $this->language->get('text_special');
		 $data['special'] = $this->url->link('product/special');
		 $this->load->model('catalog/manufacturer');
		$this->load->model('tool/image');
		$results = $this->model_catalog_manufacturer->getManufacturers();
		foreach ($results as $result) {	
			if ($result['image']) {
						$image = $result['image'];
					} else {
						$image = 'no_image.jpg';
					}			
			$data['manufacturers'][] = array(
				'name' => $result['name'],
				'image' => $this->model_tool_image->resize($image, 150, 50),
				'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id'])
			);
		}]]>
		</add>
      </operation>

Нашел этот кусок кода. А что именно нужно убрать из него?

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


13 минут назад, iglin сказал:

может, если $manufacturers формируется в самом tpl шаблоне))

это да, но это не по феншую,  поэтому я проигнорировал этом момент

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

1 минуту назад, dixel сказал:

А что именно нужно убрать из него?

Ничего. Нужно разбираться что у вас строчку $this->load->language('common/header'); дублирует. Если эта строчка будет один раз, то и модификатор один раз применится.

 

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

6 минут назад, iglin сказал:

Нужно разбираться что у вас строчку $this->load->language('common/header'); дублирует.

или <search index="0"> 

но, это костыль

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

29 минут назад, dixel сказал:

на них полсайта работает

ну тогда не удивительно, что код дублируется

 

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

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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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