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

Иконки всех категорий и под категорий на главной.


Recommended Posts

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

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

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


А я не решил, я пробовал, вот смотрите если добавить модуль в стене и выбрать rootcategory то отображаются только родительские категории, а под категории не отображаются. Я сперва подумал надо добавить второй модуль и выбрать у него нужную категорию чтобы отображать под категории, но тогда отображаются две стены с под категориями, то есть выбор категории как главной применяется ко всем модулям. А мне надо чтобы на главной иконками отображались все категории включая под категории 2 уровня и 3 уровней. но не выходит. Может в коде надо где подправить.

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


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

в демо http://modules.ocshop.biz/ на главной выводятся картинки родительских категорий и ссылки на подкатегории

вы хотите их разгруппировать ? и вывести все сплошным списком картинка+ссылка ?

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

Я хочу вывести их таблицей 5 категорий по ширине ну а дальше вниз по 5 до последней без группировки, как на сайте ссылку на который дал, 

Х Х Х Х Х

Х Х Х Х Х

Х Х Х Х Х

Х Х

Вот так.

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


ясно ну так нельзя да и делать такое тоже не буду так как нехочу быть причастным к тому что у покупателей голова слоается :-) вы уж простите за сарказм.

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

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

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


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

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

Если бы я был php программистом то давно бы реализовал, и не искал подобный модуль. Жаль буду ждать может все таки кто-то видел подобное решение.

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


посмотрите тут на форуме есть какой то еще модуль с картинками категорий для главной я особо в него не всматривался но может он вам и подойдет

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

Вот сделал своими силами, хотя и на php никогда не программировал но уже 15 лет как программирую на Delphi.

И хотя у меня на решение проблемы ушло 1 часа. Думаю у любого программиста который уже что то писал под OpenCart или на php ушло бы минут 10 обидно что на форуме OpenCart не осталось людей которые бы могли помочь другим.

Поэтому так как я никогда не занимался коммерческим программированием и даже иногда презираю людей которые написали 200 строчек и еще просят за это деньги, в топку их гори они синем пламенем.
И так вот кейк если кому то еще нужно отобразить все категории с под категориями на главной.

И так берем файл /catalog/controller/module/categoryhome.php

Перед функцией 

