用PHP写的一个文件管理系统

这算是在兄弟连的第二个小小小项目了,那段时间学PHP文件系统管理,兴致一上来,就写了这个小东东.可以下载远远哦,功能还挺齐全哦!

项目时间:2011.12.5

项目性质:个人练习

项目简介:这个小小的文件管理系统,实现了基本的文件管理功能:文件浏览,上传文件,下载文件,创建文件,创建目录,删除文件,删除目录,编辑文件,更改目录名等 …

项目截图:

下载源码:

http://115.com/file/ansvb7d8#FMS.zip

开程信贷网站架设

这个主题界面不是我设计的,只是把原来完全静态的table页面转换成div+css,然后结合wordpress上线.这里也只是一个收集整理.
———————————————————————————————————–
项目时间:2011.9.25~9.28
项目网站:http://www.kaicheng360.com/(首页下面目前被站长添加了一些内容)
项目性质:商业付费
项目简介:
对原来静态table制作的html界面转换成wordpress主题,并结合wordpress实现动态发布公司新闻.
网页截图:

欧式风格的国外物业主题

这是产以前在学校期间接手的一个活了,现在只是做一个收集整理

项目时间:2011年10月2日~10月4日

项目性质:商业主题

项目网址:http://select168.com(国外网址,可能会出现偶尔无法访问情况)

项目简介:采用wordpress架构,全新大气的界面设计,欧式风格,支持中英语言切换(底部有选择),集成相册功能,自定义头部和底部菜单等.

网站截图:

Select168 _ 獨家生活方式

下拉菜单:

我的毕业设计Mepress个人博客系统

浑浑噩噩的,大学生活就要结束了,再过两天,我也要找地方上班去了(有好的单位的不妨给我推荐一个!).
初识PHP,是去年的冬天吧,那时候只是听说,听说而已。而后到了去年8月份吧,突然萌生了这么个想法,走PHP开发这条路线,其实,啥都不会那会儿。 我是个很懒惰的人,所以自学根本就是很慢的,PHP学了半年多了,就会那么点简单的,写个小插件啥的,还得花不少时间去改错。
这9月一开学,学校便通知了一个事儿:做毕业设计。偶买噶,终于等到了这一天,很激动的从9月1号开始,13天,完成了这个小作品,PHP自学的,所以碰壁不少,好吧展示一下:

首页:

再来一张后台:

登录页:

文件结构:
文件目录:
|—-mp-admin目录
|           |—image 目录
|           |—install 目录
|           |           |—config-template.php #config.php模板文件
|           |           |—header.php #安装文件夹共用头部文件
|           |           |—index.php #安装引导页
|           |           |—install.php #安装主文件
|           |           |—(install_lock) #安装锁定文件

|           |—style 目录
|                     |—style-admin.css #管理页通用CSS
|                     |—style-ie6.css #管理页IE6兼容性处理文件
|                     |—style-login.php #登录页CSS
|                     |—style-reg.css #注册页CSS
|           |—admin-footer.php #管理页面共用底部文件
|           |—admin-header.php #管理页面共用头部文件
|           |—admin-sidebar.php #管理页面共用侧边管理菜单
|           |—album.php #相册管理文件
|           |—comment.php #评论管理文件
|           |—index.php #管理面板首页
|           |—links.php #链接管理文件
|           |—maintain.php #维护页
|           |—option.php #系统设置文件
|           |—post.php #文章管理文件
|           |—user.php #用户管理文件
|—-mp-content目录
|           |—images目录 #博客相册储存位置
|           |—theme目录 #博客主题目录
|                     |—mepress目录 #mepress默认主题
|                               |—images目录
|                               |—mepress.js #mepress主题全局js文件
|                               |—style.css #mepress主题样式表文件
|                               |—style-ie6.csss #mepress主题IE6兼容性处理样式表
|—-mp-includes目录
|           |—editor 目录 #FCKeditor插件目录
|           |—image 目录
|           |—js 目录
|                     |—admin.js #管理页全局js文件
|                     |—DD_belatedPNG.js #IE6png透明处理文件
|                     |—html5.js #html5 IE支持文件
|                     |—jQuery-1.61.js #JQuery类库
|                     |—md5.js #javascript md5加密文件
|                     |—reg.js #注册页验证文件
|           |—style目录
|                     |—style-ie6.css #其它页IE6兼容性处理文件
|                     |—Times Old Attic.TTF #验证码字体文件
|           |—class-album.php #相册基类
|           |—class-code.php #数据库基类
|           |—class-db.php #数据库事务处理类
|           |—class-post.php #文章基类
|           |—class-user.php #用户基类
|           |—function.php #全局函数集合文件
|—404.php #404错误页
|—admin.php #管理页跳转文件
|—album.php #前台相册页
|—comment.php #前台文章评论
|—config.php #系统配置文件
|—footer.php #前台共用底部文件
|—header.php #前台共用头部文件
|—index.php #前台首页
|—links.php #前台友情链接文件
|—load.php #类自动加载文件
|—login.php #用户登录
|—post.php #前台文章页
|—register.php #用户注册页
|—search.php #前台搜索文件
|—sidebar.php #前台边栏文件
|—tags.php #前台标签页文件

