dede友情链接类型ID如何显示?

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

核心概念:友情链接类型ID是什么?

在DedeCMS中,友情链接可以分类管理,你可以创建“网站合作”、“友情站点”、“资源推荐”等分类,每个分类都有一个唯一的数字ID,这就是“友情链接类型ID”。

dede友情链接类型ID显示
(图片来源网络,侵删)
  • 作用:用于区分和筛选不同类别的友情链接。
  • 存储位置:主要存储在数据库的 dede_flinktype 表中,而具体的链接信息存储在 dede_flink 表中,并通过 typeid 字段与类型表关联。

在后台查看友情链接类型ID

这是最直接、最常用的方法,当你需要知道某个分类的具体ID时,可以按照以下步骤操作:

  1. 登录织梦后台:使用你的管理员账号登录DedeCMS后台。
  2. 进入友情链接管理:在左侧菜单栏中,找到并点击 【核心】 -> 【友情链接】
  3. 查看类型管理:在友情链接管理页面,你会看到顶部有 【增加类型】【链接管理】 等选项卡,点击 【增加类型】(或者如果已经有类型,直接查看列表)。
  4. 定位ID
    • 如果你点击 【增加类型】,在弹出的表单中,通常会有一个 “类型ID” 字段,这个字段是自动生成的,你可以直接看到它的值。
    • 如果你已经有多个类型,可以在 【链接管理】 页面的顶部,点击一个下拉菜单(通常默认显示“所有类型”),在下拉列表中,每个类型名称前面通常就会显示其对应的ID数字。“1 - 网站合作”、“2 - 友情站点”。

后台管理界面是获取类型ID最便捷的方式。


在前台模板中显示友情链接类型ID

默认情况下,DedeCMS的前台模板是不显示友情链接类型ID的,因为这对普通访客没有意义,但如果你有特殊需求(比如调试或特定布局),可以通过修改模板文件来实现。

方法1:修改官方标签 flink

官方的友情链接调用标签是 {dede:flink},它本身不提供直接输出类型ID的属性,你需要通过修改 include/taglib/flink.lib.php 文件来增加这个功能。

dede友情链接类型ID显示
(图片来源网络,侵删)

操作步骤:

  1. 打开文件:使用FTP或文件管理器,打开 /include/taglib/flink.lib.php 文件。

  2. 找到代码段:在文件中找到处理 typeid 属性的代码段,通常在 else if($type=='textall') 附近,你会看到类似 $typeids = explode(',', $typeid); 的代码。

  3. 修改代码:在循环 foreach($db->GetAll("SELECT * FROMdede_flinkWHERE typeid='$typeid' ORDER BY id DESC") as $row) 内部,将类型ID信息添加到 $row 数组中,最简单的方法是直接给 $row 增加一个字段,typeid_show

    dede友情链接类型ID显示
    (图片来源网络,侵删)

    foreach 循环内部,$row 数组被赋值之后,添加以下代码:

    // 将当前typeid值添加到行数据中,方便在模板中调用
    $row['typeid_show'] = $typeid;

    修改后的代码片段可能看起来像这样:

    // ... 前面的代码 ...
    foreach($db->GetAll("SELECT * FROM `dede_flink` WHERE typeid='$typeid' ORDER BY id DESC") as $row)
    {
        // 添加这一行,将typeid暴露给模板
        $row['typeid_show'] = $typeid;
        $row['webname'] = htmlspecialchars($row['webname']);
        // ... 后面的代码 ...
    }
    // ... 后面的代码 ...
  4. 在模板中使用:你可以在你的模板文件(如 footer.htm)中这样调用:

    {dede:flink type='textall' row='10' typeid='1'}
        <li>
            <!-- 显示链接名称和URL -->
            <a href="[field:url/]" target="_blank">[field:webname/]</a>
            <!-- 新增:显示该链接所属的类型ID -->
            <span class="typeid">类型ID: [field:typeid_show/]</span>
        </li>
    {/dede:flink}

注意:这是一种“二次开发”或“修改核心文件”的方式,在升级DedeCMS时,这些修改可能会被覆盖,请谨慎操作,并建议提前备份文件。


通过二次开发(PHP代码)获取类型ID

如果你是在开发一个自定义的PHP文件或插件中需要获取友情链接类型ID,你可以直接操作数据库。

获取所有友情链接类型及其ID

<?php
// 引入数据库配置文件,根据你的实际路径调整
// require_once(dirname(__FILE__)."/../include/config_base.php");
// 初始化数据库连接(如果你的环境没有全局连接,需要手动连接)
$dsql = new DedeSql(false);
// 查询所有类型
$dsql->SetQuery("SELECT id, typename FROM `#@__flinktype` ORDER BY id ASC");
$dsql->Execute();
echo "<h2>所有友情链接类型</h2>";
echo "<ul>";
while ($row = $dsql->GetArray()) {
    // $row['id'] 就是类型ID
    // $row['typename'] 是类型名称
    echo "<li>类型ID: " . $row['id'] . " - 类型名称: " . $row['typename'] . "</li>";
}
echo "</ul>";
// 释放连接
$dsql->Close();
?>

根据类型ID获取该分类下的所有友情链接

<?php
// 假设你要获取类型ID为 1 的所有链接
$targetTypeId = 1;
// 初始化数据库连接
$dsql = new DedeSql(false);
// 查询特定类型下的链接
$dsql->SetQuery("SELECT id, webname, url FROM `#@__flink` WHERE typeid = '$targetTypeId' ORDER BY id DESC");
$dsql->Execute();
echo "<h2>类型ID为 $targetTypeId 的友情链接</h2>";
echo "<ul>";
while ($row = $dsql->GetArray()) {
    // $row['id'] 是链接ID
    // $row['webname'] 是链接名称
    // $row['url'] 是链接地址
    echo "<li><a href='" . $row['url'] . "' target='_blank'>" . $row['webname'] . "</a></li>";
}
echo "</ul>";
// 释放连接
$dsql->Close();
?>

总结与建议

场景 推荐方法 优点 缺点
后台查看 在后台“友情链接” -> “增加类型”或下拉列表中直接查看。 简单、快速、无需修改任何文件。 无法在前台展示。
前台显示 修改 include/taglib/flink.lib.php 文件,给 $row 数组增加 typeid_show 字段,然后在模板中调用。 灵活,可以自定义前台展示效果。 修改核心文件,升级时可能丢失,有一定风险。
二次开发 直接使用PHP代码查询 dede_flinktypedede_flink 数据表。 功能强大,适合复杂的逻辑处理。 需要一定的PHP和数据库知识。

对于绝大多数用户来说,只需要在后台查看类型ID即可,如果你有特殊的前台展示需求,请务必先备份文件再尝试修改 flink.lib.php

-- 展开阅读全文 --
头像
函数返回值类型由什么决定?
« 上一篇 01-15
C语言从入门到精通PDF真的能让你精通吗?
下一篇 » 01-15

相关文章

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

目录[+]