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


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

Не работает поиск по числам


Лучший Ответ SmetDenis , 28 June 2014 - 18:17

Замените последнюю функцию на 

    protected function _prepareValue($value, $exact = false)
    {
        return $value;
    }
Перейти к сообщению


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

#1 Denzel

Denzel

Отправлено 27 June 2014 - 07:21

http://rb-exide.ru/i...-oem-i-analogam

 

Если в поле поиска ввести 110 то во всплывающем списке отобразятся найденные варианты, однако если просто нажать Enter или кликнуть по кнопке Искать, то поиск не даст результатов. Стоит добавить текстовый символ, например дефис -110 и поиск выполняется успешно.

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

 

Как настроить корректную работу фильтра?

 

Joomla: 3.2.0     JBZoo: 2.1.2 Pro     Zoo: 3.1.6   


Сообщение отредактировал Denzel: 27 June 2014 - 07:21

  • 0

#2 SmetDenis

SmetDenis

Отправлено 27 June 2014 - 11:00

Добрый день.

Можете показать содержимое вашего файла ?

media\zoo\applications\jbuniversal\framework\models\jbmodel.element.itemname.php


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



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


#3 Denzel

Denzel

Отправлено 28 June 2014 - 00:26

<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */

// no direct access
defined('_JEXEC') or die('Restricted access');


/**
 * Class JBModelElementItemname
 */
class JBModelElementItemname extends JBModelElement
{

    /**
     * Set AND element conditions
     * @param JBDatabaseQuery $select
     * @param string $elementId
     * @param string|array $value
     * @param int $i
     * @param bool $exact
     * @return JBDatabaseQuery
     */
    public function conditionAND(JBDatabaseQuery $select, $elementId, $value, $i = 0, $exact = false)
    {
        return $this->_getWhere($value);
    }

    /**
     * Set OR element conditions
     * @param JBDatabaseQuery $select
     * @param string $elementId
     * @param string|array $value
     * @param int $i
     * @param bool $exact
     * @return array
     */
    public function conditionOR(JBDatabaseQuery $select, $elementId, $value, $i = 0, $exact = false)
    {
        return $this->_getWhere($value);
    }

    /**
     * @param $value
     * @return string
     */
    protected function _getWhere($value)
    {
        if (!is_array($value)) {
            $value = array($value);
        }

        $where = array();
        foreach ($value as $valueOne) {
            $valueOne = $this->_prepareValue($valueOne);
            $where[]  = $this->_buildLikeBySpaces($valueOne, 'tItem.name');
        }

        return $where;
    }

    /**
     * @param array|string $value
     * @param bool $exact
     * @return mixed|void
     */
    protected function _prepareValue($value, $exact = false)
    {
        if (is_numeric($value)) {

            $select = $this->_getSelect()
                ->select('tItem.name AS name')
                ->from(ZOO_TABLE_ITEM . ' AS tItem')
                ->where('id = ?', (int)$value);

            $row = $this->fetchRow($select);

            if ($row) {
                return $row->name;
            }
        }

        return $value;
    }

}

  • 0

#4 SmetDenis

SmetDenis

Отправлено 28 June 2014 - 18:17   Лучший Ответ

Замените последнюю функцию на 
    protected function _prepareValue($value, $exact = false)
    {
        return $value;
    }

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



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





Click to return to top of page in style!