在Joomla Component 3.0中组合列表视图和搜索表单

时间:2013-09-11 13:27:10

标签: php forms joomla joomla3.0

我试图在我的工作视图中添加搜索表单。它应该是所有可用作业的列表以及过滤掉结果的搜索表单。 searh表单由复选框组成,需要使用数据库数据预先填充。

所以我有很多问题。

  1. 我应该通过使用过滤器来实现这一点,还是我正朝着正确的方向前进?
  2. 我从哪里开始,我尝试在之前的视图中添加用于表单的代码,但我甚至不知道应该继承哪个类。
  3. 自" JModelList"与getListQuery()结合使用。我尝试了几个JForm等和继承的类,但后来我得到以下错误:"警告:在C:\ Users \ Nick \ Documents \ Dropbox \ yourstudent \ Development \ Live \ components中为foreach()提供的参数无效第18行"

    上的\ com_jobs \ views \ jobs \ tmpl \ default.php

    我没有创建表单的任何麻烦,对于对象所需的crud操作有几个很好的例子。但是,当你要么a)将列表视图与表单结合起来,或b)需要表单就像预先填充数据的搜索表单一样。

    我坚持将两个视图结合起来,我甚至无法测试我的表单字段是否正确。 下面是模型作业的片段。你们需要任何其他代码来帮助我吗?

    (这是我的第一个问题,所以请耐心等待,如果需要,我会尝试调整我的问题。)

    代码段

    <?php
    
    /* ------------------------------------------------------------------------
      # jobs.php - jobs Component
      # ------------------------------------------------------------------------
      # author    Breens Nick
      # copyright Copyright (C) 2013. All Rights Reserved
      # license   GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
      # website   www.nick.breens.be
      ------------------------------------------------------------------------- */
    
    // No direct access to this file
    defined('_JEXEC') or die('Restricted access');
    // import the Joomla modellist library
    jimport('joomla.application.component.modellist');
    
    /**
     * Jobs Model
     */
    class JobsModeljobs extends JModelList {
    
        /**
         * Method to build an SQL query to load the list data.
         *
         * @return      string  An SQL query
         */
        protected function getListQuery() {
            // Create a new query object.
            $db = JFactory::getDBO();
            $query = $db->getQuery(true);
            // Select some fields
            $query->select('*');
            $query->from('#__yourstudent_jobs');
    
            return $query;
        }
    }
    
    ?>
    

1 个答案:

答案 0 :(得分:0)

感谢Joomla Coding 3.0子论坛上的forum post,我得到了答案。

有人回复告诉我,我应该在我的案例中使用过滤器,并将我的组件基于文章。然后我搜索了一个很好的教程,然后找到了这个2.5 based tutorial which still applies for 3.0

如果有人有兴趣,我会在下面发布我的代码。 (型号代码保持不变。)