使用Joomla也有好一段時間了,最近想說把一些使用過後不錯的資訊跟大家分享一下
首先,我想要分享的就是如何在Framework外匯入Joomla的Framework,簡單的說就是想跳脫Joomla的框架,但又想用其中一些方便的函式。EX: getDBO()、getSession() 所以就必須將重要的庫匯入。
// 匯入Joomla Framework define( '_JEXEC', 1 );
define( '_VALID_MOS', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__)));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
// 初始化Joomla
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
// 之後可以開始使用這個Framework
接下來就是簡單介紹一下這幾行程式碼啦~
第一及第二行簡單的意思就是要保護這張php的代碼
以免當發生錯誤時路徑暴露和有人蓄意注射有害代碼以及Session的保護
詳細內容的可以參考Joomla官網說明
接下來的代碼就是將Joomla最重要的兩張php匯進來
一張是defines.php和framework.php
但是在匯之前必須先處裡路徑的問題
JPATH_BASE就是將網站root的絕對路徑拿出來
以上面程式為例,這是在你的外部檔案與root目錄是同一層時所使用
若是不同層可以用下面方式匯入
例如:你的外部檔案放在 modules/mod_yourmodule/tmpl/ 就必須寫成
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../..'));
又例如:你的外部檔案放在 components/com_yourcomponent/templates/default/ 就必須寫成,依此類推
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../../..'));
好啦~介紹完啦,可以盡情地使用Joomla Framework所帶來的好處哩。