JEECMS開發問題彙總

1 添加Controller

controller文件放在com.jeecms.cms.action.front包中,javascript

 

 

1.1css

而後在jeecms-servlet-front-action.xml文件中配置bean,以下所示:html

 

<bean id="OnlineConsultationAct"
class="com.jeecms.cms.action.front.OnlineConsultationAct"/>

 

 

 

 

 

1.2html5

 

 

1.3java

注意:Controller中的@RequestMapping的值須要符合web.xml中配置的url-pattern;jquery

 

 

1.4web

2 圖片懸浮效果

圖片懸浮效果如圖2.1和2.2所示,正則表達式

 

 

2.1sql

 

 

2.2chrome

實現方法:

 

<!-- 微影空間縮略圖懸浮div -->    
<div id="tooltip" class="tip"></div>        

<!-- 微影空間ul列表 -->    
<ul class="">     
<li>
<span class="createtable" tpath='/img/20180909.jpg'>
            <a href="www.baidu.com"  target="_blank">
                        這個殺手不太冷
            </a>
        </span>
    </li>                
</ul>

<!-- 微影空間相關CSS -->    
.tip{
display:none;
padding:5px;
}
<!-- 設置最大寬高後,系統會自動分配圖片的比例(以高/寬爲準,算出比例)     -->    
.tip img {
    max-width: 320px;  
    max-height: 250px;
}
<!-- 微影空間相關JS -->    
    <script type="text/javascript">
    $(function () {
        //獲取鼠標座標
        function mousePosition(ev){
            ev = ev || window.event;
            if(ev.pageX || ev.pageY){
                return {x:ev.pageX, y:ev.pageY};
            }
            return {
                x:ev.clientX + document.body.scrollLeft -                                                     document.body.clientLeft,
                y:ev.clientY + document.body.scrollTop -                                                     document.body.clientTop
            };
        }
        //hover某處顯示懸浮框
        $(".createtable").mouseover(function(e){
            //獲取鼠標位置函數
            var mousePos = mousePosition(e);
            var  xOffset = 20;
            var  yOffset = 25;
            $("#tooltip").css("display","block").css("position","absolute").css("top",(mousePos.y - yOffset) + "px").css("left",(mousePos.x + xOffset) + "px");
            $("#tooltip").append('<img src="'+$(this).attr("tpath")+'" />');
    
         });
         //鼠標離開表格隱藏懸浮框
         $(".createtable").mouseout(function(){
              $("#tooltip").empty();
             $("#tooltip").css("display","none");
         });
    });
    </script>

 

3 EChart間歇性加載失敗

參考博客後,發現這是由於ECharts 沒有獲取到div的高寬而致使初始化失敗,這時候能夠:

  1. 明確指定div的style.width和style.height(不能設置百分比);

參考博客:

一、關於echarts在默認隱藏的div中不顯示的問題;

https://blog.csdn.net/chenxueshanblog/article/details/72461113

二、關於echart在隱藏與顯示輪替中的div加載顯示爲空的緣由分析

http://www.wufangbo.com/103077/

4 CSS控制背景圖片

① background:url(../images/gallery.gif)0 -37PX no-repeat; 經過偏移量截取一張大圖裏的小圖標

② background-position: 17px 0px;

調整背景圖片的位置--就是上面設置的偏移量

以上參數皆爲X軸與Y軸的偏移量,分前後順序

下面是設置背景圖片左右居中,上下居中,寬度80px,高度80px

③ background:url("..//images/huo.jpg")center center/

80px 80px no-repeat;

==>center能夠替換成X 、Y軸的具體偏移量

5 Freemarker過濾HTML標籤

使用如下標籤便可過濾html標籤,

 

[@text_cut s=content.txt?replace('<.*?>',"","ri")
?replace('&nbsp;',"","ri")?replace(" ","") len='28' /]    

 

 

過濾的步驟分三步:

一、replace('<.*?>',"","ri"),過濾全部的html箭頭標記

二、replace(' ',"","ri"),過濾全部的 

三、replace(" ",""),過濾全部的「手動空格」

注意:

一、freemarker中正則表達式寫法與JS略有不一樣

1.1 freemarker默認爲全局匹配,而JS默認爲單次匹配。

1.2 JS的正則表達式格式爲「/內容/」,而freemarker不須要單斜槓。

1.3 「\d」這種符號在freemarker中須要寫成「\\d」

二、正則表達式的貪婪模式與非貪婪模式

replace('<.*?>',"","ri") 裏面的「.*」是貪婪模式,假設沒有「?」,那麼程序會搜索到右邊最後一個「>」而後將中間的字符串所有替換;

「.*?」是非貪婪模式(由於?是匹配0次或1次),如此,程序會搜索右邊最靠近的「>」,而後將匹配結果替換。

參考博客:

一、Freemaker Replace函數的正則表達式運用

https://www.jb51.net/article/76560.htm

二、正則表達式貪婪與非貪婪模式

http://www.javashuo.com/article/p-aezrghdi-by.html

6 上傳圖片後預覽問題

圖片預覽分上傳前預覽和上傳後預覽,此處爲上傳後圖片預覽。

