前言
本文将一步一步引导您开始MooPHP的探险之路。通过一个简单的blog系统的构建,为您展现出MooPHP框架独特的魅力。
注:本程序所涉及的一切文件和代码,已经内置在MooPHP 0.91.178 alpha这个版本中,并可能有少许改动。
参考资料:
1.
MooPHP模板使用方法
2.
MooPHP后台类使用方法
3.
MooPHP数据库类使用方法
第一步:建立数据库,配置MooPHP运行框架参数
a.通过PHPMyAdmin或者MySQL命令行使用以下SQL语句创建本程序需要的数据库
复制内容到剪贴板
代码:
DROP TABLE IF EXISTS moophp_blogs;
CREATE TABLE moophp_blogs (
id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
title CHAR(80) NOT NULL COMMENT '标题',
content text NOT NULL COMMENT '内容',
dateline INT(10) UNSIGNED NOT NULL COMMENT '时间',
PRIMARY KEY (id)
) TYPE = MyISAM DEFAULT CHARSET=utf8 COMMENT = 'Blog示例表';b.配置MooPHP/MooConfig.php文件中MySQL相关的数据库配置,比如,本机测试的配置可能为下
复制内容到剪贴板
代码:
$dbHost = 'localhost';
$dbName = 'project_moophp';
$dbUser = 'root';
$dbPasswd = 'password';
$dbTablePre = 'moophp_';
$dbCharset = 'UTF-8';
$dbPconnect = 0;
define('MOOPHP_ALLOW_BLOCK', TRUE);
define('MOOPHP_ALLOW_CACHE', TRUE);
define('MOOPHP_ALLOW_MYSQL', TRUE);第二步通过MooPHP内置的MooAdminTemplate类迅速创建一个可运行的后台。
本处代码忽略,详细请参考《
MooPHP后台类使用方法》
第三步
建立Moo-admin/blog.inc.php文件,具体内容为
复制内容到剪贴板
代码:
!defined('IN_MOOPHP') && exit('Access Denied');
$operation = MooGetGPC('operation', 'string');
$id = MooGetGPC('id');
$operation = in_array($operation, array('add', 'edit', 'del', 'list')) ? $operation : 'add';
if($operation == 'add') {
if(MooSubmit('addsubmit')) {
$title = MooGetGPC('title', 'string');
$content = MooGetGPC('content', 'string');
$dateline = time();
$_MooClass['MooMySQL']->query("INSERT INTO moophp_blogs SET title='$title', content='$content', dateline='$dateline'");
showmessage('新增日志成功', 'admin.php?action=blog&operation=list');
}
$admin->showForms('addsubmit', 'formheader', 'admin.php?action=blog&operation=add');
$admin->showType('添加日志', 'top', 'addsubmit');
$admin->showForm('标题', 'title', '', 'text', '20%', '', 0, '日志标题');
$admin->showForm('内容', 'content', '', 'textarea', '20%', '', 0, '日志内容');
$admin->showType('', 'bottom');
$admin->showFormS('addsubmit', 'formfooter', '提交');
} elseif ($operation == 'edit') {
if(MooSubmit('editsubmit')) {
$title = MooGetGPC('title', 'string');
$content = MooGetGPC('content', 'string');
$_MooClass['MooMySQL']->query("UPDATE moophp_blogs SET title='$title', content='$content' WHERE id='$id'");
showmessage('新增日志成功', 'admin.php?action=blog&operation=list');
}
$bloginfo = $_MooClass['MooMySQL']->getOne("SELECT * FROM moophp_blogs WHERE id='$id'");
$admin->showForms('editsubmit', 'formheader', 'admin.php?action=blog&operation=edit&id='.$id);
$admin->showType('添加日志', 'top', 'editsubmit');
$admin->showForm('标题', 'title', $bloginfo['title'], 'text', '20%', '', 0, '日志标题');
$admin->showForm('内容', 'content', $bloginfo['content'], 'textarea', '20%', '', 0, '日志内容');
$admin->showType('', 'bottom');
$admin->showFormS('editsubmit', 'formfooter', '提交');
} elseif ($operation == 'del') {
$_MooClass['MooMySQL']->query("DELETE FROM moophp_blogs WHERE id='$id'");
showmessage('删除日志成功', 'admin.php?action=blog&operation=list');
} elseif ($operation == 'list') {
$admin->showType('编辑日志', 'top');
$blogList = $_MooClass['MooMySQL']->getAll("SELECT id, title, dateline FROM moophp_blogs ORDER BY id DESC");
foreach($blogList as $blog) {
echo '<tr><td width="100" class="altbg1" valign="top"><a href="admin.php?action=blog&operation=edit&id='.$blog['id'].'">编辑</a> | <a href="admin.php?action=blog&operation=del&id='.$blog['id'].'">删除</a></td><td class="altbg2"><a href="blog.php?blogid='.$blog['id'].'" target="_blank">'.$blog['title'].'</a></td></tr>';
}
$admin->showType('', 'bottom');
}第四步,前台展示页面blog.php,代码如下:
复制内容到剪贴板
代码:
require dirname(__FILE__) . '/MooPHP/MooPHP.php';
$blogid = MooGetGPC('blogid');
if($blogid) {
$bloginfo = $_MooClass['MooMySQL']->getOne("SELECT * FROM moophp_blogs WHERE id='$blogid'");
include MooTemplate("blog_view");
} else {
$blogList = $_MooClass['MooMySQL']->getAll("SELECT * FROM moophp_blogs ORDER BY id DESC");
include MooTemplate("blog_index");
}第五步,建立blog_view.htm与blog_index.htm两个模板文件
blog_index.htm核型代码如下:
复制内容到剪贴板
代码:
<!--{loop $blogList $key $blog}-->
<h3><a href="{MOOPHP_URL}/blog.php?blogid={$blog['id']}">{$blog['title']}</a></h3>
<p class="created">
{php echo gmdate('Y年m月d日 H:i:s', $blog['dateline'])} <a href="{MOOPHP_URL}/blog.php?blogid={$blog['id']}">浏览</a>
</p>
<div class="body"><p>{$blog['content']}</p></div>
<!--{if $key < count($blogList) - 1}-->
<hr />
<!--{/if}-->
<!--{/loop}-->blog_view.htm核心代码如下:
复制内容到剪贴板
代码:
<h3><a href="{MOOPHP_URL}/blog.php?blogid={$bloginfo['id']}">{$bloginfo['title']}</a></h3>
<p class="created">
{php echo gmdate('Y年m月d日 H:i:s', $bloginfo['dateline'])}
</p>
<div class="body"><p>{$bloginfo['content']}</p></div>复制内容到剪贴板
代码:
<h3>最近日志:</h3>
{block type=query/name=newbloglist/sql=SELECT * FROM moophp_blogs ORDER BY id DESC/cachetime=3600}
<!--{loop $_MooBlock['newbloglist'] $blog}-->
<a href="{MOOPHP_URL}/blog.php?blogid={$blog['id']}">{$blog['title']}</a>
<!--{/loop}-->涉及文件下载
sql.txt;admin.php;blog.php
Moo-admin目录下的menu.inc.php;blog.inc.php
Moo-templates目录下的blog_index.htm;blog_view.htm;blog_style.css