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

Поиск товаров

  • Posts: 4
  • Thank you received: 0
2 years 2 months ago #273076

Всем привет!
Только поставил хикашоп, пока все норм. Но, хочу сделать поиск товаров. Сделал поиск через стандартный модуль джумла - работает.
Вот только выводить просто список товаров, а хотелось бы чтоб выводил товары как в категории (рамка, картинка, стоимость, название, ...), как это сделать не пойму. Помогите кто делал такое.

Please Log in or Create an account to join the conversation.

  • Posts: 2190
  • Thank you received: 301
  • Hikashop Multisite
2 years 2 months ago #273077

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

переопределять надо вот этот файл


Я не явлюсь официальной службой поддержки!
Я здесь добровольно!

Хочешь получить купон на скидку Hikashop? Спроси меня как!
Attachments:
Last edit: 2 years 2 months ago by progreccor.
The following user(s) said Thank You: ipugach

Please Log in or Create an account to join the conversation.

  • Posts: 4
  • Thank you received: 0
2 years 2 months ago #273224

Спасибо! Разобрался, получается.
Но есть одна заминка, не могу получить цену товара.
print_r($result); выводит только это:

stdClass Object (
[id] => 15
[product_name] => Паровой котел "Е-1.6-0.9" ГМН
[product_alias] => parovoj-kotel-e-1-6-0-9
[product_canonical] =>
[created] => 27 июня 2017
[product_description] => Технические характеристики паровых водотрубных котлов
[browsernav] => 2
[product_type] => main
[product_parent_id] => 0
[category_id] => 13
[alias] => parovoj-kotel-e-1-6-0-9
[title] => Паровой котел "Е-1.6-0.9" ГМН
[text] => Технические характеристики паровых водотрубных котлов Наименование показателя Е-1,6-0,9 ГМН газ Е-1,6-0,9 ГМН мазут Рабочее давление пара не выходе, МПа (кгс/см²), не менее 0,8 (8,0) ...
[href] => https://shop/product/15-parovoj-kotel-e-1-6-0-9.html
[section] => Товар
[image] => /images/com_hikashop/upload/thumbnails/150x150f/e16.png
[count] => 10 )

а здесь нет цены. Подскажите, как получить цену?

Please Log in or Create an account to join the conversation.

  • Posts: 2190
  • Thank you received: 301
  • Hikashop Multisite
2 years 2 months ago #273232

для того надо получить полный объект товара по его ID.
по аналогии с кодом который есть в выводе шаблона товара.
Много полезной информации есть вот здесь
www.hikashop.com/support/documentation/6...r-documentation.html


Я не явлюсь официальной службой поддержки!
Я здесь добровольно!

Хочешь получить купон на скидку Hikashop? Спроси меня как!

Please Log in or Create an account to join the conversation.

  • Posts: 4
  • Thank you received: 0
2 years 2 months ago #273279

progreccor wrote: для того надо получить полный объект товара по его ID.
по аналогии с кодом который есть в выводе шаблона товара.

А вот тут поподробней, и если можно пример. Я ведь только начинаю.
За инфу отдельное спасибо, буду разбираться.

Please Log in or Create an account to join the conversation.

  • Posts: 13
  • Thank you received: 0
3 months 1 week ago #307460

Подниму тему, т.к. мне кажется, вопрос похожий.
Я получаю товар следующим образом:
$productClass = hikashop_get('class.product');
$product_id = 1;
$product=$productClass->get($product_id);

Но в массиве нет сведений об изображениях.
А они нужны.
Подскажите, пожалуйста: как их получить?

Please Log in or Create an account to join the conversation.

  • Posts: 1053
  • Thank you received: 100
  • Hikashop Business
3 months 1 week ago #307465

Paprobuiti tak:

