Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


dixel
 Погделиться

Рекомендованные сообещёния

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

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

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

Вот код:

 

 <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>

 

Ссылка на комменирий
Погделиться на других сайих


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 нужно смотреть?

 неправильно

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

Ссылка на комменирий
Погделиться на других сайих

модифицированный header.php есть?

 

Ссылка на комменирий
Погделиться на других сайих

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

модифицированный header.php есть?

 

header.php

Изменено пользователем dixel
Ссылка на комменирий
Погделиться на других сайих


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"> 

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

Ссылка на комменирий
Погделиться на других сайих

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

<search index="0"> 

спасипотому что, срилиило.

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

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

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

Ссылка на комменирий
Погделиться на других сайих


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

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

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

 

Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.