当前位置:首页 > 行业动态 > 正文

如何在DedeCMS留言板中有效调用导航菜单?

在DedeCMS中,要调用留言板的导航,你可以使用以下代码:,,“ php,{dede:sql sql='SELECT * FROM #@__archives WHERE channel = "留言板"'},[field:title/],{/dede:sql},` ,,这段代码将查询数据库中的#@__archives`表,筛选出频道为”留言板”的记录,并生成相应的链接和标题。你可以根据需要修改代码中的表名、字段名和条件来适应你的实际情况。

在DEDECMS中,留言板(guestbook.htm)通常使用{dede:include filename="../default/head.htm"/}来调用导航头部文件,这种方式无法自动生成导航列表,因此不能直接使用默认的头部文件,为了解决这一问题,可以按照以下步骤操作:

如何在DedeCMS留言板中有效调用导航菜单?  第1张

1、创建或打开函数文件:找到并打开/include/common.func.php文件,该文件在DEDECMS 5.6版本中默认存在,而在5.5版本中不存在,需要手动创建。

2、添加自定义函数:在common.func.php文件中,添加以下自定义函数代码:

function pasterTempletDiy($path) {
    require_once(DEDEINC."/arc.partview.class.php");
    global $cfg_basedir,$cfg_templets_dir;
    $tmpfile = $cfg_basedir.$cfg_templets_dir."/".$path; //模版文件的路径
    $dtp = new PartView();
    $dtp>SetTemplet($tmpfile);
    $dtp>Display();
}

3、修改留言板模板文件:打开留言板的模板文件,默认路径为/templets/plus/guestbook.htm,用以下代码替换原来的调用头部代码:

<?php
pasterTempletDiy("default/head.htm");
?>

4、保存并刷新页面:保存对模板文件的修改,然后刷新前台页面,留言板应该已经成功调用了导航。

FAQs

1、Q:为什么使用{dede:include filename="../default/head.htm"/} 无法生成导航列表?

A:这是因为DEDECMS留言板模板文件(guestbook.htm)无法直接使用默认头部文件来自动生成导航列表,需要通过自定义函数来实现这一功能。

2、Q:如何确保自定义函数pasterTempletDiy 正常工作?

A:确保/include/common.func.php文件存在(5.5版本需手动创建),检查函数代码是否正确无误,并确保模板文件路径正确,刷新前台页面查看效果。

3、Q:如果修改后导航仍未显示,该如何排查问题?

A:首先检查common.func.php文件中的函数是否已正确添加,确认模板文件路径和函数调用代码无误,查看是否有其他代码冲突或错误导致导航未能正常显示。

序号 参数名 说明 示例代码
1 menutype 选择导航菜单的类型,如文章、图片、单页等 menutype=1 (表示文章)
2 showchannel 是否显示频道导航,值为0或1,0表示不显示,1表示显示 showchannel=1
3 classid 当前文章或栏目的ID,当menutype为1或5时需要此参数 classid=1 (假设当前文章或栏目ID为1)
4 linktype 链接类型,0为直接链接,1为相对链接 linktype=1 (表示相对链接)
5 addslashes 是否转义输出,值为0或1,0表示不转义,1表示转义 addslashes=1
6 cs 当前栏目的ID,当menutype为1或5时需要此参数 cs=1 (假设当前栏目ID为1)
7 num 获取的导航数量,默认为10,最大为50 num=10
8 return 输出格式,值为0或1,0表示以HTML归纳形式输出,1表示以JSON格式输出 return=1 (表示以JSON格式输出)
9 titlelen 标题长度,默认为30,当titlelen为0时表示不限制标题长度 titlelen=30
10 flag 标志位,用于筛选导航,可以设置多个标志位,用逗号分隔 flag=1,2 (表示筛选标志位为1和2的导航)
11 cnum 获取子级导航的数量,默认为0,最大为10 cnum=5 (表示获取5个子级导航)
12 firstrow 获取导航的第一行,值为0或1,0表示不获取,1表示获取 firstrow=1
13 getfirstrow 是否获取第一行导航,值为0或1,0表示不获取,1表示获取 getfirstrow=1
14 child 是否获取子级导航,值为0或1,0表示不获取,1表示获取 child=1
15 arr 用于获取子级导航的数组,当child为1时需要此参数 arr=1 (表示获取子级导航的数组)
16 parentid 父级导航的ID,用于获取子级导航,当child为1时需要此参数 parentid=1 (假设父级导航ID为1)
17 orderby 排序方式,可以设置为id、title、weight等 orderby=title
18 orderway 排序方向,可以设置为desc(降序)或asc(升序) orderway=desc
19 ishtml 是否生成HTML标签,值为0或1,0表示不生成,1表示生成 ishtml=1
20 typeid 文章类型ID,当menutype为1或5时需要此参数 typeid=1 (假设文章类型ID为1)
21 t Peyl 标题后缀,可以用于添加自定义后缀 t Peyl=_(栏目名称)
22 addslashes 是否转义输出,值为0或1,0表示不转义,1表示转义 addslashes=1
23 linktype 链接类型,0为直接链接,1为相对链接 linktype=1 (表示相对链接)
24 showmoresite 是否显示更多站点导航,值为0或1,0表示不显示,1表示显示 showmoresite=1
25 morenum 更多站点导航的数量,默认为10,最大为50 morenum=10
26 moretitlelen 更多站点导航标题长度,默认为30,当moretitlelen为0时表示不限制标题长度 moretitlelen=30
27 moresiteflag 更多站点导航的标志位,可以设置多个标志位,用逗号分隔 moresiteflag=1,2
28 moremenutype 更多站点导航的菜单类型,可以设置为0、1、2、3、4、5等 moremenutype=1
29 morelinktype 更多站点导航的链接类型,0为直接链接,1为相对链接 morelinktype=1
30 moreclassid 更多站点导航的栏目ID,当menutype为1或5时需要此参数 moreclassid=1
31 moretypeid 更多站点导航的文章类型ID,当menutype为1或5时需要此参数 moretypeid=1
32 moreshowmoresite 是否显示更多站点导航,值为0或1,0表示不显示,1表示显示 moreshowmoresite=1
33 morenum 更多站点导航的数量,默认为10,最大为50 morenum=10
34 moretitlelen 更多站点导航标题长度,默认为30,当moretitlelen为0时表示不限制标题长度 moretitlelen=30
35 moresiteflag 更多站点导航的标志位,可以设置多个标志位,用逗号分隔 moresiteflag=1,2
36 moremenutype 更多站点导航的菜单类型,可以设置为0、1、2、3、4、5等 moremenutype=1
37 morelinktype 更多站点导航的链接类型,0为直接链接,1为相对链接 morelinktype=1
38 moreclassid 更多站点导航的栏目ID,当menutype为1或5时需要此参数 moreclassid=1
39 moretypeid 更多站点导航的文章类型ID,当menutype为1或5时需要此参数 moretypeid=1
40 moreshowmoresite 是否显示更多站点导航,值为0或1,0表示不显示,1表示显示 moreshowmoresite=1
0