一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

php筆記之:初探PHPcms模塊開(kāi)發(fā)介紹

 quasiceo 2015-10-19


本篇文章介紹了,PHPcms模塊開(kāi)發(fā)的應(yīng)用。需要的朋友參考下

由于工作關(guān)系,只能暫時(shí)放棄對(duì)mongodb的研究了 .開(kāi)始研究PHPcms .

目前為止我已經(jīng)基本完成了模塊的開(kāi)發(fā).趁著周末來(lái)這里做個(gè)總結(jié).我發(fā)現(xiàn)phpcms寫(xiě)的還不錯(cuò),不過(guò)文檔什么的確實(shí)不多.

不說(shuō)廢話了.對(duì)于phpcms的模塊開(kāi)發(fā).首先要了解模塊的目錄結(jié)構(gòu).

我們可以在http://v9.help./html/2010/structure_0928/69.html

找到他的目錄結(jié)構(gòu)   我們要開(kāi)發(fā)的東東(也就是模塊)就在/phpcms/modules/下面

如果沒(méi)有什么特別的 在開(kāi)發(fā)一個(gè)模塊之前先要按照目錄結(jié)構(gòu)建立好相關(guān)目錄并且設(shè)計(jì)好數(shù)據(jù)庫(kù)表結(jié)構(gòu) 比方說(shuō) 我們建立一個(gè)模塊叫做我的模塊 my_test

下面應(yīng)該是mytest下的目錄結(jié)構(gòu)


mytest

  --class //這個(gè)是mytest模塊會(huì)用到的類

  --function//mytest模塊用到的函數(shù)

  --install//安裝此模塊需要的一些配置文件和建立數(shù)據(jù)表myslq語(yǔ)句什么的在這里

    --language//多語(yǔ)言的時(shí)候會(huì)用到

    --config.ini.php//這個(gè)配置文件是用來(lái)描述整個(gè)模塊的一些信息

    --extention.inc.php//這個(gè)是創(chuàng)建目錄結(jié)構(gòu)  .這個(gè)文件也用來(lái)控制權(quán)限

    --model.php//模塊使用了哪些數(shù)據(jù)模型.(可以理解為使用了哪些表.)

    --model.sql//這個(gè)向數(shù)據(jù)庫(kù)里面插入模型的記錄

    --my_test.sql//這個(gè)文件在安裝的時(shí)候會(huì)被執(zhí)行,把建立數(shù)據(jù)庫(kù)表的sql放進(jìn)來(lái)

  --templates //,mytest模塊用到的模板文件

  --uninstall //卸載模塊時(shí)候用到的配置和文件

    這個(gè)里面的文件我沒(méi)研究  回頭研究了補(bǔ)上.

my_test.php //這個(gè)是mytest模塊的后臺(tái)控制器文件`

index.php//這個(gè)是前臺(tái)的控制器,這個(gè)我沒(méi)寫(xiě)東西.


 

 

建立完一個(gè)這樣的結(jié)構(gòu)后 我們還需要在/phpcms/model/下面建立我們的數(shù)據(jù)模型

例如  my_test_model.class.php  (這個(gè)使用了很典型的工廠模式)

具體每個(gè)文件里面寫(xiě)了些什么.我們一個(gè)一個(gè)來(lái)看 .首先來(lái)看我們?cè)趍odel文件夾下面寫(xiě)的那個(gè)文件.

復(fù)制代碼 代碼如下:

<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class my_test_model extends model {
    public function __construct() {
        $this->db_config = pc_base::load_config('database');
        $this->db_setting = 'default';//默認(rèn)的數(shù)據(jù)庫(kù)配置.//多個(gè)庫(kù)的話可以在這里選庫(kù)
        $this->table_name = 'my_test';//這個(gè)就是表名稱,不用加表前綴
        parent::__construct();
    }
}
?>    

第一行的作用是確定是不是在phpcms的運(yùn)行框架內(nèi).

第二行加載系統(tǒng)的model類,后面的參數(shù)0 的意思是并不實(shí)例化.

最后一行調(diào)用了父類的構(gòu)造方法.可以在phpcms/libs/classes/model.class.php中找到

而這個(gè)model類里面定義了很多對(duì)數(shù)據(jù)的操作方法   最基本的增刪改查。以后我再詳細(xì)說(shuō)說(shuō)model基本的一些方法。

接著來(lái)看看modules   里面的東東

我們一個(gè)個(gè)往下面看  第一個(gè)language   是用來(lái)支持多語(yǔ)言菜單的。

