<wbr id="5fx8f"><legend id="5fx8f"><dl id="5fx8f"></dl></legend></wbr>

<form id="5fx8f"><legend id="5fx8f"><noscript id="5fx8f"></noscript></legend></form><sub id="5fx8f"><address id="5fx8f"></address></sub>
  • <em id="5fx8f"><source id="5fx8f"></source></em>

      <sub id="5fx8f"></sub>
      1. 濟南小程序開發公司濟南小貓科技:專注微信開發,濟南小程序開發,濟南微信小程序定制開發等業務!
        手機版手機網站二維碼 微信版 微信二維碼 業務咨詢電話:159-5318-4521

        小程序開發者:插件機制與目錄結構

        發表于:2021-05-24 10:20:27 閱讀(0 )

        為更好的拓展系統功能,進云框架支持以插件的形式開發應用。下面簡要介紹進云系統插件機制。

        插件可以擁有自己的頁面、數據表、工具類等。進云系統已內置插件類plugin,每一個插件類都是該類的實例,在插件控制文件中,可通過$this來訪問該插件的屬性和方法。

         

        頁面機制

        和其他PHP框架不同,進云插件頁面控制文件無需聲明類。而是直接在特定目錄創建文件以編寫業務代碼即可!但是進云插件所有頁面都處于plugin類中,也就是在所有頁面控制文件中都可以使用$this來訪問相應插件類實例的方法和屬性!

        進云系統是一個多站點的站點管理系統,每個站點都有管理端和客戶端,管理端是站點管理員登陸操作管理的頁面,客戶端是站點建好對外發布后,訪客訪問的頁面。為提升系統安全性,管理端頁面代碼和客戶端頁面代碼分開存放,分別位于插件根目錄下的manage文件夾和custom文件夾。

        進云系統中,每個頁面對應一個頁面控制文件(PHP文件)、一個頁面樣式文件(html文件),分別存放于指定位置,可查看下面面的目錄結構。每個頁面可分為若干個子頁面,根據op來區分。

        進云系統的插件目錄是根目錄下的addons目錄,插件的根目錄位于系統插件目錄下以插件標識命名的文件夾。

        插件目錄:

        插件根目錄

        ——manage:插件管理端頁面文件目錄

        ; ; ; ;|——common.php:管理端初始化文件,非必須。如果存在,訪問插件用戶端頁面時,會先執行該頁面的代碼,該文件中可通過$this訪問插件類

        ; ; ; |——actions:控制文件目錄

        ; ; ; ; ; ; ; ;|——index.php:插件管理端首頁

        ; ; ; ; ; ; ; ;|——link.php:插件頁面鏈接選擇文件

        ; ; ; |——templates:頁面文件目錄

        ; ; ; ; ; ; ; ;|——windows:PC端頁面文件

        ; ; ; ; ; ; ; ;|——mobile:手機端頁面文件

        ——resource:插件圖片、樣式、js等資源文件目錄

        ——custom:插件用戶端頁面文件目錄

        ; ; ; ;|——common.php:用戶端初始化文件,,非必須。如果存在,訪問插件用戶端頁面時,會先執行該頁面的代碼,該文件中可通過$this訪問插件類

        ; ; ; ;|——actions:控制文件目錄

        ; ; ; ;|——templates:頁面文件目錄

        ——class:插件工具類目錄

        ——subscribe:插件訂閱事件處理函數目錄

        ——model:插件工具類目錄

        ; ; ; ;|——menu.php:插件管理端導航菜單聲明文件,非必須

        ——init.php:插件類初始化文件,非必須。

        ——default_setting.php:插件默認參數聲明文件,非必須。

         

        一個典型的進云插件頁面:

        頁面地址:http://你的域名/manage/index.php?plugin=jy_weishop&action=goods.list

        頁面控制文件路徑:(相對插件根目錄)
        /manage/actions/goods/list.php

        控制文件中,可以使用$this來方法插件類的方法和屬性。整理好數據后,調用系統exi函數返回前端

        頁面pc端html文件路徑:(相對插件根目錄)
        /manage/templates/windows/goods/list.html

        頁面手機端html文件路徑:(相對插件根目錄)
        /manage/templates/mobile/goods/list.html

        控制文件通過訪問數據庫將數據讀出并整理好,然后通過調用exi()函數將數據返回給前端,系統自動調用相應html文件結合數據進行渲染,生成最終的展示頁面

        插件數據表名稱命名規范:

        為方便使用和統一管理,所有進云插件的數據表必須以(系統數據表前綴+插件標識+下劃線)開頭!

        插件工具類聲明和使用方法:

        為方便model()函數調用,插件工具類必須全部聲明在class文件夾中,然后按照標準的格式進行聲明?。ó斎?,如果是自己直接使用,隨便怎么聲明都可以!此處規范的類聲明方式只是為了model函數能夠調用到?。?/span>

        下面介紹聲明方法:

        1、命名空間:plugin_name

        2、類名: class_name

        3、繼承的基類:plugin。繼承這個類的目的是在工具類中可以使用插件類的方法和屬性!如果無需用到這些,也可不繼承!

        4、本插件調用方法:$this->model('class_name'),返回已實例化好的目標類的示例

        5、外部插件調用方法:model('plugin_name/class_name'),返回已實例化好的目標類的示例

        5、類比較多時,可在class目錄下創建一級或多級文件夾,以更好的管理這些類,這些類的命名空間和調用方法如下:

        命名空間:plugin_namedir_name

        類名:class_name

        調用方法:model('
        plugin_name/dir_name/class_name')

        多級文件夾以此類推!

        下面是示例代碼:

        以下為微客分銷插件傭金計算類的聲明代碼

        文件路徑:
        /addons/jy_commission/class/commission.php(基于站點根目錄)

        <?php
        namespace jy_commission;
        defined('BY_JYA'or exit('error');
        /*
        	分銷傭金
        	
        */
        class commission extends plugin{
        	/*
        		生成傭金
        	*/
        	function create($order){
        		$level=intval($this->setting['level']);
        		if($level==0){
        			return;
        		}
        		$this->order=$order;
        		if($this->setting['self_commission']==1){
        			$agent_id=$order['mid'];
        		}else{
        			$agent_id=$this->getcolumn('member',array('mid'=>$order['mid']),'agent_id');
        		}
        		$this->commission_order=array(
        			'uniacid'=>$_SESSION['uniacid'],
        			'mid'=>$this->order['mid'],
        			'ordersn'=>$this->order['ordersn'],
        			'order_price'=>$this->order['price'],
        			'commission_money'=>0,
        			'createtime'=>TIMESTAMP,
        		);
        		//傭金計算方式,是否扣除運費
        		if($this->setting['commissiontype']==1){
        			$this->commission_order['commission_price']=$this->order['price'];
        		}else{
        			$this->commission_order['commission_price']=$this->order['price']-$this->order['dispatchprice'];
        		}
        		//當分銷層級大于0時,逐次尋找上級推薦人并計算傭金
        		for($i=0;$i<$level;$i++){
        			if(!$agent_id){
        				break;
        			}
        			$agent_id=$this->create_commission($agent_id,$i+1);
        		}
        		//生成分銷訂單
        		$this->insert('order',$this->commission_order);
        		return true;
        	}
        	//以下部分省略
        }



        top
        十分钟免费观看高清视频大全,中文字幕无码不卡免费视频,无码AV片AV片AV无码,人妻AV无码系列一区二区三区 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>