当前位置:首页 > 行业动态 > 正文

如何在织梦内容页文档中通过php逻辑调用dede:field.price来控制显示原价和优惠价?

在织梦内容页文档页中,可以使用php逻辑调用 {dede:field.price}来控制显示原价和优惠价。具体实现方法如下:,,“ php,,“,,上述代码会首先判断是否存在优惠价,如果存在则显示原价和优惠价,否则只显示原价。

管理系统(DedeCMS)中,使用dede:field 标签可以方便地调用和控制文档字段的显示,本文章将详细介绍如何利用 PHP 逻辑来控制 DedeCMS 中商品的原价与优惠价的显示。

准备工作

首先确保你的内容模型中已经定义了price(原价)和discount_price(优惠价)两个字段,这两个字段通常为数字类型,用于存储商品的价格信息。

创建模板文件

在你的 DedeCMS 模板文件夹中,找到需要展示商品价格的内容页模板文件,通常是show_article.htm 或类似的文件名。

添加 PHP 逻辑

打开模板文件,定位到需要展示价格的位置,开始编写 PHP 代码,在 DedeCMS 中,你可以使用如下方式来嵌入 PHP:

{dede:field name='price' function='getPrice(@me)'/}

这里使用了dede:field 标签来调用price 字段,并通过自定义函数getPrice 来处理显示逻辑,你需要在模板文件中或者系统函数文件中定义这个函数,函数的基本结构可以是:

function getPrice($price, $discount_price) {
    if ($discount_price > 0) {
        return "原价:".$price."<br>优惠价:".$discount_price;
    } else {
        return "价格:".$price;
    }
}

注册自定义函数

为了在模板中使用刚才创建的getPrice 函数,你需要将其注册到 DedeCMS 系统中,这可以通过修改include/extend.func.php 文件来实现,在该文件中添加以下代码:

function getPrice($price, $discount_price) {
    if ($discount_price > 0) {
        return "原价:".$price."<br>优惠价:".$discount_price;
    } else {
        return "价格:".$price;
    }
}

保存文件后,刷新页面,现在你的内容页应该能够根据是否设置优惠价来显示不同的价格信息。

优化显示效果

为了更好的用户体验,你可能还需要对价格的显示进行样式调整,可以在模板 CSS 文件中加入样式规则,

.originalprice {
    textdecoration: linethrough;
    color: #888;
}
.discountprice {
    color: #f60;
    fontweight: bold;
}

然后在 PHP 逻辑中添加对应的 class:

function getPrice($price, $discount_price) {
    if ($discount_price > 0) {
        $output = "<span >原价:".$price."</span><br><span >优惠价:".$discount_price."</span>";
    } else {
        $output = "<span >价格:".$price."</span>";
    }
    return $output;
}

调试与测试

完成以上步骤后,进行页面的调试和测试以确保一切正常运作,检查不同情况下价格的显示是否正确,包括有优惠价和无优惠价的情况。

FAQs

Q1: 如果我只想显示优惠价而不显示原价怎么办?

A1: 可以修改getPrice 函数,只返回优惠价信息。

function getPrice($price, $discount_price) {
    if ($discount_price > 0) {
        return "优惠价:".$discount_price;
    } else {
        return "价格:".$price;
    }
}

Q2: 如何在移动端适配价格显示?

A2: 可以使用媒体查询(Media Queries)来针对移动端设备调整价格显示的样式,在 CSS 文件中添加:

@media (maxwidth: 768px) {
    .price, .originalprice, .discountprice {
        fontsize: 14px;
    }
}

这样在屏幕宽度小于 768px 的设备上,价格文字大小会相应减小以适应屏幕。

0

随机文章