I am currently working on a component which will display "events", stored in a database, on a map (filterable by location, category, date etc...). My first step is to display a simple report of the database, in a table. However, I am struggling to populate the html table with the values stored in my sql table. Any ideas where i am going wrong? From what i understand, Joomla requires a model, view, and controller. Here is my code for each:
com_filteredMap/site/models/filteredmap.php
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* FilteredMapList Model
*
* @since 0.0.1
*/
class FilteredMapModelFilteredMap extends JModelList
{
/**
* Method to build an SQL query to load the list data.
*
* @return string An SQL query
*/
protected function getListQuery()
{
// Initialize variables.
$db = JFactory::getDbo();
$query = $db->getQuery(true);
// Create the base select statement.
$query->select('*')
->from($db->quoteName('#__filteredmap'));
return $query;
}
}
com_filteredMap/site/views/filteredmap/view.html.php
<?php
class FilteredMapViewFilteredMap extends JViewLegacy
{
/**
* Display the Filtered map view
*
* @param string $tpl The name of the template file to parse; automatically searches through the template paths.
*
* @return void
*/
function display($tpl = null)
{
// Assign data to the view
$this->item = $this->get('Item');
$this->pagination = $this->get('Pagination');
// Check for errors.
if (count($errors = $this->get('Errors')))
{
JLog::add(implode('<br />', $errors), JLog::WARNING, 'jerror');
return false;
}
// Display the view
parent::display($tpl);
}
}
com_filteredMap/site/controller.php
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* Filtered Map Component Controller
*
* @since 0.0.1
*/
class FilteredMapController extends JControllerLegacy
{
/**
* Proxy for getModel.
*
* @param string $name The model name. Optional.
* @param string $prefix The class prefix. Optional.
* @param array $config Configuration array for model. Optional.
*
* @return object The model.
*
* @since 1.6
*/
public function getModel($name = 'FilteredMap', $prefix = 'FilteredMapModel', $config = array('ignore_request' => true))
{
$model = parent::getModel($name, $prefix, $config);
return $model;
}
}
com_filteredMap/site/views/filteredmap/tmpl/default.php
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
?>
<h1> Filtered Map </h1>
<form method="post" id="frontEndForm" name="frontEndForm">
<table class="table table-striped table-hover">
<thead>
<tr>
<th width="84%">
<?php echo JText::_('Event Sumary') ;?>
</th>
<th width="6%">
<?php echo JText::_('Date'); ?>
</th>
<th width="10%">
<?php echo JText::_('Location'); ?>
</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="5">
<?php //echo $this->pagination->getListFooter(); ?>
</td>
</tr>
</tfoot>
<tbody>
<?php if (!empty($this->items)) : ?>
<?php foreach ($this->items as $i => $row) : ?>
<tr>
<td>
<?php echo $row->title; ?>
</td>
<td>
<?php echo $row->dates; ?>
</td>
<td>
<?php //addlocationhere ?>
</td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</tbody>
</table>
</form>
The above code causes the following to be displayed:
I have worked with Joomla for a while but i am fairly new to programming extensions. Any help/advise would be appreciated.