当前位置: 首页 > 知识库问答 >
问题:

Joomla模板重写PHP初始化变量

龙安阳
2023-03-14

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

我使用的扩展是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个答案

欧阳智志
2023-03-14

您可以尝试筛选数组。我想这不会改变你需要的代码量。

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>'; 
}
 类似资料:
  • 我正在练习在链表类的实现中使用节点结构实现一个模板类链表。在createNode()成员函数中,当我初始化指向节点结构的指针变量时,会出现编译器错误:“未初始化的局部变量'newNode'已使用” 如果我将初始化更改为: 它工作得很好。如果我可以初始化基本数据类型,比如int,我有点困惑为什么这很重要: 为什么我不能对structs做同样的操作??我的代码如下:

  • 迄今为止, 你看到的PHP_EMBED_START_BLOCK()和 PHP_EMBED_END_BLOCK()宏都用于启动, 执行, 终止一个紧凑的原子的php请求。 这样 做的优点是任何导致php bailout的错误顶多影响到PHP_EMBED_END_BLOCK()宏之内 的当前作用域. 通过将你的代码执行放入到这两个宏之间的小块中, php的错误就不会影响到你的整个应用. 你刚才已经看到

  • 我认为模板函数可以有默认的参数参数(不是模板参数而是运行时参数)。我们也可以用空括号初始化来初始化一个类。但是编译器如何匹配模板呢? 这段代码为什么要编译,编译器如何进行演绎,以及这个函数调用示例中的参数是什么? 我所理解的是:默认括号初始化调用空构造函数,这是隐式创建的,因为没有用户定义的构造函数或用户定义的默认构造函数。也就是说,我们可以用{}初始化任何包。所以扣除不适用于那里,因为我们不能选

  • 问题内容: 如何使用类型初始化变量? 因为我有错误 问题答案: 常量声明不能包含函数调用(某些例外,请参见下文),它们必须在编译时进行评估,而函数调用是在运行时进行的。 引用规格:常量: 常数值由符文,整数,浮点数,虚数或字符串文字表示,标识符表示常数,常数表达式,结果为常数的转换或某些内置结果的值函数,例如应用于任何值,或应用于某些表达式,以及应用于常量,以及应用于数字常量的复数。 并引用Spe

  • 问题内容: 我有一个初始化为的变量: 问题是,在某个时候,我需要重置此变量,以便在更改后可以再次初始化。但是如果我将类设置为可选的话,LLVM在尝试将它设置为时会给我一个错误。如果我只是使用将其重置在代码中的某个位置,它将最终显示为。 有没有一种方法可以使用并允许自己重置? 问题答案: 懒惰是明确的仅一次初始化。您要采用的模型可能只是按需初始化模型: 现在,只要是,它会被初始化并返回。可以通过设置

  • 本文向大家介绍tensorflow 初始化未初始化的变量实例,包括了tensorflow 初始化未初始化的变量实例的使用技巧和注意事项,需要的朋友参考一下 今日在Stack Overflow上看到一个问如何只初始化未初始化的变量,有人提供了一个函数,特地粘贴过来共大家品鉴: 通过tf.global_variables()返回一个全局变量的列表global_vars, 然后以python列表解析式的