用自定义的module创建一个简单站点

用自定义的 module 创建一个简单站点

一、创建自定义模块 mymodule

1、  在首页 ( 例如 http://localhost/seagull/www/index.php) 右边的登入框(如下图所示)中输入用户名和密码,登入系统后台。(这里的用户名和密码是之后在安装时创建的“ Admin username ”)

      

2、      进入后台的界面,如下图,选择左边菜单的“ General ”- >Module Generator ” (如下图的 1,2 标示)进入“建立模组 ”(如下图的标示 3 )界面。

其中:

1)  模组名称( Module Name :填写自定义的模块名称,例如这里用“ mymodule ”。

2)  管理者名称( Manager Name :模块的 MGR 类名称(即 seagull 目录 modules/ 模块名 /classes/ 目录下所有后缀为 Mgr.php 的类名)。例如这里用“ mymodule ”,则之后生成的文件名就是 mymoduleMgr.php

3)  添加下列方法( Add following methods :勾选需要添加方法。这里说的方法,即是上面“ manager ”中的 action 名称。一般情况下,这些方法都是必要的。

4)  创建 CRUD action :如果选中了此复选框,则在提交后, SGL 会重建数据库中所有表的 DataObject 实体类,保存在 SGL_VAR_DIR/cache/entities 目录中。之后它会检测在这个目录中是否有存在这个表对应的生成文件,如果没有就出现“ Please generate a table (with the same name as your manager entity, …… ”(如下图所示)的错误提示。因此,如果数据库中没有与上面“模组名称 ”一样的表名时,此复选框不打勾

5)  建立模板( Create Templates :生成对应上面“添加下列方法 ”所选 action 的模板。即 seagull 目录下,总路径为: seagull/modules/mymodule /templates/ 下面的后缀名为“ .html ” 的模板。

6)  缓存 ini 文件( Create language files :创建语言文件,即 seagull/modules /mymodule /lang/ 目录

7)  建立 ini 档( Create ini file :创建模块的配置文件,即 conf.ini 文件

填写好以上栏位(如下图标示 1 所示)之后,点击“立即建立模组 ”按键(如下图标示 2 所示)。此时,页面刷新,并显示提示信息“ Files for the mymodule module successfully created. …… ”(如下图标示 3 所示)。此时说明创建成功。

3 、选择左边菜单的“ General ”- >Manage Modules ” (如下图的 1,2 标示)进入“模组管理”。此时,你可以在“模块列表”中看到“ mymodule ”已安装成功(如下图标示 3 )。

 

二、设置导航栏显示菜单

1 、在后台左边菜单中选择“ Navigation ”- >Manage Navigation ”,(如下图的 1,2 标示)进入“ Section 管理”。在这里,点击“动作”中的“新建 Section ”按键(如下图的标示 3 ),进入“ Section 管理 :: 新建 Section ”界面。

2、      在“ Section 管理 :: 新建 Section ”界面的“ section 信息 ”标签页中,如下图所示:

其中:

1、  section 标题 :输入在导航栏显示菜单中要显示的名称,例如这里用“ mymodule ”。

2、  section :选择菜单名称的父级菜单。如下图所示,这里在两大类: a) User menu ,一般用户的显示菜单,即前台导航栏的显示菜单; b) Admin menu ,管理员的显示菜单,即后台左边的导航菜单。

我们现在的制作的“ mymodule ”是希望一般用户不用登入也可以看到的,所以这里选择“ User menu ”作为父级。

 

3、      目标 :即选择菜单“ mymodule ”的链接指向。因为我们现在是要使用之前创建的“ mymodule ”模块,所以,这里我们选择“从指定模块输出 ”这个选项。

 

选择“从指定模块输出 ”选项之后,“目标 ”下面的栏位(“静态文章标题 ”栏位是针对“现存的静态内容 ”选项)就相应改变了,如下图所示:

4、      模块 :指定菜单“ mymodule ”的所在模块。如下图所示:

下拉框中,列出所有已安装的模块名称,这里我们选择“ mymodule ”模块。

5、      管理类 :选择完“模块 ”之后,“管理类 ”的下拉框中将列出该模块的所有 MGR 类(即 seagull 目录 modules/ 模块名 /classes/ 目录下所有后缀为 Mgr.php 的类名)如下图所示:

这里我们的“ mymodule ”模块只有一个管理类,即“ MymoduleMgr ”。

6、      action :指定上面“管理类 ”中的 action 名称,下拉框中,列出“管理类 ”中所有的 action 名称。如下图所示:

这里我们选择“ list ”,也可以不做选择。当不做选择时,系统会自动读取管理类代码中设定的默认 action ,一般情况下代码中的默认 action 值是 list

 

3、      选择“ Section 管理 :: 新建 Section ”界面的“编辑选项 ”标签页,如下图标示 1 所示:

然后在图上标示 2 中设置如下:

1)  发布: 即发布菜单“ mymodule ”。这里的复选框必需打勾