然后是config.ini.php,這個(gè)里面寫(xiě)的是一些關(guān)于模塊安裝時(shí)候的信息。

文件里面是這個(gè)結(jié)構(gòu)的

復(fù)制代碼 代碼如下:

$module = 'mytest';//使用的model
$modulename = '這里是模塊的名稱';
$introduce = '模塊的描述信息';
$author = '作者';
$authorsite = '作者網(wǎng)站';
$authoremail = '作者email';

里面標(biāo)注的很清楚了

接著是extention.inc.php 這個(gè)文件是用來(lái)創(chuàng)建后臺(tái)管理菜單的目錄結(jié)構(gòu)的,也是用來(lái)控制權(quán)限的 

復(fù)制代碼 代碼如下:

$id= $menu_db->insert(array('name'=>'這里寫(xiě)著操作名稱',      'parentid'=>父ID, 'm'=>'模塊', 'c'=>'控制器', 'a'=>'動(dòng)作',      'data'=>'', 'listorder'=>排序, 'display'=>'是否顯示'),true);//最后的true是用來(lái)返回ID的

文件最后應(yīng)該有一個(gè)數(shù)組,這個(gè)數(shù)組是用來(lái)插入系統(tǒng)的\language\zh-cn\system_menu.lang.php里面的  格式如下
復(fù)制代碼 代碼如下:

$language = array(
    '這里是你起的操作名稱'=>'這里是操作的中文翻譯',
    類似:'mytest_init'=>'顯示列表'
    );

然后是model.php  這個(gè)就是你使用了哪些數(shù)據(jù)模型 可以理解為使用了哪些表
復(fù)制代碼 代碼如下:

return array('mytest','my_test_artcle');

然后是model.sql   這個(gè)是用來(lái)向系統(tǒng)的模型表里面插入數(shù)據(jù)用的
復(fù)制代碼 代碼如下:

INSERT INTO `phpcms_module` (`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`) VALUES ();

然后是mytest.sql 建立你數(shù)據(jù)庫(kù)表的語(yǔ)句應(yīng)該寫(xiě)在這個(gè)文件里面

接著就是你所使用的模板  應(yīng)該放在templates里面  命名的規(guī)則應(yīng)該是   mytest_add.tpl.php

最后是你的控制器   這個(gè)有的研究了.控制器里面是針對(duì)你每個(gè)url傳遞過(guò)來(lái)的action也就是a=?的動(dòng)作.默認(rèn)動(dòng)作是init

復(fù)制代碼 代碼如下:

<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest extends admin(){
  public function __construct(){
    parent::__construct;//調(diào)用父類的構(gòu)造函數(shù)
  }
  public function init(){
    echo "這里是默認(rèn)的操作方法";
  }
  public function add(){
    include $this->admin_tpl('mytest_add');//使用模板的方法
  }
}

控制器里面寫(xiě)好了   我們把上面的文件都寫(xiě)完了就可以安裝我們的模塊了 。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    日本午夜免费啪视频在线| 黄片免费播放一区二区| 伊人久久青草地综合婷婷| 国产内射一级一片内射高清视频 | 九九热精彩视频在线播放| 免费在线观看激情小视频| 黄男女激情一区二区三区| 亚洲永久一区二区三区在线| 欧美熟妇喷浆一区二区| 色哟哟国产精品免费视频| 国产毛片对白精品看片| 精品人妻一区二区三区四区久久| 五月天婷亚洲天婷综合网| 91一区国产中文字幕| 成在线人免费视频一区二区| 伊人色综合久久伊人婷婷| 欧美日韩国产免费看黄片| 国产麻豆视频一二三区| 欧美精品二区中文乱码字幕高清| 偷自拍亚洲欧美一区二页| 九九九热视频最新在线| 亚洲欧美视频欧美视频| 国产精品欧美一区二区三区| 91亚洲国产日韩在线| 99久久精品午夜一区| 91免费精品国自产拍偷拍| 91插插插外国一区二区| 日韩一区二区三区在线欧洲| 欧美激情区一区二区三区| 亚洲综合色在线视频香蕉视频| 在线免费观看黄色美女| 国产丝袜极品黑色高跟鞋| 国产又爽又猛又粗又色对黄| 久久热在线视频免费观看| 日本不卡在线一区二区三区| 国产又爽又猛又粗又色对黄| 国产超碰在线观看免费| 亚洲中文字幕熟女丝袜久久 | 国语对白刺激高潮在线视频| 久久精品国产亚洲av久按摩| 亚洲视频一区自拍偷拍另类|