在Joomla 1.5自定义组件中选择第二个

时间:2012-04-16 00:42:23

标签: joomla joomla1.5 joomla-extensions

我开发了自定义组件。最初,Joomla 1.5具有数据数组,可以将数据从表发送到模板。

class MyComponentClass extends JModel{

    /**
     * MyComponentClass data array for tmp store
     *
     * @var array
     */
    private $_data;
    /**
     * MyComponentClass data array for tmp store
     *
     * @var array
     */
    private $_mine;

    /**
     * Gets the data
     * @return mixed The data to be displayed to the user
     */
    public function getData(){
        if (empty( $this->_data )){
            $id = JRequest::getInt('id',  0);
            $db =& JFactory::getDBO();
            $query = "SELECT * FROM `#__tourinfo` where `id` = {$id}";
            $db->setQuery( $query );
            $this->_data = $db->loadObject();
        }
        return $this->_data;
    }

    public function getMine(){
        if (empty( $this->_mine )){
            $recordSet =& $this->getTable('mytable');
            $db =& JFactory::getDBO();
            $query = 'SELECT * FROM `#__mytable` WHERE ' . (isset($recordSet->published)?'`published`':'1') . ' = 1 ORDER BY `id` ';
            $this->_mine = $this->_getList( $query, $this->getState('limitstart'), $this->getState('limit') );
        }   
        return $this->_mine;
    }   

}

根据文档我只看到$ _data数组,它将信息发送到模板。

此模型发送单个记录视图的数据。

在其他表中,我有一些与此记录关联的数据。

当我尝试将数据接收到模板中时,我遇到一个错误,即没有数据提供给foreach。

可能有人知道这种情况的解决方案。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您在yourcomponent / view / yourview / view.html.php文件中分配模板所需的任何数据。

请参阅:

http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1

以下是view.html.php文件中典型方法的示例:

function listItems()
{
    $model = &$this->getModel('yourmodel');
    $items = $model->getItems();
    if ($items) {
            $this->assignRef( 'items', $items );
    }

    parent::display($tpl);
}

注意上面代码中的分配:

$ this-> assignRef('items',$ items);

然后,您可以在模板中调用$ this->项目,以便与foreach一起进行。

希望这有帮助。