Back to top

Autore Topic: [Risolto]Filtri componente joomla 2.5.9  (Letto 4445 volte)

Offline Sory

  • Nuovo arrivato
  • *
  • Post: 43
  • Sesso: Femmina
    • Mostra profilo
[Risolto]Filtri componente joomla 2.5.9
« il: 09 Mag 2013, 15:59:03 »
Salve sono triste xchè non mi riesce ad aggiungere un filtro in una componente che ho realizzato. E in pratica  con published , quindi è presente nel file .xml , nel file default.php ho una cosa cosi:

<select name="filter_regione" class="inputbox" onchange="this.form.submit()">
<option value=""><?php echo JText::_('JOPTION_SELECT_REGIONE');?></option>
<?php echo JHtml::_('select.options', JHtml::_('regione.options','com_immobiliare'),'value', 'text', $this->state->get('filter.regione'),true);?>
</select>

Che sicuramente non va bene , infatti mi da errore "JHtml: :regione non supportato. File non trovato."
Se invece metto:
<select name="filter_regione" class="inputbox" onchange="this.form.submit()">
<option value=""><?php echo JText::_('JOPTION_SELECT_REGIONE');?></option>
<?php echo  $this->state->get('filter.regione')?>
</select> 
mi viene un filtro uguale a q.sto editor dove scrivo in q.sto momento ma la scelta è povera , :( si ripete l'opzione di default "Aspetto carattete" due volte.

Non capisco ! Chi a un consiglio , per piacere
« Ultima modifica: 01 Giu 2013, 16:18:12 da Sory »

mau_develop

  • Visitatore
Re:Filtri componente joomla 2.5.9
« Risposta #1 il: 09 Mag 2013, 18:44:36 »
io sono triste perchè non ho capito nulla di ciò che hai scritto.

Quale guida hai seguito e a che punto non riesci?

Offline Sory

  • Nuovo arrivato
  • *
  • Post: 43
  • Sesso: Femmina
    • Mostra profilo
Re:Filtri componente joomla 2.5.9
« Risposta #2 il: 09 Mag 2013, 21:18:51 »
Ciao M_W_C , in tanto grazie per le belle parole!
Siccome è la prima volte che mi rivolgo ad un forum ,  e poi mi spiego molto male , q.sto è il mio p.to debole , xchè nn sono italiana di origine.
Allora ho fatto una componente ,voglio semplicemente aggiungere un filtro come q.lo di published solo che si chiama regione con tutte le regioni di italia. Quindi quando io vado a selezionare Abruzzo devo avere naturalamente Abruzzo. OK?.Non so come fare q.sto filtro per la mia componente. Nel libro di Joomla 2.5 di Di Mark Dexter non ho trovato niente.Ora ho cercato su internet , nulla. Grazie ciao

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Filtri componente joomla 2.5.9
« Risposta #3 il: 09 Mag 2013, 21:31:07 »
Ciao Sory, non è tanto la lingua forse quanto il concetto che non è chiaro: ricorda sempre che chi sta dall'altra parte del forum non ha il tuo codice davanti ed ha difficoltà a capire cosa frulla nella tua testa ;)
Benvenuta sul forum comunque!

mau_develop

  • Visitatore
Re:Filtri componente joomla 2.5.9
« Risposta #4 il: 09 Mag 2013, 23:11:31 »
Nel libro di Joomla 2.5 di Di Mark Dexter non ho trovato niente
-----------------------------------------------------------------------------------
Se devi fare delle select concatenate (chained) devi costruire due fields custom con le due select.
una delle due deve fare una richiesta ajax la cui risposta valorizza la seconda select
Dexter usa sempre il suo weblink... prova a guardare lo stesso componente nella 3.0 quando nel controller usa saveOrderAjax()... in pratica devi fare + o - la stessa cosa

se devi fare dei filtri sui risultati:
http://docs.joomla.org/How_to_add_custom_filters_to_component_admin
« Ultima modifica: 09 Mag 2013, 23:20:05 da M_W_C »

Offline Sory

  • Nuovo arrivato
  • *
  • Post: 43
  • Sesso: Femmina
    • Mostra profilo
Re:Filtri componente joomla 2.5.9
« Risposta #5 il: 10 Mag 2013, 10:23:41 »
Salve M_W_C, penso proprio di prendere in considerazione il tuo consiglio. Grazie . ::)

Offline Sory

  • Nuovo arrivato
  • *
  • Post: 43
  • Sesso: Femmina
    • Mostra profilo
Re:Filtri componente joomla 2.5.9
« Risposta #6 il: 10 Mag 2013, 22:12:46 »
Ciao M_W_C , ascolta ho iniziato a fare un filtro semplice, in pratica mi deve selezionare una regione da 18 regioni che ha l'Italia. Ho fatto un fields custom , chiamato regione.php.

Codice: [Seleziona]
<?php
defined
('_JEXEC') or 
die;

jimport('joomla.html.html');
jimport('joomla.form.formfield');
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
 

class 
JFormFieldImmobiliareRegione extends  JFormFieldList
{
    
 
   protected 
$type 
'ImmobiliareRegione';

        public function 
getOptions()
        {
        
        
$options = array();
        
        
$db     JFactory::getDbo();
  
              
$query  
$db->getQuery(true);
              
  
$query->select('a.id As value, a.regione  As text');
  
              
$query->from('#__indice AS 
a'
);
                
$query->order('a.regione');
            
    
$query->where('published = 1');
        
        
              
  
// Get the options.
              
  
$db->setQuery($query);
 
          
      
$options $db->loadObjectList();
 
  
              
// Check for a database 
error.
                if 
(
$db->getErrorNum()) {
              
         
JError::raiseWarning(500
$db->getErrorMsg());
              
  }
              return 
$options;
        }
    
 }