演示地址:http://www.joychao.cc/mepress 后台密码请mail我

下载地址:http://115.com/file/anmejlgu#mepress.zip4.88M

安装说明:
压缩包结构:
upload为程序主文件
————————-
1,先上传主程序
2,直接访问地址即可进入安装页面
3,填写相应信息即可

注意:安装前请先建立一个空数据库,程序会自动创建数据表

声明一下啊,这是毕业前写的作品,PHP完全是自学的,所以代码可能很糟糕哦,不过效果功能是实现了的.

JQuery+CSS制作二级导航教程

很多人也许都像知道怎么让自己的博客导航酷起来,这样会为自己的博客增色不少。那么今天就教大家做一个简单的JQuery+CSS制作二级导航菜单,本人也是才疏学浅,往那些高手路过保持沉默,呵呵,废话到此为止。
首先我们想要自己的站点支持jQuery的话,就必须让自己的网页引入jQuery类库,可以有很多方式,自己可以下载到主题文件夹引入,也可以用google的jQuery类库。
怎么引用呢?也就是在我们的网页头部信息里边加入一句引用的代码,wordpress呢,就加在header.php里边:
①引用谷歌的:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>

②自己下载的,这里比如我们放在主题文件夹下面的js文件夹下,假设主题文件夹是joysence:

<script type="text/javascript" src="这里是主题目录/js/jquery.min.js"></script>
JQ库下载: <a href="http://115.com/file/bepym552#jquery.min.js">http://115.com/file/bepym552#jquery.min.js</a>

好了,类库已经引用了,下面我们首先要建一个JS文件,比如就叫做all.js吧,然后把它引入网页,这里我放在js文件夹下:

<script type="text/javascript" src="js/all.js"></script>

第二步:写html代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/jquery-1.6.1.js"></script>
<script type="text/javascript" src="js/all.js"></script>
<title>JQuery+CSS制作二级导航教程</title>
<style type="text/css">
*{ padding:0;margin:0;}
#menu{
	width:570px;
	padding:5px;
	height:40px;
	margin:0 auto;
	line-height:40px;
	background:#CCC;
}
#menu ul li{
	float:left;
	height:40px;
	width:100px;
	text-align:center;
	margin-right:2px;
	list-style:none;
}
#menu ul li:hover{
	background:#000;
	color:#FFF;
}
#menu ul li ul{
	display:none;
	width:100px;
}
#menu ul li:hover ul{
	display:block;
}
#menu ul li ul li {
	float:none;
	background:#CCC;
}
</style>
</head>

<body>
<div id="menu">
	<ul>
		<li>菜单选项1
        	<ul>
            	<li>二级菜单1</li>
                <li>二级菜单2</li>
                <li>二级菜单3</li>
            </ul>
        </li>
		<li>菜单选项2</li>
		<li>菜单选项3
        	<ul>
            	<li>二级菜单1</li>
                <li>二级菜单2</li>
                <li>二级菜单3</li>
                <li>二级菜单4</li>
                <li>二级菜单5</li>
            </ul>
        </li>
		<li>菜单选项4</li>
		<li>菜单选项5
        	<ul>
            	<li>二级菜单1</li>
                <li>二级菜单2</li>
                <li>二级菜单3</li>
            </ul>
        </li>
	</ul>
    <br style="clear:both">
</div>
</body>
</html>

第三步:写Js代码
打开all.js,加入如下代码:

$(document).ready(function(){
//这里是后来要写的代码
});

这句话的意思是页面加载完成后执行
因为我们二级菜单的上级是li,也就是li下边的子级才是二级导航,所以我们要让鼠标移过li的时候显示二级菜单:
鼠标移过li的效果是mouseover函数,然后鼠标移过的时候就找到此时选中的li的下级,用find函数找到二级菜单(即li下级的ul)。
好,鼠标移过显示二级的代码如下:

