Back to top

Autore Topic: Ricercare una stringa nel documento.  (Letto 2517 volte)

Offline luX0r.reload

  • Nuovo arrivato
  • *
  • Post: 15
    • Mostra profilo
Ricercare una stringa nel documento.
« il: 17 Gen 2011, 12:31:47 »
Ciao ragazzi,
mi sono avvicinato da poco al design pattern di joomla 1.5 e non riesco a trovare il modo per fare una semplice operazione.

In pratica avrei bisogno di sapere se nella pagina (o meglio ancora nell'area principale che ospita i contenuti) è presente una determinata stringa.

In pratica un modo per farmi restituire il numero di occorrenze di una stringa all'interno del documento.

Grazie

Offline mattialori

  • Appassionato
  • ***
  • Post: 412
    • Mostra profilo
Re:Ricercare una stringa nel documento.
« Risposta #1 il: 17 Gen 2011, 16:26:00 »
Se vuoi contare le parole presenti in una stringa devi usare la funzione di php substr_count, eccoti un esempio

Codice: [Seleziona]
$quante=substr_count($stringa, "Parola");in questo caso la variabile quante conterrà il numero di volte che la parola "Parola" è contenuta in $stringa

Offline luX0r.reload

  • Nuovo arrivato
  • *
  • Post: 15
    • Mostra profilo
Re:Ricercare una stringa nel documento.
« Risposta #2 il: 17 Gen 2011, 16:35:33 »
Se vuoi contare le parole presenti in una stringa devi usare la funzione di php substr_count, eccoti un esempio

Codice: [Seleziona]
$quante=substr_count($stringa, "Parola");in questo caso la variabile quante conterrà il numero di volte che la parola "Parola" è contenuta in $stringa
Si quello lo so... ma la mia $stringa dovrebbe essere il contenuto della pagina corrente, e non so come prelevare il contenuto della pagina corrente. Stavo vedendo l'oggetto JDocument e JDocumentHTML ma non ho trovato un metodo che mi restituisca il documento in formato stringa oppure mi permetta di manipolare il DOM.

E' da stamattina che sto cercando in rete ma non ho trovato ancora niente che mi possa essere utile.

Possibile che non c'è una funzione del genere?  :o


Offline mattialori

  • Appassionato
  • ***
  • Post: 412
    • Mostra profilo
Re:Ricercare una stringa nel documento.
« Risposta #3 il: 17 Gen 2011, 20:40:17 »
se vai in components/com_content/views/article/tmpl/default.php al suo interno trovi
Codice: [Seleziona]
<?php echo $this->article->text?>
Nel file originale dovrebbe essere la riga 125. Questa è la stringa che contiene tutto l'articolo, mentre se vuoi avere la stringa che contiene l'articolo visualizzato in home page il file nel quale cercare la variabile è components/com_content/views/frontpage/tmpl/default_item.php e alla riga 119 (riga più o riga meno):
Codice: [Seleziona]
<?php echo $this->item->text?>

Offline luX0r.reload

  • Nuovo arrivato
  • *
  • Post: 15
    • Mostra profilo
Re:Ricercare una stringa nel documento.
« Risposta #4 il: 18 Gen 2011, 09:22:52 »
se vai in components/com_content/views/article/tmpl/default.php al suo interno trovi
Codice: [Seleziona]
<?php echo $this->article->text?>
Nel file originale dovrebbe essere la riga 125. Questa è la stringa che contiene tutto l'articolo, mentre se vuoi avere la stringa che contiene l'articolo visualizzato in home page il file nel quale cercare la variabile è components/com_content/views/frontpage/tmpl/default_item.php e alla riga 119 (riga più o riga meno):
Codice: [Seleziona]
<?php echo $this->item->text?>
Grazie per la dritta... do un'occhiata all'oggetto $this nel contesto a cosa corrisponde.
Forse però è meglio che spieghi quello che vorrei fare.

Sto modificando il componente/modulo banner di Joomla. Ho già implementato la funzionalità che mi permette di visualizzare i banner in base alla location dell'utente (ricavata dal numero IP) e ora mi servirebbe visualizzare i banner in base al contenuto dell'articolo visualizzato.
In pratica dovrei cercare nell'articolo una determinata stringa, e se presente dovrei filtrare la lista dei banner da visualizzare.

Spero sia una cosa fattibile, altrimenti devo utilizzare una soluzione a mio modo di vedere "sporca", facendo un append alla fine degli url... ma proprio non mi piace.

Offline mattialori

  • Appassionato
  • ***
  • Post: 412
    • Mostra profilo
Re:Ricercare una stringa nel documento.
« Risposta #5 il: 18 Gen 2011, 13:19:43 »
ah ho capito, allora il mio aiuto mi sa che è errato, in quanto quel file si riferisce al componente che visualizza gli articoli e non penso si possa accedere alla variabile che contiene il testo contenuta nei due file che ho citato, provo a cercare se trovo una soluzione

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Ricercare una stringa nel documento.
« Risposta #6 il: 19 Gen 2011, 22:26:45 »
ciao luX0r.reload,
 la questione è un poco spinosa...
i casi sono due:
1. i banner si adattano agli articoli, ovvero dipendono da com_content
2. i banner si adattano al  contenuto della pagina, ovvero funzionano indipendentemente dal componente usato

nel primo caso nel nuovo modulo del banner richiami il router di com_content per ottenere l'id dell'articolo, indi leggi l'articolo e ne effettui il parsing del testo.

nel secondo caso il modulo dovrà scrivere un codice di richiamo dei banner generico con dei place holders (tipo {bannerHolder_XX} ); dopo di che affiderai ad un plugin di tipo system il parsing del documento generato e la sostituzione dei citai place holders.

dato che non sai, al momento dell'esecuzione del codice del modulo se sia già stato fatto il rendering del componente è difficile usare altri metodi.
ad onor del vero ricordo che da qualche parte della documentazione era spiegato l'ordine di rendering dei vari oggetti, ma ove fosse, e che indicasse, proprio non lo ricordo...

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif