Back to top

Autore Topic: ChronoConnectivity. Infiniti modi per vedere e gestire i contenuti di Joomla!  (Letto 52551 volte)

Offline sapand

  • Nuovo arrivato
  • *
  • Post: 31
    • Mostra profilo
Quindi dici di sostituire la riga:
echo ""; con echo "where `id` = '0';"; ???

Ad ogni modo io ho studiato il tuo codice (di seguito), e mi sembra che le due istruzione dell'elseif non verranno mai eseguite, giusto? Provo a mettere dei commenti, in quelle che non ci sono non so bene il significato, magari faresti un favore a tutti se aggiungi tu un commento...
Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('title','introtext','fulltext');// creo un array con questi valori (sono campi della tabella) 
 
$cerca = array(); //inizializzo un array
 
foreach ( $search_array as $search ) {  // assegno con un ciclo for alla variabile $search i 3 valori di su
 
$value JRequest::getVar($search'' 'post');  // in questa variabile vanno i contenuti da noi inseriti nei campi di ricerca
 
if ( $value ) {  
 
$cerca[] = " `$search` LIKE '%$value%' ";  // in pratica avremo: title LIKE '...' ; introtext LIKE '...' e cosi via
 
}
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {  // questo è vero quando tutti i campi sono vuoti ed effettuo una ricerca io, cliccando sul bottone trova
 
$session->set('cerca','0','ricerca');  //ricerca.cerca=0
 
JRequest::setVar('limitstart',0,'Get'); /// ????
 
}

 if ( !empty(
$cerca) ){  // questo è vero quando ci sono dei dati inseriti da ricercare   
 
echo " WHERE ".implode(' AND '$cerca);   // ??
 
$session->set('cerca',$cerca,'ricerca');   // ??       
 
}

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))  // la prima condizione è vera la prima volta (non si è ancora premuto trova) mentre la seconda non sarà mai vera...
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
" WHERE ".implode(' AND '$cerca);
 }
 else
 {
 echo 
"";   // nessuna where (questo sarà verificato all'inizio)
 
}
?>


« Ultima modifica: 13 Dic 2009, 17:40:47 da sapand »

Offline vales

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Quando inserisci del codice usa il tasto cancelletto. Diventa più leggibile.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline sapand

  • Nuovo arrivato
  • *
  • Post: 31
    • Mostra profilo
si si mi dimentico sempre nella fretta

Offline vales

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Ecco la descrizione del codice in aggiunta a quella che hai già fatto. Le if lavorano tutte guai se non lavorassero. C'è voluto un mese per mettere a punto tutto!

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');/*apro una sessione e
 la chiamo 'ricerca' */
 
$search_array = array('title','introtext','fulltext'); /*creo un array
 con questi valori (sono campi della tabella) */
 
$cerca = array(); //inizializzo un array
 
foreach ( $search_array as $search ) {  /* assegno con un ciclo 
for alla variabile $search sui 3 valori dei campi di ricerca */
 
$value JRequest::getVar($search'' 'post');  /* estrae il valore
 di un campo di  ricerca. Il ciclo agirà su tutti i campi. */
 
if ( $value ) {  /* se il valore esiste crea il contenuto dell'array 
$cerca */
 
$cerca[] = " `$search` LIKE '%$value%' ";  /* ogni array contiene 
una condizione della ricerca. L'uso di LIKE consente di eseguire la 
ricerca per il valore contenuto nel campo della tabella */
 
}
 }
 
 if(empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")){  /*questo è
 vero quando tutti i campi sono vuoti ed avvio unaricerca con campi 
vuoti cliccando sul bottone trova */
 
$session->set('cerca','0','ricerca');  /*resetto la sessione della 
ricerca a 0 */
 
JRequest::setVar('limitstart',0,'Get'); /* forzo la visualizzazione alla 
prima pagina della navigazione */
 
}

 if ( !empty(
$cerca) ){  /* questo è vero quando ci sono dei dati 
inseriti da ricercare   */
 
echo " WHERE ".implode(' AND '$cerca);   /* scrivo tutto l'array 
$cerca e creo la condizione di ricerca. */
 
$session->set('cerca',$cerca,'ricerca');   /* memorizzo nella 
sessione l'array $cerca che userò quando navigo fra le pagine e
voglio conservare i criteri della ricerca precedentemente inviati. */
 
}

 elseif((
JRequest::getVar('submit','no','POST')<>"Trova") and($session->get('cerca',0,'ricerca')<>0))  /* questa condizione 
serve a stabilire quando navigo fra le pagine, cioè non ho usato il 
tasto trova ed esiste già una ricerca memorizzata nella sessione */
{
 
$cerca=$session->get('cerca',0,'ricerca');/*carico la precedente
 ricerca memorizzata nella sessione */
 
echo " WHERE ".implode(' AND '$cerca);/* scrive la condizione 
della ricerca */
 
}
 else
 {
 echo 
"";   /* nessuna where (questo sarà verificato all'inizio) e in 
caso di ricerca con campi nulli */
 
}
?>
« Ultima modifica: 13 Dic 2009, 18:16:21 da vales »
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline sapand

  • Nuovo arrivato
  • *
  • Post: 31
    • Mostra profilo
Secondo me è imperfetto quello che dici della elseif, perchè quando non ho usato il tasto trova ed esiste già una ricerca memorizzata nella sessione verifica il secondo if e non entra nell'elseif. Mi sbaglio?

Il codice che mi hai dato l'ho cambiato in:
Codice: [Seleziona]
else
 {
  $var=0;
  echo "WHERE cf_id = $var";
 }
