大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂

前言

现在是2022年1月2日17:06:51,假期这两天都在做publiccms

上篇文章遗留的问题,最终还是没有按照富文本去做,后期在看吧;

今天遇到了个问题,解决了好久,特此记录一下…等写完回头看的时候其实也不难,但是当时哎做的时候,就是没有这样的思路,可能也与freemarker的语法有关,用起来确实别扭,要是换做java,这个问题也不至于解决的这么慢。

效果分析:

效果如图所示,具体分析一下:

  • 学术研究:一级分类,编号为8
  • 运动健康、医疗健康、饮食健康:二级分类,父级分类的编号为8
  • 项目、学术、研发团队:三级分类,父级分类分别为二级分类
  • 列表、卡片、表格:三级分类下的内容,各三级分类下面对应的内容样式不一样。

要实现的效果就是将数据库中的分类都遍历出来,而且将各分类下面的内容遍历展示出来。

实现思路:

二级分类很好遍历,根据父分类的编号即可遍历出来,代码如下:

 <@_categoryList parentId=8><#list page.list as a>    <div class="col-lg-2 col-md-2 col-sm-2 col-xs-0" style="padding: 0;opacity: 0;float: left;">0</div><li class="xueshu1">${a.name!}</li></#list>
</@_categoryList>

三级分类也相对简单,在遍历二级分类的同时,再加入一个循环即可,代码如下:

 <@_categoryList parentId=8><#list page.list as a>    <@_categoryList parentId=a.id><#assign counts_cate=0> <#list page.list as cate><li class="xueshu1">${a.name!}</li><#assign counts_cate=counts_cate+1> </#list></@_categoryList>                       </#list>
</@_categoryList>

这里还涉及到了个问题,因为用到tab选项卡,所有href后面的地址需要和下面内容的id地址一样,不然点击的tab标题的时候找不到对应的内容。

我用的方法是重新加了两个变量,外层循环一个,内层循环一个,这样既不会重复,也能和上面的标题href后面的值对应上。

假如每个三级分类下面的内容都一样的话,我就可以直接根据三级分类,再次遍历该分类下面的内容,但是,不一样……,三个分类的内容都不一样,一下子不知道咋遍历了。

