phpcms二次開發學習

2022-03-20 20:36:12 字數 2247 閱讀 1445

1、新建模組就是phpcms/modules/目錄下面新建資料夾,資料夾名即為模組名。

template(模組後台管理的模板檔案,通過$this->admin_tpl()方法呼叫)///

除此之外,經常還有install資料夾和uninstall資料夾。具體參照安裝原始碼包。

3、模組的實現機制。

控制器:即模組內的乙個php檔案,這是個類檔案,檔名和檔案內定義的類名必須一致。

當我們在瀏覽器輸入index.php?m=模組名&c=控制器名&c=控制器內方法名    時候,首先找到模組資料夾,再找到控制器,然後呼叫控制器內的方法。

控制器內方法一般有兩類:(1)顯示一些內容;(2)處理提交的內容;

對於「顯示一些內容」的方法,首先準備一些模板中需要使用的變數,然後使用include template('','')呼叫模板。最重要的是模板的呼叫,模板中需要的變數必須在控制器內的方法中定義。

一般如下:

public

function

list_type()

$setting = getcache('link', 'commons');

$seo = seo(siteid, '', l('link'), '', '');

include template('link', 'list_type');//這一句是模板呼叫,這一句上面的語句基本都是為這一句做準備

}

對於「處理提交的內容」,一般結構是這樣的:

public

function

register()

if($_post['url']=="")

if(!in_array($_post['linktype'],array('0','1')))

$link_db = pc_base::load_model(link_model);//載入資料模型

$_post['logo'] =new_html_special_chars($_post['logo']);

$logo = safe_replace(strip_tags($_post['logo']));

$name = safe_replace(strip_tags($_post['name']));

$url = safe_replace(strip_tags($_post['url']));

if($_post['linktype']=='0')

else

$link_db->insert($sql

);//執行資料插入操作

showmessage(l('add_success'), "?m=link&c=index&siteid=$siteid");//顯示插入成功

} else

$this->type = pc_base::load_model('type_model');

$types = $this->type->get_types($siteid);//

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

include template('link', 'register');

}}

4、關於模板

模板中使用的是標籤技術,比如內容模組中,用來顯示分類的標籤如下:

那麼,如果是我們自己定義的模組呢?應該是這個樣子:

模組名不用多說,就是剛才我們定義的資料夾名。那麼動作函式是哪來的呢?它定義在模組名/classes目錄下的「模組名_tag.class.php」中,同樣,這個類檔案內主類名也應該是「模組名_tag」,此中定義乙個名為「動作函式」的方法。這個方法接收乙個引數data,這是乙個陣列引數,陣列的鍵名就是上面的action,catid,num,order,page等等(這些變數名是可以自己定義的),值就是「動作函式」,15,8,等。

乙個典型的格式如下:

public

function type_lists($data

)

$sql = array('module'=>route_m,'siteid'=>$data['siteid']);

$r = $this->type_db->select($sql, '*', $data['limit'], 'listorder '.$data['listorder']);

return new_html_special_chars($r

); }

phpcms二次開發有感

最近在做把oracle的資料移植到mysql去。岔開一下,先說一下這個事情。之前的oracle資料庫用了很多年,都很老了,很多表設計得及其不合理,這給我移植的過程中帶來了一定的麻煩。還好,oracle裡咩有涉及到觸發器,儲存過程,事物等。不過也都移植的過程都省掉了,只是簡單的把資料移植過來。若有做這...

PHPCMS常用函式 二次開發用

常用函式 開啟include global.func.php,下面存放一些公共函式 view plaincopy to clipboardprint?function str charset in charset,out charset,str or arr 轉換字串或者陣列的編碼 function...

postek二次開發 POSTEK二次開發介面

例項簡介 例項截圖 核心 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using ...