在开始之前,我还是会很、灰常、系分、超级、very变态、垃圾、恶心地广告一句:Deskor是一个优秀的开源框架! deskor的开发者,也就是那个超级变态无耻的一米六二,希望所有开发者都愿意并且能够有机会来帮deskor来进行开发,所以,他给deskor设计一个modules的概念,就是程序根目录下的那个modules目录。任何人都可以在这个目录下建立一个目录并且开始他的deskor Modules开发。 那让我们现在就来开始写一个模块儿吧。让我的名字留在deskor的开发者名单上。让我们满足一米六二那点可怜的理想。 我们假想,你的Web服务器的根目录是D:/webroot/.您的deskor的文件放在D:/webroot/deskor/下面。 首先我们要在D:/webroot/deskor/modules下建立一下目录,这里我们建立一个叫myphotos的目录。这个目录的结构是这样的:

D:/webroot/deskor/modules/myphotos
/app
/css
/script
/images
/include
/filters
/events
index.php
mod_info.php

然后我们看看D:/webroot/deskor/modules/myphotos/index.php的内容: 一般情况下它都是这样的: 这个非常清楚,是必须的。您不需要改动一个字儿。 再看看D:/webroot/deskor/modules/myphotos/mod_info.php: 这个大家也都能看懂,myphotos是我们建立的放模块的目录的名称。$mod_info[“name”],$mod_info[“description”]这些都不重要啦,只是您向其他人介绍这个模块的功能的。当然,您可以把它写得天花乱坠,妙笔生花。您在这里把死人吹成活人都可以。 这个文件中,其实只有$mod_info[“dirname”]是对我们的程序的运行有影响的.这个您可一定要设置好.当然这个变量会影响$mod_info[“path_addons”]. 然后我们要开始我们的编程之旅了。激动了吧。别激动,精彩在后面呢。 首先我要让您知道,我们的url地址将会是这样的: http://***.com/deskor/modules/myphotos/?mod=****&act=***** 其中mod表示controller名字。act表示action的名字。 假设访问地址是这样的: http://***.com/deskor/modules/myphotos/?mod=photos&act=listall 那就代表应该有这样几个文件: 在D:/webroot/deskor/modules/myphotos/app/layouts/目录下应有这样一个文件。最开始这个文件可以非常简单,只包括这样几行: 这个文件是整个显示层的布局文件,您可以在这段代码的前面加上头,在后面加上尾。 在D:/webroot/deskor/modules/myphotos/app/controls/目录下应有一个photos.php文件。 在D:/webroot/deskor/modules/myphotos/app/models/目录下,应有一个photos.php.在一般情况下,这个文件定义要用到的数据表的结构。 在D:/webroot/deskor/modules/myphotos/app/views/目录下应该有一个photos目录,这个目录下有一个listall.php文件。 我的D:/webroot/deskor/modules/myphotos/app/controls/photos.php是这样的写的: findRows(); } } ?> 那么这个modelPhotos类是在哪里定义的呢? 我们打开D:/webroot/deskor/modules/myphotos/app/models/photos.php,内容应是这样的: “myphotos_byxurenlu”, “primaryKey”=>”id”, “columns”=>array( array(“name”=>”id”,”type”=>TYPE_KEYID,”KEY”=>true), array(“name”=>”username”,”type”=>TYPE_STRING), array(“name”=>”uid”,”type”=>TYPE_INT), array(“name”=>”uploadDate”,”type”=>TYPE_DATE), array(“name”=>”uploadTime”,”type”=>TYPE_TIME), array(“name”=>”text”,”type”=>TYPE_TEXT), array(“name”=>”title”,”type”=>TYPE_STRING), array(“name”=>”path”,”type”=>TYPE_STRING), array(“name”=>”lastmodify”,”type”=>TYPE_TIMESTAMP) ) ); } ?> 这里大家会发现其实就是定义了一个数据表。其实这个model基类已经封装了很多方法。我们的findRows()方法,会自动地从这个表中取出最前一页的内容。当然这个一页是多少,是可以改的。 最后问题是,我们在control类里面查出了一个页的数据记录,那我们怎么显示呢? so easy,我们看看D:/webroot/deskor/modules/myphotos/app/views/photos/listall.php,在里面写上这样一段文字: ‘; echo (‘‘); echo “ “; } echo “

“; echo $data[“photos”][“pagestr”]; echo “

“; ?> 这就将第一页的照片都显示出来了。在这里,我们建议,如果您不记得$data的结构了,您可以用来查看数据的结构。hoho,是不是很酷啊。怎么样,来试试?? 然后济览http://***.com/deskor/modules/myphotos/?mod=photos&act=listall一下,是不是效果没出来? 这很简单,因为这个表里还没有内容嘛。打开phpmyadmin,在myphotos_byxuren中加上几行,是不是再看http://***.com/deskor/modules/myphotos/?mod=photos&act=listall, 是不是就看到了个大概? 您会注意到,下面带有分页分类,是的,没错,我们把分页也帮您做好了。开始享受他吧。