<?php

   $imageHelper = hikashop_get('helper.image');

    $width = (int)$this->config->get('cart_thumbnail_x', 100);

	$height = (int)$this->config->get('cart_thumbnail_y', 145);

	$image_options = array(

		'default' => true,

		'forcesize' => $this->config->get('image_force_size', true),

		'scale' => $this->config->get('image_scale_mode','inside')

	);

	$image_path = (!empty($product->images) ? @$product->images[0]->file_path : '');

	$img = $imageHelper->getThumbnail($image_path, array('width' => $width, 'height' => $height), $image_options);

	if($img->success) {

	  echo '<img class="img-responsive" title="'.$this->escape(@$product->images[0]->file_description).'" alt="'.$this->escape(@$product->images[0]->file_name).'" src="'.$img->url.'"/>';

  }?>

Please Log in or Create an account to join the conversation.

  • Posts: 13
  • Thank you received: 0
3 months 1 week ago #307468

Выводит картинку, которая для товаров, у которых нет изображений.
Меня беспокоит то, что в объекте $product после выполнения моего запроса у меня нет [images].

Please Log in or Create an account to join the conversation.

  • Posts: 1053
  • Thank you received: 100
  • Hikashop Business
3 months 1 week ago #307471

Hmm, naverno nado delat "load full product" no nepatskazu kak eto delaetsa patomusta nepomniu....

Idintsvinoje sto prislo v golavu tak vot eto:

<?php
$db = JFactory::getDbo();
$sql = 'SELECT file_path FROM '.hikashop_table('file').' WHERE file_type="product" AND file_ref_id='.$product_id;
$db->setQuery($sql);
$path = $db->loadObjectList();
if($path)
$img = $this->imageHelper->getThumbnail(@$path[0]->file_path, array(45, 65), array('default' => true, 'forcesize' => true,  'scale' => 'outside'));
if($img->success) {
	  echo '<img class="img-responsive" title="'.$this->escape(@$path[0]->file_description).'" alt="'.$this->escape(@$path[0]->file_name).'" src="'.$img->url.'"/>';
}?>

Dalzno rabotat!

The following user(s) said Thank You: abr-ya

Please Log in or Create an account to join the conversation.

  • Posts: 13
  • Thank you received: 0
3 months 1 week ago #307475

kyratn, cпасибо!
Похоже зря я в тему с поиском влез со своим вопросом!
Сначала мне показалось, что он похож.
На самом деле я на странице товара пытался вывести связанные товары, но с картинками. А в объекте товара картинок нет. Хотел получить картинки товара по ID товара, но и это не дало результата. Тогда начал искать, и нашел эту тему...

Пойду ещё раз изучать форум с точки зрения структуры и того, где задавать новичковые, но не самые популярные, судя по результатам поиска, вопросы!

Last edit: 3 months 1 week ago by abr-ya.

Please Log in or Create an account to join the conversation.

  • Posts: 2190
  • Thank you received: 301
  • Hikashop Multisite
3 months 1 week ago #307489

1. что касается поиска - в хикашоп используется фильтр в качестве текстового поиска.
в этом случае выводятся карточки товара. Традиционный поиск джумла обычно не используется.
2. для получения изображений используйте средства отладки php чтобы увидеть весь объект


Я не явлюсь официальной службой поддержки!
Я здесь добровольно!

Хочешь получить купон на скидку Hikashop? Спроси меня как!

Please Log in or Create an account to join the conversation.

  • Posts: 13
  • Thank you received: 0
3 months 1 week ago #307502

progreccor, спасибо за ответ!
Кажется, мой вопрос все-таки не про поиск, но по второй части.
Я вывожу на страницу весь объект товара, но там нет изображений:
$productClass = hikashop_get('class.product');
$product_id = 1;
$product = $productClass->get($product_id);
print_r($product);

Подскажите, что я делаю не так?

UPD:
Разобрался немного с прямыми обращениями к БД.
Получаю массив изображений следующим образом:
$db =& JFactory::getDBO();
if (!$db->connected()) {
echo "Нет соединения с сервером баз данных";
jexit();
} else {
$sql = "SELECT * FROM pre_hikashop_file WHERE file_ref_id = '1'";
$db->setQuery($sql);
$data_row = $db->loadAssocList();
print_r($data_row);
}

В результате получаю массив, описывающий изображения товара. Насколько я понимаю, аналогично можно и с категорией поступить.
Но интересно: может задача решается штатными средствами?

