模板中的Joomla自定义字段

Fra*_*sco 5 php joomla

我想为Joomla 3.7自定义我的模板,以便我可以使用Joomla 3.7的新功能,自定义字段(com_fields),并在我需要显示它的模板中通过CSS显示和格式化它们.

有人可以建议我在模板中使用的PHP代码来显示字段,请举例说明.

提前致谢.

小智 6

当然不是正确的方法,但我有同样的需求,我找到了基于https://www.giudansky.com/news/12-coding/146-joomla-custom-fields的解决方案

从/components/com_content/views/article/tmpl/default.php到模板/ YOUR_THEME/html/com_content/article/default.php的Copie default.php

添加以下代码行25:

$myCustomFields = array();
    foreach($this->item->jcfields as $field) {
        $myCustomFields[$field->name] = $field->value;
    } 

$GLOBALS['myCustomFields'] = $myCustomFields;
Run Code Online (Sandbox Code Playgroud)

通常,您会在全局变量中添加附加到文章的字段内容.在您的模板页面上,您可以知道您的字段的检索值.just print_r($ GLOBALS ['myCustomFields']); 查看数组的内容.

这将成为等待更好答案的诀窍..


fax*_*axe 6

对于每个迟到的人来说.如果你想在Module-Override中使用自定义表单字段(这实际上是修改j!-templates的唯一方法,那么google'joomla template override')你可以使用这个方便的代码片段:

<?php
    JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
    $jcFields = FieldsHelper::getFields('com_content.article', $item, true);
    $itemCustomFields = array();
    foreach($jcFields as $field) {
        $itemCustomFields[$field->name] = $field->rawvalue;
    }
?>
Run Code Online (Sandbox Code Playgroud)

现在你可以使用你的自定义字段: itemCustomFields['customFieldName1']

尚未在文章覆盖中进行测试.可能很快,如果是这样,这将得到更新.