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


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

поиск в админ. панели по элементу цены -> артикул


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

#1 nowell

nowell

Отправлено 15 June 2016 - 08:24

Необходим поиск в админ. панели по элементу цены -> артикул
как реализовать?

  • 0

#2 Cheren-dow

Cheren-dow

Отправлено 15 June 2016 - 13:35

nowell, готового решения нет. Для этой задачи нужны знания PHP и API JBZoo/Zoo - что бы сделать хаки в файлах Zoo/JBZoo. Вам должны помочь этот и еще один топик


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

#3 nowell

nowell

Отправлено 20 June 2016 - 09:32

nowell, готового решения нет. Для этой задачи нужны знания PHP и API JBZoo/Zoo - что бы сделать хаки в файлах Zoo/JBZoo. Вам должны помочь этот и еще один топик

 

Использовал этот вариант, для поиска по всем полям в админке!:
  • if ($search) {
  •  
  • $searchData = explode(' ', $search);
  • $searchWhere = array();
  •  
  • $from .= ' LEFT JOIN ' . ZOO_TABLE_SEARCH . ' AS s ON a.id = s.item_id';
  •  
  • foreach ($searchData as $searchWord) {
  •  
  • $searchWord = JString::trim($searchWord);
  •  
  • $searchWhere[] = implode(' OR ', array(
  • // 'LOWER(a.name) REGEXP ' . $this->db->Quote('^' . $this->db->escape($searchWord, true) . '', false),
  • // 'LOWER(a.name) REGEXP ' . $this->db->Quote('' . $this->db->escape($searchWord, true) . '$', false),
  • // 'LOWER(a.name) REGEXP ' . $this->db->Quote(' ' . $this->db->escape($searchWord, true) . '', false),
  • // 'LOWER(a.name) REGEXP ' . $this->db->Quote('' . $this->db->escape($searchWord, true) . ' ', false),
  • 'LOWER(a.name) REGEXP ' . $this->db->Quote('[[:<:]]' . $this->db->escape($searchWord, true) . '[[:>:]]', false)
  •  
  • ));
  • }
  •  
  • $where[] = '((' . implode(') AND (', $searchWhere) . '))';
  • }
Ищет по всем полям которые я создал, а по артикулу цены (_sku) ничего не ищет.
Что можно сделать?

  • 0

#4 CB9TOIIIA

CB9TOIIIA

Отправлено 20 June 2016 - 21:03

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


  • 0

#5 mkm-nn

mkm-nn

Отправлено 21 June 2016 - 15:10

Извиняюсь что влез, но тему артикул, и я подымал

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

Просто обратите внимание на тему артикул, когда время найдется.

С уважением Михаил.


  • 0

#6 CB9TOIIIA

CB9TOIIIA

Отправлено 21 June 2016 - 15:42

Извиняюсь что влез, но тему артикул, и я подымал

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

Просто обратите внимание на тему артикул, когда время найдется.

С уважением Михаил.

 

У них товар Вибратор 200 наименований, но чтобы понять (и простить) какой нужен у каждого   был артикул набираем артикул и о опля находим какой надо.

Также и с фаллоимитаторами

 

:)


  • 0

#7 fiction13

fiction13

Отправлено 21 June 2016 - 18:21

А в чем сложность? К стандартному поиску в админке надо добавить артикульную таблицу #__zoo_jbzoo_sku


  • 2

#8 mkm-nn

mkm-nn

Отправлено 24 June 2016 - 10:38

А в чем сложность? К стандартному поиску в админке надо добавить артикульную таблицу #__zoo_jbzoo_sku

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


  • 0

#9 CB9TOIIIA

CB9TOIIIA

Отправлено 24 June 2016 - 11:29

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

 

 

 

 в админке стандартную опцию

 

Стандартные есть уже в коробке - а sku (артикул) - не стандарт, ее нет в коробке - поэтому надо править код и делать запрос в БД.

Вы можете не платить и самостоятельно сделать - добавив запрос к таблице в выборку.


  • 0

#10 fromsk

fromsk

Отправлено 19 August 2016 - 09:07

 

Необходим поиск в админ. панели по элементу цены -> артикул
как реализовать?

 

У меня кривенько, но получилось. Нужно было тоже в админке искать по артикулу.

\administrator\components\com_zoo\config.php

добавляем 

define('ZOO_TABLE_SKU', '#__zoo_jbzoo_sku');

 рядом с другими определениями таблиц.

 

 

administrator\components\com_zoo\controllers\item.php

вместо 

if ($search) {
$from   .= ' LEFT JOIN '.ZOO_TABLE_TAG.' AS t ON a.id = t.item_id';
$where[] = '(LOWER(a.name) LIKE '.$this->db->Quote('%'.$this->db->escape($search, true).'%', false)
. ' OR LOWER(t.name) LIKE '.$this->db->Quote('%'.$this->db->escape($search, true).'%', false)
. ' OR LOWER(a.alias) LIKE '.$this->db->Quote('%'.$this->db->escape($search, true).'%', false) . ')';
}
пишем
if ($search) { 
$from   .= ' LEFT JOIN '.ZOO_TABLE_SKU.' AS t ON a.id = t.item_id';
                         $where[] = '(LOWER(a.name) LIKE '.$this->db->Quote('%'.$this->db->escape($search, true).'%', false)
. ' OR LOWER(t.value_s) LIKE '.$this->db->Quote('%'.$this->db->escape($search, true).'%', false)
. ' OR LOWER(a.alias) LIKE '.$this->db->Quote('%'.$this->db->escape($search, true).'%', false) . ')';
                        $where[] = 't.param_id = \'_sku\'';
}

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


Сообщение отредактировал fromsk: 19 August 2016 - 09:32

  • 4




Click to return to top of page in style!