У меня есть этот фрагмент кода, который я использую для получения информации из таблицы k2_items в базе данных, но все, что я получаю для extra_fields, — это строка JSON, а не удобочитаемый идентификатор/значения, которые мне нужно распечатать.
Вот код, который я использую для отображения информации о базе данных, и код попытки получить значения extra_fields.
<?php
define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'' ));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$user = JFactory::getUser();
$session =& JFactory::getSession();
$user = JFactory::getUser();
//echo 'Username is ' . $user->username;
if($user->username === NULL)
//user is not logged in
{
exit('You are not authorized to view this page. <a href = "' . JURI::root() . '">Please return to the homepage and login using the proper username/password.</a>' . $user->username);
}
else
//user is logged in
{
echo "<p>Welcome $user->username</p>";
echo '<p><a href = "http://ac.tradewindus.com/index.php?option=com_content&view=featured&Itemid=143">Go here to log out</a></p>';
$db=JFactory::getDBO();
$sql="SELECT * FROM #__k2_items WHERE published='1'";
$db->setQuery($sql);
$list=$db->loadObjectList();
foreach($list as $item)
{
echo "<pre>";
echo print_r($item, true);
echo "</pre>";
//convertArray to use ids as key
$extrafields = array();
foreach($item->extra_fields as $item)
{
$extrafields[$item->id] = $item->value;
}
echo $extrafields[1];
echo $extrafields[2];
echo $extrafields[3];
echo $extrafields[4];
echo $extrafields[5];
//echo "<p>Title: $item->title</p>";
//echo $item->introtext;
}
}
?>
И это результат того, что я получаю для каждого вывода цикла foreach.
stdClass Object
(
[id] => 83
[title] => SPEC SHEET: PANORAMAH 38 SASH BI-RAIL
[alias] => spec-sheet-panoramah-38-sash-birail
[catid] => 4
[published] => 1
[introtext] =>
SPEC SHEET: PANORAMAH 38 SASH BI-RAIL
[fulltext] =>
[video] =>
[gallery] =>
[extra_fields] => [{"id":"1","value":""},{"id":"2","value":["1"]},{"id":"3","value":["4"]},{"id":"4","value":["1","2"]},{"id":"5","value":["7"]},{"id":"6","value":["4"]}]
[extra_fields_search] => PanoramAH Minimal Frame Door Window Sliding Spec Sheets
[created] => 2014-01-09 00:00:00
[created_by] => 550
[created_by_alias] =>
[checked_out] => 0
[checked_out_time] => 0000-00-00 00:00:00
[modified] => 2014-08-06 22:44:57
[modified_by] => 550
[publish_up] => 2014-01-09 00:00:00
[publish_down] => 0000-00-00 00:00:00
[trash] => 0
[access] => 1
[ordering] => 14
[featured] => 0
[featured_ordering] => 0
[image_caption] =>
[image_credits] =>
[video_caption] =>
[video_credits] =>
[hits] => 0
[params] => {"catItemTitle":"","catItemTitleLinked":"","catItemFeaturedNotice":"","catItemAuthor":"","catItemDateCreated":"","catItemRating":"","catItemImage":"","catItemIntroText":"","catItemExtraFields":"","catItemHits":"","catItemCategory":"","catItemTags":"","catItemAttachments":"","catItemAttachmentsCounter":"","catItemVideo":"","catItemVideoWidth":"","catItemVideoHeight":"","catItemAudioWidth":"","catItemAudioHeight":"","catItemVideoAutoPlay":"","catItemImageGallery":"","catItemDateModified":"","catItemReadMore":"","catItemCommentsAnchor":"","catItemK2Plugins":"","itemDateCreated":"","itemTitle":"","itemFeaturedNotice":"","itemAuthor":"","itemFontResizer":"","itemPrintButton":"","itemEmailButton":"","itemSocialButton":"","itemVideoAnchor":"","itemImageGalleryAnchor":"","itemCommentsAnchor":"","itemRating":"","itemImage":"","itemImgSize":"","itemImageMainCaption":"","itemImageMainCredits":"","itemIntroText":"","itemFullText":"","itemExtraFields":"","itemDateModified":"","itemHits":"","itemCategory":"","itemTags":"","itemAttachments":"","itemAttachmentsCounter":"","itemVideo":"","itemVideoWidth":"","itemVideoHeight":"","itemAudioWidth":"","itemAudioHeight":"","itemVideoAutoPlay":"","itemVideoCaption":"","itemVideoCredits":"","itemImageGallery":"","itemNavigation":"","itemComments":"","itemTwitterButton":"","itemFacebookButton":"","itemGooglePlusOneButton":"","itemAuthorBlock":"","itemAuthorImage":"","itemAuthorDescription":"","itemAuthorURL":"","itemAuthorEmail":"","itemAuthorLatest":"","itemAuthorLatestLimit":"","itemRelated":"","itemRelatedLimit":"","itemRelatedTitle":"","itemRelatedCategory":"","itemRelatedImageSize":"","itemRelatedIntrotext":"","itemRelatedFulltext":"","itemRelatedAuthor":"","itemRelatedMedia":"","itemRelatedImageGallery":"","itemK2Plugins":""}
[metadesc] =>
[metadata] => robots=
author=
[metakey] =>
[plugins] =>
[language] => *
)
Дополнительные поля должны отображаться в самом низу, но я думаю, что ничего не возвращается. Когда extra_fields печатаются в выходных данных db, значения представляют собой числа, такие как [1]; но когда я смотрю на серверную часть K2, это текстовые ответы или выборки из раскрывающегося списка; человек читаемый. На самом деле я не разработчик Joomla, поэтому я не знаю, есть ли какая-то вещь JRegistry или что-то, что я должен использовать, но я был бы признателен, если бы меня указали в правильном направлении. :D