Usando
ChronoConnectivity, seguendo la guida di
Vales ed i consigli di cui sopra, ho abbozzato un modulo di ricerca/filtro per
Eventlist.
Nell'IMMAGINE ALLEGATA potete vedere come appare il modulo.
I campi di ricerca-filtro sono: Titolo, Descrizione, Sede, Tipologia, Provincia, Città, Data inizio, Data fine.
Segue il pulsante Trova (che lancia la query) e il pulsante Reset (che dovrebbe!! resettare tutti i campi).
Le quattro Dropdown prelevano i dati da due distinte tabelle di eventlist (categories e Venues)
Il risultato non è soddisfacente perché
funziona solo in parte e presenta i seguenti problemi:
1) Se si effettua la ricerca su uno solo dei campi (qualsiasi esso sia) la query funziona a dovere e mostra i risultati corretti.
Se invece si effettua la ricerca su due campi non sempre funziona, es.:
- funziona la ricerca associata Titolo + Descrizione;
- non funziona la ricerca associata Tipologia + Città (in quanto in questo caso il valore tipologia viene ignotrato e vengono mostrati tutti gli eventi di quella città indipendentemente dalla tipologia) lo stesso accade quando si associano i campi Provincia + Città
2) Dopo aver lanciato la query le dropdown non si resettano correttamente ma mostrano il valore dell'ultima opzione presente nell'elenco delle dropdown.
3) Il pulsante Reset funziona solo sui campi Titolo-Descrizione-Data inizio e Data fine ma non funziona sulle dropdown.
4) nei campi data occorre inserire la data nel formato Anno/Mese/Giorno.
Non so se il metodo che sto seguendo è idoneo a creare un modulo di ricerca, comunque, posto di seguito il codice affinché qualcuno, se lo ritiene, può suggerire qualche correzione o qualche idea alternativa.
Il codice che segue va inserito in
ChronoConnectivity - General - Connection View Settings - Header:
In WHERE SQL: e in BODY: va inserito il codice indicato da
Vales nell'articolo
...e, ovviamente, occorre aver installato eventlist
<?php
$nome_selected = JRequest::getInt('venue', '', 'post');
$db =& JFactory::getDBO();
$query = "
SELECT `id`, `venue`
FROM `#__eventlist_venues`
ORDER BY `venue`
";
$db->setQuery($query);
$nomes = $db->loadAssocList();
$nome_options = "";
foreach ( $nomes as $v ) {
if ( $nome_selected == $v['venue'] ) {
$selected = "selected='selected'";
} else {
$selected = '';
}
$nome_options .= "<option value='".$v['id']."' $selected >".$v['venue']."</option>";
}
?>
<?php
$nome_selected = JRequest::getInt('catname', '', 'post');
$db =& JFactory::getDBO();
$query = "
SELECT `id`, `catname`
FROM `#__eventlist_categories`
ORDER BY `catname`
";
$db->setQuery($query);
$nomes = $db->loadAssocList();
$nome_options2 = "";
foreach ( $nomes as $v ) {
if ( $nome_selected == $v['catname'] ) {
$selected = "selected='selected'";
} else {
$selected = '';
}
$nome_options2 .= "<option value='".$v['id']."' $selected >".$v['catname']."</option>";
}
?>
<?php
$nome_selected = JRequest::getInt('state', '', 'post');
$db =& JFactory::getDBO();
$query = "
SELECT `id`, `state`
FROM `#__eventlist_venues`
ORDER BY `state`
";
$db->setQuery($query);
$nomes = $db->loadAssocList();
$nome_options3 = "";
foreach ( $nomes as $v ) {
if ( $nome_selected == $v['state'] ) {
$selected = "selected='selected'";
} else {
$selected = '';
}
$nome_options3 .= "<option value='".$v['id']."' $selected >".$v['state']."</option>";
}
?>
<?php
$nome_selected = JRequest::getInt('city', '', 'post');
$db =& JFactory::getDBO();
$query = "
SELECT `id`, `city`
FROM `#__eventlist_venues`
ORDER BY `city`
";
$db->setQuery($query);
$nomes = $db->loadAssocList();
$nome_options4 = "";
foreach ( $nomes as $v ) {
if ( $nome_selected == $v['city'] ) {
$selected = "selected='selected'";
} else {
$selected = '';
}
$nome_options4 .= "<option value='".$v['id']."' $selected >".$v['city']."</option>";
}
?>
<div style="float:left; width: 100%; ">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"><img src="bordo_superiore.gif"></td>
</tr>
<tr bgcolor="#003366">
<TD WIDTH=15%><b>Titolo</b>: </td>
<TD WIDTH=35%><input type="text" name="title" /></td>
<TD WIDTH=15%><b>Descrizione</b>: </td>
<TD WIDTH=35%><input type="text" name="datdescription" /></td>
</tr>
<tr bgcolor="#003366">
<TD WIDTH=15%><b>Sede</b>: </td>
<TD WIDTH=35%><select name="locid" class="form">
<option value="">Seleziona la Sede</option>
<?php echo $nome_options; ?>
</select></td>
<TD WIDTH=15%><b>Tipologia</b>: </td>
<TD WIDTH=35%><select name="catsid" class="form">
<option value="0">Seleziona la tipologia</option>
<?php echo $nome_options2; ?>
</select></td>
</tr>
<tr bgcolor="#003366">
<TD WIDTH=15%><b>Provincia</b>: </td>
<TD WIDTH=35%><select name="locid" class="form">
<option value="">Seleziona la Provincia</option>
<?php echo $nome_options3; ?>
</select></td>
<TD WIDTH=15%><b>Città</b>: </td>
<TD WIDTH=35%><select name="catsid" class="form">
<option value="0">Seleziona la Città</option>
<?php echo $nome_options4; ?>
</select></td>
</tr>
<tr>
<TD WIDTH=15%><b>data inizio</b>: </td>
<TD WIDTH=35%><input type="text" name="dates" /></td>
<TD WIDTH=15%><b>data fine</b>: </td>
<TD WIDTH=35%><input type="text" name="enddates" /></td>
</tr>
<tr>
<td colspan="2"><img src="bordo_inferiore.gif"></td>
</tr>
</table>
<p style="text-align:center;">
<input type="submit" value="Trova" name="submit" style='width:80px;
color:#cccccc; background-color:#135cae; cursor:pointer;' />
<input type="reset" name="reset" value="Reset" style='width:80px;
color:#cccccc; background-color:#135cae; cursor:pointer;' /></p>
<p style="text-align:center;"><b>Per resettare la ricerca lanciarla con campi vuoti</b></p>
</div>
<br/>
<br/>
[allegato vecchio più di un anno eliminato automaticamente]