Autore Topic: Paginazione vuota  (Letto 1377 volte)

Offline mpigio

  • Appassionato
  • ***
  • Post: 235
  • Sesso: Maschio
    • Mostra profilo
Paginazione vuota
« il: 28 Dic 2011, 10:14:29 »
Ciao a tutti, ho un problema con un componente che ho sviluppato, nelle liste che si creano la paginazione funziona alla perfezione sul sito di sviluppo mentre in produzione vedo la prima pagina dopodichè la lista diventa vuota.

Il numero delle pagine è corretto ma non è possibile vederne il contenuto.

Oltretutto dopo aver cliccato su una pagina dopo la prima tutto rimane vuoto anche tornando in cima alla lista.

Lo stesso accade usando i filtri di ricerca.

Mi viene da pensare che un altro componente installato sul sito di produzione faccia casini, ma accade soltanto con il mio componente... come posso trovare e risolvere l'errore?

Grazie a tutti

Offline jonxduo

  • Appassionato
  • ***
  • Post: 430
    • Mostra profilo
Re:Paginazione vuota
« Risposta #1 il: 28 Dic 2011, 12:08:20 »
dovresti essere più specifico...
postare un pò di codice...
non possiamo aiutarti così...

Offline mpigio

  • Appassionato
  • ***
  • Post: 235
  • Sesso: Maschio
    • Mostra profilo
Re:Paginazione vuota
« Risposta #2 il: 28 Dic 2011, 12:25:37 »
Posto un po' di codice ed ho scoperto che il problema è dovuto ai filtri di ricerca, nel senso che la paginazione funziona se disabilito i due filtri, campo di testo libero e "categoria/area".

MODEL
Codice: [Seleziona]
function _buildWhere(){
        $app =& JFactory::getApplication();
        $db    =& JFactory::getDBO();
       
        $search = JString::strtolower($app->getUserStateFromRequest('com_miocom.sectors.search' ,'search', '', 'string'));       
        $area_search = JString::strtolower($app->getUserStateFromRequest('com_miocom.sectors.area_search' ,'area_search', '', 'int'));
       
        $where  = array();

        if ($search)
            $where[] = ' LOWER (name) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false );
           
        if($area_search){
            $where[] = ' area_id = '.$area_search;}
                       
        if (count($where))     $where = ' AND '.implode(' AND ', $where);
        else                 $where = '';

        $this->_where .= $where;
        return $where;
    }

qui se uso la paginazione senza nessun filtro, la query diventa:

SELECT * FROM #__miocom_sectors WHERE area_id =  ORDER BY `name` DESC

viene passato il filtro if($area_search){ anche se la stringa è vuota

Se invece inserisco una ricerca x testo libero ho:
SELECT * FROM #__miocom_sectors WHERE LOWER (name) LIKE '%zamba%' AND  area_id =  ORDER BY `name` DESC

sulla view ho:
Codice: [Seleziona]
$app =& JFactory::getApplication();   
       
        $search    = $app->getUserStateFromRequest("com_miocom.sectors.search",'search','','string');
        $search    = JString::strtolower( $search );
        $lists['search']= $search;
       
        $noopt[] = JHTML::_('select.option', '0', ' - '.JText::_('Select').' - ');
        $areas = array_merge($noopt, imiocomHelper::getAreasForSearch());
        $area_search      = $app->getUserStateFromRequest('com_miocom.sectors.area_search', 'area_search','', 'integer');
        $available_areas = JHTML::_('select.genericlist', $areas, 'area_search', 'class="inputbox" onchange="document.adminForm.submit();"', 'value', 'text', $area_search);
        $lists['available_areas']= $available_areas;

nel template:
Codice: [Seleziona]
<td nowrap="nowrap">
                <?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.getElementById('filter_state').value='';this.form.submit();"><?php echo JText::_'Reset' ); ?></button>
            </td>
            <td nowrap="nowrap" style="text-align:right;">
                <?php echo JText::_('Area').'&nbsp;'.$this->lists['available_areas'];?>
            </td>


Grazie ancora

PS: I settori si trovano all'interno delle aree, quindi posso filtrare i settori x mostrare quelli di una singola area

« Ultima modifica: 28 Dic 2011, 12:27:49 da mpigio »

mau_develop

  • Visitatore
Re:Paginazione vuota
« Risposta #3 il: 30 Dic 2011, 10:48:11 »
scusa ma dov'è la paginazione nel tuo script? ..il limit...
se dall'userstatefromrequest prendi il search vedi il search

..guarda verso la fine quando parla di costruire la pagination da una query:
http://docs.joomla.org/Using_JPagination_in_your_component

M.

Offline mpigio

  • Appassionato
  • ***
  • Post: 235
  • Sesso: Maschio
    • Mostra profilo
Re:Paginazione vuota
« Risposta #4 il: 30 Dic 2011, 11:42:55 »
C'è l'ho nel costruttore:
Codice: [Seleziona]
function __construct()    {
        parent::__construct();

        global $mainframe, $option;

        $limit    = $mainframe->getUserStateFromRequest('global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int');
        $limitstart = $mainframe->getUserStateFromRequest($option.'limitstart', 'limitstart', 0, 'int');
       
        $limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);
       
        $this->setState('limit', $limit);
        $this->setState('limitstart', $limitstart);
    }

Non ho riportato tutto perchè penso che l'errore sia nella funzione _buildWhere
Considera che questo codice funziona alla perfezione sul server di sviluppo.

L'unica differenza è che in produzione si entra nei due if
if ($search)
e
if($area_search){
anche se non ho impostato nessuna ricerca o filtro

Grazie

Offline mpigio

  • Appassionato
  • ***
  • Post: 235
  • Sesso: Maschio
    • Mostra profilo
Re:Paginazione vuota
« Risposta #5 il: 09 Gen 2012, 09:34:15 »
Visto che il problema è solo sul server di produzione potrebbe essere causato dal fatto che il server sia windows riadattato x lavorare in PHP?

Nessuno può aiutarmi?
« Ultima modifica: 09 Gen 2012, 10:27:09 da mpigio »

 

Host

Torna su