后来又是通过加了个变量,判断变量的值,代码如下:

 <!--中间内容--><div class="container" style="padding: 0;"><div class="col-lg-2 col-md-2 col-sm-2 col-xs-0" style="padding: 0;opacity: 0;">0</div><div class="col-lg-8 col-md-8 col-sm-8 col-xs-12 price" style="padding: 10px;"><!--三个标题--><div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 category" style="z-index: 99;padding: 0;"><ul><@_categoryList parentId=8><#list page.list as a>    <div class="col-lg-2 col-md-2 col-sm-2 col-xs-0" style="padding: 0;opacity: 0;float: left;">0</div><li class="xueshu1">${a.name!}</li></#list></@_categoryList></ul></div><@_categoryList parentId=8><#assign counts=0> <#list page.list as a> <!--第一个内容--><div class="cont"></div>                <div class="cont  cont_bianli" style="z-index: 0;"><div class="col-lg-2 col-md-2 col-sm-2 col-xs-0" style="padding: 0;opacity: 0;height: 58px;">0</div><!-- 第一个内容下的子分类 --><ul class="col-lg-8 col-md-8 col-sm-8 col-xs-12 tabs" data-tabstyle="z-index: 88;display: flex;align-items: center;"><@_categoryList parentId=a.id><#assign counts_cate=0> <#list page.list as cate><li class="tab-title"><a href="#home${counts}${counts_cate}">${cate.name!}</a></li><#assign counts_cate=counts_cate+1> </#list></@_categoryList></ul><div class="col-lg-2 col-md-2 col-sm-2 col-xs-0" style="padding: 0;opacity: 0;height: 58px;">0</div><div class="tabs-content" style="z-index: 0;"><@_categoryList parentId=a.id><#assign counts_cate=0> <#list page.list as cate><!-- 如果是第一次遍历,就走第一个 -->  <#if counts_cate==0><!-- 第一个分类下的内容 --><div class="content" id="home${counts}${counts_cate}" style="margin-top: 80px;"><@_contentList categoryId=cate.id   pageSize=3><#list page.list as b>    <div class="xiangmu" style="width: 100%;margin-bottom: 50px;max-height: 900px;"><div class="col-lg-4 col-md-4 col-sm-4 col-xs-12"style="float: left;height: 318px;padding: 0;margin-bottom: 70px;background-image: url(${b.cover!});background-size: 100% 100%;"></div><div class="col-lg-1 col-md-1 col-sm-1 col-xs-0"style="padding: 0;opacity: 0;height: 318px;margin-bottom: 70px;">0</div><div class="col-lg-7 col-md-7 col-sm-7 col-xs-12"style="height: 318px;float: left;padding: 0;margin-bottom: 70px;"><div class="titles"style="margin-top: 36px;height: 15px;font-size: 20px;font-weight: 900;color: #1D1D28;">${b.title!}</div><div class="wenzhang"style="width: 100%;margin-top: 29px;font-size: 16px;font-weight: 400;color: #333333;">${b.description!}</div><a href="${b.url!}"><div class="zhixun_chakangengduo"><span>查看更多</span><div class="zhixun_img"></div></div></a></div></div></#list></@_contentList> </div></#if>         <!-- 如果是第2次遍历,就走第2个 --><#if counts_cate==1><!-- 第二个分类下的内容 --><div class="content" id="home${counts}${counts_cate}" style="margin-top: 80px;"><@_contentList categoryId=cate.id   pageSize=4><#list page.list as b>     <div class="col-lg-5 col-md-5 col-sm-5 col-xs-12 xueshuDiv"style="height: 284px;float: left;border: 1px solid;"><div style="margin-left: 25px;height: 284px;width: 93%;float: left;"><div class="titles"style="margin-top: 36px;height: 15px;font-size: 20px;font-weight: 900;color: #1D1D28;">${b.title!}</div><div class="wenzhang"style="width: 100%;margin-top: 29px;font-size: 16px;font-weight: 400;color: #333333;">${b.description!}</div><a href="${b.url!}"><div class="zhixun_chakangengduo"><span>查看更多</span><div class="zhixun_img"></div></div></a></div></div></#list></@_contentList> </div></#if><#if counts_cate==2><!-- 如果是第3次遍历,就走第3个 --><!-- 第三个分类下的内容 --><div class="content" id="home${counts}${counts_cate}" style="margin-top: 80px;"><div class="containerss"><@_contentList categoryId=cate.id   pageSize=4><#list page.list as b>  <div class="son"><img src="${b.cover!}" style="width: 200px;height: 267px;"><divstyle="margin-top: 32px; text-align: center;font-size: 20px;font-weight: bold;">${b.title!}</div><divstyle="margin-top: 15px;text-align: center;font-size: 16px;font-weight: 400;color: #535353;">${b.description!}</div></div></#list></@_contentList></div></div></#if><!-- 遍历结束 --><#assign counts_cate=counts_cate+1> </#list></@_categoryList>    </div></div></#list><#assign counts=counts+1> </@_categoryList></div></div><!--中间内容结束-->

看上去有点乱,freemarker的语法不但不会自动缩进,反而赋值上去还会更乱,懒的缩进了…

从刚开始讨厌freemarker到现在越来越上手,不得不说这是一个很大的进步!!!