protected function getCategories($parent_id, $current_path = '') {

Вставляем.

	protected function getAllCategories($parent_id, $current_path = '') {
		$categoryhome = array();
		$category_id = array_shift($this->path);
		$this->data['categories'] = array();
		$categories = $this->model_catalog_category->getCategories($parent_id); //Получаем список всех родительских категорий.
		$i=0; //Обнуляем счетчик.
		foreach ($categories as $category) { //Производим перебор всех найденных категорий
			$children = $this->model_catalog_category->getCategories($category['category_id']);//Получаем список всех подкатегорий.
			
			if (!$current_path) 
			{
				$new_path = $category['category_id'];
			} 
			else 
			{
				$new_path = $current_path . '_' . $category['category_id'];
			}
			if ($this->category_id == $category['category_id']) {
			$categoryhome[$i]['href'] = $this->url->link('product/category', 'path=' . $new_path);
			
			} else {
			$categoryhome[$i]['href'] =  $this->url->link('product/category', 'path=' . $new_path);
			}
			if ($category['image']) {
						$image = $category['image'];
					} else {
						$image = 'no_image.jpg';
					}
			$categoryhome[$i]['thumb'] = $this->model_tool_image->resize($image, 110, 110);
			$categoryhome[$i]['name'] = $category['name'];
			
        $i++;
			
			foreach ($children as $child) {//Перебираем все подкатегории.
			if (!$current_path) 
			{
				$new_path = $child['category_id'];
			} 
			else 
			{
				$new_path = $current_path . '_' . $child['category_id'];
			}
			if ($this->category_id == $child['category_id']) {
			$categoryhome[$i]['href'] = $this->url->link('product/category', 'path=' . $new_path);
			
			} else {
			$categoryhome[$i]['href'] =  $this->url->link('product/category', 'path=' . $new_path);
			}
			if ($child['image']) {
						$image = $child['image'];
					} else {
						$image = 'no_image.jpg';
					}
			$categoryhome[$i]['thumb'] = $this->model_tool_image->resize($image, 110, 110);
			$categoryhome[$i]['name'] = $child['name'];
			
        $i++;
		}

	}
			return $categoryhome;
}	

а строку

		$this->data['categoryhome'] = $this->getCategories($this->config->get('categoryhome_category'));

Заменяем 

		$this->data['categoryhome'] = $this->getAllCategories(0);

Вот и все.
После данного кейка нет смысла в настройках модуля указывать главную категорию, так как в данном случае она не нужна, настройки из админ панели выбора главной категории можно убрать подправив шаблон admin\view\template\module\categoryhome.tpl

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

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


Для тех кто хочет чтобы категории отображались в 6 столбцов вот кейк.

Открываем файл catalog\view\theme\default\template\module\categoryhome.tpl

И заменяем содержимое этим.

<div class="middle">	<div class="align"><div class="blocks podrazdel"><?php foreach ($categoryhome as $categoryhome) { ?>		<span class="block">		<div class="width">						<div class="img">				<a href="<?php echo $categoryhome['href']; ?>"><img src="<?php echo $categoryhome['thumb']; ?>" alt="<?php echo $categoryhome['name']; ?>" title="<?php echo $categoryhome['name']; ?>"></a>			</div>						<div class="tovar_info">				<a href="<?php echo $categoryhome['href']; ?>"><?php echo $categoryhome['name']; ?></a>			</div>			<div class="clear"></div>		</div>	</span><?php } ?></div></div></div>

В стилях добавляем вот это.

.block {	text-decoration: none;	display: -moz-inline-box;	display: inline-block;	vertical-align: top;	text-align: left;	padding: 15px 0 0px 10px;}.block .width {	width: 180px;	height: 350px;	float: left;	position: relative;	background: url('i/tovar_bg.png') no-repeat;	overflow: hidden;}.block.active .width {	background: url('i/tovar_bg.png') 0px -350px;}.middle {	padding: 20px 40px 0px 40px;	text-align: center}.middle .align {	margin: 0px auto;	text-align: left;	width: 920px;	position: relative;}.middle .basket_align {	 text-align: left;	  position: relative;}/* MAINPAGE STYLE */.middle .main_img {	margin: 0px auto 40px auto;	width: 900px;}.middle .spisok {	background: url('i/slide_bg.png') no-repeat;	width: 250px;	height: 400px;	float: left;	overflow: hidden;	position: relative;	z-index: 5;	text-align: left;}.block {	text-decoration: none;	display: -moz-inline-box;	display: inline-block;	vertical-align: top;	text-align: left;	padding: 15px 0 0px 10px;}.block .width {	width: 180px;	height: 350px;	float: left;	position: relative;	background: url('i/tovar_bg.png') no-repeat;	overflow: hidden;}.block.active .width {	background: url('i/tovar_bg.png') 0px -350px;}.blocks.podrazdel {	margin: -15px 0 0px -30px;	text-align: center;}.blocks.podrazdel .block {	padding: 15px 0 20px 30px;}.blocks.podrazdel .block .width {	width: 120px;	height: auto;	background: none;}.blocks.podrazdel .block .img { 	text-align: center;}.blocks.podrazdel .block .tovar_info {  	font-size: 12px !important;  	font-weight: bold;  	color: #666;  	height: auto;	text-align: center;	padding: 0px !important;}

В результате получаем вот это.

 

Магазин посуды в Москве.png

Теперь можно смело переименовывать модуль под Стена Категорий и под категорий 0.1.2 и продавать за 450 рублей  :-D

post-674917-0-90914700-1391361590_thumb.png

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


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

			if (!$current_path) 			{				$new_path = $category['category_id'];			} 			else 			{				$new_path = $current_path . '_' . $category['category_id'];			}			if ($this->category_id == $category['category_id']) {			$categoryhome[$i]['href'] = $this->url->link('product/category', 'path=' . $new_path);						} else {			$categoryhome[$i]['href'] =  $this->url->link('product/category', 'path=' . $new_path);			}			if ($category['image']) {						$image = $category['image'];					} else {						$image = 'no_image.jpg';					}			$categoryhome[$i]['thumb'] = $this->model_tool_image->resize($image, 110, 110);			$categoryhome[$i]['name'] = $category['name'];			        $i++;

А еще если есть желание то в админку можно добавить чекбокс с надписью "Отображать Главные категории" и тогда этот кусок можно поставить под if и можно будет выбирать будет время посмотрю что там да как и сделаю.

Если надо изменить размер миниатюр то править нужно здесь 

resize($image, 110, 110);

110, 110 заменяем на нужный размер миниатюр.

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


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

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


  • 2 months later...

Большое, спасибо. Очень полезная вещь. Заменил в category.tpl блок отображающий подкатегории на этот код

<?php if ($categories) { ?>
<div class="middle">
<div class="align">
<div class="blocks podrazdel">
<?php foreach ($categories as $category) { ?>
<span class="block">
<div class="width">
<div class="img">
<a href="<?php echo $category['href']; ?>"><img src="<?php echo $category['thumb']; ?>" title="<?php echo $category['name']; ?>" alt="<?php echo $category['name']; ?>" /></a>
</div>
<div class="tovar_info">
<a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
</div>
<div class="clear"></div>
</div>
</span>
<?php } ?>
</div>
</div>
</div>
<?php } ?>

Получились красивые подкатегории в виде картинок.

А можно ли в карточке товара прописать отображение категорий и подкатегорий? Прописал код из примера

  • <div class="middle">
  •     <div class="align">
  • <div class="blocks podrazdel">
  • <?php foreach ($categoryhome as $categoryhome) { ?>
  •         <span class="block">
  •         <div class="width">
  •                         <div class="img">
  •                 <a href="<?php echo $categoryhome['href']; ?>"><img src="<?php echo $categoryhome['thumb']; ?>" alt="<?php echo $categoryhome['name']; ?>" title="<?php echo $categoryhome['name']; ?>"></a>
  •             </div>
  •                         <div class="tovar_info">
  •                 <a href="<?php echo $categoryhome['href']; ?>"><?php echo $categoryhome['name']; ?></a>
  •             </div>
  •             <div class="clear"></div>
  •         </div>
  •     </span>
  • <?php } ?>
  • </div>
  • </div>
  • </div>

Но появляются ошибки. Как правильно прописать переменую $categoryhome в product.php ?

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


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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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