Discuz! 是一款廣泛使用的 PHP 論壇系統,其路徑配置在使用過程中也非常重要。在討論 Discuz! 的 PHP 路徑之前,我們需要回顧一下什么是 PHP 路徑。即 PHP 程序在進行文件調用時需要通過路徑指定該文件所在的位置。
例:我的網站中有 index.php、header.php 和 footer.php 三個文件,其中 header.php 需要引用 index.php 中的數據,footer.php 需要引用 header.php 中的數據。那么,在 header.php 中通過 require_once 或 include_once 引用 index.php 數據時,就需要提供某種路徑。
Discuz! 在路徑配置上比較靈活,它會將 基礎路徑(如: http://www.example.com)和程序路徑(如: discuz)分離開來,因此需要分別進行配置。
在 Discuz! 中,基礎路徑可以通過配置文件 config_global.php 中的 $_G['siteurl'] 來指定。而程序路徑則可以通過 UCenter 內部的函數 uc_path() 以及 BBS 內部的函數 bbs_path() 來調用配置。我們在進行插件編寫時,如果要用到類庫或其他 PHP 文件,可以在初始化時指定程序路徑。
例:插件所在目錄為 plugin/example,需要引用一個名為 Myclass 的類庫(文件名:Myclass.php),可以在插件初始化的時候寫入如下代碼:
```php
require_once bbs_path()."plugin/example/Myclass.php";
```
在 Discuz! 中還有一個十分重要的路徑 build 系列函數,這些函數可以根據基礎路徑和程序路徑生成需要的 URL。這些函數包括:rewriteoutput()、endrewriteoutput()、imgloc()、strcamphref() 等等。
例:如果需要在模板文件中生成某個板塊的鏈接,可以使用如下代碼:
```php
$str = strcamphref('forum.php?mod=forumdisplay&fid=1', '', '', 'onclick="alert(\'這是板塊 1\')')" ;
```
其中 strcamphref 函數的第一個參數是生成的地址,后續參數用于指定屬性(如 title、target、onclick 等)。
在此我們再介紹一個與 PHP 路徑相關的操作 — 相對路徑。相對路徑是根據當前所在路徑確定其他文件位置的路徑方式。在 Discuz! 中,相對路徑是十分常見的操作方式。
例如,我們在某個模板中需要引用 CSS 文件。我們可以把 CSS 放在模板所在文件夾下,生成的代碼如下:
```html```
在此代碼中,href 指定的是 CSS 文件相對模板文件的位置,因為在同一文件夾下,所以只需指定文件名即可。
總結一下,在 Discuz! 中,路徑配置是十分重要的一項內容,它關系到程序正常的運行,而 PHP 路徑的設置是其中一個子集。我們可以通過配置文件、內置函數以及相對路徑等方式來進行路徑的設置,保證程序的正常運行。
上一篇ajax從服務器獲取照片
下一篇discuz php用戶