初探phpcms模組

2022-04-04 20:15:33 字數 2896 閱讀 7656

我們可以在

找到他的目錄結構   我們要開發的東東(也就是模組)就在/phpcms/modules/下面

如果沒有什麼特別的 在開發乙個模組之前先要按照目錄結構建立好相關目錄並且設計好資料庫表結構 比方說 我們建立乙個模組叫做我的模組 my_test

下面應該是mytest下的目錄結構

mytest

--class //這個是mytest模組會用到的類

--function//mytest模組用到的函式

--install//安裝此模組需要的一些配置檔案和建立資料表myslq語句什麼的在這裡

--language//多語言的時候會用到

--config.ini.php//這個配置檔案是用來描述整個模組的一些資訊

--extention.inc.php//這個是建立目錄結構  .這個檔案也用來控制許可權

--model.php//模組使用了哪些資料模型.(可以理解為使用了哪些表.)

--model.sql//這個向資料庫裡面插入模型的記錄

--my_test.sql//這個檔案在安裝的時候會被執行,把建立資料庫表的sql放進來

--templates //,mytest模組用到的模板檔案

--uninstall //解除安裝模組時候用到的配置和檔案

這個裡面的檔案我沒研究  回頭研究了補上.

my_test.php //這個是mytest模組的後台控制器檔案`

index.php//這個是前台的控制器,這個我沒寫東西.

建立完乙個這樣的結構後 我們還需要在/phpcms/model/下面建立我們的資料模型

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

具體每個檔案裡面寫了些什麼.我們乙個乙個來看 .首先來看我們在model資料夾下面寫的那個檔案.

<?php 

defined('in_phpcms') or exit('no permission resources.');

pc_base::load_sys_class('model', '', 0);

class my_test_model extends model

}?>

第一行的作用是確定是不是在phpcms的執行框架內.

第二行載入系統的model類,後面的引數0 的意思是並不例項化.

最後一行呼叫了父類的構造方法.可以在phpcms/libs/classes/model.class.php中找到

而這個model類裡面定義了很多對資料的操作方法   最基本的增刪改查。以後我再詳細說說model基本的一些方法。

接著來看看modules   裡面的東東

我們乙個個往下面看  第乙個language   是用來支援多語言選單的。

然後是config.ini.php,這個裡面寫的是一些關於模組安裝時候的資訊。

檔案裡面是這個結構的

$module = 'mytest';//使用的model

$modulename = '這裡是模組的名稱';

$introduce = '模組的描述資訊';

$author = '作者';

$authorsite = '作者**';

$authoremail = '作者email';

裡面標註的很清楚了 

接著是extention.inc.php 這個檔案是用來建立後台管理選單的目錄結構的,也是用來控制許可權的  

$id= $menu_db->insert(array('name'=>'這裡寫著操作名稱',      'parentid'=>父id, 'm'=>'模組', 'c'=>'控制器', 'a'=>'動作',      'data'=>'', 'listorder'=>排序, 'display'=>'是否顯示'),true);//最後的true是用來返回id的
檔案最後應該有乙個陣列,這個陣列是用來插入系統的\language\zh-cn\system_menu.lang.php裡面的  格式如下

$language = array(

'這裡是你起的操作名稱'=>'這裡是操作的中文翻譯',

類似:'mytest_init'=>'顯示列表'

);

然後是model.php  這個就是你使用了哪些資料模型 可以理解為使用了哪些表

return array('mytest','my_test_artcle');
然後是model.sql   這個是用來向系統的模型表裡面插入資料用的

insert into `phpcms_module` (`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`) values ();
然後是mytest.sql 建立你資料庫表的語句應該寫在這個檔案裡面

接著就是你所使用的模板  應該放在templates裡面  命名的規則應該是   mytest_add.tpl.php

最後是你的控制器   這個有的研究了.控制器裡面是針對你每個url傳遞過來的action也就是a=?的動作.預設動作是init 

<?php 

defined('in_phpcms') or exit('no permission resources.');

class mytest extends admin()

public function init()

public function add()

}

控制器裡面寫好了   我們把上面的檔案都寫完了就可以安裝我們的模組了 。

寫這個部落格的時候我已經基本完成了我的模組的開發。回頭還有很多東西要寫上來。這次過程收穫了不少。這個部落格是我剛剛開始這個專案的時候打的草稿。

公告模組phpcms

標籤使用 功能模組 公告模組 1.公告模組 公告模組pc標籤呼叫說明 模組名 announce 模組提供的可用操作 操作名說明 lists 公告資料列表 lists操作說明如下 2.公告資料列表 lists 可用引數 引數名是否必須 預設值說明 siteid 否當前站點id 站點id 例子 1 2 ...

phpcms 新增模組步驟

1 新建資料庫2 定義模組類在phpcms model 下 命名 表名 model.class.php 內容 define in phpcms or exit no.permission resourde.pc base load sys class model 0 class guestbook ...

nginx stream模組初探

nginx從1.9.0開始,新增加了乙個stream模組,用來實現四層協議的 或者負載均衡等。這完全就是搶haproxy份額的節奏,鑑於nginx在7層負載均衡和web service上的成功,和nginx良好的框架,stream模組前景一片光明。stream模組預設沒有編譯到nginx,編譯ngi...