publiccms实现遍历多级分类下的不同样式内容
大家好,我是雄雄,歡迎關(guān)注微信公眾號(hào):雄雄的小課堂
前言
現(xiàn)在是2022年1月2日17:06:51,假期這兩天都在做publiccms。
上篇文章遺留的問(wèn)題,最終還是沒(méi)有按照富文本去做,后期在看吧;
今天遇到了個(gè)問(wèn)題,解決了好久,特此記錄一下…等寫完回頭看的時(shí)候其實(shí)也不難,但是當(dāng)時(shí)哎做的時(shí)候,就是沒(méi)有這樣的思路,可能也與freemarker的語(yǔ)法有關(guān),用起來(lái)確實(shí)別扭,要是換做java,這個(gè)問(wèn)題也不至于解決的這么慢。
效果分析:
效果如圖所示,具體分析一下:
- 學(xué)術(shù)研究:一級(jí)分類,編號(hào)為8
- 運(yùn)動(dòng)健康、醫(yī)療健康、飲食健康:二級(jí)分類,父級(jí)分類的編號(hào)為8
- 項(xiàng)目、學(xué)術(shù)、研發(fā)團(tuán)隊(duì):三級(jí)分類,父級(jí)分類分別為二級(jí)分類
- 列表、卡片、表格:三級(jí)分類下的內(nèi)容,各三級(jí)分類下面對(duì)應(yīng)的內(nèi)容樣式不一樣。
要實(shí)現(xiàn)的效果就是將數(shù)據(jù)庫(kù)中的分類都遍歷出來(lái),而且將各分類下面的內(nèi)容遍歷展示出來(lái)。
實(shí)現(xiàn)思路:
二級(jí)分類很好遍歷,根據(jù)父分類的編號(hào)即可遍歷出來(lái),代碼如下:
<@_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>三級(jí)分類也相對(duì)簡(jiǎn)單,在遍歷二級(jí)分類的同時(shí),再加入一個(gè)循環(huán)即可,代碼如下:
<@_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>這里還涉及到了個(gè)問(wèn)題,因?yàn)橛玫絫ab選項(xiàng)卡,所有href后面的地址需要和下面內(nèi)容的id地址一樣,不然點(diǎn)擊的tab標(biāo)題的時(shí)候找不到對(duì)應(yīng)的內(nèi)容。
我用的方法是重新加了兩個(gè)變量,外層循環(huán)一個(gè),內(nèi)層循環(huán)一個(gè),這樣既不會(huì)重復(fù),也能和上面的標(biāo)題href后面的值對(duì)應(yīng)上。
假如每個(gè)三級(jí)分類下面的內(nèi)容都一樣的話,我就可以直接根據(jù)三級(jí)分類,再次遍歷該分類下面的內(nèi)容,但是,不一樣……,三個(gè)分類的內(nèi)容都不一樣,一下子不知道咋遍歷了。
后來(lái)又是通過(guò)加了個(gè)變量,判斷變量的值,代碼如下:
<!--中間內(nèi)容--><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;"><!--三個(gè)標(biāo)題--><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> <!--第一個(gè)內(nèi)容--><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><!-- 第一個(gè)內(nèi)容下的子分類 --><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><!-- 如果是第一次遍歷,就走第一個(gè) --> <#if counts_cate==0><!-- 第一個(gè)分類下的內(nèi)容 --><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個(gè) --><#if counts_cate==1><!-- 第二個(gè)分類下的內(nèi)容 --><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個(gè) --><!-- 第三個(gè)分類下的內(nèi)容 --><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><!-- 遍歷結(jié)束 --><#assign counts_cate=counts_cate+1> </#list></@_categoryList> </div></div></#list><#assign counts=counts+1> </@_categoryList></div></div><!--中間內(nèi)容結(jié)束-->看上去有點(diǎn)亂,freemarker的語(yǔ)法不但不會(huì)自動(dòng)縮進(jìn),反而賦值上去還會(huì)更亂,懶的縮進(jìn)了…
從剛開(kāi)始討厭freemarker到現(xiàn)在越來(lái)越上手,不得不說(shuō)這是一個(gè)很大的進(jìn)步!!!
總結(jié)
以上是生活随笔為你收集整理的publiccms实现遍历多级分类下的不同样式内容的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 高考生怎样学习 高考生学习方法
- 下一篇: freemarker中遇到null报错的