-----------------------------------------------------------------------------------------------------------------------------
Nella 
cartella views 
file Immobili.php ho agiunto il filtro e ho modificato il 
metodo _costruct
() in q.sto modo:

class 
ImmobiliareModelImmobili extends 
JModelList
{  
   protected 
$searchInFields 
array(
'text','a.regione');
   
   public 
function 
__construct($config = array())
   {     

      
        
 
$config['filter_fields']=array_merge($this->searchInFields,array('a.regione','a.id','cod'));
      
parent::__construct($config);
   }
   
    
function 
populateState($ordering 'a.cod'$direction 
'asc')
   {
      
// 
Initialise variables.
      
$app 
JFactory::getApplication('administrator');
   
      
$value 
$app->getUserStateFromRequest($this->context.'.filter.search'
'filter_search');
      
$this->setState('filter.search'
$value);
   
   
      
$value 
$app->getUserStateFromRequest($this->context.'.filter.access'
'filter_access');
      
$this->setState('filter.access'
$value);
   
   
      
$value 
$app->getUserStateFromRequest($this->context.'.filter.published'
'filter_published');
      
$this->setState('filter.published'
$value);
      
       
$regione 
$this->getUserStateFromRequest($this->context.'.filter.regione'
'filter_regione''''string');
            
    
$this->setState('filter.regione'
$regione);
   
      
parent::populateState($ordering
$direction);
   }
   
   protected 
function 
getListQuery()[/b]
   {
      
$db 
$this->getDbo();
      
$query 
$db->getQuery(true);
      
$query->select(
            
$this->getState(
                  
'list.select',
                  
'a.id, 
a.cod,a.regione,......'
));
      
$query->from('#__indice 
AS a'
);
   

      
// 
Filter by search in title
      $search 

$this->getState('filter.search');
      if 
(!empty(
$search)) {
         if 
(
stripos($search'id:') === 0
{
            
$query->where('a.id 
= '
.(int) substr($search
3));
         } else 
{
            
$search 
$db->Quote('%'.$db->getEscaped($search
true).'%');
            
$query->where('(a.cod 
LIKE '
.$search.' OR a.alias LIKE 
'
.$search.')');
         }
      }
   
      if 
(
$access $this->getState('filter.access')) 
{
         
$query->where('a.access 
= ' 
. (int) 
$access);
      }
   
   
      
// 
Filter regione
      $regione

$db->escape($this->getState('filter.regione'));
      if 
(!empty(
$regione)) {
       
$query->where('a.regione='
$regione);
      }
      
      
// 
Filter by published state
      $published 

$this->getState('filter.published');
      if 
(
is_numeric($published)) 
{
         
$query->where('a.published 
= ' 
. (int) $published);
      } else if 
(
$published === ''
{
         
$query->where('(a.published 
= 0 OR a.published = 
1)'
);
      }
   
   
      
//Add 
the list ordering clause.
      
$orderCol 
$this->state->get('list.ordering');
      
$orderDirn 

$this->state->get('list.direction');
      if 
(
$orderCol == 'a.ordering' || $orderCol == 'id'
{
         
$orderCol 'cod 
'
.$orderDirn.', 
a.ordering'
;
      }
      
$query->order($db->getEscaped($orderCol.
'
.$orderDirn));
      return 
$query;
   }
   
   function 
getStoreId($id 
'')
   {
      
// Compile the 
store id.
      
$id .= 
':'.$this->getState('filter.search');
      
$id 
.= 
':'.$this->getState('filter.access');
      
$id 
.= 
':'.$this->getState('filter.published');
      
$id 
.= 
':'.$this->getState('filter.regione');
      return 
parent::getStoreId($id);
   }
   
}
----------------------------------------------------------
Nel 
tmpl 
/ default.php ho messo il filtro.regione:
<
select 
name
="filter_regione" class="inputbox" 
onchange="this.form.submit()">
  <
option value=""><?php echo 
JText::_('JOPTION_SELECT_REGIONE');?>
</option>
 <?php echo 
JHtml::_('select.options'$regioneOptions'value''text'
$this->state->get('filter.regione'));?>

 
 </select>
Ora io a q.sto p.to ho il mio filtro con le regioni ma non mi seleziona nulla.Quando vado a seleziona una regione, mi dovrebbe dare solo immobili da quella regione, invece spariscono tutti.Dove ho sbagliato?Cosa non capisco?e pensa volevo fare delle select concatenate... :-\ :-\
« Ultima modifica: 11 Mag 2013, 09:14:37 da tomtomeight »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Filtri componente joomla 2.5.9
« Risposta #7 il: 11 Mag 2013, 09:17:58 »
Ciao
Cortesemente ai fini della comprensione quando devi postare codice utilizza il tag # ed anche evita di scrivere in stile sms, qui non ci sono limiti ai caratteri.  :) .
Ah forse ti sei dimenticata di 2 regioni, ne sono 20 ma forse non sono importanti nella tua ricerca. :)

Offline Sory

  • Nuovo arrivato
  • *
  • Post: 43
  • Sesso: Femmina
    • Mostra profilo
Re:Filtri componente joomla 2.5.9
« Risposta #8 il: 11 Mag 2013, 20:48:35 »
Giusto, tomtomeight. Grazie, sei un amico! :o

mau_develop

  • Visitatore

Offline Sory

  • Nuovo arrivato
  • *
  • Post: 43
  • Sesso: Femmina
    • Mostra profilo
Re:Filtri componente joomla 2.5.9
« Risposta #10 il: 13 Mag 2013, 12:50:19 »
 Grazie tanto . Sono riuscita ad mettere i filtri ora devo ragionare per farli funzionare. Ciao M_V_C

 

 



Web Design Bolzano Kreatif