【开发1.0.1】-应用首次开发:后台开发认知

1、安装进云程序--》开发中心--》原生插件开发--》+添加

图片

2、进入进云程序后台(addons/***)找到刚刚创建的插件标识,例如:jy_demo

代码结构如下:

-- custom //用户端文件(包括手机端/电脑端)

-- manage //后台管理端文件

-- class //插件用到的一些类文件

--model //单一类文件(里面主要放菜单数据,相关数据等)

--  init.php //插件全局类,可以放一些统一的类型,比如订单类型等

【model文件详解】:

默认生成:actionlink,menu,actiontypes,plugins几个文件,model下面的文件,本应用可以直接通过:

$this->actionlink();来调用

-- actionlink//用户页面链接设置 例如:array('title'=>'首页','url'=>'index/'),title是页面标题,url是页面的action。用户页面链接的作用是方便DIY选择页面链接地址。

-- menu//应用菜单导航:

-- actiontypes//应用的支持DIY的页面,例如:'index'=>'门户首页',下标是action,值是页面名称。

-- plugins//扩展对接的子应用。

【init.php文件】:

namespace jy_weishop;
defined('BY_JYA') or exit('error');
function init($plugin){
	$plugin->send_types=array(
		'1'=>'快递配送',
		'2'=>'自提/店内',
		'3'=>'虚拟商品',
	);
}

插件内页调用方法:

 $this->send_types;


【manage->actions->index文件】:

$return['htmls']=array(
array('type'=>'data','one_num'=>2,'title'=>'应用今日/总访问数据指标','datas'=>array(
array('title'=>'公众号数据','num'=>2,'data'=>array($access['wechat_day'],$access['wechat_all'])),
array('title'=>'小程序数据','num'=>2,'data'=>array($access['wxapp_day'],$access['wxapp_all'])),
array('title'=>'手机端数据','num'=>2,'data'=>array($access['mobile_day'],$access['mobile_all'])),
array('title'=>'PC端数据','num'=>2,'data'=>array($access['pc_day'],$access['pc_all'])),
array('title'=>'APP端数据','num'=>2,'data'=>array($access['app_day'],$access['app_all'])),
array('title'=>'总访问量','num'=>2,'data'=>array($access['all_day'],$access['all_all'])),
)),
array('type'=>'echarts_pie','one_num'=>2,'width'=>'50%','ecid'=>'wechat','title'=>'公众号数据指标','datas'=>array(
'time' => date("Y-m-d H:i:s", time()),
'datas'=>array(
array('name'=>'总关注','value'=>$wechat['focus_all']),
array('name'=>'小程序数据','value'=>$wechat['unfocus_all']),
array('name'=>'手机端数据','value'=>$wechat['fans_all']),
array('name'=>'PC端数据','value'=>$wechat['member_all']),
),
)),
array('type'=>'echarts_pie','one_num'=>2,'width'=>'50%','ecid'=>'wxapp','title'=>'小程序数据指标','datas'=>array(
'time' => date("Y-m-d H:i:s", time()),
'datas'=>array(
array('name'=>'总访问量','value'=>$wxapp['access_all']),
array('name'=>'当月访问量','value'=>$wxapp['access_mounth']),
array('name'=>'总粉丝数','value'=>$wxapp['fans_all']),
array('name'=>'PC端数据','value'=>$wxapp['member_all']),
),
)),
);
set_html('framess',$this->menu($plugin_name));
exi($return);

每个文件如果需要数据的返回,都需要用exi函数返回。如果返回的是:

$return['htmls']

就不用html文件,直接PHP文件生成HTML文件。里面的每一条数据,都包含:‘type’=>'***',例如上面的type=>'data',就是展示的数据组件,echarts_pie就是图形并组件。

这些组件可以参考:/core/resource/template:如图:文件的名称,就是组件的名称。

图片

其中的:set_html('framess',$this->menu($plugin_name));就是获取当前应用下面的菜单,并刷新菜单!
set_html('title','会员中心');定义当前页面标题;
set_html('header','common/header-cms');指定页面header;


【manage->actions->setting文件】:

这是一个典型的编辑页面,也是无HTML:

$htmls=array(
'type'=>'edit',
'desc'=>'参数设置',
'tabs'=>$tabs,
'edit_tab'=>true,
'edits'=>array( //这里如果是edits,就是多菜单编辑。例如下图。

//下面是一个菜单:
array(
				'title'=>'基本信息',
				'list'=>array(
					array('type'=>'string','title'=>'网站名称','name'=>'title'),
					array('type'=>'image','title'=>'网站logo','name'=>'logo'),
					array('type'=>'string','title'=>'分享标题','name'=>'share_title'),
					array('type'=>'image','title'=>'分享图片','name'=>'share_image'),
					array('type'=>'string','title'=>'分享描述','name'=>'share_desc'),
				)
			),

图片

//下面是一常用的数组组件:例如:'type'=>'array'。字段名hdps:'name'=>'hdps',
array(
'title'=>'幻灯片',
'list'=>array(
array(
'type'=>'array',
'name'=>'hdps',
'add_tip'=>'添加一个幻灯片',
'list'=>array(
array('type'=>'image','name'=>'picurl','title'=>'幻灯片图片'),
array('type'=>'string','name'=>'url','title'=>'幻灯片链接'),
),
'details'=>array(
array('type'=>'image','name'=>'picurl','title'=>'幻灯片图片','help'=>''),
array('type'=>'string','name'=>'url','title'=>'幻灯片链接'),
)
)
)
),
//同一OP下:basic动作下。如果是post提交数据:$_RQ['postdata']。就进行数据的保存操作!
if($_RQ['postdata']){
$postdata=get_postdata();
$data=array_fields(array('times','notice','work_time','phone','address','hdps','remark','facilities','ruzhu','bankuai','footernav','plugins'),$postdata);
$this->plugin_setting('basic',$data);//插件应用的参数保存细节
exi('设置成功');
}

【manage->actions->comment文件】:

//列表页典型展示案例解析:
$list=pdo_getslice('core_account_message',$params,array($pindex,$psize),$total,$fields,'','id desc');
$return['list']=$list?$list:array();//必须$return['list'],下面的$htmls才能获取到列表数据,并展示出来!
$htmls=array(
'type'=>'list',
'tabs'=>array(
array('op'=>'list','title'=>'评论列表'),
array('op'=>'formlist','title'=>'自定义表单列表'),
),
'list'=>array('data'=>'list','edit'=>true,'list'=>array(
array('name'=>'id','title'=>'ID','type'=>'string'),
array('name'=>'nickname','title'=>'姓名','type'=>'string'),
array('name'=>'logo','title'=>'电话','type'=>'image'),
array('name'=>'content','title'=>'留言内容','type'=>'string'),
array('name'=>'createtime','title'=>'创建时间','type'=>'string'),
array('name'=>'status','title'=>'状态','type'=>'switch','set'=>'set'),
)),
'search_one'=>array('name'=>'username','help'=>'客户姓名','add'=>false),
);
$return['htmls']=$htmls;

//典型的详情页案例解析:
$return['item']=$item;//必须$return['item'],下面的$htmls才能获取到详情数据,并展示出来!
	$htmls=array(
		'type'=>'edit',
		'post'=>'post',//指定提交保存数据的动作是post
		'desc'=>'留言',
		'tabs'=>array(
			array('op'=>'list','title'=>'留言列表'),
			array('op'=>'formlist','title'=>'自定义表单列表'),
		),
		'edit'=>array(
			array('type'=>'copy','title'=>'留言姓名','name'=>'nickname', 'help'=>'' ),
			array('type'=>'copy','title'=>'头像','name'=>'logo', 'help'=>'' ),
			array('type'=>'copy','title'=>'内容','name'=>'content', 'help'=>'' ),
			array('type'=>'copy','title'=>'留言时间','name'=>'createtime', 'help'=>'' ),
			array('type'=>'switch','title'=>'状态','name'=>'status', 'help'=>'' ),
		)
	);
	$return['htmls']=$htmls;
	
// 提交保存数据的动作
if($_RQ['op']=='post'){
	$postdata=get_postdata();
	$data=array(
		'status'=>trim($postdata['status']),
		'content'=>trim($postdata['content'])
	);
	$id=intval($postdata['id']);
	if($id){
		pdo_update('core_account_message',$data,array('id'=>$id,'uniacid'=>$_SESSION['uniacid']));
		exi('留言修改成功!');
	}else{
		exi('没有找到相关留言');
	}
}

【新手必看】:开发必备小技巧

http://s.jinyunweb.com/manage/index.php?p=core&action=article.show&nosession=1&id=418 

返回

条结果""