[英]How to display Extra Fields from Joomla K2
我有這段代碼可以用來從數據庫的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應該顯示在此的最底部,但是我想什么也沒有返回。 在數據庫輸出中打印extra_fields時,值是類似於[1]的數字; 但是當我查看K2后端時,它們是文本答案或下拉選項; 人類可讀。 我不是真正的Joomla開發人員,所以我不知道是否有某種JRegistry東西或我應該使用的東西,但是我希望能指出正確的方向。 :D
K2中的額外字段以JSON格式存儲。 您將需要使用json_decode。
$extra_fields = json_decode($item->extra_fields);
有關K2額外項目的更多信息,請參見: http : //www.itoctopus.com/on-leveraging-the-power-of-k2s-extra-items
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.