微擎开发(3) - luogan129的博客 - CSDN博客

模块功能描述

编写功能模块前需要先确定模块的主要功能, 微擎使用 manifest.xml 来描述模块的主要功能和配置参数. 这个xml文件被定义为如下结构

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://www.we7.cc" versionCode="0.51">
<application setting="true">
    <name><![CDATA[模块名称]]></name>
    <identifie><![CDATA[模块标识]]></identifie>
    <version><![CDATA[1.0]]></version>
    <type><![CDATA[business]]></type>
    <ability><![CDATA[模块简述]]></ability>
    <description><![CDATA[模块介绍]]></description>
    <author><![CDATA[作者]]></author>
    <url><![CDATA[发布页]]></url>
</application>
<platform>
    <subscribes>
        <message type="text" />
        <message type="image" />
        <message type="voice" />
        <message type="video" />
        <message type="location" />
        <message type="link" />
        <message type="subscribe" />
        <message type="unsubscribe" />
        <message type="click" />
    </subscribes>
    <handles>
        <message type="image" />
        <message type="voice" />
        <message type="video" />
        <message type="location" />
        <message type="link" />
        <message type="subscribe" />
        <message type="text" />
    </handles>
    <rule embed="true" />
</platform>
<bindings>
    <cover call="getCoverItems">
        <entry title="功能封面" do="url" state="" direct="false" />
        <entry title="功能封面1" do="url" state="" direct="false" />
    </cover>
    <rule>
        <entry title="规则列表" do="url" state="" direct="false" />
    </rule>
    <menu>
        <entry title="管理中心" do="url" state="" direct="false" />
    </menu>
    <home>
        <entry title="微站首页" do="url" state="" direct="false" />
    </home>
    <profile>
        <entry title="微站个人中心" do="url" state="" direct="false" />
    </profile>
    <shortcut>
        <entry title="微站快捷" do="url" state="" direct="false" />
    </shortcut>
</bindings>
<install><![CDATA[模块安装脚本]]></install>
<uninstall><![CDATA[卸载脚本]]></uninstall>
<upgrade><![CDATA[模块升级脚本]]></upgrade>
</manifest>

manifest - xmlns (新增)
用来为此模块XML的命令空间,此处必须填写”http://www.we7.cc“.

manifest - versionCode
用来说明当前模块适用于哪个版本的微擎, 用来保证模块的兼容性. 多个支持的版本请使用逗号隔开.

manifest - application 用来定义模块的基本设置属性
manifest - application - setting 用来说明此模块是否有针对模块的设置项, 设置项可以保存此模块需要的配置参数(此参数针对不同的公众号分别保存)

manifest - application - name
模块的名称

manifest - application - identifie
模块标识符, 应对应模块文件夹的名称, 微擎系统按照此标识符查找模块定义

manifest - application - version
模块当前版本, 此版本用于模块的版本更新

manifest - application - type (新增)
模块的类型,方便在左侧菜单中归类与显示, 目前分为 business(主要业务),customer(客户关系),activity(营销及活动),services(常用服务及工具),other(其他)

manifest - application - ability
模块功能描述, 使用简单的语言描述模块的作用, 来吸引用户

manifest - application - description
模块详细描述, 详细介绍模块的功能和使用方法

manifest - application - author
模块的作者, 留下你的大名吧

manifest - application - url
模块的发布页, 可以通过这个url来访问你的模块最新情况

manifest - platform
用来定义模块用以处理公众平台消息的设置项

manifest - platform - subscribes
消息订阅器定义(消息订阅器提供了一种处理公众平台消息的方式, 可以接受到指定类型的消息, 来进行分析和统计, 不能用以处理消息返回结果. 这种处理是并行的, 同一个消息会被每一个订阅它的模块接收到)

manifest - platform - subscribes - message
定义需要被订阅器订阅的消息类型, 这里的消息被 WeModuleReceiver 处理

manifest - platform - handles
消息处理器定义(消息处理器用于接收公众平台的消息, 并返回相应的处理结果. 这种处理是互斥的, 同一个消息只能从一个模块返回处理结果)

manifest - platform - handles - message
定义需要被处理器处理的消息类型, 这里的消息被 WeModuleProcessor 处理

manifest - platform - rule (变更)
定义此模块是否需要规则触发

