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: