2016-10-27 37 views
0

テンプレートのオーバーライドを作成して、拡張が記事のフィールドを表示する方法をカスタマイズしようとしています。JoomlaテンプレートがPHP変数を初期化する

私が使用する拡張子はDPfieldsと私は開発者からこのリファレンスガイドを使用しています:https://joomla.digital-peak.com/documentation/162-dpfields/2750-rendering-fields

Expecially私は段落に参照している:私が作成したレイアウト

内のフィールドへのアクセス新しいphpファイルが記事ビューのdefault.phpファイルから開始され、この新しいファイル(newfile.php)の中でコンポーネントDPFieldからギャラリーフィールドタイプを表示しようとしています。

私は正常newfile.phpにこのコードを挿入した:

<?php 
    foreach ($this->item->dpfields as $field) { 
     $gallery = (($field->type)=='gallery'); 
     if (!empty($gallery)) { 
      echo '<div class="galleryfield">' .$field->value. '</div>'; 
     } 
    } 
?> 

はそれを正しく出力でギャラリーを示しています。

私の質問は:どのようにコードを改善できますか? foreachを使わずに動作させるより良い方法はありますか?

ありがとうございます。

答えて

0

アレイをフィルタリングできます。それは私が推測する必要があるコードの量を変更しません。

function filterForGalleryType($field) { 
    return ($field->type) == 'gallery'; 
} 

$galleryFields = array_filter($this->item->dpfields, "filterForGalleryType"); 

foreach ($galleryFields as $galleryfield) { 
    echo '<div class="galleryfield">' .$galleryfield->value. '</div>'; 
} 
+0

スヴェンさん、ありがとうございました。 "$ galleryfield"の前に空白を入れてください。 – Francesco

+0

私はそれを修正しました:) –

関連する問題