书签 分享 收藏 举报 版权申诉 / 19

类型应用开发范例.docx

  • 文档编号:10524611
  • 上传时间:2023-02-17
  • 格式:DOCX
  • 页数:19
  • 大小:22.34KB

--画布end-->

--分隔层-->

--内容end-->

--引入系统尾文件-->

详细内容请参阅具体代码。

下面介绍模板文件中几处有学习价值的代码。

1.系统在头文件里已经引入jQuery库,开发人员不必重复引入。

2.Tpl/default/Index/目录下的index.html文件,这是礼物中心的模板,里

面选择发送好友的功能用到好友选择widget,只需要在模板里增加

{:

W("SelectFriend")},然后用$_POST['fri_ids']就可以获得选择的好友ID.

3.因为我们是用findPage()方式获取收到和送出的礼物列表,故返回的数据已经有

分页的变量了,只要在模板合适的地方增加如下的代码即可:

 

{$gifts.html}

增加积分消费功能

上面的程序基本完成了礼物的全部操作,接下来我们要增加积分消费功能。

至于礼物消

费的积分类型,是积分或者还是经验,可以在后台设置,详细请看后台程序说明。

首先在发

送礼物页面增加显示当前用户所拥有多少积分的功能,我们只要在

IndexAction.class.php文件的index()方法里增加以下程序即可:

//获取当前用户的积分

$money=X('Credit')->getUserCredit($this->mid);

$moneyType=getConfig('credit');

$this->assign('money',$money[$moneyType]);

在发送礼物的模板里增加以下一行代码:

我目前拥有的{$money.alias}是:

{$money.credit}

然后在发送礼物的函数里(UserGiftModel.class.php的sendGift()方法)增加

扣除所选礼物的相应积分程序:

//扣除相应积分

$giftPrice=intval($giftInfo['price']);

$prices=$userNum*$giftPrice;

$moneyType=getConfig('credit');

//积分操作

$setCredit=X('Credit');

//检测积分是否足够

$userCredit=$setCredit->getUserCredit($fromUid);

if($userCredit[$moneyType]['credit']<$prices){

return$userCredit[$moneyType]['alias'].'不足,赠送失败~';

}

$setCredit->setUserCredit($fromUid,array($moneyType=>$prices),-1);

这里调用了公共类库services中的积分操作类,即X('Credit')。

到这里积分消费功能增加完毕。

增加发通知功能

首先需要增加礼物的通知模板。

在Language/目录下创建一个文件夹cn,再在cn文件

夹下创建通知模板文件notify.php,代码如下:

php

returnarray(

'gift_send'=>array(

'title'=>'{actor}给您送了一个礼物',

'body'=>$img.'
'.$sendback.'

'.$content.'


去看看

',

),

);

?

>

在发送礼物成功后增加以下程序:

//给接收人发送通知

$this->__doNotify($toUser,$sendInfo,$giftInfo,$fromUid,$appId);

__doNotify()方法的实现请参阅具体代码。

这里调用了公共类库services中的系统通知类,即X('Notify')。

到这里发通知功能完成了。

增加发送动态功能

发送动态的机制与发送通知的机制完全相同,区别只有如下两点:

.通知使用/Language/cn/feed.php,而动态使用/Language/cn/notify.php

.通知服务使用X('Notify')或service('Notify'),而动态使用X('Feed')或

service('Feed')

 

由于礼物应用没有用到动态,这里也不再赘述。

增加微博分享功能

首先我们需要在“管理后台-内容-模板管理”增加一个礼物赠送的模板:

 

在组装通知数据前,初始化一个获赠对象变量:

//赠送的对象名称用于公开赠送微博

$toUserName=NULL;

在组装公开赠送的通知信息中添加如下代码,用以@到各个获赠用户:

//赠送对象名称

$toUserName.='@'.getUserName($fid).'';

在通知信息组装结束后,添加如下代码,将微博信息暂存于SESSION中:

//公开则发微薄

if($toUserName){

$_SESSION['gift_send_weibo']=urlencode(serialize(array(

'user'=>$toUserName,

'title'=>$giftInfo['name'],

'content'=>$data['content'],

'url'=>U('gift/Index/index',array(

'uid'=>$fid,

'type'=>1,

'type_data'=>realityImageURL($giftInfo['img']))),

)));

}

在Lib/Index/IndexAction.class.php文件里的sendbox()函数内添加如下代

码:

//判断是否有公开赠送信息,存在,则赋值给模板,用于发微薄

if(isset($_SESSION['gift_send_weibo'])&&!

empty($_SESSION['gift_send_weibo'])){

$this->assign('tpl_data',$_SESSION['gift_send_weibo']);

unset($_SESSION['gift_send_weibo']);

}

在Tpl/default/Index/目录下送出的礼物sendbox.html模板文件里,添加

WeiboWidget引用(只有发送微博的信息存在时才加载),如下:

{:

W('Weibo',array(

'tpl_name'=>'gift_send_weibo',

'button_title'=>'分享',

))}

到这里公开赠送发微博功能完成了。

增加应用后台

系统为应用增加管理后台的方法很简单,直接在应用的Action/目录下增加

AdminAction.class.php文件,然后导入并继承AdministratorAction类即可完成权限

管理:

php

//引入后台管理类

import('admin.Action.AdministratorAction');

