【发布时间】:2014-10-24 13:17:50
【问题描述】:
我有这段代码用于从数据库中的 k2_items 表中获取信息,但我为 extra_fields 得到的只是一个 JSON 字符串,而不是我需要打印的人类可读的 id/值。
这是我用来显示数据库信息的代码,以及尝试提取 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 输出中打印 extra_fields 时,其值为 [1] 之类的数字;但是当我查看 K2 后端时,它们是文本答案或下拉选择;人类可读。我不是真正的 Joomla 开发人员,所以我不知道是否有某种 JRegistry 东西或我应该使用的东西,但我希望能指出正确的方向。 :D
【问题讨论】: