网站的内容是在当当网上下载的图片作为页面的填充。
源代码获取:https://github.com/akh5/PHP/tree/master/library1.1
功能及实现代码
简介
PHP实现的简单借书网站,能够进行用户的注册,登陆。可以根据图书类别,进行索引,可以根据书名进行查找,用户可以进行借书,还书,已经查看当前已借书籍。
所用技术及运行环境
前端: HTML,CSS,JS
PHP: 设计模式->MVC,外部引擎->smarty
数据库: MySQL
集成环境: Wampserver
代码体量一览
功能介绍
轮播图模块
通过JS实现
var imgs = document.getElementsByClassName("images");
var left = document.getElementsByClassName("left")[0];
var right = document.getElementsByClassName("right")[0];
var len = imgs.length;
var current = 0;
function flip() {
left.onclick = function () {
current--;
for(var i=0;i<imgs.length;i++){
imgs[i].className='images';
}
if(current<0){
current=imgs.length-1;
}
imgs[current].className='images active';
}
right.onclick = function () {
current++;
for(var i=0;i<imgs.length;i++){
imgs[i].className='images';
}
if(current>imgs.length-1){
current=0;
}
imgs[current].className='images active';
}
}
flip();
setInterval(function () {
current++;
for(var i=0;i<imgs.length;i++){
imgs[i].className='images';
}
if(current>imgs.length-1){
current=0;
}
imgs[current].className='images active';
},3500)
通过修改选择器的方法显示,只有active的选择器可以显示图片,而向左向右的滚动,也就是将数组下标加一或减一,然后将当前的选择器加上active后代。而自动滚动,就是将向右的功能设定3.5秒的循环。
登陆注册模块
注册和登录窗口都是在一个页面内完成的,通设置display属性唤醒其中一个窗口并隐藏另一个窗口,通过表单传值进行数据库操作
var start = document.getElementsByClassName('icon')[0];
var shadow = document.getElementsByClassName('shadow')[0];
var regin = document.getElementsByClassName('regin')[0];
var sign = document.getElementsByClassName('sign')[0];
var close = document.getElementsByClassName('close');
var rsi = document.getElementById('rsi');
start.onclick=function () {
shadow.style.display='block';
regin.style.display='block';
}
rsi.onclick = function () {
regin.style.display='none';
sign.style.display='block';
}
close[0].onclick = function () {
shadow.style.display='none';
regin.style.display='none';
}
close[1].onclick = function () {
shadow.style.display='none';
sign.style.display='none';
}
查看账户模块
借书模块
代码介绍
Frame
Libs
在Libs文件夹中存放操作相同,且重复使用多次的代码,用抽象类对其进行封装,分为BaseController,和BaseModel的抽象类,以后所有的控制器,和模型类都要继承这两个抽象类
BaseController主要封装了smarty对象,并设定其左右界限符
<?php
namespace Frame\Libs;
abstract class BaseController
{
protected $smarty = null;
public function __construct()
{
//创建smarty对象
$smarty = new \Frame\Vendors\Smarty();
$smarty->left_delimiter = "<{";
$smarty->right_delimiter = "}>";
$smarty->setCompileDir(sys_get_temp_dir().DS."blog_t".DS);
$smarty->setTemplateDir(VIEW_PATH);
$this->smarty = $smarty;
}
}
BaseMooule主要封装了pdo对象,方便以后所有的数据库操作