publiccms实现遍历多级分类下的不同样式内容相关推荐

  1. node遍历给定目录下特定文件,内容合并到一个文件

    遍历目录用了fs.readdir这个异步方法,得到当前目录下所有的文件和目录的一个数组. 然后判断: if文件,并且后缀符合设定的规则(本文例子是符合后缀ts,js)直接用同步方法写入, if目录,继 ...

  2. 计算机桌面复制,电脑桌面便签怎么快速复制便签内容到其他分类下?

    原标题:电脑桌面便签怎么快速复制便签内容到其他分类下? 提到电脑桌面便签,恐怕很多人都会想到Windows便签.确实,Windows便签是Windows操作系统自带的一款记事备忘小工具,无需下载安装, ...

  3. php遍历子分类的函数,emlog程序获取主分类下的所有子分类ID函数

    emlog程序获取主分类下的所有子分类ID函数 蓝叶    网站设计    2021-01-04    208    0评论 emlog程序在制作模版时,需要增加一些自定义的列表调用,只设置主分类ID ...

  4. PHPTree——快速生成无限多级分类

    2019独角兽企业重金招聘Python工程师标准>>> 在开发中经常需要用到树形数据,比如无限多级分类,就是典型的树形结构.这里面的算法,用到了递归思想,为了简化开发过程,我编写了一 ...

  5. c++ 遍历多级目录

    参考:https://blog.csdn.net/sazass/article/details/100163264 TraverseDirectory可以遍历多级目录 getFiles不能遍历多级目录 ...

  6. 多级联动下拉菜单插件:jquery.cxselect.js

    话说这个插件,我也用了挺久了,但一直对其具体的作用不是很懂,只知道可以利用 ajax来请求数据,实现类似于多级联动的效果.后来百度了下,在此做个总结吧. 下面是以一名php程序员的角度来分析的...可 ...

  7. Magento获取指定分类下的所有子分类信息

    二次开发中经常遇到一种情况,就是判断一个分类是否属于某一个大的分类,而大的分类包括很多子分类成树状结构,基本的方法都是先获取大分类下的所有子分类的信息,然后再挨个比较看是否有ID和待定ID相等.一种用 ...

  8. python读取路径中字符串_python实现提取str字符串/json中多级目录下的某个值

    字符串多级目录取值: 比如说: 你response接收到的数据是这样的. 你现在只需要取到itemstring 这个字段下的值.其他的都不要! 思路就是:字符串是个json格式(或转为json格式), ...

  9. python层级抓取_python实现提取str字符串/json中多级目录下的某个值

    字符串多级目录取值: 比如说: 你response接收到的数据是这样的. 你现在只需要取到itemstring 这个字段下的值.其他的都不要! 思路就是:字符串是个json格式(或转为json格式), ...

最新文章

  1. 你如何检查选择器是否匹配jQuery中的内容? [重复]
  2. 一天搞定CSS:初识css--01
  3. jquery选中以什么开头的元素
  4. 热议|上海交大等6所“双一流”明确,博士生毕业,不再要求发表论文!
  5. 智能水位检测系统proteus_浅谈智能视觉检测系统的6大优点
  6. android用户界面之AlarmManager教程实例汇
  7. java jquery提交表单数据_[Java教程]jquery实现ajax提交表单信息
  8. bzoj 1115: [POI2009]石子游戏Kam(博弈)
  9. Linux top命令里面%CPU和cpu(s)的差别
  10. 斐讯k2刷固件记录 版本22.6.512.75(最新2020)
  11. Ubuntu、CentOS、macOS测试服务器上传和下载速度
  12. 教育心理学有一句名言
  13. 为何有好多网站不常用table和iframe这两个元素?
  14. cisco 模拟器安装及交换机的基本配置实验心得_软考网络工程师级配置题总结 | 交换机配置、路由器配置、广域网接入配置、L2TP配置、IPSec配置、PIX防火墙配置...
  15. 项目中用jbarcode生成条形码,并进行特定的格式打印标签纸(完成步骤):(得力,斑马打印机都能使
  16. 社区10款年度优秀插件框架盘点!
  17. 高级转录组调控分析和R语言数据可视化第十三期 (线上/线下同时开课)
  18. java 前置_java – 何时添加前置条件以及何时(仅)抛出异常?
  19. 连续时间信号,离散时间信号,模拟信号,数字信号的区别。
  20. firefly游戏服务器学习笔记 6———— db模块

热门文章

  1. Keywords Search HDU - 2222(AC自动机模板)
  2. php代码时间控制,PHP 网页过期时间的控制代码
  3. mysql技术分享--表分区实现
  4. 蓝桥杯 平面切分(欧拉定理)
  5. 操作系统内存管理--简单、页式、段式、段页式
  6. Shape Context
  7. How Much Memory Your Code Is Using? Gym - 101955J
  8. 「BJOI2019」奥术神杖(AC自动机+DP)
  9. P3175-[HAOI2015]按位或【min-max容斥,FWT】
  10. nssl1317-灵魂分流药剂【分组背包,二维费用背包】