Desktop 开发指南

desktop开发指南

desktop简介

  • desktop是基于base的一个独立的app。
  • 通俗的讲desktop就是后台管理系统。
  • desktop还有以下特点:
    1. desktop提供了常用的后台操作实现机制,这大大节省了你后台开发的时间。
    2. desktop提供一个带有权限和工作流的操作环境。
    3. desktop作为ecos的一个基础app一般不单独存在,是其他app操作流程的载体。
  • 安装desktop后,访问后台,会出现如下登录界面:


desktop.xml说明

  • desktop.xml是后台菜单“显示”文件。
  • 装了desktop这个app,就能识别其他app目录下的desktop.xml文件。
  • 这个文件必须列出所有后台看见或看不见的控制器,否则除非是超级管理员,任何其他非超级管理员desktop用户无法访问这些控制器。
  • desktop.xml的基本结构是如下:
<desktop>

    <panelgroup id="other" icon="panel-other.png" order="100">其他</panelgroup>
    ...
    <adminpanel group="desktop_other" permission="other" controller='admin_member_attr' action='index' display='true'>会员注册项</adminpanel>
    ...
    <permissions>
        <permission id="shipment" display='true'>配送设置</permission>
        ...
    </permissions>

    <workground name="商品" id="b2c.wrokground.goods" controller="admin_goods" action="index" order="20">
        <menugroup name="商品管理">
            <menu controller='admin_goods_editor' action='add' permission='goods' display='false' order='10'>添加商品</menu>
            ...
        </menugroup>
        ...
    </workground>
    ...
</desktop>

  • desktop.xml不一定包含上面的所有标签,在符合语法规则的前提下,可以根据自己的需求任意增减标签。
  • 语法规则以及各个标签和标签属性含义如下:
  • desktop

每个 desktop.xml 的根标签

  • panelgroup

控制面板里的组其属性含义如下:

    1. id:控制面板里组的唯一标识
    2. icon: 控制面板里组的图标,路径默认的起点是app下的static,假如此desktop.xml是desktop这个app的,则图标的路径会自动解析成/app/desktop/static/panel-other.png
    3. order: 组的显示顺序
  • adminpanel

控制面板里的项其属性含义如下:

    1. group: 指属性那个控制面板组,其值是panelgroup的id属性值加app前缀,例如group="desktop_other"
    2. permission: 指此控制面板里的项属性那个权限(下面讲到权限)
    3. controller: controller和action(构成点此控制面板项时的去处,如果action属性未写则默认值为index)
    4. action: controller和action(构成点此控制面板项时的去处,如果action属性未写则默认值为index)
    5. display: 是否显示在控制面板组里,true为显示,false为不显示
  • permissions

    权限被包括在它里面

  • permission

    包含在permissions标签里,每一个都是一个权限其属性含义如下:

    1. id: 权限的唯一标识,全局唯一
    2. display: 新建角色时,是否显示在角色权限列表里,true为显示,false为不显示
  • workground

可以包含多个menugroup,看下【desktop图例】其属性有:

    1. name: 【1区】显示出来的label
    2. id:(workground的唯一标识)
    3. controller: 构成点此workground tab时的去处,如果action属性未写则默认值为index
    4. action: 构成点此workground tab时的去处,如果action属性未写则默认值为index
    5. order: 此workground在tab列表中的排序
  • menugroup

可以包含多个menu,看【desktop图例】 【2区】

  • menu

看【desktop图例】为【3区】提供菜单,除了拥有跟workground一样的属性外,此标签还有另外三个属性:

permission: 权限,为标签permission里的id属性的值

display: 是否显示,有些控制器里的方法是不必显示成菜单的,比如得到post数据保存商品的控制器等,这时需把display设成false的

params: 在url中传值,菜单上的访问链接将加上params的参数例如:

	<menu controller="admin_notebook" action="index" params="view:1|schema:2">留言编辑列表</menu>

	点击留言编辑列表  得到的URL地址为:

	http://localhost/book/index.php/shopadmin/#app=notebook&ctl=admin_notebook&act=index&view=1&schema=2

desktop图例

  • 一个典型的desktop的列表页包含了哪些内容,如下图所示:


接下来我们看各个区里的内容是如何增删及展示出来的

  • 【1、2、3区】都是根据app下的desktop.xml产生,如何填充,可以参照desktop.xml的介绍试试看
  • 【5区】顶部菜单产生是靠往服务id为desktop_menu里注册服务实现

service.xml里添加

     <service id="desktop_menu">
        <class>b2c_service_view_menu</class>
    </service>

b2c_service_view_menu内容如下

class b2c_service_view_menu{
    function function_menu(){
        $shop_base = app::get('site')->router()->gen_url(array('app'=>'site', 'ctl'=>'default'));
        $html[] = "<a href='$shop_base' target='_blank'>浏览商店</a>";
        return $html;

    }
}

说明:desktop_menu的服务,必须定义名字为function_menu的方法,它的返回值即为【5区】的菜单项

4区finder详细解释


finder说明:

  • 下面对finder各个区的内容的来龙去脉做解
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值