Jump to content


Photo
- - - - -

Access Zoo element data


  • This topic is locked This topic is locked
3 replies to this topic

#1 styopinevgeniy

styopinevgeniy
  • JBZoo User (rus)
  • User rate: 0
  • posts: 42
  • topics: 12

Posted 27 May 2013 - 13:43

Добрый день, уважаемые разработчики!

Передо мной стоит задача получить информацию, хранящуюся в одной из позиций элемента Zoo, с помощью запроса в БД. Очевидно, все значения позиций элемента Zoo хранятся в БД в таблице %%_zoo_item в столбце elements.

Но в этом столбце информация, как я понимаю, хранится в XML-формате.

На просторах интернета я нашёл функцию, с помощью которой можно осуществить доступ к необходимой позиции:

<?php
include ('configuration.php');

function getZooElem($id, $eid, $type) {
$db =& JFactory::getDBO()
$query = "SELECT elements FROM 'aajb9_zoo_item' WHERE id = " . $id;
$db->setQuery($query);
$elements = json_decode($db->loadResult(), true);
return $elements[$eid][0][$type];
}

echo getZooElem(1, '80cb6cbb-84a9-49eb-8a89-1e394f8501bd', 'value');
?>

Но вызов данного php-файла выдаёт ошибку сервера. Очевидно, что-то идёт не так...
Уважаемые коллеги, прошу Вас помочь в решении возникающей проблемы. Быть может, код написан не совсем верно, хотя его пользователи отзываются о его работоспособности... Или я что-то не учёл...


  • 0

#2 Андрей

Андрей
  • JBZoo User (rus)
  • User rate: 0.3
  • posts: 39
  • topics: 5

Posted 27 May 2013 - 15:29

Вроде если делать запрос в бд Joomla методами префикс указывать не надо.

Если вы знаете item id или element id то все это можно осуществить Зуу методами. Как-то так 

<?php
$zoo = App::getInstance('zoo');
$item = $zoo->table->item->get($item_id);
echo $item->getElement($element_id);

Edited by SmetDenis, 27 May 2013 - 18:11.

  • 1

#3 styopinevgeniy

styopinevgeniy
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 42
  • topics: 12

Posted 28 May 2013 - 11:54

К сожалению, ваш метод не работает.

Правильно ли я понимаю, опираясь на представленный мною код, что:

  • $item_id у вас = $id у меня
  • $element_id у вас = $eid у меня

И куда нужно вставить этот код? Я, например, просто формировал php-файл и вставлял в него строки, а потом вызывал из браузера...


  • 0

#4 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 29 May 2013 - 04:55

К сожалению, ваш метод не работает.

Код работает. А как вы проверяли, если не знаете куда вставлять?

 

Можете например его использовать в любом шаблоне JBZoo 


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



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





Click to return to top of page in style!