經覈實,圖片確實已經上傳成功,而且當f12將圖片地址按原值從新替換後,圖片就能夠預覽了。

屢次研究後,發現多是動態資源加載延遲的問題,因此咱們採用了由tomcat指定靜態資源目錄的方法,以下所示:

 

 

         6.1

第一個配置是項目WebContent目錄的絕對路徑,第二個配置是上傳文件的存儲地址的絕對路徑,第三個配置是二次上傳文件的存儲地址的絕對路徑。

採用這種方式,有2個關鍵點須要注意:

一、將編譯文件classes文件夾放在WEB-INF目錄下面,若是該項未配置,啓動Tomcat時會報錯。

      

 

6.2

二、若是以上三個配置都落實了,那麼Tomcat的webapps下面容許存在同名項目,由於Tomcat找的項目是咱們第一個配置的絕對路徑。若是隻配置了2、三,那麼Tomcat找的項目會是webapps下面的,因爲圖片上傳時配置的是一段字符串--非訪問路徑,因此圖片會上傳到webapps下面,因此會致使圖片預覽失敗。

7 網頁的圖標替換

圖標替換分爲全局替換和局部替換,採起就近原則,

一、全局替換,替換tomcat中webapps下ROOT文件夾下的favicon.ico圖片;注意圖片的名稱+後綴名必定要徹底符合。

          

 

 

     

7.1

二、局部替換,在網頁的head標籤中加上如下代碼,圖片後綴名隨意。

 

<link rel="shortcut icon " type="images/x-icon"                      href="/${res}/images/0045.jpg">    

 

 

 

 

 

注意:全局替換不穩定,若是是上線項目,建議使用局部替換。

 

 

8 搜索功能出現異常

出現這個問題的緣由是lucene索引文件沒有更新,內容不完整。須要在後臺從新生成索引,

 

 

8.1

9 首頁靜態化

首先在「配置」欄目中開啓靜態頁選項(第1個選項是必須勾選的,第2個選項非必填,且看後面分析);而後再生成靜態頁,

 

 

9.1  

 

9.2                                                                                                                                                                                                                          

注意:

一、勾選第二個選項「使用根首頁」,那麼程序會將靜態頁生成到WebContent根目錄下,

 

 

9.3

