Limitare la ricerca a certe sezioni di un sito
medio
Supponiamo di avere un sito Plone come sistema di intranet con numerose cartelle sotto la root principale che rappresentano differenti dipartimenti, progetti, ecc. Vogliamo permettere agli utenti di ricercare sia nell'intero sito, sia in una particolare sezione (per esempio, se si cerca il modulo più recente per il resoconto dei rimborsi, probabilmente non si vuole avere come risultato anche documenti riguardanti le ultime assemblee).
Questo how-to mostra come personalizzare il template portal_search, per fornire agli utenti la scelta di effettuare una ricerca solo nella cartella corrente e nelle sue sottosezioni:
-Andare nella ZMI e personalizzare plone_forms/search_form
-Modificare la copia personalizzata per includere (subito dopo il campo per il testo da cercare):
<div class="field">
<input type="text"
name="SearchableText"
size="25"
tabindex=""
onfocus="formtooltip('text_search_help',1)"
onblur="formtooltip('text_search_help',0)"
tal:attributes="tabindex tabindex/next;"
/>
<input type="checkbox"
name="path"
value="#"
class="noborder"
checked="checked"
tabindex=""
onfocus="formtooltip('limit_search_help',1)"
onblur="formtooltip('limit_search_help',0)"
tal:attributes="tabindex tabindex/next;value
string:/gri${request/URLPATH1};"
/> Search only the current folder (and sub-folders)
</div>
Notare che nella linea ...string:/gri${request/URLPATH1};... il "gri" si riferisce all'istanza Plone (che è nascosta dietro apache, quindi www.mysite.org reindirizza a www.mysite.org/gri).
Questo codice produce un piccolo riquadro che, se selezionato, limita la ricerca alla cartella corrente e a tutte le sottosezioni contenute in essa. Se non viene selezionata, allora la ricerca sarà globale.
Con un po' di lavoro in più, si può anche adattare questa tecnica per creare, per esempio, una lista di sezioni in cui cercare e permettere all'utente di selezionare una o più sottosezioni da includere nel campo di ricerca.