classAdminActionextendsAdministratorAction{

function_initialize(){

//管理权限判定

parent:

:

_initialize();

[……]

}

[……]

}

?

>

注意:

在_initialize函数里,首先要执行parent:

:

_initialize(),进行管理权限判定。

更多详细代码请见具体文件。

接着我们增加对应的管理页面的模板,Tpl/default/目录下增加Admin/目录,然后

在该目录下增加_header.html,_footer.html,_tab.html,index.html,

giftlist.html,category.html,edit_gift_tab.html,

edit_category_tab.html几个模板文件。

模板开发方式同前台的模板一样,在此不再

重复。

 

制作安装/卸载包

在应用的目录下增加安装信息目录,命名为Appinfo,然后在该目录下增加应用图标

(ico_app.gif、ico_app_large.gif)、应用配置文件(info.php)、应用安装文件

(install.php)、应用数据库文件(install.sql)和应用卸载文件(uninstall.php)。

.配置文件内容:

 

php

if(!

defined('SITE_PATH'))exit();

returnarray(

//应用名称[必填]

'NAME'=>'礼物',

//应用简介[必填]

'DESCRIPTION'=>'礼物赠送',

//托管类型[必填](0:

本地应用,1:

远程应用)

'HOST_TYPE'=>'0',

//前台入口[必填](格式:

Action/act)

'APP_ENTRY'=>'Index/index',

//应用图标[必填]

'ICON_URL'=>SITE_URL.'/apps/gift/Appinfo/ico_app.gif',

//应用图标[必填]

'LARGE_ICON_URL'=>SITE_URL.'/apps/gift/Appinfo/ico_app_large.gif',

//后台入口[选填]

'ADMIN_ENTRY'=>'Admin/index',

//统计入口[选填](格式:

Model/method)

'STATISTICS_ENTRY'=>'GiftStatistics/statistics',

[……]

);

?

>

注意:

其中的SITE_URL是站点根目录网址,如果直接使用它本身的话程序会自

动解释成绝对网址,还有一个好处就是网站转移的时候这些信息都不需要修改,程序会

自动解释出新的网址赋值给它。

当然,你也可以使用绝对网址。

.安装文件内容:

 

数据库操作的语句均统一放在数据库文件install.sql中,install.php的功

能就是执行该文件:

php

if(!

defined('SITE_PATH'))exit();

header('Content-Type:

text/html;charset=utf-8');

$sql_file=APPS_PATH.'/gift/Appinfo/install.sql';

//执行sql文件

$res=M('')->executeSqlFile($sql_file);

if(!

empty($res)){//错误

echo$res['error_code'];

echo'
';

echo$res['error_sql'];

//清除已导入的数据

include_once(APPS_PATH.'/gift/Appinfo/uninstall.php');

exit;

}

?

>

.数据库文件内容:

 

首先,写入该应用三张数据表的添加语句;然后,再加入应用系统配置信息和微博

模板的插入语句,若有设定积分规则的应用,也加上积分规则的插入语句,可以参见日

志、相册等应用的数据库文件,代码如下:

SETFOREIGN_KEY_CHECKS=0;

[……三张数据表及其预设信息的sql语句]

#添加ts_system_data数据

REPLACEINTO`ts_system_data`(`uid`,`list`,`key`,`value`,`mtime`)

VALUES

(0,'gift','credit','s:

5:

\"score\";','2010-12-2411:

22:

17');

#模板数据

DELETEFROM`ts_template`WHERE`name`='gift_send_weibo';

INSERTINTO`ts_template`(`name`,`alias`,`title`,`body`,`lang`,`type`,

`type2`,`is_cache`,`ctime`)

VALUES

('gift_send_weibo','礼物赠送','','我送给{user}一份礼物:

【{title}】

{content}参与送礼{url}','zh','gift','weibo',0,1290417734);

这里可以直接使用由工具导出的sql文件和语句。

.卸载文件内容:

 

删除应用的数据表、应用系统配置信息和微博模板。

若应用还设置了积分规则,则

也要同时删除其积分规则,可以参见日志、相册等应用的卸载文件。

php

if(!

defined('SITE_PATH'))exit();

$db_prefix=C('DB_PREFIX');

$sql=array(

//gift数据

"DROPTABLEIFEXISTS`{$db_prefix}gift`;",

"DROPTABLEIFEXISTS`{$db_prefix}gift_category;",

"DROPTABLEIFEXISTS`{$db_prefix}gift_user;",

//ts_system_data数据

"DELETEFROM`{$db_prefix}system_data`WHERE`list`='gift'",

 

//模板数据

"DELETEFROM`{$db_prefix}template`WHERE`name`='gift_send_weibo';",

);

foreach($sqlas$v)

M('')->execute($v);

?

>

至此,安装\卸载包制作完成。

登录后台后进入“应用->应用管理->添加应用”点击“安装”应用就可以了。

然后

更新一下系统缓存就可以在前台的应用列表中看到我们的礼物应用了。

调试

要调试我们的有程序,有很多种方法,在此我们推荐几种常用的调试方法。

举报
举报
版权申诉
版权申诉
word格式文档无特别注明外均可编辑修改;预览文档经过压缩,下载后原文更清晰! 立即下载
配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
应用 开发 范例
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:应用开发范例.docx
链接地址:https://www.bdocx.com/doc/10524611.html
相关搜索
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开