La interfaz de búsqueda pública de Movable Type es una integración del add-on mt-search de Jay Allen para Movable Type. El motor búsqueda soporta dos tipos diferentes de búsqueda: búsqueda directa por palabras y búsqueda de nuevo comentario. La búsqueda directa soporta peticiones boleanas, búsqueda de frases, y coincidencia de expresión regular (si se desee). La búsqueda de nuevo comentario (actualmente más un "listado" que una búsqueda) lista todos los nuevos comentarios postedos en su sitio en un intervalo de tiempo especificado.
Las peticiones de búsqueda son registradas en log de actividades de su sitio.
Las plantillas de búsqueda nos manejadas como otras plantillas del sistema, porque no son manejadas en base a una bitácora, por lo que no tienen sentido en la sección de "Plantillas" del menú de edición. las plantillas de búsqueda son archivos en su directorio search_templates/ ; este directorio debe estar localizado el mismo directorio que mt.cgi.
En sus plantillas de búsqueda, usted puede usar un
grupo especial de etiquetas
para plantilla para mostrar los resultados de la búsqueda. También pulsar la
mayoría de otros tags Movable Type, pero por supuesto, usted debe respetar el
contexto en el cual usted usa los tags. Además, como la página de resultados de
búsqueda es dinámica y puede ser reconstruida cada vez que alguien realiza una
búsqueda en su sitio, detener mucho cuidado usando tags que puedan requerir
muchos recursos del servidor y tiempo para construir (por ejemplo, <MTArchiveList>
o
<MTCalendar>).
También puede usar el tag <MTInclude> en sus
plantillas de búsqueda para incluir módulos plantillas o archivos externos.
Puede incluso usar tags como éste, que requiere la bitácora para estar dentro de
contexto (porque módulos plantilla son almacenados en base a una bitácora),
fuera del contenedor <MTSearchResults>. Sin embargo ahí
agujeros en este método, y debe ser cuidadoso cuando puse esto sí tiene
múltiples bitácoras. Por ejemplo, si es usted usa
<$MTInclude module="Header"$>
en una plantilla, el sistema necesita saber en qué bitácora de buscar
el módulo llamado Header. Si se encuentran resultados para
búsqueda, el sistema búsqueda en la bitácora que estaá más próxima
alfabéticamente; si no hay resultados para la búsqueda, Movable Type simplemente
intentara cargar una bitácora de su base de datos (la determinación de la
bitácora elegida no está definida).
Este comportamiento será pulido en el futuro.
Las plantillas por defecto deMovable Type incluyen un formulario de búsqueda simple para buscar las bitácoras de su sitio. Este formulario se vee como esto:
<form method="get" action="<$MTCGIPath$><$MTSearchScript$>"> <label for="search" accesskey="4">Search this site:</label><br /> <input id="search" name="search" size="20" /><br /> <input type="submit" value="Search" /> </form>
Un formulario de búsqueda completo, sería cómodo parecido a esto:
<form method="post" action="<$MTCGIPath$><$MTSearchScript$>"> <input size="30" name="search" value="<$MTSearchString$>" /> <input type="submit" value="Search" /><br /> <input type="checkbox" name="CaseSearch" /> Match case <input type="checkbox" name="RegexSearch" /> Regex search<br /> <b>Search:</b> <input type="radio" name="SearchElement" value="entries" /> Entries <input type="radio" name="SearchElement" value="comments" /> Comments <input type="radio" name="SearchElement" value="both" /> Both <br /> <b>Sort By:</b> <select name="SearchSortBy"> <option value="created_on">Authored On Date</option> <option value="title">Title</option> </select><br /> <b>Sort Order:</b> <select name="ResultDisplay"> <option value="ascend">Ascending</option> <option value="descend">Descending</option> </select><br /> <b>Exclude Weblogs:</b> <MTBlogs> <input type="checkbox" name="ExcludeBlogs" value="<$MTBlogID$>" /> <$MTBlogName$> </MTBlogs><br /> <b>Search entries from:</b> <select name="SearchCutoff"> <option value="9999999">the beginning</option> <option value="7">one week back</option> <option value="14">two weeks back</option> <option value="30">one month back</option> <option value="60">two months back</option> <option value="90">three months back</option> <option value="365">one year back</option> </select><br /> <b>Results per weblog:</b> <select name="MaxResults"> <option value="5">5</option> <option value="10">10</option> <option value="25">25</option> <option value="50">50</option> <option value="100">100</option> <option value="9999999">All</option> </select> </form>
Este formulario de búsqueda del usuario más control sobre los parámetros de la búsqueda, permitiendo de especificar restricciones como coincidencia de mayúsculas, o uso de coincidencia de expresión regular en lugar de una petición boleana. La búsqueda puede ser limitada tanto a entradas como a comentarios (o ambos). Note que la búsqueda en comentarios lleva más tiempo y recursos que buscar en una entrada.
El sumario de arriba también incluye labilidad descubrir ciertas bitácoras de la búsqueda. Esto es útil su visitante desea buscar sólo en una de sus bitácoras. Como una alternativa al uso de Exclude Weblogs, podría su lugar usar los siguiente:
<b>Include Weblogs:</b> <MTBlogs> <input type="checkbox" name="IncludeBlogs" value="<$MTBlogID$>" /> <$MTBlogName$> </MTBlogs><br />
Esto, esencialmente es lo inverso de la configuración Exclude Weblogs, pero usted podría preferirlo poco qué razón. Por ejemplo, hace más fácil crear páginas de resultado búsqueda específico para la bitácora. En lugar de mantener una lista de bitácoras a excluir, sólo una citada añadir esto al formulario:
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<$MTBlogID$> siempre hace referencia a la bitácora
actual, por lo que esta búsqueda siempre se restringirá tan sólo a la bitácora
está siendo visita.
El formulario de búsqueda de arriba desusado búsqueda directa. Un nuevo y completo formulario para búsqueda de nuevo comentario debería verse como esto:
<form method="post" action="<$MTCGIPath$><$MTSearchScript$>"> <input type="hidden" name="Type" value="newcomments" /> <b>Exclude Weblogs:</b> <MTBlogs> <input type="checkbox" name="ExcludeBlogs" value="<$MTBlogID$>" /> <$MTBlogName$> </MTBlogs><br /> <b>Search entries from:</b> <select name="CommentSearchCutoff"> <option value="9999999">the beginning</option> <option value="7">one week back</option> <option value="14">two weeks back</option> <option value="30">one month back</option> <option value="60">two months back</option> <option value="90">three months back</option> <option value="365">one year back</option> </select><br /> <b>Number of entries to return:</b> <select name="MaxResults"> <option value="5">5</option> <option value="10">10</option> <option value="25">25</option> <option value="50">50</option> <option value="100">100</option> <option value="9999999">All</option> </select><br /> <input type="submit" value="Find new comments" /> </form>
Típicamente, cuando se lleva acabo una búsqueda, las plantilla de búsqueda por defecto (default.tmpl) es renderizada para mostrar el resultado (o, en caso de búsqueda de comentario, la plantilla comments.tmpl es usada). Si usted tiene múltiples bitácoras y además está usando la herramienta de búsqueda para cada una de ésas bitácoras, podría querer que los resultados de búsqueda de una bitácora serían diferentes que resultados de otra bitácora. O, podría tener diferentes versiones de su sitio público: una versión gráfica para visitantes normales, y una versión de texto sin gráficos que consuma pocos recursos. Usted desearía que los asuntos de la búsqueda sería igual el resto de su sitio, cualquiera que sea la versión de su sitio el visitante esté usando.
Para hacer esto, usted puede usar plantillas alternativas. Por ejemplo, cada bitácora puede tener su propia plantilla de resultado de búsqueda que coincida con su propio diseño; o cada versión de su sitio puede tener su propia plantilla de resultado de búsqueda.
Work y Play), quiste quiere que cada
bitácora tenga su propia plantilla, debería añadir algo como esto:
AltTemplate work work.tmpl AltTemplate play play.tmpl
Work, por ejemplo:<input type="hidden" name="Template" value="work" />
(Nota: si usted quiere restringir la búsqueda a sólo una bitácora debería incluir también
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
al formulario.)
Si estaba usando el motor de búsqueda de Jay, necesitara convertirlo usando la versión íntegra. Siga estos pasos:search engine, you'll need to convert to using the integrated version. Follow these steps:
Por esto, necesita abrir ambos archivos, mt.cfg y mt-search.cfgen editor de texto, y copiar todo contenido de mt-search.cfg dentro de mt.cfg.
AltTemplate1 work work.tmpl
debería cambiarlo por
AltTemplate work work.tmpl
TemplateDir /path/to/search_templates
debería cambiarlo por
SearchTemplatePath /path/to/search_templates