如此配置,輸入項目首頁路徑(http://localhost:8090/cms/)後,能夠正常訪問。

二、不勾選第二個選項「使用根首頁,程序會將靜態頁生成到你填寫的靜態頁目錄下,

 

 

9.4

如此配置,也能正常運行。可是要將WebContent根目錄下的index.html文件刪掉,由於web.xml中是如此配置的,

 

 

9.5

 

 

10 hibernate的懶加載

我如今須要獲得該對象的id,經debug後發現他的id爲null,

 

 

10.1

調用getId()方法,發現id爲6,

 

 

 

10.2

發現該對象的handler的id屬性值也爲6,

 

 

10.3

仔細看下handler,發現帶有lazy,是懶加載(圖10.4);

 

 

10.4

11 js跳轉到空白頁

window.open(URL);

12 瀏覽器兼容性問題

因爲咱們的項目是在谷歌瀏覽器上面開發,而谷歌瀏覽器使用的是谷歌內核(屬於webkit內核),而國內的瀏覽器大部分都是採用雙核模式,因而瀏覽器就有極速模式、兼容模式之分。

解決兼容性問題有如下兩種辦法:

一、在訪問網站時,將瀏覽器設置爲谷歌內核;也就是默認切換到極速模式。

二、編寫兼容IE瀏覽器的代碼,首先須要設置瀏覽器默認採用IE9或更高內核(若是小於IE9,強烈建議客戶端升級IE瀏覽器,由於IE9在2011年就發行了,程序不必兼容太老的IE瀏覽器),瀏覽器通常默認採用IE7內核,而後找到出現樣式兼容的地方,手動修改兼容性代碼。

注意:

國內瀏覽器有如下幾點須要注意,以360瀏覽器爲例,

一、客戶端瀏覽器版本太低,沒有極速模式和兼容模式。如360的5.0版本,

 

 

12.1 V5.0版本

 

 

 

12.2 V7.0版本

因此遇到這種狀況就沒法經過代碼控制瀏覽器默認選擇極速模式了,所以能夠提示用戶更新瀏覽器,以下圖所示:

 

 

12.3

二、瀏覽器各版本差別性比較大,

360的7.0版本:用戶若是手動/代碼切換了兼容/極速模式,那麼後續的訪問都會是該模式。可是若是代碼裏面設置了默認使用某種模式,那麼該配置能夠生效,模式會根據代碼發生改變。

360的9.1版本:用戶若是手動/代碼切換了兼容/極速模式,那麼後續的訪問都會是該模式。代碼裏面的配置只在用戶手動切換前有效,一旦手動切換過模式,之後都是這種模式,代碼配置將起不到任何做用。控制webkit內核的meta標籤無效,可是控制IE內核版本的代碼是有效的。

代碼控制極速/兼容模式:

只要你在本身的網站裏增長一個meta標籤,那麼360瀏覽器就會在讀取到這個標籤後,當即切換對應的內核,並將這個行爲應用於這個二級域名下全部網址。

<meta name="renderer" content="webkit" />

頁面默認採用極速模式,即谷歌內核;

<meta name="renderer" content="ie-comp" />

頁面默認採用兼容模式,爲IE兼容內核(IE7);

<meta name="renderer" content="ie-stand" />

頁面默認採用兼容模式,爲IE標準內核(電腦中最高內核);

 

 

12.4

須要注意這些標籤在9.1版本中能夠不帶斜槓,而在7.0中必須帶斜槓,不然配置不會生效。偶爾瀏覽器使用的內核是谷歌,可是那個標誌倒是兼容模式。

其餘經常使用配置:

一、IE8及其更低的版本是不支持HTML5標籤的,添加如下配置能夠解決該問題。(這種方法叫條件註釋,這是IE專門提供的一種語法,若是使用非IE內核,則會將其做爲註釋而忽略這些語句)

 

 

<!--[if lt IE 9]>
<script src="/u/cms/www/html5shiv.js"></script>
<script src="/u/cms/www/respond.js"></script>
<script src="/u/cms/www/excanvas.js"></script>
<![endif]-->
            

 

 

 

 

 

 

 

二、若是IE瀏覽器版本太低,提示更新瀏覽器

 

<!--[if lte IE 8]>
<script >
window.location.href="/browserUpgrade.html";
</script>
<![endif]-->
            

 

 

 

 

 

 

 

三、

<meta http-equiv="X-UA-Compatible" content="IE=edge">

告訴IE使用最新的引擎渲染網頁,會使用客戶端最高的IE內核

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7; IE=EmulateIE9;">

選擇該標籤配置的內核,若是客戶端IE7和IE9都有,會選IE9。

注:

對於該項目,我解決兼容性問題的辦法是:加載首頁時,代碼控制默認選擇極速模式,若是IE內核小於等於9,就跳轉到提示頁面。

由於只要符合IE內核小於等於9這個條件,就證實了瀏覽器是兼容模式或者360的版本爲5.0版本。(meta標籤和條件註釋不分前後順序)

因爲360瀏覽器9.1版本的緣由,因此我在提示頁面中提示用戶若是瀏覽器爲兼容模式,請手動調整爲極速模式。

完整的解決方案應爲:

首先設置兩個meta標籤,一個控制webkit內核,另一個控制默認選擇最高IE內核(如此,5.0版本使用的是最高IE內核,而其餘高版本,使用的是谷歌內核;這兩個標籤不區分前後順序);

而後將在IE9內核下面樣式異常的地方,加上兼容性代碼;

若是IE內核版本低於IE8,則提示更換瀏覽器;

4 若是IE內核版本等於IE8,則添加三個js文件以支持html5標籤。

 

<meta name="renderer" content="webkit" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 

<!--[if lt IE 8]>
<script >
window.location.href="/browserUpgrade.html";
</script>
<![endif]-->

<!--[if lt IE 9]>
<script src="/u/cms/www/html5shiv.js"></script>
<script src="/u/cms/www/respond.js"></script>
<script src="/u/cms/www/excanvas.js"></script>
<![endif]--

 

PS:指定極速模式與兼容模式的代碼不能同時編寫,不然瀏覽器加載不穩定。致使首頁是兼容模式時,其餘頁面是極速模式;首頁是極速模式時,其餘頁面是兼容模式;

若是在開始菜單中找不到ie瀏覽器,請到C:\Program Files\Internet Explorer找到iexplore.exe;這樣就能夠看到IE內核版本了。

參考博客:

一、用Meta標籤代碼讓360瀏覽器默認極速模式不是兼容模式

https://www.jb51.net/web/259920.html

二、Chrome內核和Webkit內核區別是什麼?

https://zhidao.baidu.com/question/336031809.html

三、判斷IE版本的HTML語句

http://www.javashuo.com/article/p-pdlkaffk-ma.html

三、360社區自定義切核功能說明

http://bbs.360.cn/thread-14958904-1-1.html

四、360瀏覽器內核控制標籤meta說明

https://browser.360.cn/se/help/kernel.html

五、最有效解決IE8 position兼容性問題

http://www.javashuo.com/article/p-wosvrxyq-e.html

六、html5shiv.js和respond.min.js的做用

http://www.javashuo.com/article/p-dhdarfzh-by.html

七、excanvas.js的原理

https://zhidao.baidu.com/question/710968549776882005.html

13 tomcat設置80端口

若是啓動tomcat時,發現80端口被佔用,那麼須要排查如下幾個地方,

 

 

13.1 端口被佔用截圖

一、查看iis服務器下面的網站是否佔用了80端口(IIS的默認網站設置的端口就是80)

二、關閉SQL Server Reporting Services (MSSQLSERVER) 這個服務

三、在註冊表中找到找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP,

而後在右邊列表中找到項Start,將其值改成0,而後重啓電腦。

四、若是以上三種方法都不行,那麼多是服務器廠商將系統的HTTP端口設爲了80端口,這就須要聯繫廠商修改服務器的配置了。

服務器配置解決辦法:

一、將後面的網線要連接到管理網口,就是那個單獨出來一個的那個網口;

 

 

13.2

二、網線另一段不鏈接交換機,鏈接任意一臺筆記本電腦;

設置ipv4的ip地址爲192.168.2.100(2網段),默認網關192.168.2.1,子網掩碼255 255 255 0;

三、瀏覽器輸入ip地址,進入ibmc管理界面,找到服務配置,更改其中的Web Server(HTTP)的端口,

 

 

13.3

 

 

13.4

終止http服務的命令:

輸入net stop http

 

y 肯定

再輸入 Sc config http start= disabled

注意:

windows企業版是沒有iis服務的,只有專業版有

 

 

13.5

參考博客:

一、Windows平臺下80端口被System佔用解決辦法

https://jingyan.baidu.com/article/08b6a591b23ebe14a8092231.html

二、win10 旗艦版無iis服務

https://bbs.csdn.net/topics/392114623?page=1

三、win10 無iis服務

https://zhidao.baidu.com/question/1737384355496153827.html

14 tomcat設置自啓動

因爲服務器上面不容許裝JDK,因此傳統的方式無效,在輸入cmd命令時會拋出如下異常,

JAVA_HOME should point to a JDK not a JRE

因此咱們採起的解決辦法是使用windows的定時任務,詳細過程查看如下博客,

https://blog.csdn.net/shiyong1949/article/details/52779359

經本人測試,發現按照博客配置後,tomcat仍然不會自啓動,經分析,緣由就是觸發器配置錯誤。咱們應該選擇登陸時啓動tomcat(特定用戶與全部用戶的選擇不作要求,通常選擇特定用戶)。

 

 

14.1

 

 

 

14.2

 

 

14.3

注意:定時任務中下圖選項不能勾選,其默認是勾選的,咱們須要手動去掉。

 

 

14.4

參考博客:

一、Tomcat設置爲自動啓動的服務(裝有JDK)

http://www.javashuo.com/article/p-azeodyiv-bg.html

15 部署運行asp程序

一、打開IIS服務器,

普通window系統參考該博客,

https://jingyan.baidu.com/article/ac6a9a5e36977d2b653eacb2.html

Windows Server2008系統參考該博客,

https://jingyan.baidu.com/article/1612d500aa4594e20e1eeefc.html

二、IIS服務器中添加網站,選擇asp程序的物理路徑,設置好ip地址和端口。

三、右擊項目切換到功能視圖,在中間部分找到「ASP」,在設置裏將啓用父路徑至改成true(這樣纔可使用相對路徑../和/等)。

四、配置匿名用戶

五、執行cmd命令:

cd C:\Windows\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers

六、開啓SQLServer的TCP/IP協議,配置1433端口;

七、爲了方便本地調試,須要設置網頁將錯誤信息顯示出來。在「ASP」->「調試屬性」->「將錯誤發送到瀏覽器上」的值改成「True」,最後部署網站成功後再改成「False」。另外,把IE的「Internet選項」—「高級」—「顯示友好的http錯誤信息」的勾去掉。

參考博客:

一、在Windows2008下用IIS7.0和SQL2005部署.asp網站

https://jingyan.baidu.com/article/e4511cf35573e02b855eaf11.html

二、WIN2008系統安裝IIS7配過ASP後打開ASP網站爲500錯誤的解決辦法

https://www.jb51.net/article/34688.htm

三、解決IIS不能在此路徑中使用此配置節點錯誤

https://blog.csdn.net/pianpianboy/article/details/40536891

四、Win7下IIS因爲擴展配置問題而沒法提供請求的頁

https://blog.csdn.net/ldl22847/article/details/7233611

五、sqlserver在還原數據庫時出現: 沒法執行 BACKUP LOG,由於當前沒有數據庫備份

https://blog.csdn.net/sxf359/article/details/75579518

16 asp程序設置自啓動

一、IIS服務中的右側操做欄中,將網站設置爲自啓動;

二、在服務中將如下兩個服務設爲自啓動,

Windows Process Activation Service服務     
World Wide Web Publishing Service服務 

若是重啓電腦發現這兩個服務狀態爲未啓動,那麼就採用windows定時任務,找到World Wide Web Publishing Service服務 bat文件,設置登陸自啓動便可。(方法參考tomcat設置自啓動)

參考博客:

一、IIS沒法啓動計算機上的服務W3SVC如何修復

https://blog.csdn.net/xw505501936/article/details/48339243

二、iis開機時沒法自啓動,必須手動啓動?怎麼解決?

https://bbs.csdn.net/topics/80011278

17 修改tomcat服務器內存

在環境變量中新建一個系統變量,

變量名:JAVA_OPTS    

變量值:-Xms512m   -Xmx512m

進本人測試,網上那種修改catalina.bat文件的無效。

參考博客:

一、TOMCAT內存大小調整

https://blog.csdn.net/coolwzjcool/article/details/2544448

18 新聞採集功能

網易新聞排行榜舉例說明,地址爲http://news.163.com/special/0001386F/rank_whole.html

 

 

圖一

 

1.點擊頂部「運營」,選擇「採集管理」,點擊右側「添加」按鈕(見圖二)進入添加採集頁面(見圖三)。

 

圖二

 

 

添加採集

輸入採集名稱,選擇「欄目」爲末級欄目。將「頁面編碼」改成「UTF-8」。輸入採集地址,可採集多個地址,每一個地址一行。輸入動態地址,動態地址可用[page]代替,[page]代替的是好比第二頁:http://news.163.com/special/0001386F/rank_whole_2.html,可用 http://news.163.com/special/0001386F/rank_whole_[page].html代替,要根據原網頁的頁面地址結構分析加[page],再輸入「頁碼」。

 

 

圖三

 

採集規則

在瀏覽器上輸入地址,進入頁面,右擊頁面選擇「查看網頁源代碼」,「開始HTML」表明的是要採集的內容的開始HTML標籤如:<div class=」ddd」>測試</div>就選擇<div class=」ddd」>。「結束HTML」就是選擇</div>。

「內容地址集」選擇<table width="100%" cellpadding="0" cellspacing="0" border="0">的緣由是標籤<table>裏面包含了咱們本頁面所須要的全部內容地址,見圖五-六。

「內容地址」取的是內容地址集裏面單個的<a>標籤裏邊的地址,見圖七。

「標題」是新聞詳細頁所存在的正文標題標籤均可以取,見圖八。

「內容」是新聞詳細頁的新聞正文內容,取其標籤,見圖九。

全部的採集規則不管是「開始HTML」和「結束HTML」都是取惟一標籤,好比說不能在取的HTML標籤中不能存在相同的「開始HTML」和「結束HTML」。

 

 

圖四

 

 

 

圖五

 

 

圖六

 

 

圖七

 

 

 

圖八

 

 

圖九

 

19 視頻播放的格式

在開發視頻單頁的過程當中,遇到了視頻不能播放的問題。剛開始是用的html5內嵌的播放器致使不少視頻格式的視頻播放不了。後面換了幾種播放器就能正常播放常見的幾種視頻格式,好比MP四、flv、ogg等,建議使用CK播放器和player.swf。其中MPEG、avi格式的不能正常播放,播放器不支持,目前還沒能找到更好的播放器。

20 播放器設置下載功能

播放器的下載功能取決於播放器類型和瀏覽器版本。

部分播放器自帶下載功能,好比說以下兩圖同一個播放器在不一樣的瀏覽器下下載功能一個能體現一個不能體現。

 

 

 

 

後面在播放頁面加了一個視頻下載連接來下載視頻。

 

<span>下載連接:</span><span id="views"><a href="${content.mediaPath!}" title="點我下載" download>${content.title!}</a></span>        

 

 

 

 

 

21 增量備份 

增量備份incremental backup)是備份的一個類型,是指在一次全備份或上一次增量備份後,之後每次的備份只需備份與前一次相比增長或者被修改的文件。

 

 

