Joomla模板覆盖PHP初始化变量

时间:2016-10-27 13:40:24

标签: php optimization joomla

我正在尝试为我的模板创建一个覆盖,以自定义扩展程序在文章中显示字段的方式。

我使用的扩展程序是DPfields,我正在使用开发人员的参考指南:https://joomla.digital-peak.com/documentation/162-dpfields/2750-rendering-fields

特别是我引用了段落:访问布局中的字段

我创建了一个新的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?

提前致谢。

1 个答案:

答案 0 :(得分: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>'; 
}