1. <span id="gvflt"><sup id="gvflt"></sup></span>
    <span id="gvflt"><sup id="gvflt"></sup></span>
    <ol id="gvflt"><center id="gvflt"></center></ol>

    <samp id="gvflt"></samp><ol id="gvflt"><blockquote id="gvflt"></blockquote></ol>
    <dd id="gvflt"></dd>
    ? ?
    電腦維修網
    當前位置:電腦維修網 >操作系統 > 網站編程代碼 >JEECMS按發布日期排序失效解決方法

    JEECMS按發布日期排序失效解決方法

    2012-11-12 20:29 | 作者:代碼編程 | 來源:電腦互助網 | 參與評論 | 點擊:2638次
    數據庫中這個發布日期時間存放在兩個表中,分別為jc_content和jc_content_ext這兩個表中。
    源代碼,我看一下是這樣寫的。以上是ContentDaoImpl類中的查詢方法。加紅部分為此次生成的HQL語句。
        private void appendSiteIds(Finder f, Integer[] siteIds) {
            int len;
            if (siteIds != null) {
                len = siteIds.length;
                if (len == 1) {
                    f.append(" and bean.site.id=:siteId");
                    f.setParam("siteId", siteIds[0]);
                } else if (len > 1) {
                    f.append(" and bean.site.id in (:siteIds)");
                    f.setParamList("siteIds", siteIds);
                }
            }
        }

        private void appendOrder(Finder f, int orderBy) {
            switch (orderBy) {
            case 1:
                // ID升序
                f.append(" order by bean.id asc");
                break;
            case 2:
                // 發布時間降序
                f.append(" order by bean.sortDate desc");
                break;
            case 3:
                // 發布時間升序
                f.append(" order by bean.sortDate asc");
                break;
            case 4:
                // 固頂級別降序、發布時間降序
                f.append(" order by bean.topLevel desc, bean.sortDate desc");
                break;
            case 5:
                // 固頂級別降序、發布時間升序
                f.append(" order by bean.topLevel desc, bean.sortDate asc");
                break;
            case 6:
                // 日訪問降序
                f.append(" order by bean.viewsDay desc, bean.id desc");
                break;
            case 7:
                // 周訪問降序
                f.append(" order by bean.contentCount.viewsWeek desc");
                f.append(", bean.id desc");
                break;
            case 8:
                // 月訪問降序
                f.append(" order by bean.contentCount.viewsMonth desc");
                f.append(", bean.id desc");
                break;
            case 9:
                // 總訪問降序
                f.append(" order by bean.contentCount.views desc");
                f.append(", bean.id desc");
                break;
            case 10:
                // 日評論降序
                f.append(" order by bean.commentsDay desc, bean.id desc");
                break;#p#分頁標題#e#
            case 11:
                // 周評論降序
                f.append(" order by bean.contentCount.commentsWeek desc");
                f.append(", bean.id desc");
                break;
            case 12:
                // 月評論降序
                f.append(" order by bean.contentCount.commentsMonth desc");
                f.append(", bean.id desc");
                break;
            case 13:
                // 總評論降序
                f.append(" order by bean.contentCount.comments desc");
                f.append(", bean.id desc");
                break;
            case 14:
                // 日下載降序
                f.append(" order by bean.downloadsDay desc, bean.id desc");
                break;
            case 15:
                // 周下載降序
                f.append(" order by bean.contentCount.downloadsWeek desc");
                f.append(", bean.id desc");
                break;
            case 16:
                // 月下載降序
                f.append(" order by bean.contentCount.downloadsMonth desc");
                f.append(", bean.id desc");
                break;
            case 17:
                // 總下載降序
                f.append(" order by bean.contentCount.downloads desc");
                f.append(", bean.id desc");
                break;
            case 18:
                // 日頂降序
                f.append(" order by bean.upsDay desc, bean.id desc");
                break;
            case 19:
                // 周頂降序
                f.append(" order by bean.contentCount.upsWeek desc");
                f.append(", bean.id desc");
                break;
            case 20:
                // 月頂降序
                f.append(" order by bean.contentCount.upsMonth desc");
                f.append(", bean.id desc");
                break;
            case 21:
                // 總頂降序
                f.append(" order by bean.contentCount.ups desc, bean.id desc");
                break;
            default:
                // 默認: ID降序
                f.append(" order by bean.id desc");
            }
        }
    這時就可以看到了,他前半段的HQL語句是:select bean from Content bean。這個方法是拼HQL串。
    通過這個拼串后的結果,也就是select bean from Content bean order by bean.sortDate desc這查詢的就是數據庫表:jc_content中的sort_date字段了。
    電腦互助網注:大家可以到數據庫中這個表中看一下。c_content中的sort_date字段存放的都是第一次發布時間。#p#分頁標題#e#

    http://www.q7897.com/6/4/25788.html繼上文所說,我們要查的不是第一次發布時間,而是修改時間。所以這時不合理。
    所以再更新文章時,我們只需要再update時,把后臺修改的發布日期時間再加入到Content的表中就可以了。

    JEECMS按發布日期排序失效解決方法

    第1步:找到Content的后臺action中的update方法。進入JEECMS后臺的文章更新頁面,右鍵源代碼,在源代碼中搜索“.do”,直到搜索到一個o_update.do即可。

    電腦互助網注:我用的是谷歌瀏覽器,在谷歌瀏覽器中查看提交按扭的表單,發現表單就是提交到o_update.do的。

    第2步:我們都知道com.jeecms.cms.action.admin.main這個包是所有后臺操作action包類。所以就要到這個下面去找。
    另,我們還知道,我們操作是的Content類,所以只有一個類了,就是:ContentAct。雙擊打開此類。


    第3步:通過ContentAct中搜索“o_update.do”,找到public String update(.......參數很多...)方法。并在此方法中找到以下代碼。
    bean = manager.update(bean, ext, txt, tagArr, channelIds, topicIds, viewGroupIds, attachmentPaths, attachmentNames, attachmentFilenames, picPaths, picDescs, attr, channelId, typeId, draft, user, false);

    第4步:通過以上這些代碼,鎖定到接口ContentMng下的update。并再次通過ContentMng接口找到它的實現類ContentMngImpl。
    并在ContentMngImpl中找到update方法。

    在Content entity = findById(bean.getId());下面加入
    bean.setSortDate(new Timestamp(System.currentTimeMillis()));//這個是直接加載當前系統日期時間
    bean.setSortDate(ext.getReleaseDate());   //如果使用這個就是取后臺發布時間設置的時間。
    我個人推薦使用第二個。
    電腦互助網注:Content entity = findById(bean.getId());使用ID查詢單個實體信息。
    把當前系統日期加入到Content實體中。

    第4步:完成以上步驟,就已經完成了。再次修改文章信息時,就可以把文章發布時間給同步到文章信息表中了。而不會再出現一個Content信息表發布時間有兩修水同的時間了。
    轉載時請注明:轉載自《電腦維修技術網》原文地址:http://www.q7897.com/6/4/25789.html
    凡文章內未標注來源均為原創文章!恭候您的意見
    ------分隔線----------------------------
    ?
    最新評論
    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    友情連接版權聲明廣告合作聯系我們意見投訴網站地圖百度地圖谷歌地圖
    敬告:本站所有信息都為網友發布,及網絡收集而來,我們只對信息的合法性進行審核 請朋友們自行鑒別真實性。
    秋霞伦理片eeuss影院