manifest - platform - rule - embed
当前模块进行消息处理时需要定义规则, 是否使用规则路由. (使用规则路由必须要能处理text类型消息, handles节点中必须包含 )

manifest - bindings (新增)
定义此模块的封面,管理菜单,微站菜单及规则扩展菜单

manifest - bindings - cover
定义模块的封面入口,封面入口为单条图文信息即是模块需要对用户开放的入口地址.

manifest - bindings - cover - call
定义模块动态扩展菜单项, 此值对应 WeModuleSite 类中的方法, 返回的值结构与entry相同, 将成为此节点的菜单项.

manifest - bindings - cover - entry
模块绑定菜单的定义结构. 需要定义 title - 操作的名称, do - 模块操作入口, state - 附加的用户参数(定义于WeModuleSite)

manifest - bindings - rule
定义规则的附加操作, 每个entry代表一个附加操作.

manifest - bindings - menu
定义模块在左侧本模块菜单下拉列表中的附加菜单操作, 每一个entry代表一个菜单操作.

manifest - bindings - home
定义模块在微站首页的扩展菜单项, 每一个entry代表一个微站首页菜单项.

manifest - bindings - profile
定义模块在微站个人中心的扩展菜单项, 每一个entry代表一个微站个人中心菜单项.

manifest - bindings - shortcut
定义模块在微站快捷菜单的扩展菜单项, 每一个entry代表一个微站快捷菜单项.

manifest - install
安装执行脚本, 这里支持两种形式: php脚本和sql语句. 如果安装时只需要写入数据库相关内容, 可以在此直接定义sql语句. 也可以使用php文件, 例如: install.php 代表执行模块定义目录下的 install.php

manifest - uninstall
卸载执行脚本, 参上

manifest - upgrade
升级执行脚本, 参上

模块文件结构

模块定义后所有代码及资源文件应放置于同一文件夹内. 如定义无误, 将会被安装至 /source/modules/{identifie} 下. 其中 {identifie} 将与上一步描述文件中的 manifest.xml 中定义的标识符保持一致. 模块文件夹的结构如下:

├─template
│  ├─mobile
│  │  └───xxxx.html
│  ├─settings.html
│  └─xxxx.xxx
├─module.php
├─processor.php
├─receiver.php
├─site.php
├─manifest.xml
├─install.php
├─preview.jpg
├─icon.jpg
├─...
└─...

其中必须的文件包括 manifest.xml. 这个文件均位于模块文件夹根目录. 其他的文件及目录, 会根据你的 manifest.xml 来定义
推荐: 强烈建议使用系统内置的模块设计器来生成模块结构.

module.php 这个文件内容为微擎模块定义, 应为 WeModule 类的派生类. 请参阅(微擎处理流程-模块定义)
processor.php 这个文件内容为微擎模块处理程序定义, 应为 WeModuleProcessor 类的派生类. 请参阅(微擎处理流程-模块定义)
receiver.php 这个文件内容为微擎模块消息订阅器定义, 应为 WeModuleReceiver 类的派生类. 请参阅(微擎处理流程-模块定义)
site.php 这个文件内容为微擎模块微站功能定义, 应为 WeModuleSite 类的派生类. 请参阅(微擎处理流程-模块定义)
manifest.xml 描述文件
preview.jpg 模块封面, 规格为600px*350px
icon.jpg 模块图标, 规格为48px*48px

模块定义
定义模块需要按照你的模块功能来继承并实现 WeModule, WeModuleProcessor, WeModuleReceiver 和 WeModuleSite 这几个类的特定函数成员来实现.

WeModule 介绍

WeModule 微擎系统将在用户管理界面使用 WeModule 的派生类来管理, 配置和显示此模块的在处理公众平台消息时的相关功能(如规则定义, 消息处理等).
WeModule 中可以定义程序嵌入点, 嵌入点方法可以直接从Web中访问. 定义格式为: 函数名 doXXX, 访问方式为 ./index.php?act=module&name={模块名称}&do={XXX} WeModule类的定义及派生时要实现的成员描述如下:

http://www.we7.cc/docs/#module
https://www.kancloud.cn/whxme/we7/174921


Original url: Access
Created at: 2019-12-03 17:47:34
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论