簡體   English   中英

解析joomla k2額外文件數據

[英]parse joomla k2 extra fileds data

我正在使用joomla k2組件,我正在構建基於它的另一個組件。 這里我在訪問(解析)k2額外字段時遇到問題。 幫助將不勝感激。

數據庫中的k2額外字段內容是這樣的,

[{"id":"1","value":"500"},{"id":"2","value":"40Hrs"},{"id":"3","value":"1"}]

我搜索了k2網站和其他人並給出了答案,

$this->item->extra_fields[0]->value; //needs to return 500

我試過不同的方式,但它不會工作。

您可以使用json_decode()函數將其從JSON字符串格式解碼為PHP對象。

例:

$JSON = '[{"id":"1","value":"500"},{"id":"2","value":"40Hrs"},{"id":"3","value":"1"}]';

$obj = json_decode($JSON); 

echo $obj[0]->value;

如果你的extra_fields值作為一個字符串(未解析)而不是一個對象數組返回,那么由於配置的原因,它可能是因為extra_fields是基於它解析(或不解析)的。

//Extra fields
if (($view == 'item' && $item->params->get('itemExtraFields'))
   || ($view == 'itemlist' && ($task == '' || $task == 'category') && $item->params->get('catItemExtraFields'))
   || ($view == 'itemlist' && $task == 'tag' && $item->params->get('tagItemExtraFields')) 
   || ($view == 'itemlist' && ($task == 'search' || $task == 'date') && $item->params->get('genericItemExtraFields')))
{
    $item->extra_fields = K2ModelItem::getItemExtraFields($item->extra_fields);
}

在類別列表中顯示項目時,您可以通過編輯類別啟用extra_fields( catItemExtraFields ),並在類別列表中的項目視圖選項下單擊顯示 額外字段項目。

在項目視圖中,您可以通過編輯類別啟用extra_fields( itemExtraFields ),在項目視圖選項下單擊“ 顯示 額外字段”項。

這應該在類別項列表和項視圖中啟用extra_fields解析。

嘗試這個,

$str='[{"id":"1","value":"500"},{"id":"2","value":"40Hrs"},{"id":"3","value":"1"}]';
$vals=json_decode($str);
print_r($vals);

如果你想打印500,

echo $vals[0]->value; //prints 500

或者想要循環它,

foreach($val as $v){
  echo $v->value;
}

根據您所處的位置,您使用額外字段的方式可能會發生變化。

在項目視圖中 - $this->item->extra_fields[id]->value;

在K2內容模塊中 - $item->extra_fields[id]->value;

在這兩種情況下,您都將id替換為您嘗試使用的額外字段的相應數量。 編號從0開始。這些被視為典型的PHP變量。 您可能希望發布一些代碼,以便我們可以看到您要執行的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM