码迷,mamicode.com
首页 > Web开发 > 详细

网站首页轮番图的后台管理

时间:2015-07-17 02:02:32      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:轮番图   图片链接地址   cms   校园网站   

   

     如下图,很多CMS的首页都会有实时更新的轮番图的需求:


            技术分享   


    最近在做一个CMS的过程中,就遇到了这样的需求。


    之前曾经做过一个校园网站的项目(自己做着玩玩),但前台的轮番图是写死在页面上的,即:      

<span style="font-family:SimSun;font-size:18px;"><div>
<span style="white-space:pre">	</span><ul>
<span style="white-space:pre">		</span><li><a href="#">
                    <img src="images/Index/show/01.jpg" alt="学校正门" /></a></li>
                <li><a href="#">
                    <img src="images/Index/show/02.jpg" alt="学校操场" /></a></li>
                <li><a href="#">
                    <img src="images/Index/show/03.jpg" alt="建工学院古建筑模型展" /></a></li>
                <li><a href="#">
                    <img src="images/Index/show/04.jpg" alt="舞蹈学院毕业生" /></a></li>           
<span style="white-space:pre">	</span></ul>
</div></span>

    但是在实际项目中肯定是要做活的,即能够在后台管理,动态修改首页显示图片与链接地址。

        

    这里仅和大家分享思路。

        

    比如需求是这样的:首页轮番显示的图片都是新闻中的图片,点击图片跳转到相应的新闻内容页面,所以后台可以设置每个新闻是否在首页显示图片,如果显示的话,则选择这条新闻在首页所显示的图片(每条新闻中可能有多张图片),选择后,更新数据库;当然还可以取消在首页显示。

    数据库中,新闻表主要字段为:                 

NewsId NewsTitle NewsContent IsShow ImageUrl IsEnabled

    NewsContent为新闻内容,是经过富文本编辑器编辑后,以html形式存储的(其中会包含新闻中的图片路径),IsShow表示是否在首页显示(“是”或“否”),ImageUrl表示如果在首页显示的话,所显示图片的路径。

        

    先说取消新闻在首页显示:

    取消在首页显示很简单,直接更新数据库字段IsShow为 “否”,因为首页加载时,只会查询IsShow字段为 “是” 的新闻。


    再说设置某条新闻在首页显示:

    如果要设置某条新闻的图片在首页显示,则需要先查出来此新闻内容中都包含哪些图片(只需要获取它们的路径就行),用正则在新闻内容中获取这些图片路径的的核心代码如下(C#实现方式):

        

#region InterceptImagesUrl-从HTML格式的新闻内容中获取图片路径-胡玉洋
        /// <summary>
        /// 从HTML格式的新闻内容中获取图片路径
        /// </summary>
        /// <param name="content">新闻内容</param>
        /// <returns>List<String>类型</returns>
        List<String> InterceptImagesUrl(string content)
        {
            Regex r;
            Match m;
            int i = 0;
            List<String> imageUrlList = new List<string>();
            string imageUrl = "";
            r = new Regex("src\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            for (m = r.Match(inputString); m.Success; m = m.NextMatch())
            {
                imageUrl = m.Groups[1].Value;
                i++;
                imageUrlList.Add(imageUrl);
            }
            return imageUrlList;
        }
        #endregion
         

    此函数最终会根据新闻内容截取出所有新闻中的图片地址集合,然后只需要将这些图片显示出来,选择一张,更新到数据库中ImageUrl字段并更新IsShow为 “是” 即可。


    最后,设置显示与取消显示都能是实现了,在首页显示当然也就好办了。

    查询数据库中在首页显示(IsShow字段为 “是” )的新闻,在首页显示时,在.net环境下如果用的.aspx方式,可以用C#语法遍历显示,也可以用repeater等;如果用的MVC,可以用razor语法进行遍历显示。在jsp环境下,可以用java语法遍历,也可以用jstl标签等方式。




NewsId NewsTitle NewsContent IsEnabled IsShow ImageUrl

版权声明:本文为博主原创文章,未经博主允许不得转载。

网站首页轮番图的后台管理

标签:轮番图   图片链接地址   cms   校园网站   

原文地址:http://blog.csdn.net/huyuyang6688/article/details/46687793

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!