2)  允许浏览: 即选择允许查看菜单“ mymodule ”的用户组角色,也可以说是,为其设置访问权限。(注:这里列出了所有的用户组以供选择

设置好以上,点击“存贮 ”按键(如上图标示 3 所示)之后,页面跳回“ Section 管理 :: 浏览 ”界面,并显示提示信息“完成区段新增 ”(如下图标示 1 所示)。此时你可以在列表中看到新增的“ mymodule ”菜单,如下图标示 2 所示。

 

4、      此时,再回到首页 ( 即,例如 http://localhost/seagull/www/index.php ) ,你可以在导航栏上看到“ mymodule ”菜单。

 

如下图 1 为未登入的首页界面

 

 

2 为管理员登入后的首页界面

 

 

5、      此时点击导航栏上的“ mymodule ”菜单,即可进入对应界面,界面情况如下图所示:

 

图中红色区域,便是“ mymodule ”所在的模块“ mymodule ”中的管理类“ MymoduleMgr ”对应 action 为“ list ”中所指定的模板的显示内容,即 seagull 目录下,总路径为: seagull/modules/ mymodule /templates/ 下面的“ mymoduleList.html ” 模板。

此时,一个站点即已架设成。 接下来就是对模块“ mymodule ”的代码操作,这里就此做一个简单的增加、删除、修改操作的例子。

 

三、代码部份—— 简单的增加、删除、修改操作的例子

1 、在数据库中建表

        1 表名 :打开 seagull/modules/mymodule /classes/MymoduleMgr.php 文件,找到函数 function _cmd_list ,中的 SQL 语句,我们可以看到“ $this->conf['table']['mymodule'] ”(如下图标示所示),这里的 'mymodule' 就是在数据库中要建的表名。 (当然,你也可以改成别的名称。)

        2 建表 例如建一个如下结构的表:

CREATE TABLE IF NOT EXISTS `mymodule` (

  `mymodule_id` int(11) NOT NULL auto_increment,

  `name` varchar(100) default NULL,

  `message` varchar(100) default NULL,

  PRIMARY KEY  (`mymodule_id`)

)

3 重建 DataObject 每次创建、修改表结构 之后,都要 seagull 后台去重建 DataObject 才行。        步骤如下:

        登入后台,选择左边菜单的“ General ”- > Maintenance (如下图的 1,2 标示)进入“维户”界面,点击“立即重建 Data Objects ”按键(如下图的标示 3 )。 此时页面刷新,显示提示信息“成功重建 Data Objects ”说明,重建完功。

2、    编辑代码。

1) 增加功能 :在 MymoduleMgr.php 文件的函数 function _cmd_add 中,找到其调用的模板名称(如: $output->template  = 'mymoduleEdit.html'; ),这里,我们可以看到调用的是“ mymoduleEdit.html ”模板,故,打开 /modules/mymodule /templates/ mymoduleEdit.html 文件。

mymoduleEdit.html 文件中,可以看到,一些基本的代码(如: form ,table , button 等),已自动生成好,这里我们只要添加一些所需要的即可。例如,如下图红色区域所示为新增的内容。(注:如果之前,在“ Module Generator ”中创建 module 时,设了“创建 CRUD action ”选项的话,此处系统就会自动成生代码,无需再添加。

2) 测试增加功能是否成功:

点击菜单上的“ mymodule , 进入“ MymoduleMgr :: List ”界面,点击“ Add entry ”按键,进入“ MymoduleMgr :: Add ”界面,此时,我们可以看到,此界面内容,与上面添加的代码相对应。在这里,填写资料后,点击“存贮 ”按键(如下图所示),此时,页面自动跳转到“ MymoduleMgr :: List ”界面,并且显示“ mymodule insert successfull ”的提示信息,此时说明,添加成功     

3) List 显示界面:

      在添加成功后,在“ MymoduleMgr :: List ”界面中,我们可以看到如下图所示的显示界面:( 注:如果之前,在“ Module Generator ”中创建 module 时,设了“创建 CRUD action ”选项的话,则此处系统自动成生的代码,无需再修改。

此时,我们需要修改两个文件:

a) MymoduleMgr.php 文件的函数 function _cmd_list

i)        去掉判断“ if (false) ”这行代码。

ii)      修改里面的 SQL 语句:

将“ $query = "SELECT 0, 1 FROM {$this->conf['table']['mymodule']} ";

改成“ $query = "SELECT * FROM {$this->conf['table']['mymodule']} ";

b) 找到其调用的模板 'mymoduleList.html ' 修改内容如下图所示,其中,加注释的绿色区域 为原来代码,红色区域 为修改后代码。

c) 刷新“ MymoduleMgr :: List ”界面,我们可以看到如下图所示的显示内容,此时说明,修改成功

4) 编辑功能:

      在“ MymoduleMgr :: List ”界面中,点击记录中“编辑”栏下的“ edit ”链接,进入“ MymoduleMgr :: Edit ”界面(如下图所示),此时,即可修改内容,修改好之后,点击“存贮 ”按键。此时,页面自动跳转到“ MymoduleMgr :: List ”界面,并且显示“ mymodule update successfull ”的提示信息,此时说明,修改成功

5) 删除功能

a)        修改代码 :在“ MymoduleMgr :: List ”界面对应的 模板 'mymoduleList.html ' 中,添加一个选择栏位,具体代码如下图两个红色区域所示:

b)        调试: 在修改好模板之后,刷新“ MymoduleMgr :: List ”界面,可以看到如下图 1 所示复选框,勾选后,点击“ Delete ”按键(如下图 2 所示)。

此时系统刷新页面,显示“ mymodule delete successfull ”的提示信息(如下图 1 所示),并且,你可以看到下面表中已没有了记录(如下图 2 所示),此时说明,删除成功

 

到此,整个站点的基本功能也完成了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值