Jump to content



Toggle %s Welcome to JBZoo community !

English: Please, sign in for contact JBZoo techsupport. Accesses in your Email, which came after the purchase.

Russian: Для того чтобы обратиться в русскую техническую поддержку JBZoo — авторизуйтесь с помощью доступов, которые пришли к вам в письме после покупки. Внимание! Доступ туда имеют только тарифы со знаком «плюс». Подписки JBZoo без "+" форум расценивает как забаненные, поэтому для общения в публичном разделе используйте отдельный аккаунт (легко зайти через социальную сеть). Если форум вас не пускает, почистите куки браузера


Photo
- - - - -

Помогите разобраться c API JBZoo


14 replies to this topic

#1 azazello

azazello

Posted 30 March 2017 - 18:27

Всем привет! Вот в документации есть такая функция:

// произвольная фильтрация на основе индекса JBZoo
// массив $elements полностью совпадает со структурой запроса из фильтра.
$elements = array(
'<ELEMENT_ID>' => 'Значение',
);
$items = JBModelFilter::model()->filter($elements);

Вот я хочу найти все элементы с определенным значением свойства. Известен id Element-a и его значение ( тип его TEXT ). Пишу:

$elements = array(
'51a9c783-25af-4d94-8d41-d6d76575b7b7' => '1',
);
$items = JBModelFilter::model()->filter($elements);

Ничего не возвращает. В чем может быть дело ??? 


#2 Chester1988

Chester1988
  • JBZoo User (rus)
  • User rate: 0.7
  • posts: 157
  • topics: 34

Posted 28 June 2017 - 08:29

Похоже ошибка в документации, нет функции filter в модели JBModelFilter.

Используйте функцию search

$searchModel = JBModelFilter::model();
$items      = $searchModel->search($elements, $logic, $type, $appId);

  • 0

#3 Rivermc

Rivermc
  • JBZoo User (rus)
  • User rate: 1.4
  • posts: 21
  • topics: 4

Posted 07 December 2017 - 09:16

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

вот такой вариант не работает 

  1. '51a9c783-25af-4d94-8d41-d6d76575b7b7' => '1, 2, 3',

  • 0

#4 MOKEV

MOKEV
  • JBZoo User (rus)
  • User rate: 11.1
  • posts: 139
  • topics: 14

Posted 07 December 2017 - 10:39

вот такой вариант не работает

 

Так там же написано, что массив обрабатывается. Соответственно каждое значение отдельно.

$elements = array(
'51a9c783-25af-4d94-8d41-d6d76575b7b7' => '1',
'51a9c783-25af-4d94-8d41-d6d76575b7b7' => '2',
'51a9c783-25af-4d94-8d41-d6d76575b7b7' => '3',
);

  • 0

#5 Rivermc

Rivermc
  • JBZoo User (rus)
  • User rate: 1.4
  • posts: 21
  • topics: 4

Posted 07 December 2017 - 12:23

 

Так там же написано, что массив обрабатывается. Соответственно каждое значение отдельно.

$elements = array(
'51a9c783-25af-4d94-8d41-d6d76575b7b7' => '1',
'51a9c783-25af-4d94-8d41-d6d76575b7b7' => '2',
'51a9c783-25af-4d94-8d41-d6d76575b7b7' => '3',
);

Я так пробовал, выдавал не верный результат.


  • 0

#6 mmth

mmth
  • JBZoo User (rus)
  • User rate: 6.6
  • posts: 127
  • topics: 4

Posted 07 December 2017 - 13:46

Я так пробовал, выдавал не верный результат.

вторую переменную $logic нужно "AND" указать


  • 0

#7 Rivermc

Rivermc
  • JBZoo User (rus)
  • User rate: 1.4
  • posts: 21
  • topics: 4

Posted 07 December 2017 - 14:50

вторую переменную $logic нужно "AND" указать

Это не работает. Вот кусок кода

$elements = array(
    '698cf832-7ee4-4e1f-ade3-0145d9a2caa0' => '#сайт',
    '698cf832-7ee4-4e1f-ade3-0145d9a2caa0' => '#логотип'
);
 
$searchModel = JBModelFilter::model();
$items      = $searchModel->search($elements, 'AND', 'portfolio', 1, false, $offset, $count + 1, 'name');
 
а результат тут http://wowow.solomonkb.ru/portfolio
 
он выбирает только по последнему условию, вывел материалы с хештегом #логотип, второе условие он просто не учитывает

  • 0

#8 CB9TOIIIA

CB9TOIIIA
  • Super moderators
  • User rate: 200.4
  • posts: 2640
  • topics: 218

Posted 07 December 2017 - 17:16

#делайпроще

 

https://www.regularl...ponentsanywhere

 

Модулем фильтра - делаешь как надо - далее просто урл без SEF обрамляешь шорткодом от компонента - готово.


  • 0

b3sky9c.jpg Админ Joomla-support.ru (wfh) / Мой скайп: (skype) cb9t.ru / 0_a5dfa_59170f8b_orig.png JBZoo чат (ninja) ¯\_(ツ)_/¯ / 0_a8adc_9b13e908_orig.png Разработка Joomla расширений и т.д.!

           P.S. Я не саппорт, а человек желающий помочь в решение Вашей проблемы. Саппорт и разработчик Smetdenis


#9 Rivermc

Rivermc
  • JBZoo User (rus)
  • User rate: 1.4
  • posts: 21
  • topics: 4

Posted 08 December 2017 - 06:25

#делайпроще

 

https://www.regularl...ponentsanywhere

 

Модулем фильтра - делаешь как надо - далее просто урл без SEF обрамляешь шорткодом от компонента - готово.

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

Я думаю что мою проблему можно решить путем добавления цикла обхода массива элемента в процедуру search если элемент таковым является, но я почти не понимаю как работает этот код и не знаю как его доделать :( Святоша пАмАгИ

 

P.S. Предпочитаю для загрузки модулей джумлы в любом месте использовать вот такую конструкцию, а не сторонний компонент

 

jimport( 'joomla.application.module.helper' ); // подключаем нужный класс, один раз на странице, перед первым выводом
$module = JModuleHelper::getModules('inline_cat_opis_price'); // получаем в массив все модули из заданной позиции
$attribs['style'] = 'xhtml'; // задаём, если нужно, оболочку модулей (module chrome)
echo JModuleHelper::renderModule($module[0], $attribs); // выводим первый модуль из заданной позиции

Edited by Rivermc, 08 December 2017 - 08:30.

  • 0

#10 CB9TOIIIA

CB9TOIIIA
  • Super moderators
  • User rate: 200.4
  • posts: 2640
  • topics: 218

Posted 08 December 2017 - 09:57

У меня тоже - но в профиль:

<?php $pos = "test123";
$modules = JModuleHelper::getModules($pos);
$attribs['style'] = 'xhtml';
foreach ($modules as $module){
    echo JModuleHelper::renderModule($module, $attribs);
} ?>

По поводу Выше: jbdump - смотреть какие методы есть (функции) и как они работают.


  • 0

b3sky9c.jpg Админ Joomla-support.ru (wfh) / Мой скайп: (skype) cb9t.ru / 0_a5dfa_59170f8b_orig.png JBZoo чат (ninja) ¯\_(ツ)_/¯ / 0_a8adc_9b13e908_orig.png Разработка Joomla расширений и т.д.!

           P.S. Я не саппорт, а человек желающий помочь в решение Вашей проблемы. Саппорт и разработчик Smetdenis





Click to return to top of page in style!