2

バックエンド リスト ビューから新しいアイテムを作成したい。新しいアイテムには、現在のリスト (実際の年) に応じたデフォルト値を渡したいと思います。

Joomla 2.5でこれを行うにはどうすればよいですか?

add() メソッドを上書きすることで、現在のコントローラーで新しいアイテムの値を ( JRequest::getInt('AValue') によって) コントローラーに渡すことができます。

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

モデルを取得してそれに値を代入しようとしましたが、getModel() メソッドは決定的なビューで使用されたものとは異なるオブジェクトを返しました。

新しいアイテムのフォームに値を取得する方法はありますか?

ありがとう

4

2 に答える 2

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();
}
于 2012-10-12T18:09:16.350 に答える
0

状況: サッカー シーズン中のイベントのリストがあります。リストからセゾンを選択すると、そのセゾンに割り当てられたすべてのイベントを含む別のリストが表示されます。セゾン中のイベントのリストは、次のように呼び出されます。

com_mycomponent/view=eventlists&saisonid=2011

これにより、セゾン 2011 に割り当てられたすべてのイベントのリストが表示されます

では、セゾン 2011 の新しいイベントを作成したいと思います。

追加ボタンが呼び出します: eventlist.add

MyComponentControllerEventList extends JControllerForm

追加操作中にセゾン(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);
}

これについて何か考えはありますか?ありがとう

于 2012-09-27T09:27:41.237 に答える