perchè altrimenti non andava.

Mi spieghi meglio questa istruzione?
Codice: [Seleziona]
JRequest::setVar('limitstart',0,'Get'); /* forzo la visualizzazione alla
prima pagina della navigazione */

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
vales,

prima di tutto complimenti per la segnalazione di questo componente (che non conoscevo) e per la chiara descrizione!

Spesso ho avuto la necessità di creare form di ricerca anche su tabelle "esterne" (archivi da me creati).

Vorrei chiederti un consiglio:
ho impostato, secondo le tue indicazioni, una ricerca che mi da come risultato una tabella con una parte dei campi disponibili.
Vorrei che, selezionando la voce "Dettagli", mi apra una nuova pagina con una scheda con tutti i campi disponibile di quel record.
Spero di esseremi spiegato...

Puoi darmi qualche suggerimento su come procedere ...

Grazie

Offline vales

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Ciao cdf,

la guida in discussione è un caso particolare che definisce la funzione di ricerca  di una precedente guida che trovi qui

http://www.joomla.it/articoli-della-community/3796-chronofrms-e-chronoconnectivity-lunione-fa-la-forza.html

li ci sono le istruzioni per aprire un form che può contenere tutti i campi del record della tabella per modifiche ed anche per nuovi inserimenti.

Non dovresti trovare particolari difficoltà.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline cdf

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
Ciao e grazie per la risposta.
Avevo visto anche quel tuo articolo (veramente "prezioso"!).

Ma la mia esigenza attuale e esclusivamente di far vedere agli utenti un archivio prima con i risultati su una tabella (solo alcuni campi principali: es. Titolo, autore, fonte, ...). Poi dare la possibilità all'utente, selezionando la voce "dettagli", di vedere tutte le voci di quel record (Titolo, autore, fonte, abstract, lingua, anno, ecc.).
In questo caso non mi interessa che l'utente modifichi, inserisca o altro.

Grazie tanto per la tua disponibilità.

Offline nun84

  • Esploratore
  • **
  • Post: 61
    • Mostra profilo
Giusto, interessante questa idea... provo a pensarci un pò

Offline vales

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Ciao e grazie per la risposta.
Avevo visto anche quel tuo articolo (veramente "prezioso"!).

Ma la mia esigenza attuale e esclusivamente di far vedere agli utenti un archivio prima con i risultati su una tabella (solo alcuni campi principali: es. Titolo, autore, fonte, ...). Poi dare la possibilità all'utente, selezionando la voce "dettagli", di vedere tutte le voci di quel record (Titolo, autore, fonte, abstract, lingua, anno, ecc.).
In questo caso non mi interessa che l'utente modifichi, inserisca o altro.

Grazie tanto per la tua disponibilità.

Puoi utilizzare un form senza il campo submit e quindi serve solo per visualizzazione ed in connectivity nomini il link al form come "visualizza" anzichè "modifica" e dovresti ottenere lo scopo.
Il filtro per gli utenti si può inserire senza troppi problemi.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline nun84

  • Esploratore
  • **
  • Post: 61
    • Mostra profilo
Se non ho capito male tu vorresti una tabelle con i seguenti campi:
TitoloAutoreDettagli
........Link per vedere tutti i dettagli
........Link per vedere tutti i dettagli
........Link per vedere tutti i dettagli

Anche io avrei bisogno sul sito che sto preparando di perfezionare i risultati
« Ultima modifica: 18 Dic 2009, 16:09:16 da nun84 »

Offline vales

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Esattamente, proprio quello.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline nun84

  • Esploratore
  • **
  • Post: 61
    • Mostra profilo
E come fare? Le tue guide le ho studiate bene e sono ottime ma non trattano questo mi pare.

Offline vales

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
La prima guida parla proprio di quello. Mostra le visualizzazioni di record di una tabella con i link per la modifica e l'inserimento dei record. (Nell'esempio sul mio sito gli ho disabilitati per evitare lo spamm che arrivava).

Il link di modifica che nel tuo caso chiamerai "visualizza" e userà un form sterilizzato (senza submit) realizzerà il risultato voluto.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline nun84

  • Esploratore
  • **
  • Post: 61
    • Mostra profilo
Credo di aver compreso, ti riferirò ad ogni modo.

Offline nun84

  • Esploratore
  • **
  • Post: 61
    • Mostra profilo
Sono appena riuscito a fare quanto dicevi, ho solo un problemino, mi stampa l'header per ogni record che ho come risultato della ricerca, cioè:
TitoloAutoreDettagli
......LINK

TitoloAutoreDettagli
......LINK
come posso cambiare il codice html?

Offline vales

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Dove hai messo questo:

Citazione
TitoloAutoreDettagli

Nel body o nell'header della connectivity ? Deve andare nell' header.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline nun84

  • Esploratore
  • **
  • Post: 61
    • Mostra profilo
Avevo risolto utilizzando una variabile e un if, ma effettivamente è giusto come dici tu. Grazie

Offline nun84

  • Esploratore
  • **
  • Post: 61
    • Mostra profilo
Come posso fare per mostrare il link presente in Edit Link Code o nei campo delete o new di un colore particolare? posso utilizzare a href? 

Offline vales

  • Global Moderator
  • Instancabile
  • ********
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
No, href direi di no, perchè il link lo crea Connectivity in modo automatico su tutto quello che inseriamo li. Nell'articolo io avevo messo un'immagine.

Potresti inserire del testo formattato con html e css, quindi font, grandezza testo, colore, ecc. Funzionerà.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

 



Web Design Bolzano Kreatif