推荐文章系统(一)

自个儿一贯想做多少个让网络老铁推荐随笔的系统,不过平昔未曾时间落成。今后终于草草的将它做到了。并且将它放到自个儿的民用网址:斑竹园上了。为了拉动力源程序开放的精气神,同一时候是也是为了越来越好的越来越全面本系统,在那地笔者将图书系统的源代码公开。希望它能起到沟通学习涉世的指标,同一时间也冀望恋人们多的提议对本系统的校订意见和提出。借使有哪些建议或意见,接待给Bamboo(wangyy@363.net卡塔尔(قطر‎来信,只怕到斑竹园的BBS给巴姆boo留言。
本系统是在时光极其浮动的图景下开垦出来的,所以它还十分不周密。何况效果也很简短。之所以开荒本系统是为着抬高斑竹园的内容,同一时候也是为着缓和本人维护的职业量。
本系统不用登记,只要你填写下表单就能够。本系统是依靠本站与推荐者互惠互利的底子上支付的,由此为了给推荐者带给一些利处,本系统允许你在推举小说时钦点一以往展现在随笔尾部的图形的总是地址。该图片的朗朗上口最佳为400*60的图形。那样每二个其余网民见状您推荐的稿子,就也正是作了一遍广告。
本系统由以下多少个文本组成:
推荐小说的表单文件:appre.htm。该文件朋友们得以用相应的工具自行成立,在这里地自个儿就不提供源码了;管理推荐文章的
:appre.php文件;突显文章列表的article.php文件;展现每一篇小说的articledisp.php。在这里边自身就各自提供源代码。
首先,必须创建相应的数据库。其说话是: CREATE TABLE article( id int not
null auto_increment primary key, name varchar(15), webname
varchar(255), webadd varchar(255), weblogo varchar(255), articlename
varchar(255), articleauthor varchar(255), articlemsg longtext null )

/*************************************/
/*author:大年龄青年 /*email:wenadmin@sina.com
/*from:
/*************************************/
php作为“最简易”的Web脚本语言,在境内的市集更大,phper越多,不过认为大大多人就像向来不捏造到方式难点,什么样的设计格局才是最优的,才是最切合自身近日做事的,毕竟功效是最入眼的。MVC应该是首选,www.sourceforge.net上有好些个名特别优惠的依靠MVC的开源项目,大家能够冲过去商量切磋。
明天给协和集团网址改版,首要如故小说透露系统,高管说后台本身想怎么规划就怎么两全,独一的前提就是快。于是本身搭建了三个不难的公告种类的框架。要是一味从作品透露系统上讲,基本上能够知足“中型小型型”公司网址的篇章表露体系的渴求,后台的一共的php代码不当先800行,並且扶植任性扩张和plugin作用。
废话不再说了,上边把作者的结构讲一下,希望对你能抱有助于。
注意:在起来前,须要你下载二个模板管理工科具类:“smarttemplate”,并打听部分模板的粗略的运用。
小编的测量试验遭遇:windows2k/apache2/php4.3.2/smarttemplate类库
先讲一下全套web站点的文件的分布,在末端的章节中将接力成立并填写下边包车型大巴目录和文书
作者的服务器的web的根目录是“C:/Apache2/htdocs/”
作者在底下建设构造了二个文件夹“cmstest”作为本人的网址的主文件夹
文件夹“cmstest”下边包车型大巴子文件构造是: /config.inc.php /list1.php
/list2.php /new.php /add.php /view.php /page.js /src/MysqlUtil.php
/src/ArticleUtil.php /src/CoreUtil.php /src/ParseTpl.php
/src/lib/smarttemplate/*.*本条款录用来寄放在smarttemplate的类库的
/smart/template/list1.htm /smart/template/list2.htm
/smart/template/new.htm /smart/template/add.htm /smart/template/view.htm
/smart/cache/ /smart/temp/ 统筹步骤:
思谋自个儿公司的网址的风味和已经安顿的沙盘模拟经营的构造,总计要兑现的职能,列出项目清单。
解析效益清单,把效果分类。每一种的功效皆以有协同点的,能够由此相通的措施达成的。
根据效果与利益,设计数据库的表布局设计一个布置文件config.inc.php,用来记录网址的局地中坚的音讯,包含数据库名……..
为每一样功效设计数据库查询的接口函数,那样以后相通的操作只要调用那个接口就足以了。那样幸免了后来可能发生的大批量的代码重复的操作,也就高达了代码复用的指标。
定义本人对模板工具的包裹函数,以往调用的时候就绝不管模板工具的行使难点了,唯有往本身的包装函数里面塞数就能够了。
底子函数已经ok了,开始轻松的页面达成和模板的处理了。
大家今后就从头安插二个简约的体系,看看自个儿是怎么一步一步地促成二个“最轻巧易行的小说的揭露系统”的,当然只是自己模拟的三个概括的等级次序,实际中八个类型大概比那要复杂的多。
一、解析笔者的案例: 呵呵,这一个顾客项目好轻松的哟,幸福ing……….
list1.php:有多个篇章列表和三个按键,“php开采作品列表”“php开垦火爆随笔列表”“asp开垦最新篇章”“增添新小说”
list2.php:有2个篇章列表“asp开发小说列表”“asp开采火热小说列表”
new.php:二个增添随笔的表单的页面 add.php:管理new.php的表单的页面
view.php:小说察看的页面 二、剖析作用“php开垦小说列表”“asp开辟小说列表”——-按小说的发布顺序,倒序排列展现,每页展现5篇小说“php开采热门作品列表”“asp开垦销路广小说列表”——-按文章的点击察看次数排序展现小说,突显3篇小说“asp开拓新型篇章”按小说的宣布顺序,倒序排列显示,突显3篇文章“加多新小说”——一个稿子的昭示成效,满含文章标题/我/内容
“小说察看”———展现某篇文章内容 综合的看一下,对效果举办分拣饱含:
1、小说列表:平常的分页列表、按点击数列表、按发表顺序的列表
2、随笔表露:三个表单的输入和管理 3、随笔察看:读取呈现随笔内容
呵呵,功用实乃太轻巧了些。 三、设计数据库: 数据库名:cmstest 数据表:
CREATETABLE`article`( `id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHARNOTNULL, `content`TEXTNOTNULL,
`datetime`DATETIMENOTNULL, `clicks`澳门新浦京8455com,INTNOTNULL, PRIMARYKEY;
CREATETABLE`cat`NOTNULL, `cname`VARCHA安德拉NOTNULL, P安德拉IMARAV4YKEY;
—————————— article表是随笔内容表,
—————————- `id`小说编号 `title`文章题目
`content`小说内容 `datetime`颁发时间 `clicks`点击数
`pid`分拣表号 —————————— cat表是作品的品类表

—————————- `cid`分拣表号 `cname`分拣名称

地点是表的数据库构造,光有了那几个还非常不够,还要有多少
INSERTINTO`cat`VALUES,;
INSERTINTO`article`VALUES(1,”php开发1″,”php开发1内容”,”2004-8-11:1:1″,0,1);
INSERTINTO`article`VALUES(2,”php开发2″,”php开发2内容”,”2004-8-21:1:1″,0,1);
INSERTINTO`article`VALUES(3,”php开发3″,”php开发3内容”,”2004-8-31:1:1″,4,1);
INSERTINTO`article`VALUES(4,”php开发4″,”php开发4内容”,”2004-8-41:1:1″,3,1);
INSERTINTO`article`VALUES(5,”php开发5″,”php开发5内容”,”2004-8-51:1:1″,2,1);
INSERTINTO`article`VALUES(6,”php开发6″,”php开发6内容”,”2004-8-61:1:1″,1,1);
INSERTINTO`article`VALUES(7,”php开发7″,”php开发7内容”,”2004-8-71:1:1″,0,1);
INSERTINTO`article`VALUES(8,”jsp开发1″,”jsp开发1内容”,”2004-8-11:1:1″,0,2);
INSERTINTO`article`VALUES(9,”jsp开发2″,”jsp开发2内容”,”2004-8-21:1:1″,0,2);
INSERTINTO`article`VALUES(10,”jsp开发3″,”jsp开发3内容”,”2004-8-31:1:1″,4,2);
INSERTINTO`article`VALUES(11,”jsp开发4″,”jsp开发4内容”,”2004-8-41:1:1″,3,2);
INSERTINTO`article`VALUES(12,”jsp开发5″,”jsp开发5内容”,”2004-8-51:1:1″,2,2);
INSERTINTO`article`VALUES(13,”jsp开发6″,”jsp开发6内容”,”2004-8-61:1:1″,1,2);
INSERTINTO`article`VALUES(14,”jsp开荒7″,”jsp开拓7剧情”,”二〇〇〇-8-71:1:1″,0,2卡塔尔;
那样我们的数据库就准备完了。接下来就起来波及到具体的兑现了。
四、设计config.inc.php文件
那几个文件用来设置有个别web上通用的数额消息和有个别参数,其余的现实性的落实页面都经过这些页面得到须要的数据,上边是布置的清单个中的define(‘CMS_ROOT’,’C:/Apache2/htdocs/cmstest/’卡塔尔国;路经依照自个儿apach的web路经来改。
五、制作功能接口
首先对mysql数据库函数举行包装,简化对数据库操作,网络有多数这么的开源的类。然而此间小编个人依照自个儿的要求和习于旧贯,本身对mysql的函数实行了打包,写得好坏就先不管了。那一个地点大致的看一下就能够了,差异的包裹的类操作是不一样的,并且这里的显要目标是知道那套“结构”,不用太扣代码。
——-MysqlUtil.php——– 0卡塔尔国 returnmysql_fetch_assoc; else
returnnull; } functiondbGetOne{ $rs=dbGetRow;
returnsizeof==null?null:?$rs[$fildName]:null); }
function&dbPageQuery($sql,$page=1,$pageSize=20){ ifreturndbQuery;
$countSql=preg_replace(‘|SELECT.*FROM|i’,’SELECTCOUNT; $n=dbGetOne;
$data[‘pageSize’]=$pageSize<1?20:$pageSize;
$data[‘recordCount’]=$n;
$data[‘pageCount’]=ceil($data[‘recordCount’]/$data[‘pageSize’]);
$data[‘page’]=$data[‘pageCount’]==0?0:$page);
$data[‘page’]=$data[‘page’]>$data[‘pageCount’]?$data[‘pageCount’]:$data[‘page’];
$data[‘isFirst’]=$data[‘page’]>1?false:true;
$data[‘isLast’]=$data[‘page’]$data[‘recordCount’]?$data[‘recordCount’]:$data[‘end’];
$data[‘sql’]=$sql.’LIMIT’..’,’.$data[‘pageSize’];
$data[‘data’]=&dbQuery; return$data; } functiondbExecute{ global$cnn;
mysql_queryordie; returnmysql_affected_rows; }
functiondbDisconnect(){ global$cnn; mysql_close; }
functionsqlGetOneById{ return”SELECT*FROM$tableWHERE$field=$id”; }
functionsqlMakeInsert{ $t1=$t2=array(); foreach{ $t1[]=$key;
$t2[]=”‘”.addslashes.”‘”; } return”INSERTINTO$tableVALUES”; }
functionsqlMakeUpdateById($table,$field,$id,$data){ $t1=array();
foreach{ $t1[]=”$key='”.addslashes.”‘”; }
return”UPDATE$tableSET”.implode.”WHERE$田野(fieldState of Qatar=$id”; }
functionsqlMakeDelById{ return”DELETEFROM$tableWHERE$田野(field卡塔尔=$id”; } ?>
五、制作功能接口 上边来标准的探视,大家共要完毕的职能拓宽的包装
————ArticleUtil.php—————-
这段代码是不是就大约多了啊?那就是温馨对mysql函数实行李包裹装的好处!
上边来研商一下他们是怎么贯彻大家的效应的啊。
“php开辟小说列表”——–getArticleList
“asp开采小说列表”——–getArticleList
“php开采热门文章列表”—-getArticleList(1,”clicksDESC,idDESC”,1,3卡塔尔“asp开荒热门随笔列表”—-getArticleList(2,”clicksDESC,idDESC”,1,3State of Qatar“asp开荒新型篇章”——–getArticleList
“加多新作品”————-addArticle “察看随笔”—————getArticle
六、对smarttemplate类实行打包
具体的smarttemplate的行使这里就不讲了,不然口水讲没了,都讲不完。上边那些是具体的对包裹函数
————-ParseTpl.php—————- assign; unset;
$page->assign; }else{ $page->assign; } } $page->output(); }
?> 12345下一页阅读全文

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图