$("#menu ul li").mouseover(function(){
		$(this).find("ul").slideDown(400);
		});

这里的“#menu ul li”就是我们当前鼠标位置的li,slideDown函数是向下弹出的作用,括号内的数值是弹出所用的时间单位是毫秒(ms);
好了,现在还差一段代码就是鼠标离开以后让它再收缩回去,那么同上,只是显示方式改为了slideUp函数:

$("#menu ul li").mouseleave(function(){
		$(this).find("ul").slideUp(300);
		});

<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">好了下面就看看整个all.js的代码:</span>
// JavaScript Document
$(document).ready(function(){
	$("#menu ul li").mouseover(function(){
		$(this).find("ul").slideDown(400);
		});
	$("#menu ul li").mouseleave(function(){
		$(this).find("ul").slideUp(300);
		});
});

好了效果实现了,首先声明一点:在鼠标没有移过之前我们首先让二级菜单不显示,用css代码:

#menu ul li ul{
	display:none;
	width:100px;
}

然后定义鼠标移过时让它显示:

#menu ul li:hover #menu ul li ul{
	display:block;
}

具体大家可以看看上面html里的CSS代码。
如果看不明白的话,问我吧。

效果如下:
好了,一个简单的JQuery+CSS制作二级导航做成了!

DolrPHP框架加紧开发中,先欣赏两张图

其实估计在你看到这个名称的时候,就已经猜到这个名称的意义了,dolr中文读出来就是美元符$,可是碰巧它还有另一个意思:分布式的目标定位和选路,解释一下:

Tapestry是一种有组织的P2P重叠网,是可扩展的基础设施。分布式的目标定位和选路(DOLR)机制使其具有高性能,并可扩展与位置无关的选路,利用局部资源将消息送到最靠近的终点。这样可以提高效率、减少消息时延并提高吞吐量。

当然这只是一个巧合哈,就我这点知识,也肯定不懂这些东东了…

因为最近兄弟连我们这期就快毕业了,所以太忙,也没有太多时间去开发DolrPHP,不过现在差不多完成60%了吧,调试机制,目录结构和URL处理,还有一些公用函数和公用类都已经完成,在整个开发过程中,参考了ThinkPHP和BroPHP的一些优点,当然代码是真全写的,但是没有经验,所以有些东西还是需要学习的,预计能在两周内完成1.0版,届时望大家多多支持.好了,先上图:

QQ截图20120313200607[2]

初始化界面

QQ截图20120313201301[2]

Debug模式跟踪信息

QQ截图20120313201159[2]

出现错误提示页面

微分享文库-在线文档分享平台

项目名称:微分享文库

项目简介:

随着日积月累,自己这边的电脑里文档是越来越多,有的对自己来说可能已无多大用处,去之可惜,但存之又占用空间。另一边,别人正在为寻找这篇文档而焦头烂额,这时“文档分享”就应运而生了,“文档分享”的平台在两个文档之间架起了一座互通的桥梁,顺利地解决了两者之者的矛盾,进一步提高了工作、学习的效率,带来了生活的便捷。可谓是“分享你我的文档,享受彼此的轻松。”
微分享是一个基于BroPHP修改版开发的一个文库平台,通过这一平台,用户能够上传、管理、分享各种类型的文档,也能下载其他用户共享的文档。与互动问答类似,文档分享服务也是通过“悬赏”积分来索求,而需要下载的网友在支付积分后方可下载。
“找文档、下载资料难的历史将一去不复返。”进一步丰富问答双方的交流,更利于提高问题的解决率。简单地说就是各类文档的交换分享,带来彼此的轻松、便捷、快乐,方便。

项目预览:

文库首页
文档浏览页

为你的wordpress添加自定义菜单

有不少人问过我,怎么样我的主题才能自己定义菜单呢,今天一个朋友再一次这样问我,于是就产生了这篇小文章.

首先呢,打开你主题的functions.php

添加如下函数:

if ( function_exists('register_nav_menus') ) {
     register_nav_menus(
      array(
      'header-menu' => __( '导航自定义菜单' ),
      'footer-menu' => __( '页角自定义菜单' )
       ));
}

 

这里你可以想添加多少个就添加多少个,没有限制,但是我估计你主题也没那么多地方来放.格式呢就和上面一样

array(
'菜单调用名'=>'菜单显示名',
'菜单调用名1'=>'菜单显示名1',
'菜单调用名2'=>'菜单显示名2',
'菜单调用名3'=>'菜单显示名3' //这里记住,最后一个不能要 , 号
);

