caixa de pesquisa Plone, como em Django?

votos
1

Plone tem uma caixa de pesquisa bonita com um Google sugere como funcionalidade para o seu site. Ele ainda índices carregado documentos como PDFs. Alguém sabe de um módulo que pode fornecer este tipo de funcionalidade em um site Django?

Publicado 16/09/2008 em 01:10
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Plone implementa é característica LiveSearch mantendo uma tabela de metadados separada de atributos indexados (campos tais como modificada pela última vez, criador, título são copiados a partir dos objetos de conteúdo para esta tabela). objetos de conteúdo, em seguida, enviar ObjectAdded / ObjectModified / eventos ObjectRemoved, e um assinante do evento escuta para esses eventos e é responsável por atualizar a tabela de metadados (em eventos Django são nomeados sinais). Depois, há uma View Browser exposta em uma URL fixa que pesquisa os metadados e retorna o HTML LiveSearch apropriado, e, finalmente, cada página HTML é enviado o JavaScript apropriada para lidar com a funcionalidade autocomplete AJAX para consultar essa visão e slot os resultados HTML resultante para o DOM.

Se você quiser que o seu LiveSearch para consultar vários tipos Models / conteúdo, você provavelmente vai precisar para enviar seus próprios eventos e ter um assinante tratá-los adequadamente. Isso não é necessário para um conjuntos de dados menores ou sites de tráfego mais baixos, onde a pena de desempenho para fazer várias consultas para uma única pesquisa não é uma preocupação (ou você só quer pesquisar um único tipo de conteúdo) e você pode apenas fazer várias consultas a partir de sua exibição.

Quanto ao lado do JavaScript, você pode rolar o seu próprio ou usar uma biblioteca JavaScript existente. Isso geralmente é chamado de autocomplete na biblioteca JS. Há autocomplete YUI e Scriptaculous autocomplete para começar, e provavelmente muito mais implementações de preenchimento automático JavaScript lá fora. Plone usa KSS para ele é JavaScript biblioteca, o livesearch plug-in KSS é um bom lugar para começar se olhando por exemplo código para arrancar a partir.

http://pypi.python.org/pypi/kss.plugin.livesearch

E um tutorial sobre o uso KSS com Django:

http://kssproject.org/docs/tutorial/kss-in-django-with-kss-django-application

KSS é bastante agradável, uma vez que separa claramente o comportamento do conteúdo no lado do cliente (sem a necessidade de escrever JavaScript), mas Scriptaculous é conceitualmente um pouco mais simples e tem um pouco melhor documentação ( http://github.com/madrobby/scriptaculous/wikis/ Ajax-autocompleter ).

Respondeu 16/09/2008 em 01:53
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more