报业集团新闻信息查询系统的设计和实现

  • 优秀论文奖
  • 文章作者:中国新闻技术工作者联合会 2021/12/30-04:43 阅读: loading...

    刘景辉 李时平 张顶峰

    辽宁报业传媒集团

    摘要:处在信息高速发展的今天,导致处理和使用这些庞大的信息变得越来越困难。如何从每天产生海量的新闻数据,检索出用户感兴趣的内容,是当前报业融合转型中的热门研究方向之一。通过对传统检索模式的拓展,让用户最短时间检索到所需新闻,我们在开发的时候分了3个阶段:系统分析、系统设计、系统实施。其中系统设计主要包括了系统整体设计和详细设计2部分;系统实施主要包括前台、后台和网站测试3个部分。 关键词:信息检索 组图 拖拽上传 批量导入 缩略图

    1需求分析

    集团编辑部至1954年来以来留存了海量的新闻图片资源。近些年的照片资料基本都是电子版的,加之以前的纸质照片和留存的胶片,需要建立一套图片管理系统。将历史照片统一管理起来,建立图片描述、组图、作者等相关信息,方便编辑记者对图片的管理,及日后的查询,有利于二次使用。不仅留存选用记录,避免撞稿,而且为日后支付稿酬提供依据。根据编辑部人员权限和需求的设定,一部分人员需要浏览和下载图片,另一部分人员需要管理这些新闻图片资源。将其分为上传、浏览、下载、删除四种权限。其中:上传分为单张上传和成组图上传;下载分为单图下载、多图下载和组图下载;浏览根据图片拍摄时间或上传时间,以及关键字对图片进行检索和浏览;删除定义为:默认只允许删除自己图片,系统管理员拥有最高权限,即删除所有人员的图片。

    2可行性分析

    本系统属于数据信息发布与管理系统类。新闻稿件查询系统的后台管理对新闻做了详细描述。前台显示新闻的详细信息,可以满足人员浏览新闻时,快速搜索到所需新闻的要求;前台提供查询新闻信息功能,方便浏览者查找相关的新闻信息新闻;新闻检索系统后台,由管理员进行管理维护,以保证系统的安全性和可行性。

    3总体设计

    新闻发生的频率非常高。如果使用静态网页作为新闻页面,则维护工作将会非常繁琐;管理员每天需要制作大量的网页,从而浪费时间和精力;使用PHP制作的新闻发布及管理系统的动态网页,可以使新闻发布和管理会变得很简单。下面对新闻发布及管理系统进行系统分析与总体设计。本项目基于PHP + Apache + MySQL的WEB应用系统,采用B/S模式。3.1开发工具开发环境:服务器端 安装xampp,编程端 安装notepad++编辑器即可。3.2系统功能描述新闻稿件查询系统包括新闻上传、新闻查询、稿件选用、稿件下载、新闻管理和用户管理等模块。具体描述如下:1.新闻管理:(1) 新闻信息的录入;(2) 新闻类别的修改;(3) 新闻类别的删除;(4) 新闻类别的查询。2.新闻上传:(1) 基本新闻信息录入,包括新闻标题、新闻作者、新闻内容、新闻图片等;(2) 基本新闻信息的修改;(3) 基本新闻信息的删除;3.新闻查询模块:(1) 按照关键字查询分页显示新闻;(2) 按照日期分页显示新闻;(3) 按照新闻分类显示新闻。4.用户管理功能:(1) 用户信息的录入,包括用户名和密码等信息;(2) 用户信息的修改;(3) 用户信息的删除;(4) 用户权限的管理。3.3用例图超级用户

    图1系统用例图

    3.4 结构图

    图2 系统结构图(HIPO图)

    图3 系统分层图

    3.5系统流程分析为进一步了解本实例系统的设计,本小节将对系统进行流程分析。多用户系统工作流程,自用户登录模块开始,对用户身份认证。身份认证分为两个过程:(1)确认用户是否是有效的注册用户。(2)确定用户的类型。第1个过程决定用户能否进入系统。第2个过程根据用户的类型决定用户的操作权限,从而决定用户的工作界面。本系统分为前台系统和后台系统两个部分。前台系统不需要进行身份认证,任何人皆可通过浏览器阅读已经发布的新闻发表网友评论。后台系统的流程分析如图3-4所示。Admin用户拥有所有的权限,普通用户只能对自己发布的新闻进行管理,包括修改新闻内容、删除新闻和删除网友评论。

    4 后台系统的流程分析图

    图5 系统分层图

    4详细设计

    4.1 数据库设计4.1.1数据库的创建本系统采用Mysql作为后台数据库。因为在开发新闻稿件查询系统时,使用数据库主要用于记录服务器端的人员信息及客户端信息,系统涉及数据量大,数据库引擎性能要求高。将数据库命名为photo,三张表单:表一user,表二 photo,表三record。4.1.2数据库的逻辑结构设计为了提高系统的安全性,服务器端设置了登录窗口。在系统启动时自动弹出用户姓名和密码。在这里,用户姓名和密码信息均被以数据库表的形式存储于数据中。在分析系统的实体需求后,根据每个实体图示,创建系统所需的各个数据表,系统数据库所有数据表及其用途描述如下所示。1.系统用户表:user用系统用户表来保存系统用户(管理员)的基本信息。
    序列编号字段名称数据类型说明
    1idint(3)
    2usernamevarchar(25)用户名
    3groupvarchar(25)用户组
    4passwordvarchar(50)密码
    5Departmentvarchar(25)所属部门
    6lastlogintimeDatetime最后登录时间
    7creatdateDatetime创建日期
    8photo_permissionint(3)权限

    表1 系统用户表: user

    2.新闻信息表:photo此表主要用来保存各条新闻的详细内容信息。
    序列编号字段名称数据类型说明
    1idint(10)图片id
    2titlevarchar(100)标题
    3Inporttimetinytext入库时间
    4creatdateDatetime创建时间
    5descriptionvarchar(1000)描述
    6photopathvarchar(100)路径
    7authorvarchar(100)作者
    8publishdateDatetime
    9publishcolumnvarchar(100)
    10remarkvarchar(50)

    表2 新闻信息表: photo

    3.记录表:record此表用来记录新闻选用用户、选用时间和统计选用次数。
    序列编号字段名称数据类型说明
    1Recordidint(11)记录id
    2Articleidint(11)
    3useridvarchar(50)用户id
    4datetimevarchar(25)选用时间

    表3 记录表: record

    4.2 登录及权限4.2.1登录判断页面判断是否有$Session[“userid”],如为空,则跳转到登录页面,接收用户输入的登录名和密码,对数据库进行查询,查询语句如下:select photo_permission from user where username=$GET[“username”] and password=$GET[“password”] limit 1;如能查询到,则将userid和photo_permission存放到响应的session中,页面跳转到浏览检索主页面。4.2.2权限分组本系统按权限用户分类:浏览者、上传者、下载者和管理员。1.浏览用户:此类用户具有以下权限:(1)检索和浏览已发布的新闻。(2)登录后可以对个人密码进行修改。(3)可以查看缩略图。2.上传用户:此类用户具有以下权限:(1)浏览已发布的新闻。(2)登录后可以对个人密码进行修改。(3)可以查看缩略图。(4)上传稿件。(5)下载和删除自己的稿件。3.下载用户:此类用户具有以下权限:(1)浏览已发布的新闻。(2)登录后可以对个人密码进行修改。(3)可以查看缩略图。(4)选用和下载稿件。4.管理员:此类用户具有以下权限:(1)浏览已发布的新闻。(2)登录后可以对个人密码进行修改。(3)可以查看缩略图。(4)选用、上传和下载稿件。(5)管理所有的稿件。4.2.3界面呈现与安全防范系统会判断$Session[“photo_permission”],按相应权限在页面上提供相应链接的提示,同时,为防止恶意用户直接访问相应页面地址,各页面加载之前会先判断 $Session- -[“photo_permission”] 值,以确认是否继续加载,还是拒绝加载跳转到登录页面。4.3 上传上传分初始时的批量自动导入和日常人工的上传。系统真图隐藏,自动生成缩略图显示。4.3.1 批量导入考虑到已有的海量图片信息已经根据主题(组图)分文件夹整理存储好,为避免人工通过页面上传耗时费力的情况发生,系统设计批量导入页面,将海量新闻图片直接批量自动写入数据库。根据实际需求,建立组图,自动生成相应文件夹,图片描述情况:1.图片说明写在word文档中。2.图片说明写在txt文本文档中。3.文件夹名就是组图说明,无额外文档说明。4.文件夹内同时存在多个说明性文档,如一个word和一个txt文本或多个word。系统根据策略,优先提取word,其次读取txt,最后选用文件夹名作为组图的标题和描述。通过读取文件的EXIF字段,自动获取照片的拍摄时间,不需要人工参与。还将照片的拍摄时间,作者信息,图片路径,图片描述(txt,word或者文件名)数据写进对应的字段。4.3.2上传和组图本系统通过jquery实现了直接拖拽单张图片或者多张到浏览器中的上传图框里,如图所示。然后上传用户在上传框下方,输入相应组图的标题和说明,点击提交按钮完成图片上传,上传数据即时写入数据库中,并更新上传用户的图库。4.3.3 缩略图查询检索时默认呈现缩略图。非原图,一方面为使页面能够更好、更快的呈现在用户面前,另一方面防止用户越权下载原图。具体抽图函数代码如下:4.4 浏览新闻稿件查询系统有上传、我的图库、检索页面。在检索页面,根据传稿日期或者拍摄日期查询所需稿件,也可输入关键字缩小查询范围。通过分页和ajax异步刷新提高了数据查询和页面呈现效率。具有查看权限的用户,可以点击图片,详细查看高分辨率图片和内容描述及组图中相应图片的信息。4.5 选用选稿单的功能类似于网上商城的购物车,直接通过在Session中建立二维数组保存选稿情况,为避免撞稿,选用前可以查看每张图片选用记录,下载次数。鼠标悬停即可进一步查看被选用的具体情况,然后再决定是否选用。一经选用,稿件自动列入选稿单。用户可再根据需求整理选稿单,包括单张图片的删除或清空全部选稿单。只有用户选择下载时,系统才会将选用情况记录数据库,以供其他用户参考。4.6 下载有下载权的用户,可以选择单张下载和批量文件打包zip下载。中文系统需要留意字符集的问题,页面呈现和数据库存储均为UTF-8,但文件名及目录的存储却只能是gb2312或gbk(否则目录或数据库中即为乱码)。所以针对这种情况,需要使用iconv()函数预先对字符串进行字符串转换。另外,多张图片下载前,系统需先将所选的图片组生成压缩文件,图片及组图说明生成同名TXT文本文件,一同置入压缩文件中。实践证明,下载推送前,必须通过使用ob_clean()和ob__flush()函数控制缓冲区,结束操作和正常关闭压缩文件,才能通过header()和readfile()函数,将该压缩文件以二进制的模式推送给用户。4.7图片管理我的图库页面实现用户对图片的管理。有图片上传权限的用户,不仅能够查看自已上传的历史图片,还且还可对自己的图片进行管理,包括按拍摄或上传时间段及关键字对我的图库进行检索,删除后修改图片及组图信息。

    5结语

    通过对新闻发布、新闻下载、新闻选用、新闻上传与删除等功能的设计与实现,新闻稿件查询系统给日常的编采工作提供了很大的帮助,不仅提高工作效率,而且对稿件把握的准确性也有进一步的提升。当今的时代是一个信息时代,庞大的信息检索浪费大量的时间和精力,本系统同样可以解决这个难题,人员查询可以通过输入关键字查询。同时,本系统能够在这些信息的基础上进行分析并做出相应的应用。此外,本系统能够根据用户所需,逐步扩展多个个性化搜索功能。 编辑:中国新闻技术工作者联合会

    评论 点击评论