Wyszukiwanie, paginacja
Wyniki 1 do 3 z 3

Temat: Wyszukiwanie, paginacja

  1. #1
    Bywalec Craft awatar
    Dołączył
    17-07-2007
    Skąd
    Warszawa
    Wpisy
    119
    Punkty
    20

    Domyślny Wyszukiwanie, paginacja

    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(500implode('<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

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2

  4. #3
    Bywalec Craft awatar
    Dołączył
    17-07-2007
    Skąd
    Warszawa
    Wpisy
    119
    Punkty
    20

    Domyślny

    A właśnie, że nie
    Pisałem jeszcze w taki sposób
    edycja modelu:

    Kod PHP:
    protected function populateState() {        

      
    $app JFactory::getApplication('site');
       
    $config JFactory::getConfig();
      
    // Load state from the request.    

      // Get the pagination request variables  
       
    $this->setState('limit'$app->getUserStateFromRequest('com_test.limit''limit'$config->get('list_limit'), 'uint'));
       
    $this->setState('limitstart'$app->input->get('limitstart'0'uint'));    

      
    $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') . '%'));                

       
    $db->setQuery($query,$this->getState('limit'),$this->getState('limitstart'));  
       return 
    $query;    

    I w tym przypadku faktycznie lista miała ograniczoną liczbę elementów ale nadal nie było paginacji. I nie można przejść dalej, do kolejnych wyników.

Podobne tematy

  1. Paginacja w komponencie
    przez emzetka na forum Programowanie pod Joomla!
    Odpowiedzi: 10
    Ostatni post/autor: 07-07-2011, 13:05
  2. Paginacja
    przez Mati_ na forum Rozszerzenia - problemy z obsługą, zarządzaniem
    Odpowiedzi: 10
    Ostatni post/autor: 07-04-2011, 15:53
  3. Paginacja
    przez norbertson na forum Szablony, wygląd, formatowanie
    Odpowiedzi: 8
    Ostatni post/autor: 23-01-2011, 19:12
  4. Problem z paginacją
    przez goral88 na forum Administracja - ogólne
    Odpowiedzi: 0
    Ostatni post/autor: 01-05-2010, 14:00
  5. paginacja
    przez grzegorz21 na forum Administracja - ogólne
    Odpowiedzi: 3
    Ostatni post/autor: 14-12-2009, 06:52

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •