dede 软件大小标签

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

使用系统内置的 field 标签(最推荐、最简单)

DedeCMS 的文章模型(软件模型)中,有一个默认的字段叫做 filesize(文件大小),我们直接调用这个字段即可。

dede 软件大小标签
(图片来源网络,侵删)

适用场景:

  • (article_article.htm)
  • 软件列表页 (list_article.htm)

页显示文件大小

article_article.htm 模板文件中,您可以在需要显示文件大小的位置(例如下载按钮旁边)加入以下代码:

[field:filesize/]

示例: 假设您的下载按钮是这样的:

<a href="[field:link/]" target="_blank" class="downbtn">点击下载</a>

您可以修改为:

dede 软件大小标签
(图片来源网络,侵删)
<a href="[field:link/]" target="_blank" class="downbtn">点击下载</a>
<span class="file-size">([field:filesize/])</span>

然后您可以在 CSS 文件中添加样式,让显示更美观:

.file-size {
    font-size: 12px;
    color: #666;
    margin-left: 10px;
}

在软件列表页显示文件大小

list_article.htm 模板文件中,同样可以使用 field 标签来调用列表项中的 filesize 字段。

示例: 假设您的列表项循环代码是:

{dede:list pagesize='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:list}
```或日期后面加上文件大小:
```html
{dede:list pagesize='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span class="list-meta">
            [field:pubdate function="MyDate('Y-m-d',@me)"/] | 
            大小:[field:filesize/]
        </span>
    </li>
{/dede:list}

对应的 CSS 样式:

dede 软件大小标签
(图片来源网络,侵删)
.list-meta {
    font-size: 12px;
    color: #999;
    float: right;
}

使用自定义字段(更灵活、功能更强大)

如果您发现 filesize 字段不满足需求(您需要单位自动转换、或者想自定义字段名),或者您的软件模型里根本没有这个字段,那么使用自定义字段是最佳选择。

步骤 1:添加自定义字段

  1. 登录 DedeCMS 后台。
  2. 进入 [核心] -> 模型管理]
  3. 找到并点击您正在使用的 [软件模型](通常是“软件”或您自定义的名称)。
  4. 在模型管理页面,点击 [字段管理] -> [添加新字段]
  5. 在添加字段页面,填写以下信息:
    • 字段名file_size (建议使用英文,不能有特殊字符)
    • 字段类型单行文本
    • 字段提示软件大小 (这个会在后台发布文章时显示)
    • 前台显示 (勾选)
    • 其他选项:可以根据需要设置,比如是否为必填项等。
  6. 点击 [保存],系统会提示成功,并可能需要你进行“更新系统缓存”和“重新生成HTML”操作,按照提示操作即可。

步骤 2:在后台发布文章时填写大小

去发布一篇新的软件文章,在编辑页面的下方,您会看到一个新添加的“软件大小”输入框,在这里填入文件大小,5MB1024KB

步骤 3:在模板中调用自定义字段

调用自定义字段和方法一完全一样,只是把 filesize 换成您自定义的字段名 file_size。 页 (article_article.htm):**

[field:file_size/]

在列表页 (list_article.htm):

[field:file_size/]

使用辅助函数实现单位自动转换(高级用法)

用户输入的大小是 1024(单位是 KB),或者 1048576(单位是 B),我们希望前台能自动显示为 1MB,这样更直观,这可以通过编写一个自定义函数来实现。

步骤 1:创建自定义函数文件

  1. 在您的 DedeCMS 根目录下找到 include/helpers/ 文件夹。
  2. 新建一个名为 extend.helper.php 的文件(如果已存在则无需新建)。
  3. extend.helper.php 文件中,添加以下 PHP 函数代码:
<?php
if(!defined('DEDEINC')) exit('Request Error!');
/**
 * 格式化文件大小,自动转换单位
 * @param int $filesize 文件大小,单位为字节
 * @return string 格式化后的大小,如 1.5MB
 */
function GetFileSize($filesize)
{
    if ($filesize >= 1073741824) {
        $filesize = round($filesize / 1073741824 * 100) / 100 . ' GB';
    } elseif ($filesize >= 1048576) {
        $filesize = round($filesize / 1048576 * 100) / 100 . ' MB';
    } elseif ($filesize >= 1024) {
        $filesize = round($filesize / 1024 * 100) / 100 . ' KB';
    } else {
        $filesize = $filesize . ' B';
    }
    return $filesize;
}
?>

步骤 2:修改模型和模板

  1. 修改模型:按照 方法二 的步骤,添加一个名为 file_size_b 的自定义字段,字段类型数字,并且让用户在后台输入字节数1048576)。
  2. 修改模板:在模板中调用这个新字段,并使用我们刚刚创建的函数。 页 (article_article.htm):**
    {dede:field.file_size_b function="GetFileSize(@me)"/}
  • dede:field.file_size_b 是调用自定义字段。
  • function="GetFileSize(@me)" 是核心,它会把当前字段的值 (@me) 作为参数传递给 GetFileSize 函数,并将函数的返回结果显示出来。

在列表页 (list_article.htm):

{dede:field.file_size_b function="GetFileSize(@me)"/}

这样,无论用户在后台输入多少字节,前台都会智能地转换为 KB, MBGB 单位。


总结与对比

方法 优点 缺点 适用场景
field 最简单、最直接,无需任何额外设置。 功能单一,只能显示用户输入的原样内容。 快速实现,对格式没有特殊要求时。
自定义字段 非常灵活,可以自定义字段名和提示信息,功能强大。 需要手动添加字段,多一步操作。 需要更个性化的字段,或原系统字段不满足需求时。
辅助函数 自动化、智能化,能实现单位自动转换,用户体验最好。 步骤较多,需要修改文件和了解PHP函数。 对软件大小显示格式有严格要求,追求专业性的网站。

对于大多数用户来说,方法一已经足够,如果您需要更精细的控制,方法二是首选,如果您想让网站显得更专业、更“智能”,那么方法三是最佳方案。

-- 展开阅读全文 --
头像
int main函数的返回值到底有什么用?
« 上一篇 今天
dede 文章列表分页
下一篇 » 今天

相关文章

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

目录[+]