dede如何给商品增加自定义属性?

99ANYc3cd6
预计阅读时长 16 分钟
位置: 首页 DEDE建站 正文

核心思路

  1. 创建一个专门用于存放“商品属性”的自定义模型:这个模型就像一个“容器”,用来定义所有商品共有的属性字段。
  2. 在自定义模型中添加所需的属性字段:添加一个“颜色”字段,一个“尺寸”字段。
  3. 将自定义模型应用到商品栏目:这样,该栏目下的所有文章(商品)都会自动拥有这些属性字段。
  4. 在前台模板中调用和显示这些属性:在商品详情页和列表页,通过调用标签来显示这些属性。

详细步骤

第一步:创建自定义模型

  1. 登录 DedeCMS 后台。
  2. 在左侧菜单栏中,找到 【核心】 -> 模型管理】
  3. 点击右上角的 模型】 按钮。
  4. 在弹出的页面中填写以下信息:
    • 模型名称:填写一个清晰的名称,商品属性模型”。
    • 表前缀:系统会自动生成一个 dede_ 开头的表前缀,保持默认即可。
    • 模型类型:选择“普通文章”。
    • 内容编码:保持默认的 UTF-8
    • 是否启用:务必选择“”。
    • 简介最大长度列表行数发布栏目等选项可以保持默认或根据需要修改。
  5. 点击 【确定】 按钮保存。

你已经成功创建了一个名为“商品属性模型”的模型,我们需要在这个模型里添加具体的属性字段。

dede增加商品属性
(图片来源网络,侵删)

第二步:在模型中添加自定义字段

  1. 在后台菜单中,找到 【核心】 -> 【频道模型】 -> 【自定义字段管理】

  2. 在页面顶部,选择你刚刚创建的模型:“商品属性模型”。

  3. 点击右上角的 【新增字段】 按钮。

  4. 开始添加你的第一个属性,颜色”:

    dede增加商品属性
    (图片来源网络,侵删)
    • 字段名称color (必须为英文,由字母、数字、下划线组成)。
    • 字段提示文字商品颜色 (在前台发布内容时,这里会作为提示文字)。
    • 字段类型:选择 “单行文本”,如果颜色是固定的选项(如红、蓝、绿),选择 “下拉列表”“单选框” 更好。
    • 默认值:可以留空,或填写一个默认值,如“黑色”。
    • 字段大小:输入框的长度,如 20
    • 是否为必填项:根据需要勾选。
    • 前台显示:选择“”。
    • 前台投稿显示:选择“”。
    • 数据校验:可以设置正则表达式,例如颜色校验 ^[a-zA-Z0-9\u4e00-\u9fa5]+$
    • 会员投稿:根据需要设置。
  5. 点击 【保存】 按钮。

  6. 重复第3-5步,添加其他属性,

    • 字段名称size字段提示文字商品尺寸字段类型:下拉列表(选项:S, M, L, XL)。
    • 字段名称material字段提示文字商品材质字段类型:单行文本。

添加完所有需要的字段后,你的“商品属性模型”就准备好了。

第三步:将模型应用到商品栏目

  1. 在后台菜单中,找到 【核心】 -> 【栏目管理】
  2. 找到你的“商品”栏目(或者你希望添加属性的栏目),点击其后面的 【修改】 按钮。
  3. 在栏目修改页面,找到 “高级选项”模型” 相关的选项卡。
  4. 模型” 的下拉列表中,选择你刚刚创建的 “商品属性模型”
  5. 点击 【确定】 保存。

重要提示:这个操作不会修改已有文章的字段,只对新发布的文章生效,如果你想让旧文章也有这些字段,需要手动去旧文章里编辑并填写。

第四步:在前台模板中调用和显示属性

你可以在商品详情页和列表页的模板文件中,使用 DedeCMS 的标签来调用这些自定义字段。

在商品详情页 (article_articledit.htm) 中显示

在详情页模板中,你可以使用 {dede:field.字段名/} 来直接调用。

<!DOCTYPE html>
<html>
<head>{dede:field.title/}</title>
</head>
<body>
    <h1>{dede:field.title/}</h1>
    <p>价格:{dede:field.price/}</p> <!-- 假设 price 是系统自带的字段 -->
    <!-- 新增的商品属性 -->
    <div class="product-attributes">
        <h2>商品属性</h2>
        <p><strong>颜色:</strong> {dede:field.color/}</p>
        <p><strong>尺寸:</strong> {dede:field.size/}</p>
        <p><strong>材质:</strong> {dede:field.material/}</p>
    </div>
    <div>
        {dede:field.body/} <!-- 商品正文内容 -->
    </div>
</body>
</html>

在商品列表页 (list_article.htm) 中显示

在列表页,通常循环使用 {dede:list} 标签,在循环内部调用字段。

<!DOCTYPE html>
<html>
<head>{dede:global.cfg_webname/}</title>
</head>
<body>
    <h1>商品列表</h1>
    <ul>
        {dede:list pagesize='10'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
            <!-- 显示部分属性,例如颜色和尺寸 -->
            <p>颜色: [field:color/] | 尺寸: [field:size/]</p>
            <p>价格: [field:price/]</p>
        </li>
        {/dede:list}
    </ul>
    <!-- 分页 -->
    {dede:pagelist listsize='4'/}
</body>
</html>

更灵活的调用方式:使用 array

你可能想把所有属性整齐地列出来,并且不确定具体有哪些字段,这时可以使用 {dede:field name='array'} 来获取所有自定义字段,然后循环输出。

在详情页 (article_articledit.htm) 中使用:

<div class="product-attributes">
    <h2>商品属性</h2>
    <ul>
        {dede:field name='array' runphp='yes'}
            @me = '';
            if (is_array(@me)) {
                foreach (@me as $key => $value) {
                    // 排除系统自带的一些字段,只显示我们自定义的
                    if (!in_array($key, array('id', 'typeid', 'title', 'shorttitle', 'ismake', 'channel', 'arcrank', 'click', 'money', 'litpic', 'pubdate', 'senddate', 'mid', 'userip'))) {
                        @me .= "<li><strong>" . $key . ":</strong> " . $value . "</li>";
                    }
                }
            }
        {/dede:field}
    </ul>
</div>

总结与注意事项

  • 模型与栏目绑定:自定义字段必须先创建模型,然后将模型应用到栏目,新文章才会有这些字段。
  • 字段名称:调用时 {dede:field.字段名/} 中的“字段名”是你在“新增字段”时填写的英文字段名,而不是“字段提示文字”。
  • 对旧文章无效:修改栏目模型后,只对之后发布的新文章生效,旧文章需要手动进入编辑页面,保存一次,才会添加这些新字段到数据库。
  • 性能考虑:如果属性非常多,或者列表页调用的属性很复杂,可能会对网站性能产生轻微影响,但一般情况下影响不大。
  • SEO:这些自定义属性也可以用于生成关键词,有利于SEO优化。

通过以上步骤,你就可以成功地为 DedeCMS 的商品增加各种自定义属性了。

-- 展开阅读全文 --
头像
零基础学C语言PDF适合初学者吗?
« 上一篇 04-28
哪里能下载到靠谱的C语言自学视频教程?
下一篇 » 04-28

相关文章

取消
微信二维码
支付宝二维码