dedecms 列表页和文章页调用当前栏目的最新文章,热门文章该怎么弄?
{dede:field name='typeid' runphp='yes'}
global $dsql;
/获取当前栏目id/
$typeid = @me;
$query = "SELECT reid FROM dede_arctype where id = $typeid";
$rs = $dsql->GetOne($query);
$reid = $rs['reid'];//获取到栏目的上级栏目
/获取上级栏目id/
$query2 = "SELECT FROM dede_arctype where id = $reid";
$typerow = $dsql->GetOne($query2);
/输出上级栏目信息/
$typename = $typerow['typename'];
$link = GetTypeUrl($typerow['typeid'],MfTypedir($typerow['typedir']),$typerow['isdefault'],$typerow['defaultname'],$typerow['ispart'],$typerow['namerule2'],$typerow['moresite'],$typerow['siteurl'],$typerow['sitepath']);
@me = "<a href='/{$link}'>$typename</a>";
{/dede:field}
dedecms 网站调用导航栏目和下拉菜单的方法如下:
织梦开源程序(dedecms)是一个很不错的开源程序,功能十分的强大,只是默认的模板就有很不错的用户体验效果。而还有很多的不完美的地方,就需要我们自己去做一下修改,譬如默认导航条上面没有下拉列表的功能,今天我就来帮助大家解决一下怎样制作织梦导航下拉列表。
其实这个导航条上面显示下拉列表还是蛮简单的,即使你不懂代码知识也是可以操作的,下面跟着步骤走,就能很轻松的实现啦。
首先我们将将下面这段红色的代码贴到"网站根目录\templets\default\"的"footerhtm"文件里里面,一般来说把这段代码放在最下面就行了。
<!-- //放于底部即可-->
<script type='text/javascript' src='{dede:globalcfg_cmsurl/}/images/js/dropdownjs'></script>
{dede:channelartlist typeid='top' cacheid='channelsonlist'}<ul id="dropmenu{dede:fieldtypeid/}" class="dropMenu">
{dede:channel type='son' noself='yes'} <li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
{/dede:channelartlist}
<script type="text/javascript">cssdropdownstartchrome("navMenu")</script>
接着我们重新生成网站首页,再打开首页刷新一下就会发现你的网站导航栏已经出现下拉菜单了,只是背景还是透明的,原因是没有背景。这时候我们只需要再加一张我们喜欢的背景就好看多了。
可是头疼的是,这个下拉菜单是透明的!咋么办??
加背景的办法
我们把织梦DedeCMS程序文件夹\dede\img里的mmenubggif(绿色背景,适用于绿色主题模板)或者DedeCMS程 序文件夹\templets\images里的mmenubggif(蓝色背景,适用于蓝色主题模板)复制到DedeCMS程序文件夹 /templets/default/images下面,现在你再看一下效果,导航栏是不是已经出现熟悉的下拉菜单了。
如果还想有更好的效果展示的话,我们就需要去手工修改/templets/default/style/dedecmscss里面的文件了,不过这得需要一点css知识哦~
修改css的话,我们可以在里面使用"ctrl+f"寻找 dropMenu 进行修改即可。
方法:typeid='top' 或者typeid='asdas'任意字母不为空不为数字 写上这一个属性就可以了
{dede:arclist orderby='pubdate' titlelen='28' row='7' typeid='top' }
如果是在文章页 这篇文章又是最新刚发布的,那么最新文章里就会包含这篇文章,想要去除这篇文章,可以加limit{dede:arclistorderby='pubdate' titlelen='28'row='7'typeid='top' limit='1,7'}
当然如果不是最新的文章,再次生成的时候还是有可能和当篇文章重复的
织梦内容管理系统(DedeCms) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历多年的发展。
目前的版本无论在功能,还是在易用性方面,都有了长足的发展和进步,DedeCms免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用该系统。
要调用某个栏目的下级栏目名称,参考下面的标签
{dede:channel row='20' type ='son' typeid ='2' } 此处是底层标签 {/dede:channel}
row='20'表示调用20个栏目名称
type ='son'表示调用下级栏目
typeid ='2'表示父栏目id为2
关于底层标签,诸如栏目名称,链接等等就不再赘述了吧
这个我是用js的方法实现的。
1、左侧的列表正常调取
2、建立一个隐藏的div,里面的内容是当前栏目的标题
3、取到隐藏div的内容,去左侧栏目比对,相同则增加响应的class
效果蛮好,而且不用修改dede的代码,js组件很方便用。
有案例可看,如果需要可以私信我,这里发网址容易被屏蔽。
调用方法:
{dede:channelartlist typeid='top'}
这里是typied='top',这个top值可以换为你想要的上级栏目ID,但绝对是不可以为空的。
单纯的使用{dede:fieldcontent/},是调用不到首页的,貌似只能调用到栏目页,如果想要调用到首页或者是其它页面的任何位置需要使用
{dede:sql sql='Select content from dede_arctype where id=2' }
[field:content function='cn_substr(html2text(@me),550)'/]
{/dede:sql}
需要注意的是,如果安装dede时修改了数据表前缀,则需要把dede_arctype中的dede替换成你的数据表前缀,2,代表你想要调用栏目内容的栏目ID,下面的则是调用的限制字数,使用这个调用,可以调用的你网站的任意栏目内容到任意位置。
0条评论