K2記事からExtraFieldsを取得しようとしています。いくつかのカテゴリのすべての記事を表示するために、メニューをLatest from Users or Categories
に割り当てました。
うまく表示されます。しかし、これらの記事には表示したいExtraFields情報がありますが、ExtraFieldsを表示するオプションがないため、これを行うには、すべての記事の表示に使用されるページであるlatest.php
ページを変更する必要があると思います別のカテゴリから。
latest.php
はExtraFieldsを表示しないので、次のようにコーディングしようとしています。
<?php
$extrafields = array();
foreach($this->item->extra_fields as $item)
{
$extrafields[$item->id] = $item->value;
}
?>
<?php if(isset($extrafields[X]) === true):?>
<?php echo $extrafields[X]; ?>
<?php endif; ?>
ただし、次のエラーが発生します。
...のforeach()に無効な引数が指定されました.
私はExtraFieldsを取得する方法を探していて、いくつかの解決策を見つけましたが、これは毎回得るエラーです。
アイデアや解決策はありますか?
宜しくお願いします。
私はjoomla 2.5を使用しています。
私はこのようにそれをやった:
このコードはファイルlatest_item.php
:
<?php if (isset($this->item->extra_fields)) : ?>
<div class="catItemExtraFields">
<ul>
<?php if (is_string($this->item->extra_fields)) {
$this->item->extra_fields = json_decode($this->item->extra_fields);
}
foreach ($this->item->extra_fields as $key=>$extraField) {
if ($extraField->value != '') {
echo "<li>".$extraField->name.": ".$extraField->value."</li>";
}
}
?>
</ul>
</div>
<?php endif; ?>
既存のメンバーなどをチェックすることもできます。
Latest.php内の追加フィールドからのデータを表示したいと仮定すると、:
コンテンツアイテムを通過し、各k2アイテムを出力する適切なforeachループ内では、次のようになります。
<?php $extra = json_decode($item->extra_fields); ?>
$ extraは、追加のフィールドとその値を持つ配列になります。
<pre>
<?php print_r($extra); ?>
</pre>