Discuz!系統常用函數及變量:
常用函數:
showmessage()函數:該函數就是我們最常見的頁面提示跳轉,比如登陸、退出、個人信息修改提交等等。
效果演示:
函數原型:
- showmessage($message, $url_forward = '', $extra = '', $forwardtype = 0)
其中有四個參數,第一個是必填參數,後三個爲可選參數,可選就是說使用時候可以不用填寫,當然填寫也不會有錯;
第一個參數是跳轉時候的提示信息,比如“您的修改已提交,正在爲您跳轉”;
第二個參數是要跳轉的頁面的url,就是指定他要跳轉到哪個頁面,可以是絕對URL,也可以使相對地址,比如:“index.php”就是跳轉到首頁。
第三個和第四個參數,可選的,對於我們站長來說,基本用不到,可以不用深究。通常使用兩個參數即可。
範例:showmessage('您的修改已提交,正在爲您返回首頁', 'index.php');
sendpm()函數:該函數用於發送短消息(包括私人消息、系統消息、提醒消息等)。
函數原型:
- sendpm($toid, $subject, $message, $fromid = '');
其中有四個參數,前三個爲必填參數,最後一個爲可選參數;
第一個參數是接收短消息的用戶UID;
第二個參數是短消息的標題;
第三個參數是短消息的正文內容;
第四個參數是發送短消息的用戶UID;
需要注意:當第一個參數$toid爲0時,消息類型爲公共消息,$fromid爲0時,消息類型爲系統消息,$message這個消息內容的參數,不支持HTML,但是支持Discuz!代碼。
sendmail函數:該函數用於發送電子郵件,前提是論壇系統的郵件必須配置成功,能正常發送郵件。
函數原型:
- sendmail($email_to, $email_subject, $email_message, $email_from = '')
第一個參數是接收電子郵件的用戶郵箱(看準了,是電子郵箱);
第二個參數是電子郵件的標題;
第三個參數是電子郵件的正文內容;
第四個是發送郵件的郵箱;
注意,第四個參數發送郵件的電子郵箱,可選,默認留空則爲系統發送的郵件;
這個發送電子郵件的函數不常用到,可以根據自己特殊需求來製作特殊功能時候使用,比如:N天未登錄郵件喚醒;
$db對象的各個MYSQL功能函數:
這些MYSQL相關函數,對於初級站長來說比較難,因爲涉及php的一些知識,如果不瞭解這些,請慎用;
下面主要說一下最常用的SQL語句執行函數:$db->query($sql);
$db->query($sql),通常只指定一個參數,那就是SQL語句,比如:
- $db->query("SELECT * FROM cdb_mytable");
其他更對相關函數,有一定基礎的站長,可以參考include/db_mysql.class.php這個文件。
模版中使用的常用JS函數:
showPrompt()函數:
函數效果:就像積分變動提醒一樣那種漂亮的提示橫條,我的Infonitce插件也用到這個函數;
函數範例:
- <span οnclick="showPrompt(null, null, '哈哈', 2000);">[點擊我看看是什麼效果]</span>
函數效果演示:
showDialog函數:用於彈出提示窗口
函數原型:
- showDialog(msg, mode, t, func, cover)
第二個參數:這個窗口的類型,可選值有:info、notice、alert、confirm等;具體區別參照下圖:
第三個參數:是彈出窗口的標題;
第四個參數:是點擊“確定”後執行的函數,非必須,根據自己需要使用函數;
第五個參數:是否帶遮罩層(就是彈出窗口後,背景頁面是否變成暗色不可用),0爲不遮罩,1爲遮罩;
函數範例:
- <a οnclick="showDialog('你是壞蛋!', 'notice', '通知信息', null, 0)" href="javascript:;">點擊我看看</a>
Discuz!系統全局變量篇:
$discuz_userss:當前用戶的用戶名;
$discuz_uid:當前用戶的UID;
$bbname:論壇名稱;
$boardurl:論壇地址;
$adminid:論壇管理組的數字ID編號,如:1是管理員,2是超版,3是版主;
$version:論壇的版本號;
$groupid:用戶組ID編號;
更多Discuz!系統全局變量參考:http://qun.qq.com/air/#12893286/bbs/view/cd/1/td/2
爲Discuz!添加一個屬於自己的緩存文件:
首先,我們要知道Discuz!封裝的函數writetocache,用來寫入緩存的,在include/cache.func.php文件中定義的。
函數原型:writetocache($script, $cachenames, $cachedata = '', $prefix = 'cache_')
那麼,要寫自己的緩存文件,要用這個函數,首先我們必須調用這個定義函數的文件,如下:
- require_once DISCUZ_ROOT.'./include/cache.func.php';
writetocache($script, $cachenames, $cachedata = '', $prefix = 'cache_')
詳細的writetocache解釋及使用範例(請下載附件): writetocache.rar (871 Bytes, 下載次數: 330)
藉助common.inc.php做任何事情:
Discuz!系統中,include/common.inc.php這個文件,可以理解爲系統的一個通用文件,裏面包含了全局的一些通用信息,可以不必理解它是怎麼寫的,什麼原理,只要學會應用即可,畢竟我們是站長,如果是開發者,可以深究下。
在Discuz!的php文件中,文件開始先包含一下這個文件,如下:
- require_once './include/common.inc.php';
包含這個文件後,我們可以做很多事情,比如自己寫一個單頁的程序:
- <?php
- require_once './include/common.inc.php';
- include template('intro');
- ?>
關於單頁的創作教程:http://bbs.7drc.com/thread-523-1-1.html
Discuz!系統中的模板函數:
大家肯定都注意到,Discuz!系統的可訪問頁面的php文件底部,一般都會有下面這麼一句:
- include template(xxx);
- include template(intro);
那麼,模板文件放在哪裏呢?可以放在自己當前風格模板目錄下,也可以放在系統默認模板目錄:templates/default。
在新內核插件中,你也會看到這樣的寫法:
- include template(’xxx’, 'xxxx’, 'xxxxx');
第二個是插件的唯一標識符;
第三個是模板文件存放的目錄;
範例如下:
- include template(’tguide’, 'drc_tguide’, './plugins/drc_tguide/templates');
- {template header}
- 這裏是自己模版文件內容區域
- {template footer}
{template header}這種是在模板文件(.htm)中調用其他模版文件的方法,像上面一樣,在開頭和結尾分別調用系統的頭部和尾部文件,即可實現自己的頁面與論壇保持一致的感覺。
然後呢,在模板文件中,可以直接使用對應php文件中的變量,或者系統的全局變量;
綜合上面幾點教程內容,我自己寫了個範例,大家可以下載參考: 範例文件.rar
(1.69 KB, 下載次數: 423)
--------------------------------------------------------------------------
開啓及使用HTML教程:
http://bbs.7drc.com/plugin.php?id=tutorial:tutorial&type=changy&page=4
論壇“分類信息”設置與使用教程:
http://bbs.7drc.com/plugin.php?id=tutorial:tutorial&type=changy&page=5
文件對比工具(Beyond Compare)及使用教程:
http://bbs.7drc.com/plugin.php?id=tutorial:tutorial