web-dev-qa-db-ja.com

項目のExtraFieldsをK2のlatest.phpに表示する方法-Joomla

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を使用しています。

2
azhpo

私はこのようにそれをやった:

このコードはファイル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; ?>

既存のメンバーなどをチェックすることもできます。

2
lars k.

Latest.php内の追加フィールドからのデータを表示したいと仮定すると、:

コンテンツアイテムを通過し、各k2アイテムを出力する適切なforeachループ内では、次のようになります。

<?php $extra = json_decode($item->extra_fields); ?>

$ extraは、追加のフィールドとその値を持つ配列になります。

<pre>
<?php print_r($extra); ?>
</pre>
0
FFrewin