User Rating: 1 / 5

Star ActiveStar InactiveStar InactiveStar InactiveStar Inactive
 

The data can be saved to the database now. Later be made ​​to list the data recorded.

- Start editing files in the folder hello.php controllers.

com_helloworld/controllers/hello.php

 

function display($cachable = false, $urlparams = array()) 
{       
        JRequest::setVar('view','hellos');
        parent::display($cachable, $urlparams); 
}
function add() 
{
        JRequest::setVar('view', 'hello');
        parent::display();

 

- Add files in the folder hellos.php models for retrieving data from the database to do list.

com_helloworld/models/hellos.php

<?php
defined('_JEXEC') or die('Restricted access');
class HelloworldModelHellos extends JModelList 
{    
        public function __construct($config = array()) 
        {
                if(empty($config['filter_fields'])) {
                        $config['filter_fields'] = array(
                                'name', 'name',
                                'detail', 'detail'
                        );
                }
                parent::__construct($config);
        }        
        protected function populateState($ordering = null, $direction = null) 
        {
                $search = $this->getUserStateFromRequest($this->context.'.filter.search', 'filter_search');
                $this->setState('filter.search', $search);
                parent::populateState('id', 'asc');
        }       
        protected function getListQuery() 
        {
                $db = $this->getDbo();
                $query = $db->getQuery(true);
                $query->select('*')->from('#__helloworld_hello');
                if ($this->getState('filter.search') !== '') {                    
                    $token = $db->Quote('%'.$db->escape($this->getState('filter.search')).'%');
                    $searches    = array();
                    $searches[]    = 'name LIKE '.$token;
                    $searches[]    = 'detail LIKE '.$token;
                    $query->where('('.implode(' OR ', $searches).')');
                }              
                $query->order($db->escape($this->getState('list.ordering', 'id')).' '.$db->escape($this->getState('list.direction', 'ASC')));
                return $query;
        }
}
?>

 

Hellos in the created folder, create a file view.html.php code views.

com_helloworld/views/hellos/view.html.php

<?php
defined('_JEXEC') or die('Restricted access');
class HelloworldViewHellos extends JViewLegacy 
{    
    function display($tpl = null) 
    {
            $this->items = $this->get('Items');
            $this->pagination = $this->get('Pagination');
            $this->state = $this->get('State');
            $this->addToolbar();
            parent::display($tpl);
    }   
    function addToolbar() 
    {
            JToolbarHelper::title('Hello List');
            JToolbarHelper::addNew('add');
            JToolbarHelper::editList('edit');
            JToolbarHelper::deleteList('Are you sure?', 'delete');
    }
}
?>

 

Create a folder and create a file default.php tmpl-in code

com_helloworld/views/hellos/tmpl/default.php

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

JHtml::_('behavior.tooltip');
JHtml::_('behavior.multiselect');
JHtml::_('formbehavior.chosen', 'select');

$listOrder = $this->escape($this->state->get('list.ordering'));
$listDirn = $this->escape($this->state->get('list.direction'));

?>
<form action="<?php echo JRoute::_('index.php?option=com_helloworld&c=hello');?>" method="post" name="adminForm" id="adminForm">
    <div id="j-main-container">
        
    <div id="filter-bar" class="btn-toolbar">
        <div class="filter-search btn-group pull-left">
            <input type="text" name="filter_search" id="filter_search" placeholder="Search" value="<?php echo $this->escape($this->state->get('filter.search')); ?>" />
      </div>
        <div class="btn-group pull-left">
            <button type="submit" class="btn tip" title="Search"><i class="icon-search"></i></button>
            <button type="button" class="btn tip" onclick="document.id('filter_search').value='';this.form.submit();"><i class="icon-remove"></i></button>
        </div>
    </div>
    <div class="clearfix"></div>
    
    <table class="table table-striped">
        <thead>
            <tr>
                <th width="1%" class="nowrap center">
                    #
                </th>
                <th width="1%" class="nowrap center">
                  <input type="checkbox" name="checkall-toggle" value="" title="<?php echo JText::_('JGLOBAL_CHECK_ALL'); ?>" onclick="Joomla.checkAll(this)" />
                </th>
                <th class="nowrap center" width="20%">
                    <?php echo JHtml::_('grid.sort', 'Name', 'name', $listDirn, $listOrder); ?>
                </th>
                <th class="nowrap center">
                    <?php echo JHtml::_('grid.sort', 'Detail', 'detail', $listDirn, $listOrder); ?>
                </th>
            </tr>
        </thead>
        
        <tfoot>
            <tr>
                <td colspan="4">
                    <?php echo $this->pagination->getListFooter(); ?>
                </td>
            </tr>
        </tfoot>
        
        <tbody>
            <?php 
            foreach ($this->items as $i => $item) {
                $url = JRoute::_('index.php?option=com_helloworld&c=hello&task=edit&cid='.$item->id);
                ?>
            <tr class="row<?php echo $i % 2; ?>">
                <td class="center"><?php echo $i + 1;?></td>
                <td class="center">
                    <?php echo JHtml::_('grid.id', $i, $item->id); ?>
                </td>
                <td class="left">
                    <a href="/<?php echo $url;?>">
                        <?php echo $item->name;?>
                    </a>
                </td>
                <td class="center">
                    <?php echo $item->detail;?>
                </td>
            </tr>
            <?php
            }
            ?>
        </tbody>
    </table>
    
    <input type="hidden" name="task" value="" />
    <input type="hidden" name="boxchecked" value="0" />
    <input type="hidden" name="c" value="hello" />
    <input type="hidden" name="filter_order" value="<?php echo $listOrder; ?>" />
    <input type="hidden" name="filter_order_Dir" value="<?php echo $listDirn; ?>" />
    <?php echo JHtml::_('form.token'); ?>
</form>

 

Summary File:

com_helloworld/helloworld.php

com_helloworld/controllers/hello.php

com_helloworld/models/hello.php

com_helloworld/models/forms/hello.xml

com_helloworld/views/hello/view.html.php

com_helloworld/views/hello/tmpl/default.php

 

Display:

 

 

 

Chapter 12 - Editing Component Development