我的编程空间,编程开发者的网络收藏夹
学习永远不晚
位置:首页-资讯-开源

dedecms专题模板应用分析及解决方案

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

dedecms专题模板应用分析及解决方案

无柰只有靠自己动手丰衣足食;在官方的版本上有这样的一段话:

1、文章列表用ID1,ID2,ID3这样形式分开,系统会自动排除不同节点的相同文章;

2、关于单条记录模板里的[field:fieldname /]标记的使用,请参考关于系统帮助关于 arclist 标记的说明;

3、节点ID是节点的唯一标识,允许在专题模板中用{dede:specnote id='标识'/}这样来表示单个节点。

4、正常的情况下,每个节点显示的是“节点文章列表”里的文档,如果你指定为“自动获取模式”,那么必须指定关键字和栏目ID。

可是经测试{dede:specnote id='标识'/}这个并没有升效;因此开始解决这个,以替换掉原来比较死板{dede:field name='note'/}标签;

举例说明:

我要分两栏显示不同节点的文章,目前用"note"就不能实现,只能是同一节点分栏,难免就显得有些捌扭,不够灵活。

下面我就把自己解决方案写下供同学们参考,首先得申明一点,只能是实现了功能,可算法不一定是最好的,因为我不太熟悉DEDECMS代码且没有认真的研究过,希望大家海涵!

步骤1:

文件位置:{include/inc_archives_view.php}


复制代码代码如下:

//广告标记

//-----------------------

else if($ctag->GetName()=="myad"){

$this->dtp->Assign($tagid,$this->PartView->GetMyAd($typeid,$ctag->GetAtt("name")));

}

// 专题标识

// by phpfans

else if($ctag->GetName()=="specnote"){

$this->dtp->Assign($tagid,$this->ChannelUnit->GetSpecList('',$this->ChannelUnit->specrule,$ctag->GetAtt("id")));

}

  介绍:{在广告标记下增加专题标识}这样专题文章列表页就可以识别specnote标签了

步骤2:

文件位置:{include/inc_channel_unit.php}

var $specrule;

//-------------

//php5构造函数

//-------------

介绍:增加了对$pecrule变量的定义

步骤3:

文件位置:{include/inc_channel_unit.php}


复制代码代码如下:

else if($ftype=="specialtopic"){

$this->specrule = $fvalue;

$fvalue = $this->GetSpecList($fname,$fvalue);

}

   介绍:这儿增加了$this->specrule = $fvalue;这句,以便获取addonspec表的note字段数据;

步骤4:

  文件位置:{include/inc_channel_unit.php}


复制代码代码如下:

//获得专题文章的列表

//--------------------------------

function GetSpecList($fname,$noteinfo,$noteid="")

{

if(!isset($GLOBALS['__SpGetArcList'])) require_once(dirname(__FILE__)."/inc/inc_fun_SpGetArcList.php");

if($noteinfo=="") return "";

$rvalue = "";

$tempStr = GetSysTemplets("channel/channel_spec_note.htm");

$dtp = new DedeTagParse(); </p> <p></p> <p>$dtp->LoadSource($noteinfo);

if(is_array($dtp->CTags))

{

foreach($dtp->CTags as $k=>$ctag){

$notename = $ctag->GetAtt("name");

if($noteid!="" && $ctag->GetAtt("noteid")!=$noteid){ continue; } //指定名称的专题节点

if($noteid!="" && $ctag->GetAtt("noteid")===$noteid) {

$isauto = $ctag->GetAtt("isauto");

$idlist = trim($ctag->GetAtt("idlist"));

$rownum = trim($ctag->GetAtt("rownum"));

if(empty($rownum)) $rownum = 40;

$keywords = "";

$stypeid = 0;</p> <p>if($isauto==1){

$idlist = "";

$keywords = trim($ctag->GetAtt("keywords"));

$stypeid = $ctag->GetAtt("typeid");

}</p> <p>if(trim($ctag->GetInnerText())!="") $listTemplet = $ctag->GetInnerText();

else $listTemplet = GetSysTemplets("spec_arclist.htm");

$idvalue = SpGetArcList($this->dsql,

$stypeid,$rownum,$ctag->GetAtt("col"),

$ctag->GetAtt("titlelen"),$ctag->GetAtt("infolen"),

$ctag->GetAtt("imgwidth"),$ctag->GetAtt("imgheight"),

"all","default",$keywords,$listTemplet,100,0,$idlist);</p> <p>$notestr = str_replace("~notename~",$notename,$tempStr);

$notestr = str_replace("~spec_arclist~",$idvalue,$notestr);

$rvalue .= $notestr;

if($noteid!="" && $ctag->GetAtt("noteid")==$noteid){ break; }

}

}

}

$dtp->Clear();

return $rvalue;

}

介绍:有些小改动,自己对比一下就清楚了,这儿就不再哆嗦了

步骤5:

说明: 原{dede:field name='note'/}标签失效了,如果要用的朋友请自行修改步骤四部份。。

很简单的;

