Personal tools
Guida galattica per portlettisti: come trovare contenuti a colpo sicuro

Non disperate, c'è una risposta per tutto (e non è 42)

Nov 13, 2013

Guida galattica per portlettisti: come trovare contenuti a colpo sicuro

Ecco un altro consiglio indispensabile (oltre all'immancabile asciugamano) per sopravvivere alla ricerca e inserimento di riferimenti in una portlet

Come ben sapete, ci sono alcune portlet base di Plone (come il navigatore o la portlet collezioni) che permettono di inserire un riferimento a un contenuto del sito mediante il seguente campo:

portlet field

Questi tipi di campi permettono di ricercare i contenuti in due modi:

  • inserendo il titolo dell'elemento voluto
  • navigando tra le cartelle proposte.

I due metodi funzionano bene nel 99% dei casi, in quanto quel campo può essere configurato (nel codice della portlet) per mostrare/far selezionare solamente contenuti di un determinato tipo o partendo da una determinata cartella, ma ci sono alcuni casi limite in cui questi non ci permettono di trovare il contenuto voluto.

Per esempio, a me è capitato di dover creare delle nuove portlet che dovessero permettere ai redattori di inserire il riferimento a un qualunque oggetto nel portale (quindi non solamente una collezione o una determinata cartella), ma essendo un portale pieno di contenuti e documenti, capitava spesso che cercando determinate combinazioni di parole non si riusciva a trovare il contenuto desiderato. Questo per due motivi principali:
  • Il campo mostra solamente i primi 20 risultati e non permette di vedere i successivi. Anche provando a navigare per cartelle, se il contenuto è in una cartella con più di 20 elementi, questo potrebbe non venir visualizzato tra i possibili risultati.
  • La ricerca testuale non esegue una ricerca solo nel titolo ma nell'indice SearchableText, che racchiude i valori di Titolo, Descrizione ed eventuale Testo, quindi spesso ritorna anche risultati indesiderati.

Analizzando meglio il codice, ho scoperto che nel metodo che esegue la ricerca è possibile (senza nessuna personalizzazione particolare) selezionare esattamente il contenuto desiderato utilizzando il parametro "path".

Per esempio, se ci serve linkare il contenuto "Pagina di prova" che si trova in un determinato percorso (cartella-a/cartella-b), basterà scrivere all'interno del campo:

path:cartella-a/cartella-b/pagina-di-prova

Non serve indicare nel percorso l'id del portale, e se il contenuto è stato trovato, vedrete un solo risultato con il titolo e il suo percorso.

Ricerca corretta

Se invece il contenuto non è stato trovato (ad esempio perché il path non era corretto), viene mostrato comunque un ipotetico risultato, ma si riconosce in quanto mostra il path ma non il titolo.

Ricerca sbagliata

Questo è solo un piccolo trucchetto che a volte può tornare utile anche ai semplici redattori dei siti, per semplificarsi la vita.

Addio e grazie di tutti i pesci

comments powered by Disqus