Home CMS Tutorial DEDECMS How to get unlimited column subcategories in DEDECMS

How to get unlimited column subcategories in DEDECMS

Dec 19, 2019 am 09:34 AM
dedecms

How to get unlimited column subcategories in DEDECMS

How to get unlimited column subcategories in DEDECMS?

Most corporate websites use DEDECMS. When I was designing a website for a client today, after finishing the DEDE automatic internal linking and full URL spelling formats, I encountered a small problem because there are the most product categories. There are four levels. The customer requested that there be a pop-up menu on the left to call sub-categories at each level, but DEDECMS can only call the first-level category by default. After hard work, Baidu GOOGLE finally figured out this thing. I didn't dare to keep it to myself, so I sent it out to share with friends in need.

Recommended learning: Dream Weaver cms

First, modify the code of the /include/taglib/channerl.lib.php file to the following:

The code is as follows:

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

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

<?php

function lib_channel(&$ctag,&$refObj)

{

global $_sys_globals,$envs,$dsql;

$attlist = “typeid|0,reid|0,row|100,col|1,type|son,currentstyle|”;

FillAttsDefault($ctag->CAttribute->Items,$attlist);

extract($ctag->CAttribute->Items, EXTR_SKIP);

$innertext = $ctag->GetInnerText();

if(empty($typeid) && $envs[&#39;typeid&#39;]!=0)

{

$typeid = $envs[&#39;typeid&#39;];

$reid = $envs[&#39;reid&#39;];

}else{

$reid=0;

}

if($type==”||$type==’sun’) $type=”son”;

if($innertext==”) $innertext = GetSysTemplets(“channel_list.htm”);

if($reid==0 && $typeid>0)

{

$dbrow = $dsql->GetOne(“Select reid From ying_arctype where id=’$typeid’ “);

if(is_array($dbrow)) $reid = $dbrow[&#39;reid&#39;];

}

$likeType = ”;

if($type==’top’)

{

$sql = “Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description

From ying_arctype where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row”;

}

else if($type==”son”)

{

//if($_sys_globals[&#39;typeid&#39;]>0) $typeid = $_sys_globals[&#39;typeid&#39;];

if($typeid==0) {

return ”;

}

$sql = “Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description

From ying_arctype where reid=’$typeid’ And ishidden<>1 order by sortrank asc limit 0,$row”;

}

else if($type==”self”)

{

if($reid==0) {

return ”;

}

$sql = “Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description

From ‘ying_arctype’ where reid=’$reid’ And ishidden<>1 order by sortrank asc limit 0,$row”;

}

//And id<>’$typeid’

$dtp2 = new DedeTagParse();

$dtp2->SetNameSpace(“field”,”[","]“);

$dtp2->LoadSource($innertext);

$dsql2 = clone $dsql;

$dsql->SetQuery($sql);

$dsql->Execute();

$line = $row;

$GLOBALS[&#39;autoindex&#39;] = 0;

for($i=0;$i < $line;$i++)

{

if($col>1) $likeType .= “<dl>\r\n”;

for($j=0;$j<$col;$j++)

{

if($col>1) $likeType .= “<dd>\r\n”;

if($row=$dsql->GetArray())

{

if($type==’self’ && $row[&#39;id&#39;]==$typeid) //处理同级栏目中,当前栏目的样式

{

if($currentstyle!=”)

{

$linkOkstr = $currentstyle;

$row[&#39;typelink&#39;] = GetOneTypeUrlA($row);

$linkOkstr = str_replace(“~typelink~”,$row[&#39;typelink&#39;],$linkOkstr);

$linkOkstr = str_replace(“~typename~”,$row[&#39;typename&#39;],$linkOkstr);

$likeType .= $linkOkstr;

}

}else

{

$row[&#39;typelink&#39;] = $row[&#39;typeurl&#39;] = GetOneTypeUrlA($row);

if(is_array($dtp2->CTags))

{

foreach($dtp2->CTags as $tagid=>$ctag){

if(isset($row[$ctag->GetName()]))

{

$dtp2->Assign($tagid,$row[$ctag->GetName()]);

}

elseif (preg_match(‘/^sonchannel[0-9]*$/’,$ctag->GetName()))

{

$dtp2->Assign($tagid,lib_channel_son($ctag,$row[&#39;id&#39;],$dsql2));

}

}

}

$likeType .= $dtp2->GetResult();

}

}

if($col>1) $likeType .= “</dd>\r\n”;

$GLOBALS[&#39;autoindex&#39;]++;

}//Loop Col

if($col>1)

{

$i += $col – 1;

$likeType .= ” </dl>\r\n”;

}

}//Loop for $i

reset($dsql2);

$dsql->FreeResult();

return $likeType;

}

function lib_channel_son($ctag,$typeid = 0,$dsql2)

{

$attlist = “row|100,col|1,currentstyle|”;

FillAttsDefault($ctag->CAttribute->Items,$attlist);

extract($ctag->CAttribute->Items, EXTR_SKIP);

$innertext = $ctag->GetInnerText();

$dsql3 = clone $dsql2;

$likeType = ”;

//if($_sys_globals[&#39;typeid&#39;]>0) $typeid = $_sys_globals[&#39;typeid&#39;];

if($typeid==0) {

return ”;

}

$sql = “Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description

From ying_arctype where reid=’$typeid’ And ishidden<>1 order by sortrank asc limit 0,$row”;

//And id<>’$typeid’

$dtp2 = new DedeTagParse();

$dtp2->SetNameSpace(“field”,”[","]“);

$dtp2->LoadSource($innertext);

$dsql2->SetQuery($sql);

$dsql2->Execute();

$line = $row;

for($i=0;$i < $line;$i++)

{

if($col>1) $likeType .= “<dl>\r\n”;

for($j=0;$j<$col;$j++)

{

if($col>1) $likeType .= “<dd>\r\n”;

if($row=$dsql2->GetArray())

{

$row[&#39;typelink&#39;] = $row[&#39;typeurl&#39;] = GetOneTypeUrlA($row);

if(is_array($dtp2->CTags))

{

foreach($dtp2->CTags as $tagid=>$ctag){

if(isset($row[$ctag->GetName()]))

{

$dtp2->Assign($tagid,$row[$ctag->GetName()]);

}

elseif (preg_match(‘/^sonchannel[0-9]*$/’,$ctag->GetName()))

{

$dtp2->Assign($tagid,lib_channel_son($ctag,$row[&#39;id&#39;],$dsql3));

}

}

}

$likeType .= $dtp2->GetResult();

}

if($col>1) $likeType .= “</dd>\r\n”;

}//Loop Col

if($col>1)

{

$i += $col – 1;

$likeType .= ” </dl>\r\n”;

}

}//Loop for $i

reset($dsql3);

$dsql2->FreeResult();

return $likeType;

}

?>

Copy after login

Use [field:sonchannel0] [/field:sonchannel0] to call in the template. This is used to get the sub-column (using [sonchannel number] as the label name is to prevent embedding The tags cannot be parsed correctly when applied). The purpose of this is to facilitate you to select sub-columns when your column has many sub-columns with infinite levels. Let’s take an example:

The code is as follows:

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

28

29

<ul id="left_nav">

{dede:channel type=&#39;son&#39; typeid=&#39;16&#39;}

<li><a href="[field:typelink/]“>[field:typename/]</a>

<ul>

[field:sonchannel0]

<li><a href="[field:typelink/]“>[field:typename/]</a>

<ul>

[field:sonchannel1]

<li><a href="[field:typelink/]“>[field:typename/]</a>

<ul>

[field:sonchannel2]

<li><a href="[field:typelink/]“>[field:typename/]</a>

<ul>

[field:sonchannel3]

<li><a href="[field:typelink/]“>[field:typename/]</a></li>

[/field:sonchannel3]

</ul>

</li>

[/field:sonchannel2]

</ul>

</li>

[/field:sonchannel1]

</ul>

</li>

[/field:sonchannel0]

</ul>

</li>

{/dede:channel}

</ul>

Copy after login

Just change the number in the above typeid to the ID of your major category. Because I couldn’t find it in the DEDE official forum, I posted it here. I hope it can be helpful. Convenient and useful.

Note: Please make a backup before modifying the file in case of errors. Some quotation marks in the above code may be automatically converted to full-width. Please modify it to half-width, or you can ask Xiao Han to obtain the modified file.

The above is the detailed content of How to get unlimited column subcategories in DEDECMS. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Where is the imperial cms resource network template? Where is the imperial cms resource network template? Apr 17, 2024 am 10:00 AM

Empire CMS template download location: Official template download: https://www.phome.net/template/ Third-party template website: https://www.dedecms.com/diy/https://www.0978.com.cn /https://www.jiaocheng.com/Installation method: Download template Unzip template Upload template Select template

How dedecms implements template replacement How dedecms implements template replacement Apr 16, 2024 pm 12:12 PM

Template replacement can be implemented in Dedecms through the following steps: modify the global.cfg file and set the required language pack. Modify the taglib.inc.php hook file and add support for language suffix template files. Create a new template file with a language suffix and modify the required content. Clear Dedecms cache.

How to upload local videos to dedecms How to upload local videos to dedecms Apr 16, 2024 pm 12:39 PM

How to upload local videos using Dedecms? Prepare the video file in a format that is supported by Dedecms. Log in to the Dedecms management backend and create a new video category. Upload video files on the video management page, fill in the relevant information and select the video category. To embed a video while editing an article, enter the file name of the uploaded video and adjust its dimensions.

What website can dedecms do? What website can dedecms do? Apr 16, 2024 pm 12:24 PM

Dedecms is an open source CMS that can be used to create various types of websites, including: news websites, blogs, e-commerce websites, forums and community websites, educational websites, portals, other types of websites (such as corporate websites, personal websites, photo album websites, video sharing website)

How to use dedecms How to use dedecms Apr 16, 2024 pm 12:15 PM

Dedecms is an open source Chinese CMS system that provides content management, template system and security protection. The specific usage includes the following steps: 1. Install Dedecms. 2. Configure the database. 3. Log in to the management interface. 4. Create content. 5. Set up the template. 6. Manage users. 7. Maintain the system.

What loopholes does dedecms have? What loopholes does dedecms have? Aug 03, 2023 pm 03:56 PM

DedeCMS is an open source content management system that has some potential vulnerabilities and security risks: 1. SQL injection vulnerability. Attackers can perform unauthorized operations or obtain sensitive data by constructing malicious SQL query statements; 2. File Upload vulnerability, attackers can upload files containing malicious code to the server to execute arbitrary code or obtain server permissions; 3. Sensitive information leakage; 4. Unauthenticated vulnerability exploitation.

Accurate and reliable dedecms conversion tool evaluation report Accurate and reliable dedecms conversion tool evaluation report Mar 12, 2024 pm 07:03 PM

Accurate and reliable dedecms conversion tool evaluation report With the rapid development of the Internet era, website construction has become one of the necessary tools for many companies and individuals. In website construction, using a content management system (CMS) can manage website content and functions more conveniently and efficiently. Among them, dedecms, as a well-known CMS system, is widely used in various website construction projects. However, sometimes we are faced with the need to convert the dedecms website to other formats, in which case we need to use a conversion tool

A simple way to learn dedecms encoding conversion function A simple way to learn dedecms encoding conversion function Mar 14, 2024 pm 02:09 PM

Learning dedecms encoding conversion function is not complicated. Simple code examples can help you quickly master this skill. In dedecms, the encoding conversion function is usually used to deal with problems such as Chinese garbled characters and special characters to ensure the normal operation of the system and the accuracy of data. The following will introduce in detail how to use the encoding conversion function of dedecms, allowing you to easily cope with various encoding-related needs. 1.UTF-8 to GBK In dedecms, if you need to convert UTF-8 encoded string to G

See all articles