Witam,
Od frontendu bez udziwnień jest ok.
Czyli
model - firmy.php
Kod PHP:
protected function getListQuery() {
// Create a new query object.
$db = JFactory::getDBO();
$query = $db->getQuery(true);
// Select some fields
$query->select('*');
// From the test_firma table
$query->from($db->quoteName('#__test_firma'));
return $query;
}
view.html.php
Kod PHP:
function display($tpl = null) {
// Assign data to the view
JRequest::setVar('limit', JRequest::getVar('limit', 10, '', 'int'));
JRequest::setVar('limitstart', JRequest::getVar('limitstart', 0, '', 'int'));
$pagination = $this->get('Pagination');
$items = $this->get('Items');
// Check for errors.
if (count($errors = $this->get('Errors'))){
JError::raiseError(500, implode('<br />', $errors));
return false;
};
$this->pagination = $pagination;
$this->items = $items;
// Display the view
parent::display($tpl);
}
widok - default.php
Kod PHP:
<?php foreach ($this->items as $item) { ... ?>
<?php }; ?>
<div class="pagination">
<?php echo $this->pagination->getPagesLinks(); ?>
</div>
I to jest ok. Wyświetla listę z paginacją.
Ale dodałem formularz wyszukiwania i dokonałem zmiany w modelu.
W sumie główna zmiana to klauzula WHERE
Kod PHP:
protected function populateState() {
$app = JFactory::getApplication('site');
// Load state from the request.
$szukaj = JRequest::getString('szukaj');
$this->setState('szukaj', $szukaj);
}
protected function getListQuery() {
// Create a new query object.
$db = JFactory::getDBO();
$query = $db->getQuery(true);
// Select some fields
$query->select('*');
// From the test_firma table
$query->from($db->quoteName('#__test_firma'));
$query->where($db->quoteName('nazwa') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('krotkiopis') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('opis') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('nip') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('krs') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('regon') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('pkd') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('telefon') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('fax') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('url') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('email') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('nrzezwolenia') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('wojewodztwo') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('powiat') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('gmina') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('miasto') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('ulica') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%')
. ' OR ' . $db->quoteName('kodpocztowy') . ' LIKE ' . $db->quote('%' . $this->getState('szukaj') . '%'));
return $query;
}
I teraz wyświetla się cała lista bez paginacji.
Nie wiem jak ten temat ugryźć.
Może już ktoś coś podobnego robił i jest w stanie coś podpowiedzieć?
Pozdrawiam,
Łukasz