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


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

Настройка фильтра по тексту


Лучший Ответ SmetDenis , 01 September 2015 - 13:57

Просто создайте тему в этом разделе с кратким описанием задачи.
http://forum.jbzoo.c...-komandy-jbzoo/ Перейти к сообщению


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

#11 zeus07

zeus07

Отправлено 27 August 2015 - 15:25

Итак, я создал вообще отдельный файл с названием element.vision.php и таким содержимым: 


<?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 © JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.phpJBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */
 
// no direct access
defined('_JEXEC') or die('Restricted access');
 
 
class Vision extends JBFilterElementVision
{
    /**
     * Get main attrs
     * @param array $attrs
     * @return array
     */
    public function html()
    {
        $this->_isMultiple = true;
 
        $values = $this->_getValues();
 
        return $this->app->jbhtml->checkbox(
            $this->_createOptionsList($values),
            $this->_getName(''),
            $this->_attrs,
            $this->_value,
            $this->_getId()
        );
    }
 
    /**
     * Get DB values
     * @param null $type
     * @return array|mixed|null
     */
    protected function _getValues($type = null)
    {
        return $this->_getDbValues();
    }
 
}
 
В настройках фильтра выставил поле Состав (textarea) и для него выбрал шаблон Vision. После этого сохранил, почистил кеш, и мне выдаёт такую ошибку:

 

Fatal error: Class 'JBFilterElementVision' not found in /home/artcolor/artcolorit.com/vision/media/zoo/applications/jbuniversal/framework/render/filter/element.vision.php on line 18


Сообщение отредактировал zeus07: 27 August 2015 - 15:26

  • 0

#12 zeus07

zeus07

Отправлено 27 August 2015 - 15:38

Разобрался, где ошибка, исправил. Теперь выдаёт другую ошибку:

 

http://vision.artcolorit.com/


  • 0

#13 SmetDenis

SmetDenis

Отправлено 27 August 2015 - 15:50

Потому что _getValues должен вернуть ваши опции, ради которых все затевалось.

 

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

 

Для простоты можно вместо строки $this->_createOptionsList($values), использовать заранее подготовленный ассоциированный массив.


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



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


#14 zeus07

zeus07

Отправлено 27 August 2015 - 15:52

То есть подготовить список самих опций, которые должны отображаться, я правильно понимаю? Если да, то как корректно это прописать в php? 


  • 0

#15 SmetDenis

SmetDenis

Отправлено 27 August 2015 - 15:57

Ассоциативным массивом

http://php.net/manua...types.array.php


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



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


#16 zeus07

zeus07

Отправлено 27 August 2015 - 16:00

Понял. То есть я эту строку убираю, и вместо неё загоняю массив элементов


  • 0

#17 zeus07

zeus07

Отправлено 27 August 2015 - 17:11

Денис, ещё один вопрос вот такой. При задании массива данных в каком формате записывать ключ и значение ключа?

 

Ключ - это в принципе можно взять как значение, но латинскими буквами? Для примера :

$sostav = (
     "med" => "Медь",
     "serebro"  => "Серебро",
);

Вот так будет правильно? Или сам ключ можно не использовать, только значение?


  • 0

#18 zeus07

zeus07

Отправлено 27 August 2015 - 18:46

В общем, попытался вставить массив, привожу код файла ещё раз:

<?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 JBFilterElementVision extends JBFilterElement
{
    /**
     * Get main attrs
     * @param array $attrs
     * @return array
     */
    public function html()
    {
        $this->_isMultiple = true;
 
        $values = $this->_getValues();
        
        $sostav = array("med" => "Медь", "serebro" => "Серебро");
        
        return $this->app->jbhtml->checkbox(
            $sostav,
            $this->_getName(''),
            $this->_attrs,
            $this->_value,
            $this->_getId()
        );
    }
 
    /**
     * Get DB values
     * @param null $type
     * @return array|mixed|null
     */
    protected function _getValues($type = null)
    {
        return $this->_getDbValues();
    }

}

Где допущена ошибка? Потому что на главной по-прежнему ошибка 1054


  • 0

#19 zeus07

zeus07

Отправлено 29 August 2015 - 13:17

Денис, подскажите пожалуйста, очень важно решить этот вопрос.


  • 0

#20 zeus07

zeus07

Отправлено 01 September 2015 - 11:22

Вот такая ошибка отображается: 

Unknown column 'tIndex.e_ce8dbc02959549c6b0983577c91f1552_s' in 'field list' SQL=SELECT tIndex.e_ce8dbc02959549c6b0983577c91f1552_s AS value, tIndex.e_ce8dbc02959549c6b0983577c91f1552_s AS text, COUNT(tIndex.e_ce8dbc02959549c6b0983577c91f1552_s) AS count FROM g9dbr_zoo_item AS tItem INNER JOIN g9dbr_zoo_jbzoo_index_tovar AS tIndex ON tIndex.item_id = tItem.id WHERE tItem.access IN (1,5) AND tItem.state = '1' AND (tItem.publish_up = '0000-00-00 00:00:00' OR tItem.publish_up <= '2015-09-01 10:22:00') AND (tItem.publish_down = '0000-00-00 00:00:00' OR tItem.publish_down >= '2015-09-01 10:22:00') AND tItem.searchable = '1' AND tItem.type = 'tovar' AND tItem.application_id = '1' AND tIndex.e_ce8dbc02959549c6b0983577c91f1552_s <> "" AND tIndex.e_ce8dbc02959549c6b0983577c91f1552_s IS NOT NULL GROUP BY tIndex.e_ce8dbc02959549c6b0983577c91f1552_s

  • 0




Click to return to top of page in style!