微擎開發(3)

模塊功能描述

編寫功能模塊前需要先確定模塊的主要功能, 微擎使用 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章