Перейти к содержимому


Фотография
- - - - -

Товар как часть набора

наборы сопутствующие товары

Лучший Ответ SmetDenis , 02 November 2013 - 06:42

Разобрался.

Не буду вдаваться в подробности, что именно нужно изменить в запросе.
просто приложу результат. Сейчас Скрипт умеет подбирать только по одному полю Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 54

#31 Save Tibet

Save Tibet

Отправлено 22 October 2013 - 17:45

если предмет у Вас может находится в нескольких наборах, то Related Items (Auto), скорее всего, не подойдут.

 

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

 

Алексей Рузов сказал(а) 22 Окт 2013 - 14:55: Как сделать, чтобы выборка шла только по полю "Код набора"?   Только переписывать элемент Related Items (Auto) или писать на его основе свой.

 

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


  • 0

#32 Sliapy

Sliapy

Отправлено 22 October 2013 - 17:48

Уточню у разработчиков принцип работы.


  • 0
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#33 SmetDenis

SmetDenis

Отправлено 23 October 2013 - 08:52

Как я понял, вопрос в том, может ли Realted Items Auto связывать материалы только по одному полю.
Из коробки такого нет, но в принципе не сложно доработать этот элемент.

Все выборки происходят в специальной модели
\media\zoo\applications\jbuniversal\framework\models\jbmodel.related.php

Метод _getSearchData() вернет список полей, которые будут сравниваться.
Можно насильно из него вернуть массив, который будет содержать определенный набор полей.
Например так
    protected function _getSearchData(Item $item)
    {
        $result = array(
            '54356-234234-34-324-234-324-2' // ELEMENT_ID поля
        );

        return $result;
    }
Лимит релевантности - это грубо говоря минимальное кол-во полей, которое должно совпасть между материалами, чтобы они считались связанными. В нашем случае нужно поставить его минимальным, т.к поле всего одно.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#34 Save Tibet

Save Tibet

Отправлено 23 October 2013 - 10:59

как узнать этот ELEMENT_ID?


  • 0

#35 Cheren-dow

Cheren-dow

Отправлено 23 October 2013 - 11:01

046e7c_200x0.png

В редактировании элементов


  • 0
Изображение
 

#36 Save Tibet

Save Tibet

Отправлено 23 October 2013 - 11:05

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


  • 0

#37 SmetDenis

SmetDenis

Отправлено 24 October 2013 - 06:36

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

Перечислите все необходимые.

Либо можно ворачивать нужный набор в зависимости от типа материала
    protected function _getSearchData(Item $item)
    {
        if ($item->getType()->id == 'product') {
            $result = array(
                '54356-234234-34-324-234-324-2' // ELEMENT_ID поля
            );
        } else if ($item->getType()->id == 'realtor') {
            $result = array(
                '54356-234234-34-324-234-324-2' // ELEMENT_ID поля
            );
        }
 
        return $result;
    }

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#38 Save Tibet

Save Tibet

Отправлено 29 October 2013 - 13:29

Правильно ли я это сделал?

 protected function _getSearchData(Item $item)
    {
        if ($item->getType()->id == '1-braslety') {
            $result = array(
                'd2a4f16b-4b15-4bb1-819c-72ef8cba22df' // ELEMENT_ID поля
            );
        } else if ($item->getType()->id == '1-kolca') {
            $result = array(
                '56262e05-a515-4a62-be4b-f4db8fcf2fc9' // ELEMENT_ID поля
            );
        } else if ($item->getType()->id == '1-kulony') {
            $result = array(
                '14c64c70-8f32-4fe0-b22b-c0ee9723e456' // ELEMENT_ID поля
            );
        } else if ($item->getType()->id == '1-sergi') {
            $result = array(
                'f6d551c6-259f-4eff-9467-7041a84710fd' // ELEMENT_ID поля
            );
		} else if ($item->getType()->id == 'krestiki-i-ladanki') {
            $result = array(
                '8ad969d9-33e9-4c59-bd3f-5afc88753e3c' // ELEMENT_ID поля
            );

        return $result;
    }


видимо, не правильно, потому что появилась ошибка:

Parse error: syntax error, unexpected $end, expecting T_FUNCTION in /home/u6128/public_html/media/zoo/applications/jbuniversal/framework/models/jbmodel.related.php on line 263


  • 0

#39 fiction13

fiction13

Отправлено 29 October 2013 - 13:31

Последний elseif не закрыт.


  • 0

#40 Save Tibet

Save Tibet

Отправлено 29 October 2013 - 13:39

можете дать исправленный вариант? я не силен в синтаксисе пхп.


  • 0




Click to return to top of page in style!