下載自動增量備份軟件Allway Sync並運行。

一、新建同步組,選擇菜單欄「同步組」,選擇「新建同步組」

 

 

 

二、請在文本框中輸入同步文件夾的路徑,或點擊「瀏覽」按鈕選擇。

 

 

三、請在文本框中輸入同步文件夾的路徑,或點擊「瀏覽」按鈕選擇。

 

 

四、點擊「同步」,進行文件夾同步備份。

 

 

 

五、同步成功以後右擊「新的同步組1」,選擇「配置」。

 

 

六、配置頁面,展開「默認配置」下面的「新的同步組1」,選擇「同步計劃」,勾選「每隔制定的時間間隔同步」再選擇「同步時間間隔」的時間。

 

 

七、勾選「使用windows‘任務計劃’」,點擊「配置任務計劃」進入屬性界面。

 

 

八、選擇「計劃」,點擊「新建」,選擇「計劃任務」項中的間隔時間,並根據需求填寫「開始時間」,點擊「肯定」。

 

 

 

22 標籤的用法

一、獲取一級友情連接

參數詳解:

siteId:站點ID

ctgId:連接類別編號

enabled:是否顯示

對象的屬性:

name:連接分類名稱

id:連接分類編號

domain:域名(連接地址)

 

[@cms_friendlink_ctg_list siteId='1']
    [#list tag_list as ctg]
${ctg.name}
    [/#list]
[/@cms_friendlink_ctg_list]

 

 

 

 

二、獲取子級友情連接

 

 

[@cms_friendlink_list ctgId='${ctg.id}']
[#list tag_list as childLink]
        <a href="${childLink.domain}" target="_blank">         
${childLink.name}
</a>
[/#list]
[/@cms_friendlink_list]

 

 

 

 

三、獲取某個廣告位下的廣告

因爲jeecms沒有提供該標籤,因此咱們須要自定義標籤來實現此功能,具體操做步驟參考如下博客:

http://www.javashuo.com/article/p-efizpjqm-t.html

對象的屬性:

attr.image_url 圖片地址

attr.image_link 圖片連接地址

 

[@cms_advertising_space id='4' ]
  [#if tag_list?size>0]
    [#list tag_list as c]
        <li><img src="${c.attr.image_url}" border="0"></li>
    [/#list]
  [/#if]
[/@cms_advertising_space]

 

 

 

 

 

 

四、獲取某個廣告的信息

 

[@cms_advertising id='19']
  <a href="${tag_bean.attr.image_link}" >
    <img src="${tag_bean.attr.image_url}" >
  </a>
[/@cms_advertising]

 

 

 

 

 

五、截取字符串

[@text_cut s='誰是小胖俠' len='12' append="..."/]

六、日期格式化

${content.date?string('MM-dd')}

七、獲取當前元素的索引

[#if content_index%4==0]

八、判斷當前數組的長度

[#if tag_list?size>0]

九、判斷某個元素不爲空

[#if title??]

十、防止空異常

jeecms獲取某些屬性時,若是該屬性爲空,則系統會拋出異常,能夠經過如下方式解決,

${content.typeImg!}

若是沒有類型圖,則不顯示

${content.typeImg!'C://0978.jpg'}

若是沒有類型圖,則去'C://0978.jpg'路徑找

十一、分頁標籤

[@cms_pagination/]
參數:sysPage
做用:對頁面顯示出來的記錄進行分頁
是否爲內容分頁。1:內容分頁;0:欄目分頁。默認欄目分頁。
這個分頁標籤使用通常是跟其餘標籤一塊兒使用的,通常和一些列表標籤一塊兒使用。
示例
[@cms_pagination sysPage='1'/]
效果:
 

 


和別的標籤一塊兒使用示例:

 

<div class="pagebar">
   [@cms_comment_page contentId=contentId count='6' orderBy='1']   
          <dl class="rmpl">
            [#if tag_pagination.list?size = 0]
            <dt><span>暫無相關評論!</span></dt>
      [#else]
      [#list tag_pagination.list as c]
     <dt><span>${(c.commentUser.username)!"匿名網友"}</span> 於 ${c.createTime} 評論道:</dt>
     <dd>${c.textHtml!}</dd>
     <dd class="line"></dd>
   [/#list]
  <div class="pagebar">[@cms_pagination sysPage='1'/]</div>  
            [/#if]
          </dl>    
          [/@cms_comment_page]   
   </div>

 

 

 

 

 

 

 


 

 

效果圖:

 

 

自定義分頁樣式,必須寫在 [@cms_comment_page]  裏面 

 

[#assign p=tag_pagination/]
            [#if p.totalPage gt 1]
        <div class="search-pagination" [#if cssClass??] class="${cssClass!}"[/#if][#if cssStyle??] style="${cssStyle!}"[/#if]>
             <ul class="pagination">
                <li>
                    <a href="javascript:;">共 ${p.totalPage} 頁</a>
                </li>                
                <li>
                [#if !p.firstPage]
<a href="${hrefFormer}[#if p.prePage gt 1]_${p.prePage}[/#if]${hrefLatter}">上一頁</a>[#t/]
                [/#if]
                </li>                
                <li class="">
                [#list 1..p.totalPage as i]
                    <a href="${hrefFormer}[#if i gt 1]_${i}[/#if]${hrefLatter}">[#t/]
                    [#if p.pageNo == i]<span class="page-active" style="color: red;">${i}</span>[#else]${i}[/#if]</a>&nbsp;[#t/]
                [/#list]
                </li>                
                <li>
                [#if !p.lastPage]
<a href="${hrefFormer+'_'+p.nextPage+hrefLatter}" rel="next">下一頁</a>[#lt/]
                [/#if]
                </li>                
                [#if !p.lastPage]
                <li>
        <a href="${hrefFormer+'_'+p.totalPage+hrefLatter}"">最後一頁</a>[#t/]
                </li>
                [/#if]
                <!-- page-active -->
            </ul> 
        </div>        

 

十二、搜索

name="q",value="${oldq!}": 搜索關鍵字

 

<div class="search">
    <form id="msearch" method="get" autocomplete="off" action="${base}/search.jspx" target="_blank">
          <div class="serach_type" id="catid">
            <a href="javascript:;" target="_self">所有欄目</a>
              <ul style="width: 75px; display: none;">
                 <li val="">所有欄目</li>
                   [@cms_channel id="103"]
                     <li val="${tag_bean.id}">${tag_bean.name}</li>
                   [/@cms_channel]                    
                   [@cms_channel_list]
                     [#list tag_list as channel]
                        <li val="${channel.id}" name="channelId">${channel.name}</li>
                     [/#list]
                 [/@cms_channel_list]                                          
                </ul>                      
</div>
<input type="hidden" name="c" value="so"/>
<input type="hidden" id="catid_input" name="catid" value=""/>
<input  type="text" name="q" id="searchsubmit" class="search_txt" value="${oldq!}" placeholder="請輸入內容">
<button type="submit" name="searchsubmit" id="searchsubmit" class="search_btn" sc="1" value="true">搜索</button>
<script type="text/javascript">markSelect('catid');</script>
    </form>
</div>

 

[@cms_lucene_page]

[@cms_lucene_page q=q channelId=channelId descLen='100' append='...' count='4' sysPage='1'  ]
搜索結果分頁標籤
做用:對搜索結果分頁
參數:
q: 搜索關鍵字
siteId:站點ID
channeled:欄目ID
startDate::開始時間
endDate:結束時間
count 分頁數
示例:

 

<div class="w96" style="min-height:500px;">
[#if q??]
[@cms_lucene_page q=q channelId=channelId descLen='100' append='...' count='4' sysPage='1'  ]
  <div class="search_msg">您搜索的<span class="red">「${q!}」</span>, 共有 <span class="red">${tag_list?size} 條</span> 查詢結果,[@process_time/]
   </div>
   [#list tag_list as s]
       <dl class="list3">
    <dt><span>[<a href="${s.ctgUrl}" target="_blank">${s.ctgName}</a>]</span>  <a href="${s.url}" title="${s.title}" target="_blank">${s.title}</a></dt>
    <dd class="zy">[@text_cut s=s.description len=descLen append=append/]</dd>
    <dd>來源: <a href="${s.originUrl!}" target="_blank">${s.origin!'本站原創'}</a> &nbsp;&nbsp; 瀏覽次數:${s.views}次 &nbsp;&nbsp; 發佈時間: ${s.releaseDate} </dd>
    </dl>
    [/#list]
      [/@cms_lucene_page]   
         [/#if]  
  </div>

 

結果示例:

 

 


注意:

[@cms_lucene_list]與[@cms_lucene_page]的效果顯示是不同的,[@cms_lucene_list]其顯示的結果由其內的熟悉count和搜索結果的總數決定的,若是搜索結果的總數大於count則顯示的結果就爲count設定的值,若是搜索結果的總數小於count設定的值則顯示搜索結果的總數。而[@cms_lucene_page]不同,它始終是會顯示出全部的搜索結果來的,只是每一頁顯示的值是由count決定的,因此,我建議,通常狀況下,仍是用[@cms_lucene_page]比較好,由於用它既能顯示出搜索結果的分頁又能正確的顯示出搜索出來的結果總數。

 

1三、評論

WEB-INF-t-cms-www-gyxrmyy-content

news.html  內容詳情頁

inc_comment_input.html  評論輸入框

 

 

inc_comment_list.html  評論列表

 

 

 WEB-INF-t-cms-www-gyxrmyy-csi

  comment_list.html  查看評論的回覆

 

 

 WEB-INF-t-cms-www-gyxrmyy-special

  comment_input.html  評論的回覆中的評論

 

 

 [#if channel.commentControl!=2]

    [#include "inc_comment_input.html"/]

    [#include "inc_comment_list.html"/]

[/#if]

 

用到css
r-cms-www-default-css
  index.css
r-cms-jqueryUI
jquery.ui.css
用到js
r-cms
  jquery.js
  front.js
r-cms-jqueryUI
  jquery-ui.js
    
<script type="text/javascript">
        $(function() {
            Cms.checkPerm("${base}","${content.id}");
            Cms.collectCsi("${base}","collectCsiDiv","collect_csi","${content.id}");
            Cms.attachment("${base}","${content.id}","${content.attachments?size}","attach");
            Cms.viewCount("${base}","${content.id}");
            Cms.siteFlow("${base}", location.href, document.referrer,"${site.config.flowSwitch?string}");
        });
    </script>

    <script type="text/javascript">
        jQuery(document).ready(function($){
            $('.content-comment').click(function(){
                $('html,body').animate({scrollTop:$('#comments-text').offset().top}, 1000)
                $('#comments-text').focus();
            });
        });
        $(function(){
            //設置一個定時器,爲BUTTON點擊事件用
            var timer=null;
            var number1=0;

            //文本輸入時改變
            $('#comments-text').keyup(function(){
                if(!$(this).val()==''){
                    $('.submit-on').attr("class", "submit-out");
                }else{
                    $(".submit-out").attr("class", "submit-on");
                }
            });
            //處理輸入的內容是文字仍是字母的函數
            function getLength(str){
                return String(str).replace(/[^\x00-\xff]/g,'aa').length;
            };
        });
    </script>

 

 

 

 

評論分頁 [@cms_comment_page]

 [@cms_comment_list siteId =‘1’contentId=‘1’ greaterThen=‘0checked=‘1’ recommend =‘1’ count='6' orderBy='1 ']   

 

評論分頁標籤

參數詳解:
siteId:站點id,非必選
contentId:內容ID,非必選
greaterThen: 評論內容最大支持大於多少,非必選
checked: 是否須要審覈,1審覈經過的,0 所有 非必選 默認所有
recommend:是否推薦,1推薦的,0 所有 非必選 默認所有
parentId:上級評論ID 優先級大於contentId如果出現了parentId ,contentId參數無效
count:分頁數
orderBy:排列順序:0 :按評論時間降序 1 :按評論時間升序。默認降序
如果parentId contentId siteId都沒有,則默認當前站點的評論
在內容頁模板中能夠將contentId 設置成content.id,讀取本內容下的評論
做用:對評論分頁讀取
具體例子: 

 

 

 

 

評論對象屬性

    <div class="pagebar">
   [@cms_comment_page contentId=content.id count='6' orderBy='1']   
          <dl class="rmpl">
            [#if tag_pagination.list?size = 0]
            <dt><span>暫無相關評論!</span></dt>
      [#else]
      [#list tag_pagination.list as c]
     <dt><span>${(c.commentUser.username)!"匿名網友"}</span>於 ${c.createTime} 評論道:</dt>
     <dd>${c.textHtml!}</dd>
     <dd class="line"></dd>
   [/#list]
<div class="pagebar">[@cms_pagination sysPage='1'/]</div>
            [/#if]
          </dl>    
          [/@cms_comment_page]   
   </div>

 


textHtml:評論內容
replayHtml:回覆內容
ip:評論者ip地址
createTime:評論時間
replayTime:回覆時間
ups:頂數
downs:踩數
recommend:是否推薦
checked:是否審覈
replyCount:回覆數
replayUser:回覆用戶對象 例如獲取回覆管理員用戶名${c. replayUser.username!}
commentUser:評論用戶對象 例如${c. commentUser.username!}
parent:父級評論對象  例如${c. parent.username!}

 [@cms_comment_list siteId =‘1’contentId=‘1’ greaterThen=‘0checked=‘1’ recommend =‘1’ count='6' orderBy='1 ']   

 

評論列表標籤

參數和cms_comment_page標籤一致,只是不能標籤體內不能插入分頁標籤。

參數詳解:

siteId:站點id
contentId:內容ID
greaterThen: 評論內容最大支持大於多少
checked: 是否須要審覈
recommend:是否推薦
orderBy:排列順序:0 :按評論時間降序 1 :按評論時間升序。默認降序。

做用:顯示評論列表

具體例子:

 

<div class="blue_right_top"><h2><a href="#" target="_blank">熱門評論</a></h2></div>
 <div class="blue_right_div">
  [@cms_comment_list siteId='1' count='5' recommend='1' textLen='50' append='...']
  <dl class="rmpl">
  [#list tag_list as c]
   <dt><span>${(c.commentUser.username)!"匿名網友"}</span>對<a href="${c.content.url}" target="_blank">${c.content.title}</a>評論道:</dt>
   <dd>[@text_cut s=c.textHtml len=textLen append=append/]</dd>
   <dd class="line"></dd>
  [/#list]
  </dl>
  [/@cms_comment_list]
 </div>
    

 

其餘經常使用的標籤能夠查看JEECMS-V7系統使用說明書和如下博客:

https://blog.csdn.net/qq_32047637/article/details/56676918

https://blog.csdn.net/u012176984/article/details/45501771

23 圖標模糊

網頁上的圖標顯示比較模糊,是因爲圖片的像素問題所致使的,將圖片的大小調成與網頁圖標一致便可。

24 360瀏覽器沒法加載flash

緣由是該電腦連的局域網,未自動下載內置flash player;而後本地的flash player版本又過低;因此致使瀏覽器沒法加載flash player,按鈕便沒法顯示。

網上flash播放器的離線安裝包不多,有針對ie的、chrome的安裝包,經測試發現ie版離線安裝包無效(不管開啓極速/兼容),只有chrome版安裝包有效。

ie瀏覽器下面訪問咱們的網站,用的ie內核的flash,上傳按鈕也是沒法顯示的。用谷歌的在ie下我沒測過

查看瀏覽器的插件:chrome://plugins/

通常狀況下,瀏覽器在聯網環境下,會自動下載內置的flash player

25 UEditor相關問題

img元素的style屬性被刪除

 

 

修改ueditor的配置文件,在白名單中添加img的style屬性

 

 

 

中文的引號和省略號變成了轉義字符

修改ueditor.all.js文件,

 

 

注意:無需修改outputXssFilter等其餘屬性值

參考博客:

一、百度編輯器ueditor如何設置容許img的sytle

https://segmentfault.com/q/1010000011424006

二、百度編輯器ueditor如何設置容許img的sytle

https://blog.csdn.net/wanghao3616/article/details/25816747461113

26 CKEditor時效性問題

在頁面內將編輯器賦值給一個變量便可,

而後使用以下語句就能夠取得編輯器內的值。

editor.document.getBody().getText(); //取得純文本

editor.document.getBody().getHtml(); //取得html文本

 

/**
 * 提交表單校驗
 */
var mtEditor=null; 
function checkSubmit(){
var txt=mtEditor.document.getBody().getText().
replace(/[\r\n]/g,"");
if(txt==""){
        alert("內容不能爲空");
        return false;
}
}

 

 

 

 

 

 

 

 

 

 

27 CSS控制圖片的寬高比

若是類樣式單純的設置圖片的寬度和高度,

若圖片大小無style控制,則類樣式生效,element style無數據;

若圖片大小有style控制,則類樣式無效,element style有數據;這是由於優先級的緣由;

可是若是類樣式設置圖片的最大寬度或高度,則對以上兩種狀況都有效。

相關文章
相關標籤/搜索