然后呢,就是去改你的主题了,在你想要显示菜单的地方使用相应的代码,去后台添加几个菜单就OK,比如这里我们添加一个导航菜单,我们应该去主题header.php找到原来菜单位置,这个我就真没法以一盖之了,因为每个主题不一样,所以你就想法找到相应位置吧.然后添加代码:

<?php wp_nav_menu(array( 'theme_location' => 'header-menu' ) ); ?>

红色部分呢就是上面我们添加的菜单调用名,只要在你想要显示菜单的地方添加想应的代码就搞定,简单吧!

BroPHP整合FCKeditor教程

因为最近在做一个项目,其中需要用到FCK编辑器,当然现在这个产品已经不叫这个名了,去掉了F,叫CKEditor,其实整合CK编辑器不难,难的是带上传图片和视频及附件上传,因为在默认的CK编辑器就不带上传功能,虽说它的拓展性很好,可我们并没有太多时间去研究怎么写一个上传插件. 不要失望,它们还有一款产品CKfinder,就是专门的一款附件管理产品,可以完美整合CKEditor,从而实现图片上传,视频上传,更强大的还带附件管理器,像本地管理文件一样方便.下面我就来分享整个整合过程,此方法适用于所有的PHP嵌入文本编辑器的需要.

第一步: 下载CKEditor和CKfinder

当然,如果你仅仅只需要编辑文本,不需要上传就可以忽略下面所有和CKfinder相关的代码.

CKEditor下载:ckeditor_3.6.2.zip

CKfinder下载:ckfinder_php_2.1.1.zip

为了保证不出错,请尽量从上面的链接下载或者去官网下载同版本的文件,因为不同版本的配置方法略有不同.

 

第二步: 解压文件

解压ckeditor_3.6.2.zip后,将ckeditor目录复制到你项目的public目录下(用Brophp开发的项目根目录的public),同样把ckfinder_php_2.1.1.zip解压后ckfinder的目录复制到你项目的public目录.

保证它们在同一层.如图:

image

 

第三步:复制类文件

将ckeditor/ckeditor_php5.php复制到项目根目录的classes目录下改名为ckeditor.class.php,同样把ckfinder/core/ckfinder_php5.php复制到项目根目录的classes目录下改名为ckfinder.class.php

image

 

第四步: 配置CKfinder(无需上传功能则跳过)

1,权限配置

打开ckfinder/config.php,  首先设置第一个函数CheckAuthentication(),这个函数需要按照自己的规则写,只要return  true的情况才能允许上传文件到服务器的,不建议直接写return true,这将导致安全问题。可以采用session来处理比较方便,当然你如果你允许访问编辑器所在页面的所有用户都有上传权限的话也可以直接在函数体内return true。

session_start();
 function CheckAuthentication(){
 if(isset($_SESSION['UseEidtor']))
 return true;
 else
 return  false;
 }

上面函数体默认的内容如下:

image

2,上传路径配置

也在ckfinder/config.php,  找到$baseUrl,这里就是上传文件的路径,这里如果你站点上传的东西都在一个位置,则直接这样 $baseUrl=’/uploads/’;注意这里的路径填写相对于项目站点根目录,不是项目根目录,比如你在本地开发的时候站点根目录 为localhost 可是你www下面有很多项目,那么这里的路径此时是相对于www目录.

$baseUrl =  '/uploads/';  //这样配置则上传文件会上传到www/uploads下

默认为:

$baseUrl = '/ckfinder/userfiles/';

3,上传的文件名

对于上传文件名,ckfinder会按照原有的名字命名,中文的情况下可能会乱码,所以建议使用日期重命名。打开/ckfinder/core/connector/php/php5/CommandHandler/FileUpload.php  找到

$sUnsafeFileName=CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding(CKFinder_Connector_Utils_Misc::mbBasename($uploadedFile['name']));

后面加上下面两句:

$sExtension = CKFinder_Connector_Utils_FileSystem::getExtension($sUnsafeFileName);
 $sUnsafeFileName=date('YmdHis').'.'.$sExtension;


 

第五步: 使用CKEditor

此方法用于分类编辑器代码,只完成 assign 功能,所以在你需要的方法里面调用此方法即可,例如有一个添加新闻类news中有一个添加新闻方法addNews,调用的时候在add里面调用下面方法即可.

