joomla 2.5将默认值传递给新项目

时间:2012-09-26 09:36:58

标签: joomla

我喜欢从后端列表视图中创建一个新项目。 对于新项目,我想传递一个取决于当前列表(实际年份)的默认值。

如何使用Joomla 2.5进行此操作?

我可以通过覆盖add()方法将值传递给当前控制器上新项目的控制器(通过JRequest :: getInt('AValue'))。

public function add()
{
    $AValue = JRequest::getInt('AValue');
    if($AValue == null)
    {
        $AValue = 2012;
    }
    parent::add();
}

我试图获取模型并为其赋值,但getModel()方法返回的对象与最终视图中使用的对象不同。

任何想法如何将价值提供给新物品的表格?

由于

2 个答案:

答案 0 :(得分:0)

情况: 在足球赛场上列出一系列赛事。如果我从列表中选择Saison,我将获得另一个包含所有已分配事件的列表。 Saison中的事件列表由以下人员调用:

com_mycomponent /视图= eventlists&安培; saisonid = 2011

这将显示一个列表,其中包含分配给2011年saison的所有活动

现在我想为2011年的saison创建一个新活动。

添加按钮将调用:eventlist.add

MyComponentControllerEventList extends JControllerForm

在添加操作期间,我想以某种方式将saison(2011)传递给表单。

模型包含:

public function getTable($type = 'EventList', $prefix = 'MyComponentTable', $config = array())
{
    return JTable::getInstance($type, $prefix, $config);
}   

public function getForm($data = array(), $loadData = true) 
{       
// Get the form.        
$form = $this->loadForm('com_mycomponent.eventlist', 'eventlist', array('control' => 'jform', 'load_data' => $loadData));
if (empty($form))
{           
    return false;       
}       
return $form;   
}   

protected function loadFormData()   
{       
    // Check the session for previously entered form data.      
    $data = JFactory::getApplication()->getUserState('com_mycomponent.edit.eventlist.data', array());
    if (empty($data)){          
    // generate an empty item
        $data = $this->getItem();
    }       
    return $data;
}

所以它很直接。

视图也是默认的。

public function display($tpl = null) 
{
    // get the Data
    $form = $this->get('Form');
    $item = $this->get('Item');
    // Check for errors.
    if (count($errors = $this->get('Errors'))) 
    {
        JError::raiseError(500, implode('<br />', $errors));
        return false;
    }
    // Assign the Data
    $this->form = $form;
    $this->item = $item;

    // Display the template
    parent::display($tpl);
}

有什么想法吗? 感谢

答案 1 :(得分:0)

你可以试试这个 -

http://docs.joomla.org/API15:JRequest/setVar

public function add()
{
    $AValue = JRequest::getInt('AValue');
    if($AValue == null)
    {
        JRequest::setInt('AValue',date('Y'));
    }
    parent::add();
}