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


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

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


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

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


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

#11 zeus07

zeus07

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

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

  1.  
  1. <?php
  2. /**
  3. * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
  4. *
  5. * @package jbzoo
  6. * @version 2.x Pro
  7. * @author JBZoo App http://jbzoo.com
  8. * @copyright Copyright © JBZoo.com, All rights reserved.
  9. * @license http://jbzoo.com/license-pro.phpJBZoo Licence
  10. * @coder Denis Smetannikov <denis@jbzoo.com>
  11. */
  12. // no direct access
  13. defined('_JEXEC') or die('Restricted access');
  14. class Vision extends JBFilterElementVision
  15. {
  16. /**
  17. * Get main attrs
  18. * @param array $attrs
  19. * @return array
  20. */
  21. public function html()
  22. {
  23. $this->_isMultiple = true;
  24. $values = $this->_getValues();
  25. return $this->app->jbhtml->checkbox(
  26. $this->_createOptionsList($values),
  27. $this->_getName(''),
  28. $this->_attrs,
  29. $this->_value,
  30. $this->_getId()
  31. );
  32. }
  33. /**
  34. * Get DB values
  35. * @param null $type
  36. * @return array|mixed|null
  37. */
  38. protected function _getValues($type = null)
  39. {
  40. return $this->_getDbValues();
  41. }
  42. }
 
В настройках фильтра выставил поле Состав (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

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

 

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

  1. $sostav = (
  2. "med" => "Медь",
  3. "serebro" => "Серебро",
  4. );

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


  • 0

#18 zeus07

zeus07

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

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

  1. <?php
  2. /**
  3. * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
  4. *
  5. * @package jbzoo
  6. * @version 2.x Pro
  7. * @author JBZoo App http://jbzoo.com
  8. * @copyright Copyright (C) JBZoo.com, All rights reserved.
  9. * @license http://jbzoo.com/license-pro.php JBZoo Licence
  10. * @coder Denis Smetannikov <denis@jbzoo.com>
  11. */
  12.  
  13. // no direct access
  14. defined('_JEXEC') or die('Restricted access');
  15.  
  16.  
  17. class JBFilterElementVision extends JBFilterElement
  18. {
  19. /**
  20. * Get main attrs
  21. * @param array $attrs
  22. * @return array
  23. */
  24. public function html()
  25. {
  26. $this->_isMultiple = true;
  27. $values = $this->_getValues();
  28. $sostav = array("med" => "Медь", "serebro" => "Серебро");
  29. return $this->app->jbhtml->checkbox(
  30. $sostav,
  31. $this->_getName(''),
  32. $this->_attrs,
  33. $this->_value,
  34. $this->_getId()
  35. );
  36. }
  37. /**
  38. * Get DB values
  39. * @param null $type
  40. * @return array|mixed|null
  41. */
  42. protected function _getValues($type = null)
  43. {
  44. return $this->_getDbValues();
  45. }
  46.  
  47. }

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


  • 0

#19 zeus07

zeus07

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

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


  • 0

#20 zeus07

zeus07

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

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

  1. 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!