/**
 * CKEditor编辑器
 * @param string $name  编辑器名
 * @param string $value 初始化内容
 * @param string $width 编辑器宽度
 * @param string $height 编辑器高度
 */
 public function editor($name,$value='',$width='100%',$height='300px') {
 //实例化CKeditor方法,传入参数为编辑器所在位置public/ckeditor
 $ckeditor = new CKEditor($GLOBALS ['public'] . 'ckeditor/');    //这里调用BroPHP全局变量$GLOBALS['public']
// 设置编辑器的宽度
 $ckeditor->Width = $width;
//设置模式为输出,否则下面的editor方法没有返回值,而是直接输出,无法显示在我们想要显示编辑器的位置
 $ckeditor->returnOutput=true;
// 设置它的高度
 $ckeditor->Height = $height;
//CKfinder与CKEditor整合,参数1为上面实例化的CKEditor对象,参数2为CKfinder的位置public.ckfinder
 CKFinder::SetupCKEditor($ckeditor, $GLOBALS['public'].'ckfinder/') ; //无需上传功能则跳过
//创建编辑器并返回代码,用于分配到页面
 $fck = $ckeditor->editor($name,$value);
//分配编辑器到页面,但未显示
 $this->assign ( "CK", $CK );
 }

最后附上一个BroPHP的完整使用示例:

这里我把编辑器方法写在项目controls/common.class.php里,方便随调随用:

<?php
 class Common extends Action {
 public function init(){
}
 /**
 * CKEditor编辑器
 * @param string $name 编辑器名
 * @param string $value 初始化内容
 * @param string $width 编辑器宽度
 * @param string $height 编辑器高度
 */
 public function editor($name,$value='',$width='100%',$height='300px') {
 $ckeditor = new CKEditor($GLOBALS ['public'] . 'ckeditor/'); //这里调用BroPHP全局变量$GLOBALS['public']
 $ckeditor->Width = $width;
 $ckeditor->returnOutput=true;
 $ckeditor->Height = $height;
 CKFinder::SetupCKEditor($ckeditor, $GLOBALS['public'].'ckfinder/') ; //无需上传功能则跳过
 $fck = $ckeditor->editor($name,$value);
 $this->assign ( "CK", $CK );
 }
 }
?>

调用,这里假设有一个新闻类controls/news.class.php:

<?php
class news (){
public funtion index(){
$this->display();
}
public function add(){
$this->editor('content','','400px','300px'); //创建一个名字为content,初始内容为空的,宽400px,高300px的编辑器
$this->display();
 }
}
?>

添加新闻模板页代码:

<!DOCTYPE HTML>
 <html>
 <head>
 <meta charset="utf-8">
 <title>添加新闻</title>
 </head>
<body>
<form action="<{$app}>/news/insert" method="post">
<p>标题:<input type="text" name="title" ></p>
<p>内容:</p>
<p><{$CK}></p>
</form>
 </body>
 </html>

下面这几张图是我项目中的应用:

image

上传图片:

image

CKfinder文件管理器:

image

 

好了,这里主要是讲了如何在BroPHP里配置FCKeditor各FCKfinder,当然其它PHP环境使用也大同小异.

在使用过程中如果遇到问题可以通过以下方式联系我:

QQ:44294631

Email: joy#joychao.cc  #换成@

或者在我的博客留言:http://www.joychao.cc

6个最好的 HTML5/CSS3 演示(PPT)框架

HTML 是全世界最流行的网页编程语言。而HTML5是这门语言的升级版本。越来越多的开发者和设计师开始使用HTML5.今天我们要介绍的是最好的几个 HTML5/CSS3 的演示工具和框架,你可以用它们来创建你的网页PPT。

1. html5 Slides
这是 Google 提供的 HTML5 幻灯片模板。你可以下载这个模板,然后编辑它,就可以创建你自己的幻灯片了。

2. Slides Presentation with HTML5 
这个工具用了纯HTML做主题和框架,CSS做切换效果,还有一个简单的JS MVC框架来展示幻灯片。这个工具最适合用来展示你的数据。

3. CSSS 
这是一个基于CSS的幻灯片系统,在开发者和设计师圈子中很流行。她提供了一些设计,你可以基于这些设计做一些快速的修改。

4. HTML5 Rocks 
这个框架很流行。

5. Impress.js 
这个工具之前OSChina有介绍过。它主要是基于CSS3的变换和切换。只有现代浏览器支持,效果很震撼。

6. Reveal.js

这是一个基于CSS的3D幻灯片工具。它不依赖任何外部类库,除了已经被包含在发布带帽中的highlight.js