如何在后台增加dedecms栏目图片字段并在前台实现调用

  dedecms默认是没有栏目图片功能的,为了便于灵活管理就给每个栏目增加一个栏目图片的功能,栏目图片是在代码中添加的固定图片,通过改造可以实现这个功能的,下面就随ytkah一起来试试吧

1. 首先,给栏目分类表`dede_arctype`表增加缩略图字段`typeimg`,用phpMyAdmin或其他数据库管理工具,直接在数据表中添加该字段,或者运行下面的SQL语句:

alter table `dede_arctype` add `typeimg` char(100) NOT NULL default '';

2. 修改页面,在表单中添加相应的字段,涉及到的页面有:

dede/catalog_add.php

dede/catalog_edit.php

dede/templets/catalog_add.htm

dede/templets/catalog_edit.htm

2.1 打开dede/templets/catalog_add.htm,查找

<tr>

    <td class='bline' height="26" ><font color='red'>栏目名称:</font></td>

    <td class='bline'><input name="typename" type="text" id="typename" size="30" class="iptxt" /></td>

</tr>

在其下面加上如下代码:

<tr>

    <td class='bline' height="26" ><font color='red'>栏目图片:</font></td>

    <td class='bline'>

        <input name="typeimg" type="text" id="typeimg" class="alltxt" value="" />

        <input type="button" name="set9" value="浏览... "class="coolbg np" onClick="SelectImage('form1.typeimg','');" />

    </td>

</tr>

并在<head></head>之间引入如下js:

<script language="javascript" src="js/main.js"></script>

2.2 打开dede/catalog_add.php页面,保存上传栏目图片的内容,查找

$queryTemplate = "INSERT INTO

(reid,topid,sortrank,typename

的后面添加  ,typeimg  字段,再找到

('~reid~','~topid~','~rank~','~typename~',

在其后面添加  ,’~typeimg~’  字段,接着查找

$in_query = "INSERT INTO

(reid,topid,sortrank,typename

后面同样添加  ,typeimg  字段,并在

('$reid','$topid','$sortrank','$typename'

后面添加  ,’$typeimg’  字段。

2.3 打开dede/templets/catalog_edit.htm页面,查找

<tr>

    <td class='bline' height="26" ><font color='red'>栏目名称:</font></td>

    <td class='bline'><input name="typename" type="text" id="typename" size="30" value="<?php echo $myrow['typename']?>" class="iptxt" /></td>

</tr>

在其下面添加:

<tr>

    <td class='bline' height="26" ><font color='red'>栏目图片:</font></td>

    <td class='bline'>

        <input name="typeimg" type="text" id="typeimg" class="alltxt" value="<?php echo $myrow['typeimg']?>" />

        <input type="button" name="set9" value="浏览... "class="coolbg np" onClick="SelectImage('form1.typeimg','');" />

    </td>

</tr>

并在<head></head>之间引入下面的js文件

<script language='javascript' src="js/main.js"></script>

2.4 打开dede/catalog_edit.php,查找

$upquery = "UPDATE `#@__arctype` SET

typename='$typename',

的后面添加

 typeimg='$typeimg',

然后保存。

前台调用:<img src="{dede:field name='typeimg'/}" width="100%"  border="0"  >如果要使用<img src='[field:typeimg/]'/>调用我们必须找到了栏目的标签页面  /include/taglib/channel.lib.php,发现了下面的一段代码(第137行):

$linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr);

$linkOkstr = str_replace("~id~",$row['id'],$linkOkstr);

$linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);

$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);

在下面添加:$linkOkstr = str_replace("~typeimg~",$row['typeimg'],$linkOkstr);这时,我们再到后台重新生成一下列表页面,刷新列表页试试,当前栏目的栏目图片也出来了呢~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏魏琼东

一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中的委托与应用

上文回顾       上一篇文章基于AgileEAS.NET平台基础类库进行应用开发-使用UDA操纵SQL语句一文中演示如何使用UDA进行常规的业务进行操作,我...

1846
来自专栏跟着阿笨一起玩NET

SQL Server数据库row_number() over() 来自动产生行号

本文我们主要介绍了SQL Server数据库用row_number() over() 来自动产生行号的一系列的操作,希望本次的介绍能够对您有所帮助。

441
来自专栏张善友的专栏

ASP.NET 4 AppFabric 输出缓存提供程序

缓存是用来保存你数据的地方,从而使你的应用程序访问更快速。缓存可以根据你的需要分配到许多台机器上,而开发人员无需关心数据究竟在哪台机器上。为了获得超快的性能,你...

1819
来自专栏杨建荣的学习笔记

多行数据的批处理之bulk collect(r3笔记第16天)

在写pl/sql的时候,很多时候都会用比较经典的模式,定义一个游标cursor,然后循环从游标中取值进行处理。 类似下面的格式 declare cursor ...

2774
来自专栏码神联盟

缓存 | redis和memecache的异同以及应用场景

缓存就是数据交换的缓冲区Cache。当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存...

3399
来自专栏青枫的专栏

如何通过java程序来实现多线程的程序呢?

542
来自专栏服务端技术杂谈

高性能与调优

814
来自专栏Jerry的SAP技术分享

还在用SELECT COUNT统计数据库表的行数?Out了

在ABAP里我们如果想用代码获得一个数据库表里有多少条记录,常规做法是使用SELECT COUNT。

3123
来自专栏Jerry的SAP技术分享

使用jMeter构造大量并发的随机HTTP请求

在前一篇文章使用jMeter构造大量并发HTTP请求进行微服务性能测试里,我介绍了如何用jMeter构造并发HTTP请求。但是通过文中介绍的方式构造的并发请求,...

3713
来自专栏我是攻城师

Elasticsearch里面的segment合并

6865

扫码关注云+社区