织梦cms怎么增加栏目图片

来源:undefined 2024-12-23 08:09:21 1010

织梦cms增加栏目图片的方法:1、把要添加栏目图片字段取名为“typeimg”,执行代码为“alter table dede_arctype add typeimg varchar(100)”;2、修改“catelog_add.php”和“catelog_edit.php”文件内容;3、使用channel标签调用栏目,然后获取当前栏目的最顶级的栏目图片即可。

本教程操作环境:Windows10系统、DedeCMS 5.7版、Dell G3电脑。

织梦cms怎么增加栏目图片?

dedecms(织梦CMS)后台添加栏目图片的代码方法

网上的方法虽然对,但有一些细节没处理好,很多新手都会遇到问题。接下来我来总结一下吧。

第一步、首先我们把要添加栏目图片字段我这里取字段名为typeimg,您可以在后台添加代码,执行代码,操作如下:

“系统->SQL命令工具” , 插入sql语句

alter table dede_arctype add typeimg varchar(100)

第二步:进入后台管理文件目录(默认为:dede目录),找到”catelog_add.php“下有几处要修改的。

1.找到$queryTemplate(大概65行左右)

我改的代码如下:

1

2

3

4

$queryTemplate = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype,

tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`,`typeimg`)

VALUES(~reid~,~topid~,~rank~,~typename~,~typedir~,$isdefault,$defaultname,$issend,$channeltype,

$tempindex,$templist,$temparticle,default,$namerule,$namerule2,0,0,,,~typename~,0,,,0,0,0,,,~typeimg~)";

登录后复制

2.找到 $in_query(227行左右)

修改整个$in_query

1

2

3

4

5

6

$in_query = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype,

tempindex,templist,temparticle,modname,namerule,namerule2,

ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`,`typeimg`)

VALUES($reid,$topid,$sortrank,$typename,$typedir,$isdefault,$defaultname,$issend,$channeltype,

$tempindex,$templist,$temparticle,default,$namerule,$namerule2,

$ispart,$corank,$description,$keywords,$seotitle,$moresite,$siteurl,$sitepath,$ishidden,$cross,$crossid,$content,$smalltypes,$typeimg)";

登录后复制

其实没什么难的,新手可以复制粘贴,老手可以自行修改,就是在语句中添加一个typeimg字段而已。

第三步:同样的方法,找到”catelog_edit.php“下$upquery(38行左右)

修改代码如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

$upquery = "UPDATE `#@__arctype` SET

issend=$issend,

sortrank=$sortrank,

typename=$typename,

typedir=$typedir,

isdefault=$isdefault,

defaultname=$defaultname,

issend=$issend,

ishidden=$ishidden,

channeltype=$channeltype,

tempindex=$tempindex,

templist=$templist,

temparticle=$temparticle,

namerule=$namerule,

namerule2=$namerule2,

ispart=$ispart,

corank=$corank,

description=$description,

keywords=$keywords,

seotitle=$seotitle,

moresite=$moresite,

`cross`=$cross,

`content`=$content,

`crossid`=$crossid,

`typeimg`=$typeimg,

`smalltypes`=$smalltypes     $uptopsql

WHERE id=$id ";

登录后复制

第四步:进入后台管理文件目录(默认为:dede目录)/templets/ 下的 “catalog_add.htm 和 catalog_edit.htm" 文件,在间加入下面代码:

1

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

登录后复制

catalog_add.htm 中加入如下代码

1

2

3

4

5

6

7

8

<!--加入栏目-->

<tr>

<td>栏目图片:</td>

<td>

<input><input>

</td>

<input>

</tr>

登录后复制

catalog_edit.htm中加入如下代码

1

2

3

4

5

6

7

8

9

<!--加入栏目-->

<tr>

<td>栏目图片:</td>

<td>

<input>" /&gt;

<input>

</td>

<input>

</tr>

登录后复制

注意:这二个文件的代码不一样,要分别加入。

第五步:如果使用通边 channel 标签调用栏目,所以要对/include/taglib/channel.lib.php文件进行更改,找到如下代码进行替换

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

if($type==top)

{

$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg

From `#@__arctype` WHERE reid=0 And ishidden1 order by sortrank asc limit 0, $line ";

}

else if($type==son)

{

if($typeid==0) return ;

$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg

From `#@__arctype` WHERE reid=$typeid And ishidden1 order by sortrank asc limit 0, $line ";

}

else if($type==self)

{

if($reid==0) return ;

$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg

FROM `#@__arctype` WHERE reid=$reid And ishidden1 order by sortrank asc limit 0, $line ";

}

登录后复制

其实就是在sql语句里面添加了typeimg字段。

第六步,就是在前台调用了

1

{dede:channel type=self typeid=15 row=8 currentstyle="<li><a href=~typelink~ class=thisclass>~typename~</a> </li>"}<li><a href=[field:typelink/]>[field:typename/]</a> <img  src=[field:typeimg/] / alt="织梦cms怎么增加栏目图片" ></li>{/dede:channel}

登录后复制

以上这段代码是网上的,我要的不是这样的效果,我要是获取当前栏目的最顶级的栏目图片

我用二种方法来解决这个问题:

本人测试有效

第一种:

修改文件include/helpers/extend.helper.php

找到gettoptype函数,在里面增加如下代码,目的是获取栏目图片

1

2

3

//增加栏目图片

$toptypeimg=$row[typeimg];

if($action="images") return $toptypeimg;

登录后复制

前台调用方法:

1

<img  src="{dede:field.typeid function=gettoptype(@me,images)/}" alt="织梦cms怎么增加栏目图片" >

登录后复制

这样就可以调用了。完美!!

第二种方法:

修改文件include/common.func.php

在最后增加一个函数就行了,如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

//获取顶级栏目的栏目图片 李国平更新于2021.3.11

function GetTopTypeimg($id)

{

global $dsql;  

$row = $dsql-&gt;GetOne("SELECT typeimg,topid FROM dede_arctype WHERE id= $id");

if ($row[topid] == 0) 

return $row[typeimg];  

else 

$row1 = $dsql-&gt;GetOne("SELECT typeimg FROM dede_arctype WHERE id= $row[topid]"); 

return $row1[typeimg]; 

}

登录后复制

前台调用方法为:

1

<img  src="{dede:field name=typeid function="GetTopTypeimg(@me)" /}" alt="织梦cms怎么增加栏目图片" >

登录后复制

这样也可以调用了。完美!!

推荐学习:dedecms教程

以上就是织梦cms怎么增加栏目图片的详细内容,更多请关注php中文网其它相关文章!

最新文章