Last edit: 3 months 1 week ago by abr-ya.

Please Log in or Create an account to join the conversation.

  • Posts: 2190
  • Thank you received: 301
  • Hikashop Multisite
3 months 1 week ago #307504

Я не явлюсь официальной службой поддержки!
Я здесь добровольно!

Хочешь получить купон на скидку Hikashop? Спроси меня как!

Please Log in or Create an account to join the conversation.

  • Posts: 2190
  • Thank you received: 301
  • Hikashop Multisite
3 months 1 week ago #307505

вот переопределение вывода поиска вместе с изображениями для хика

<?php
/**
 * @package   Warp Theme Framework
 * @author    YOOtheme http://www.yootheme.com
 * @copyright Copyright (C) YOOtheme GmbH
 * @license   http://www.gnu.org/licenses/gpl.html GNU/GPL
 */

// no direct access
defined('_JEXEC') or die;
echo ("<div class='tm-search-results'>");
foreach ($this->results as $result) {

	if(!empty($result->category_id)) {
		$productClass = hikashop_get('class.category');
		$category = $productClass->get($result->category_id);
		$r=(' "'.$category->category_name).'"';
	} else 	{
		if ($result->section) $r= $this->escape($result->section);
	}


	$args = array(
		'permalink' => '',
		'image' => ($result->image) ? $result->image : '',
		'image_alignment' => 'right',
		'image_alt' => '',
		'image_caption' => '',
		'title' => $result->title,
		'title_link' => '1',
		'author' => '',
		'author_url' => '',
		'date' => '',
		'datetime' => '',
		'category' => ($r) ? $this->escape($r) : '',
		'category_url' => '',
		'hook_aftertitle' => '',
		'hook_beforearticle' => '',
		'hook_afterarticle' => '',
		'article' => $result->text,
		'tags' => '',
		'edit' => '',
		'url' => ($result->href) ? JRoute::_($result->href) : '',
		'more' => 'ПЕРЕЙТИ',
		'previous' => '',
		'next' => ''
	);

	// Render template
	echo ("<hr />".$warp['template']->render('article', $args));

}
echo ("</div>");
echo $this->pagination->getPagesLinks();


Я не явлюсь официальной службой поддержки!
Я здесь добровольно!

Хочешь получить купон на скидку Hikashop? Спроси меня как!
Last edit: 3 months 1 week ago by progreccor.

Please Log in or Create an account to join the conversation.

  • Posts: 1053
  • Thank you received: 100
  • Hikashop Business
3 months 1 week ago #307534

abr-ya wrote: $product = $productClass->get($product_id);


Eto:
$product = $productClass->get($product_id);

Pamineitsi na eto:
$product = $productClass->getProduct($product_id);

I budet rabotat.

Please Log in or Create an account to join the conversation.

  • Posts: 13
  • Thank you received: 0
3 months 1 week ago #307552

progreccor wrote: здесь читали?
www.hikashop.com/support/documentation/6...r-documentation.html

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

Last edit: 3 months 1 week ago by abr-ya.

Please Log in or Create an account to join the conversation.

  • Posts: 13
  • Thank you received: 0
3 months 1 week ago #307553

kyratn wrote: Eto:
Pamineitsi na eto:
I budet rabotat.


Спасибо большое!!! Именно то, что надо!!!

Please Log in or Create an account to join the conversation.

  • Posts: 13
  • Thank you received: 0
2 months 3 weeks ago #308216

И снова у меня вопрос в продолжение темы.
Изображения есть - отлично!
А что сделать, чтобы работать с их превьюшками, примерно так:
$img = $this->image->getThumbnail(
$item->file_path,
array('width' => $this->image->main_thumbnail_x, 'height' => $this->image->main_thumbnail_y),
array('default' => true,'forcesize'=>$this->config->get('image_force_size',true),'scale'=>$this->config->get('image_scale_mode','inside'))
);
$img = $img->url;
?

Please Log in or Create an account to join the conversation.

Moderators: progreccor
Time to create page: 0.103 seconds
Powered by Kunena Forum