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