joomla1.5前台組件開發過程分享(附中文開發教程兩本)


    上一次分享到一個后台組件開發,也許我講的不是很明白,不過你們把源代碼拿去以后應該可以看懂,我是完全按照MVC模式開發的。今天呢,就來分享一下前台組件開發,我這里的前台組件和后台組件都是單獨開發,前台組件是沒有后台管理的,僅僅是開發顯示效果,因為默認的排版方式就是那么兩種,如果客戶需要個性化的,就必須自己開發,下來我們就開發了。說一下目的,我要開發的是顯示文章的列表樣式,和自帶的博客樣式,默認樣式不同的,找到前台組件目錄components在里面新建一個文件夾就叫做com_more吧,在里面新建文件more.xml這個是打包安裝文件,models文件夾是模塊文件夾,views是視圖文件夾,controller.php是控制器,more.php是入口文件。開發過程中我們可以用index.php?option=com_more來查看效果,由於這個例子簡單,沒有更多控制器和視圖,所以還是比較容易理解。最后我會分享給你們插件開發的教程兩本。

    現在一步一步來,more.xml是安裝文件,不是必須的,如果要打包分享別人通過zip上傳方式安裝才需要,一般工作中沒有必要去寫那個文件,特別是當文件特多的時候,我們直接上傳開發文件和手動配置數據庫同樣可以。先來看more.php入口文件吧,

defined('_JEXEC') or die;
jimport('joomla.application.component.helper');
require_once( JPATH_COMPONENT.DS.'controller.php' );
$controller = new MoreController();
$controller->execute(JRequest::getVar('task',null,'default','cmd'));
$controller->redirect();

里面的1-3行是每個組件必須,任何組件都這么寫,分別是防止意外加載,載入助手函數,再入控制器文件,4行是創建一個控制器對象,5行是執行任務,最后跳轉,MoreController()是采用組建名+controller來命名的,joomla隨處可見這種命名方式。

    接着來看controller.php控制器代碼

defined('_JEXEC') or die( 'Restricted access' );
jimport('joomla.application.component.controller');
class MoreController extends JController
{
    function display()
    {
        parent::display();
    }
}

很簡單吧,就是繼承了父類joomla的控制器而已,沒啥好說的。復雜一點的事models里面,他是一個模型,就是處理數據的,他把處理的數據給了views文件夾里面的more下面的view.html.php,在這個文件里面,我們首先是獲得模型,然后把處理數據的方法返回的數據復制給模版。$this->assignRef('category',    $category);就是賦值給category,這里其實可以不需要模型,我們直接在這個文件里面寫查詢數據,然后把值賦給變量,不過就不是MVC模式了。

    最后就是在views\more\tmpl里面default.php的顯示文件了,這里就是控制顯示效果了,把處理的數據結果都在這里顯示,通過循環,可以取出數據值。這里也是可以寫查詢語句的,有時候為了開發方便就直接在這里寫了,不過后期維護組件的人就不容易看懂了,怎么做自己看着辦吧。在joomla里面查詢數據用的最多,所以

    $db=&JFactory::getDBO();
    $query="SELECT * FROM #__content";
    $db->setQuery($query);
$list=$db->loadObjectList();

 這幾句用的最多,幾乎開發插件、組件、模塊都有可能用到的。最后用循環取出$list值。

    好了一個組件基本就完成了,最后附上組件完整代碼,以及兩本開發教程都是中文版的,一本是API講解,一本是插件組建模塊開發。

代碼下載地址

API下載

插件組件教程下載

(原創 by Yoby)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM