2013-08-30 66 views
1

我wana創建了一個前端joomla組件,這是我的第一次體驗。joomla如何將模塊傳遞到組件3.1

這裏是重要的事情:

1組分/ Controller.php這樣

class TestController extends JControllerLegacy 
{ 
public function display($cachable = false, $urlparams = false) 
{ 

$view= JFactory::getApplication()->input->getCmd('view','items'); 
    JFactory::getApplication()->input->set('view', $view); 
    parent::display($cachable, $urlparams); 
} 
} 

2:com_test /模型/ items.php

<?php 
defined('_JEXEC') or die(); 

jimport('joomla.application.component.modellist'); 


class TestModelItems extends JModelList 
{ 
    public function __construct($config = array()) 
    { 
    if (empty($config['filter_fields'])) 
     $config['filter_fields'] = array('id', 'title', 'catid'); 
    parent::__construct($config); 
} 

function getListQuery() 
{ 
    $db = JFactory::getDBO(); 
    $query = $db->getQuery(true); 
    $query->select(...) 
    return $query; 
} 

}

我可以在查看文件夾的default.php上打印查詢結果! 但我還有一件事。

我有這樣一種形式,我的網站的頭版自定義模塊:

<form action="" method="post"> 
<input type="text" name="wordsearch" value="search"> 
. 
. 
<input type="submit" /> 
</form> 

現在!

我不知道如何發送此表單(使用post方法)到模型文件夾中的getListQuery()函數...怎麼辦?

當你單擊提交表單時,組件過濾器根據表單的值查詢sql,然後向用戶顯示新的結果!

我google了幾個小時,但沒有機會解決。謝謝你的幫助。

回答

0

您可以按如下方式將模塊提交給組件。

假設您的組件名稱爲com_helloworld模塊窗體中應包含以下內容。

<form action="" method="post"> 
<input type="text" name="wordsearch" value="search"> 
. 
. 
<input type="hidden" name="option" value="com_helloworld" /> 
<input type="hidden" name="view" value="yourview" /> 
<input type="hidden" name="task" value="my_controller_fun" /> 
<input type="hidden" value="your_controller_file_name" name="controller"> 
<input type="submit" /> 
</form> 

在這個例子中你的控制器文件應該有從控制器my_controller_fun方法模型,你可以使用常規的方法。此方法將獲得控制器中的所有表單數據,然後您可以將其傳遞給模型。

詳細說明:

在您的控制器文件中。

function my_controller_fun(){ 
    $post_array = $_POST; 
    $model = $this->getModel('Profile', 'UsersModel');//example for including profile model you can specify your model file name 
    $model->function_inyourmodel($post_array);//this function should be in model 
} 

希望其幫助..

+0

感謝,但這個是確切的我的問題!如何寫my_controller_fun()函數?以及如何將其傳遞給模型? – user2726957

+0

@ user2726957檢查我的編輯 –