使用EaglePHP打造自己的网站(非PHP程序员的菜鸟使用手册)
此篇文章和我的博客网站的文章几乎一致,并且我的网站上的文章会持续更新,如果需要看最新的内容要去我的网站。(更新2块地方太累) 对eaglePHP进行修改,形成了我现在的网站,我网站的地址,可以比较比较修改前和我的网站的区别。再来个网站截图(2013-1-30):
此篇文章和我的博客网站的文章几乎一致,并且我的网站上的文章会持续更新,如果需要看最新的内容要去我的网站。(更新2块地方太累)
对eaglePHP进行修改,形成了我现在的网站,我网站的地址,可以比较比较修改前和我的网站的区别。再来个网站截图(2013-1-30):
上篇Apache2.2+MySql5.5+PHP5.4的安装和配置(windows)说了怎么配置php环境,这篇文章讲怎么使用开源php的构架---eaglephp。
本篇文章介绍如何使用开源博客代码
1.首先登录http://www.eaglephp.com/pub/下载源代码(右上角),截至我下载时,最新版本是v2.0,
我们再安装eaglephp!
2.导入数据库到MySQL中
使用一切配置好后,在浏览器中输入localhost就会出现安装向导。请输入正确的mysql的用户名(默认有root管理员用户名,我们又可以自己创建)和password
【进阶:
如果发生意外,你想重新安装(或者原先网站崩溃,但你保存了数据库.sql文件,如果是压缩的解压缩后也可以获得eaglephp.sql文件),可以删除EaglePHP2.0\Data\_install下的INSTALL.LOCK文件,eaglephp就会引导你重新安装!这时你可能遇到另一个问题,那就是如果之前安装时你选择添加表前缀比如eag_。这里有2种方法,仍选一种
方法1.你安装时可以选择不添加表前缀(不填那一项)。然后安装,出现错误不用管,然后打开EaglePHP2.0\Conf下的DbConfig.php文件把'dbprefix' => ''改为'dbprefix' => 'eag_',重新加载服务器,这样网站又能运作。
方法2.你安装时依旧选择添加同一个前缀,比如eag_,安装好后,进入phpmyadmin下,点击eagle数据库,全选所有表,对选中项修改表前缀(这些选项都在页面最下方)把eag_eag_改成eag_重新加载就没问题了。】
【进阶:
MySQL的命令行操作(以备不时之需)
在开始中找到MySQL 5.5 Command Line Client.exe
mysql>dropdatabase eaglephp; //删除原来的eaglephp数据库,第一次安装不用做做这个。
mysql>createdatabase eaglephp;//创建新的数据库
mysql>useeaglephp;//进入这个数据库中,一定要写这句
myslq>source I:\EaglePHP\Pub\install\data\eaglephp.sql
(可能不在这个文件夹里,但EaglePHP文件夹里肯定有eaglephp.sql这个文件)
//导入数据库文件内容
这时则导入了。如果失败了就关掉,重新导入一次!(我这里必须这样做)然后进入文件夹C:\ProgramData\MySQL\MySQLServer 5.5\data\eaglephp下看到导入好的数据!】
如果之前都没有问题,那么在浏览器中输入localhost则,出现了EaglePHP的页面。熟悉一下后,我们登录后台!
用户名是admin,密码是123456。还有另一个用户名guset及密码123456,对应了访客。自然,我们进去后要把admin的密码改掉! (进入后,右上角就有”修改密码的按钮,点击修改即可!”)
先熟悉一下这个后台管理页面,它被称为CMS后台管理。一方面确实强大,另一方面,也显得复杂。好的下面一起看看有哪些重要功能!
显然,”添加新闻”、”添加分类”、”相册管理”等是一些常用的功能。下面一个一个开始使用,看看效果!
(1)添加新闻
输入标题和内容,点击右下角的添加!发现必须选择”类型” 才行,缺少字段时,eaglePHP用了红色标注,这点很方便。随便选一个,然后发现出现错误,错误大概这样描述[2012-07-19 16:40:34]-SQL-[256]-Field 'img'doesn't have a default value[SQL]:INSERT INTO`news`(`title`,`type`,`rank`,`auth`,`source`,`clicknum。。。。
也就是说img字段不能为空了,这个是mysql版本造成的(boss开发的mysql版本是5.5.16,我的是5.5.20),设置img字段可为空就行了。我们得进入数据库修改下。打开phpMyAdmin(之前文章说明了如何安装),点击news表(可能有一个eag_的表头,你应该能认出来),再点击上方的结构,点击修改,对弹出来的框往右拉,找到“空”这个复选框,打勾,保存。
这时你肯定急切的想看到网页是否更新,但F5刷新后没有任何变化,此时我们需要在后台系统中选择”应用中心”à系统管理à缓存更新—>清空缓存数(少了‘据’这个字把)。这样再次刷新,主页和对应的页面就会出现新加入的文章!
添加图片:
eaglePHP添加图片看上去只能通过连接的方式添加,这是为了节省大小。但我们你可以把图像存到剪贴板中,直接黏贴到文章中也可以显示。众所周知QQ的截屏功能是不错的。(如果ctrl+v不行,就右键黏贴,这取决于浏览器是否支持)下面详细描述下图片的添加,截止目前为止(eaglePHP2.0),第一张图片必须通过上传方式,而不能通过刚才说的复制黏贴的内存方式导入图像。
从控件窗口中找到图片这个控件,点击上传
再点击添加文件,支持jpg,jpeg,gif,pgn格式,可以看到都是压缩格式的图片,为了节约网络空间。我是建议使用jpg文件,一般情况下他比png图片更小。(我这个文章中的图片也都是jpg格式的)
添加了几个文件后,再点击开始上传。图片会按顺序上传显示出来,我们再提取第一张图片为缩略图!
清空缓存后,我们来看看:
果然缩略图显示效果不错,虽然是静态的图片,但已经很不错了。即使你上传动态图片gif作为缩略图,依旧没用。但如果gif动态图片不作为缩略图,则可以良好的显示。说明目前eaglePHP还没完善支持缩略图的gif图片。
刷新缓存后,我们打开刚才添加图片的网页,发现多了一个图标
这里应该会eaglePHP没有处理好,我们可以修改文章删除这个未成功加载的图片,不会影响缩略图的显示。
对于图片添加做个总结:图片最好通过控件上传!如果你是用qq的截屏功能,添加图片,但不能作为第一张图像,但这样的图片添加会很占空间,不建议使用。(具体知识学习图像处理的同学会懂一些)
(2)添加视频
我们打开一个优酷视频,点击收藏左侧的下三角,看到flash地址,点击复制,此时地址就复制到系统的剪贴板中。
进入eaglePHP文件进行编辑:按ctrl+v填上地址,注意最后扩展名是.swf
然后我们可以看到视频被加载了!
如果要删除,按Backspace键删除即可,如果不能删除,选择添加或者修改后再打开这个文件按Backspace,就和word中编辑文字一样简单。
如果要看效果,记得清空缓存哦~
(3)添加图片
要添加图片首先要”添加相册”,相册添加好后,再上传图片,图片可以一次上传多张(使用人人传过图片的话,你应该了解怎么操作来选中多个文件),也可以一个一个的添加,最后点击”上传”按钮,把图片传入这个相册中。图片上传后,却不用清空缓存也能看到。eaglePHP的图片显示效果可是很美丽的!
(4)广告管理
广告管理就对应了首页最上方的不断变化的图片,显然这是网站最重要的地方。eaglePHP支持图片显示,并且点击图片后可以跳转到另一个链接。这些广告你可以删除掉,也可以不让它暂时显示,这些选择确实不错。至于怎么连接到自己的网站页面,我还没试过,等我的网站上线后,有了自己的域名,我试试看。
(5)评论管理
这里可以统一管理网民对你任何文章的回复,并且是按照最新回复时间拍好的。当然只支持文字回复,但已经十分方便!我们以管理员身份回复后,不用清空缓存,直接刷新页面就可以看到回复了。这里比较强大的是,我们在CMS后台管理中可以改动别人回复的文字,也可以看到评论人的邮箱地址等内容。虽然回复对于网站管理者容易看到最新的回复,但对于上网浏览的用户发现站主是否回复自己的留言,eaglePHP还没有这个功能。我觉得可以默认发个邮箱给他,如果他不想知道有没有回复,可以给个假邮箱地址即可。
(6)音乐管理
目前很多音乐都很难下到了(找不到完全的链接地址),如果要加入音乐可以考虑在一些免费空间中申请网盘,把歌曲存入,再获取歌曲链接地址即可!eaglePHP给的例子是在http://s1.mjbox.com申请一个空间,再上传几首歌上去,再获取外链,但外链的时间只有一个星期左右,很容易过期。
经过尝试,我发现http://www.airsina.net/webupload/还是不错的,起码它的外链可以保存3个月。但还有更给力的!
那就是windows live,但也稍微要5~10分钟学习时间,http://tieba.baidu.com/p/1735575571 (或者我的连接http://blog.csdn.net/guoming0000/article/details/7764709)详细介绍了如何使用微软的云空间来获取永久外链,经过我的实践,确实可行!大小是7G。但下载速度可能不是非常流畅,有待考证。(学校网速太快,没有参考价值)
另外必须注意的是,v1.8的音乐名字必须为中文名字,名字中有英文或者数字都不行!而歌手名字无所谓!
(7)修改页下内容
在EaglePHP\App\Home\View\Include\foot.tpl中可以修改
注意还有改成自己的qq哦,也就是把408865477这个qq号换成自己的。如果你不想要他,那就删掉
到
,自然包括这二个括号。同样修改网页最上面一行的内容,就是有留言反馈,往期微博等的连接的则打开同一路径下的head.tpl文件进行修改~
(8)修改分类(也就是网页首页的分类)
这一步是非常重要的,需要你自己去熟悉。一般都父节点,子节点(或者说主目录、父目录),即使主目录名字被删掉,子目录下存放的文章也没有事情的,所以不用担心更改页面主目录时,会丢失内容。
(9)更换no_img的图标
自己试试看吧
(10)设置微博秀!
EaglePHP的微博是群主的微博,自然得换成自己的微博了!我目前知道新浪微博支持‘微博秀’(打开新浪微博à账号à我的工具à微博小工具à微博秀),找到这个玩意,自己设置下,然后点击复制代码,获取嵌入代码。在文件subContent.tpl中替换掉boss的代码!
(11)修改页面分类上的”案例”和”收藏”
这二个东西真心用不到,在(7)中我们说过head.tpl这个文件,可以看到有一行
没错就是他显示案例这个分类的,我们把它注释掉!如下:
中,这个就是html中的注释方法。
(12)页面排版效果
主要在EaglePHP2.0\Pub\home\css下的base.css中有定义
我觉得网站logo不够大,我们改一下它的大小,文件中搜索header这个关键词,他就是logo大小的样式,我改成如下形式:
#header h1 {float:left; display:inline;margin-left:8; margin-top:5px; width:241px; height:80px; overflow:hidden;background:url(../imgs/logo.png) no-repeat 0 0; text-indent:-9999px;line-height:normal; }
#header h1 a { display:block; width:239px;height:78px; overflow:hidden; }
#header h2 { display:none; }
第一个是显示大小,第二个是连接范围的大小,你可以试试看就明白。
使用的一些问题
我又发现新闻图片和分类栏相隔比较远,于是把height=96改成86,这样紧凑点了,但不能太小,否则搜索栏会出现移动。(代码在#header h1的上一行)
#header { position:relative; height:66px;z-index:999999; }
右侧栏的风格设置在文件pub\home\css\index.css中,特别是subContent,tabContent等
(13)关闭后台中的天气预报
再使用eaglePHP时,每次进入后台管理,经常会发生问题!多次实验发现是天气加载的原因,这个天气本来是蛮好的,但尝尝因为它的加载失败,导致我们无法进行后台管理,这让人十分不开心。在EaglePHP2.0\App\Admin\View\Index或者EaglePHP1.8\App\Admin\View\Index下找到文件index.tpl,看到176行左右有个
结构,其中有”选择市”等一些文字,注释掉!从176到190行左右使用
(14)根据文章更新时间对博文进行排序
默认的排序方式是以创建时间排序的(create_time),如果要以更新时间(一般情况下,以这个时间更有意义一些。特别是在有些文章进行后续大范围的更新上,十分有用。如果这时它不能显示到最新的列表,让人不开心)
要做到这个打开App\Home\Model\NewsModel.class.php文件对其中的"或许新闻列表"的函数public function getList($perpage = 15)进行修改,可以找到$news_list的定义,我们把那行话改成这样!(懂SQL的一眼就明白了)
$news_list = $this->field('id,title,type,description,img,create_time,update_time')->where($sql)->order('rank ASC,update_time DESC')->limit("{$page->offset},{$perpage}")->select(array('cache'=>true));
然后文章就会按照update_time进行排序。而文章列表的时间还是以create_time作为显示的,如果你不希望这样,可以对
App\Home\View\Include下的mainContent.tpl进行修改把create_time换成update_time即可。
我改成
{{$news_list[loop].update_time|date_format:"%Y-%m-%d %H:%M"}}
这样效果就是2013-1-30 12:12这样子。数据库相关:
1.MYSQL数据表名称修改 RENAME TABLE tb_name TO new_name;
使用用EaglePHP
1.无法更新—>清空缓存
eaglePHP 15:36:01
前端已经对分类及文章列表的查询结果集做了缓存处理,后台操作数据后,需要在应用中心 - 系统管理 - 清空缓存。