joomla 自定义字段标记 php

问题描述 投票:0回答:2

我一直在文章覆盖中使用 Joomla 的自定义字段,但我没有运气仅在使用字段时添加标记。 我对 PHP 的了解非常有限。

这是我的声明:

<?php if(isset($this->item->jcfields[x]) === true  && empty($this->item->jcfields[x]) === false): ?>
    <div class="name"><?php echo $this->item->jcfields[x]->value; ?></div>
<?php endif; ?>

以我有限的理解,这似乎是检查该字段是否有内容并且不为空。如果为 true,则显示将字段值包装在 div 中的第二行。 这有效。

相反,如果该字段为空,则应跳过第二行,这不会创建包装 div。

实际上,div 是通过任何一种方式创建的。

我错过了什么?

php joomla3.0
2个回答
0
投票

我采用了不同的方式,因为 Joomla 字段没有使用上面的代码将输出注册为空。

相反,我检索了该字段的值并搜索了文本:

    <?php 
        $word = "https";
        $mystring = ($this->item->jcfields[x]->value);
        if(strpos($mystring, $word) == false){echo "";
            } else{
        echo "<div class='facebook-link'>" . $mystring . "</div>";
        }
    ?>

与此 CSS 结合:

.facebook-link a  {font-size: 25px; display: inline-block; text-indent: -999em; text-decoration:none;}
.facebook-link a:after {font-family: "FontAwesome"; display: block; text-indent: 0;content: "\f09a";}

PHP 代码已添加到文章覆盖中,并包装在外部包装器中,该包装器被指定为 css 网格,网格模板列设置为重复{8, 40px)。

最终结果是页面用户定义的任何社交媒体帐户的一行链接图标。


0
投票

如在 J4 论坛上发布的那样,对于自定义文本字段来获取与文章模板覆盖一起使用的条件检查,请使用额外的 strlen() > 0 检查。

<?php if (isset($this->item->jcfields[1]) && strlen($this->item->jcfields[1]->value) > 0) : ?>
    <p> Custom field value set to: <?php echo $this->item->jcfields[1]->value; ?></p>
<?php endif; ?>
© www.soinside.com 2019 - 2024. All rights reserved.