完工!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

dedecms专题模板应用分析及解决方案

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

dedecms专题模板应用分析及解决方案

无柰只有靠自己动手丰衣足食;在官方的版本上有这样的一段话: 1、文章列表用ID1,ID2,ID3这样形式分开,系统会自动排除不同节点的相同文章;2、关于单条记录模板里的[field:fieldname /]标记的使用,请参考关于系统帮助关于
2022-06-12

软考案例分析题的通用答题方法!附2023软考案例分析题及答案解析

  案例分析的通用答题方法,这个适用于软考高级科目-信息系统项目管理师,也可用于软考中级科目-系统集成项目管理工程师。以下看法仅供参考,具体情况考题需要根据考题具体分析。  一、历年考试范围  首先,范围管理、进度管理、成本管理、质量管理,这4大管理都是历年考试的大头,所以全拿下这些对考试的通过有很大帮助。  另外,配
软考案例分析题的通用答题方法!附2023软考案例分析题及答案解析
2024-04-19

java应用cpu占用过高问题分析及解决方法

使用jstack分析java程序cpu占用率过高的问题1,使用jps查找出java进程的pid,如37072,使用top -p 14292 -H观察该进程中所有线程的CPU占用。[root@cp01-game-dudai-0100.cp01
2023-05-31

MySQL无法修改主键的问题分析及解决方案

MySQL无法修改主键是由于主键信息存储在数据字典中,一经设置不可更改。解决方案包括:创建新表、添加唯一索引、修改主键列或使用触发器。预防措施是仔细考虑主键选择,使其唯一、稳定且有效。
MySQL无法修改主键的问题分析及解决方案
2024-04-02

Oracle进程占用CPU100%的问题分析及解决方法

目录问题现象问题分析方法1方法2方法3解决方案问题现象linux环境,数据库CPU一直处于100%。业务系统运行很慢。Top命令结果如下:问题分析方法1根据上图中的oracle进程在操作系统对应的 PID号 : 如 6999,81
Oracle进程占用CPU100%的问题分析及解决方法
2024-08-22

Android应用中使用Fragment组件的一些问题及解决方案总结

Fragment的主要意义就是提供与Activity绑定的生命周期回调。 Fragment不一定要向Activity的视图层级中添加View. 当某个模块需要获得Activity的生命周期回调的时候,就可以考虑通过Fragment来实现.
2022-06-06

阿里云服务器越用越卡的原因分析及解决方案

随着科技的发展和互联网的普及,越来越多的企业和个人选择使用阿里云服务器。然而,一些用户反映,他们的阿里云服务器在使用一段时间后会变得越来越卡,影响了业务的正常运行。本文将探讨阿里云服务器越用越卡的原因,并提出相应的解决方案。原因分析:系统资源不足:如果阿里云服务器的硬件资源(如内存、CPU、硬盘等)不足以支持业务
阿里云服务器越用越卡的原因分析及解决方案
2023-12-14

Android中ListView异步加载图片错位、重复、闪烁问题分析及解决方案

Android ListView异步加载图片错位、重复、闪烁分析以及解决方案,具体问题分析以及解决方案请看下文。 我们在使用ListView异步加载图片的时候,在快速滑动或者网络不好的情况下,会出现图片错位、重复、闪烁等问题,其实这些问题总
2022-06-06

阿里云应用服务器购买失败原因分析与解决方案

本文将针对阿里云应用服务器购买失败的问题,进行深入分析,并提供有效的解决方案。阿里云作为全球领先的云计算服务提供商,其应用服务器是许多企业和开发者的选择,然而,购买过程中可能会遇到一些问题,如购买失败。本文将详细解析购买失败的原因,并提供相应的解决方案。购买失败的原因:1.账户余额不足:如果您账户余额不足,可能会
阿里云应用服务器购买失败原因分析与解决方案
2023-10-30

阿里云服务ECS开放端口不能用,原因分析及解决方案

在使用阿里云服务ECS时,可能会遇到开放端口不能用的问题,这可能是由于多种原因导致的,包括网络设置、安全设置、服务状态等。本篇文章将对此进行详细说明,并提供相应的解决方案。一、问题原因分析:网络设置:在ECS中,如果没有正确设置网络,可能会导致端口无法开放。例如,如果将网络设置为私有网络,那么外部的计算机将无法访
阿里云服务ECS开放端口不能用,原因分析及解决方案
2023-12-12

XP系统弹出Ravmond.exe应用程序错误的原因分析及解决方法

Ravmond.exe是XP系统中的一个进程,通常与Realtek音频驱动程序相关。当出现Ravmond.exe应用程序错误时,可能是由于以下几个原因导致:1. 音频驱动程序问题:Ravmond.exe可能与Realtek音频驱动程序有关,
2023-08-30

TDSQL | 在整个技术解决方案中HTAP对应的混合交易以及分析系统应该如何实现?

从主交易到传输,到插件式解决方案,每个厂商对HTAP的理解和实验方式都有自己的独到解法,在未来整个数据解决方案当中都会往HTAP中去牵引。那么在整个技术解决方案中HTAP对应的混合交易以及分析系统应该如何实现?本文是腾讯云数据库总经理林晓斌先生在《DTCC 2
TDSQL | 在整个技术解决方案中HTAP对应的混合交易以及分析系统应该如何实现?
2021-03-26

利用MongoDB技术开发中遇到的数据验证问题的解决方案分析

利用MongoDB技术开发中遇到的数据验证问题的解决方案分析在开发过程中,数据的完整性和准确性是至关重要的。而在利用MongoDB进行开发时,数据验证问题成为一个值得注意的方面。数据验证是指对存储在数据库中的数据进行规则检查,确保数据满足特
2023-10-22

VUE 路由动态加载的常见问题及解决方案:为您的应用保驾护航

Vue 路由动态加载是实现应用模块化和按需加载的常用技术,但它有时也会带来一些问题。本文将探讨常见的 Vue 路由动态加载问题及其解决方案,帮助您为应用保驾护航。
VUE 路由动态加载的常见问题及解决方案:为您的应用保驾护航
2024-02-08

win8磁盘占用100怎么办 win8磁盘占用率100%问题分析及解决方法

之前有不少Win8用户反馈,Win8磁盘使用率经常处于100%,之前也一直没有找到有效的解决办法。业界一直称Win8磁盘占用100是一个已知Wn8问题,我们只能等待微软更新来解决,并且不少朋友称Win8磁盘占用100很容易损耗固态硬盘,因此
2022-06-04

互联网中的商品超卖问题及其解决方案:Java中Redis结合UUID的应用

前言 在设计商品下单和库存扣减,你一定遇到过这样的问题,库存扣减为0了,可是消费者还能下单,并将订单信息保存到了数据库里,针对商品超卖问题,作此篇以解决。 随着互联网商业的飞速发展,商品超卖问题逐渐凸显为电商平台面临的一大挑战。尤其是在大型
互联网中的商品超卖问题及其解决方案:Java中Redis结合UUID的应用
2023-12-23

编程热搜

  • wordpress错位如何解决
    这篇文章主要介绍“wordpress错位如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“wordpress错位如何解决”文章能帮助大家解决问题。wordpress
    wordpress错位如何解决
  • 帝国cms调用栏目别名的修改步骤
    请留意下面的修改方法 修改后栏目别名使用 !--bname--] 调用 打开e/class/t_functions.php搜索定位到带模板的栏目导航标签修改1复制代码代码如下://替换变量$bclassname=$class_r[$clas
    帝国cms调用栏目别名的修改步骤
  • 动易Cms MAC验证视图失败的解决方法
    “/”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 验证视图状态 MAC
    动易Cms  MAC验证视图失败的解决方法
  • DEDECMS如何支持中文水印
    DEDECMS如何支持中文水印?修改/include/inc_photograph.php,在165行处加这行代码:$w_text = iconv("GB2312","UTF-8",$w_text);OK,现在可以用中文做水印了,但默认的字体大小是5,中文字体
    DEDECMS如何支持中文水印
  • 快速了解Discuz!程序文件功能
    相信有不少人热衷于基于修改原有系统文件所做的插件,当然了解程序文件功能是最重要的,下面我把Discuz! X2.0主要的程序文件功能说一下。Tips:Q:针对说明的文件是?A:我只基于原版文件对upload目录中基本的程序文件(php,ht
    快速了解Discuz!程序文件功能
  • DedeCMS编辑器fck更换成eWebEditor编辑器具体步骤
    将eWebEditor编辑器插入DEDE后台的效果: 完全Word在线编辑的功能,让你从此摆脱发可编辑器卡得死,进入流畅干净编辑界面新时代。 下面是具体步骤: 首先,你要知道eWebEditor是一个什么工具。 eWebEditor是由国
    DedeCMS编辑器fck更换成eWebEditor编辑器具体步骤
  • 允许 WordPress 上传任意文件的方法
    此时如果上传一个不在预定义编程客栈的安全扩展名列表,如.lrc,会报kAtKhHRl错: F编程客栈ile type does not meet security guidelines. Try another. 解决此问题有两方法: 在
    允许 WordPress 上传任意文件的方法
  • dedecms 软件下载模块中添加下载方式为迅雷下载联盟代码
    修改 /plus/download.php 文件 www.cppcns.com查找
    dedecms 软件下载模块中添加下载方式为迅雷下载联盟代码
  • dedecms网站tag标签全部静态化的解决方法
    更改tags.php文件在根目录 找到$tag = FilterSearch(urldecode($tag)); 替换为:$tag = urldecode($tag); 更改文件arc.taglist.class.php文件文件所在的路径是
    dedecms网站tag标签全部静态化的解决方法
  • 帝国CMS远程保存图片的方法
    本文实例讲述了帝国cms远程保存图片的方法。分享给大家供大家参考。 具体实现方法如下:复制代码代码如下:
    帝国CMS远程保存图片的方法

目录