Hallo wejo,
hier mal die wichtigsten Punkte für die Filterfunktion:
Textfeld in view.html.php erstellen
PHP-Code:
<?php
$site = &JFactory::getApplication(); // global $mainframe;
$search = $site->getUserStateFromRequest( $option.'search', 'search', '', 'string' );
$search = JString::strtolower( $search );
$lists['search']= $search; // Textfeld
$this->assignRef('lists', $lists); // an Template übergeben
?>
Die Ausgabe erfolgt dann in der default.php
HTML-Code:
<table>
<tr>
<td align="left" width="100%">
<?php echo JText::_( 'Filter' ); ?>:
<input type="text" name="search" id="search" value="<?php echo $this->lists['search'];?>" class="text_area" onchange="document.adminForm.submit();" />
<button onclick="this.form.submit();"><?php echo JText::_( 'Go' ); ?></button>
<button onclick="document.getElementById('search').value='';this.form.submit();"><?php echo JText::_( 'Reset' ); ?></button>
</td>
</tr>
</table>
Verarbeiten der Daten in deinmodel.php in der function _buildContentWhere()
Beispiel in der /administrator/components/com_weblinks/models/weblinks.php
PHP-Code:
<?php
$site = &JFactory::getApplication(); // global $mainframe;
$search = $site->getUserStateFromRequest( $option.'search', 'search', '', 'string' );
$search = JString::strtolower( $search );
if ($search) :
$where[] = 'LOWER(a.title) LIKE '.$this->_db->Quote('%'.$search.'%');
endif;
?>
$where[] = 'LOWER(a.
title) LIKE '.$this->_db->Quote('%'.$search.'%');
Der grüne Wert ist das Feld der DB-Tabelle welches für den Filter durchsucht wird.
Wenn Du dich an die bereits genannte Komponente 'com_weblinks' hälst solltest Du bei Umsetzung keine Probleme haben.
Lesezeichen