2012-11-15 9 views
9

Mam, jak myślę, prostą funkcję, którą próbuję dodać do mojej witryny Orchard (1.6), ale nie mogę znaleźć żadnych instrukcji ani instrukcji aby to zrobić. Mam niestandardowy typ o nazwie "Biuro" i każde biuro ma niestandardowe pole o nazwie "Stan" wskazujące, w jakim stanie znajduje się biuro. Właściwie zaprojektowałem moje biura jako niestandardową część w kodzie o określonych właściwościach, takich jak Stan, ale "myśl" jest taki sam, jak w przypadku dodania stanu za pośrednictwem interfejsu administratora jako pola części zawartości pakietu Office.Orchard Utwórz projekcję lub wyszukiwanie oparte na filtrowanych rozwijanych zaznaczeniach

Teraz mogę utworzyć podstawową projekcję, aby pokazać wszystkie biura za pomocą prostego filtru "Treść z typem Office", aby wyświetlić wszystkie biura. Jednak teraz chcę zrobić listę rozwijaną u góry strony z napisem "Filtruj według: [-SELECT STATE-]" z listą wszystkich 50 stanów. Gdy użytkownik wybierze stan, strona powinna odświeżyć i wyświetlić tylko biura w tym stanie.

To tutaj utknąłem. Czy powinienem to zrobić za pomocą kodu, czy mogę to zrobić za pośrednictwem interfejsu administratora? Jeśli za pomocą kodu, powinienem go modelować po module Orchard.Search (który próbowałem zrobić, ale jestem kompletnie zagubiony). Jeśli mogę to zrobić za pomocą interfejsu użytkownika, czy używam prognoz? Jeśli tak, czy muszę utworzyć 50 oddzielnych rzutów (po jednym dla każdego stanu)? Wydaje się to niezwykle czasochłonne w tworzeniu i utrzymaniu.

Każda pomoc jest WSPANIAŁA doceniona!

FYI, strona pod adresem http://ktowneric.com/listings/search (która używa Orcharda) jest bardzo podobna do tego, czego szukam, a programista stwierdził, że użył prognoz, ale nie mogę się zorientować, jak to zrobił.

Odpowiedz

13

Możesz zdecydowanie użyć projekcji. Jeśli zauważysz, gdy użyjesz funkcji wyszukiwania na przywołanej stronie, dane wejściowe zostaną uformowane w wartości ciągu zapytania. Możesz użyć tokenów, aby pobrać wartości z łańcuchów zapytań do użycia w filtrze projekcyjnym. Na przykład, jeśli używasz pól w taki sposób, jak podano, po prostu dodaj filtr dla tego pola, aw polu wartości użyj {Request.QueryString: State}. Lub zastąp "Stan" dowolnym kluczem, którego używasz dla wartości ciągu zapytania.

To rozwiązuje problem z projekcją. Trzeba będzie zbudować formularz wyszukiwania, który będzie wyglądać mniej więcej tak ...

<form action="/search-results" method="Get"> 
    <select name="State"> 
    <option value="OH">Ohio</option> 
    ...all the states... 
    </select> 
    <input type="submit" value="Search" /> 
</form> 

„/ search-wyniki” może być strona projekcja lub jakąkolwiek treść, która ma prezent widget projekcja. Możesz utworzyć formularz jako widget, który możesz umieścić gdzieś lub do celów testowych, możesz po prostu wkleić ten html do widżetu HTML, aby go wypróbować.

+2

... Chciałbym znaleźć tę odpowiedź * przed * Przeszukałem cały kod źródłowy i sam sobie uświadomiłem, jak wykonywać zapytania HQL ... –

Powiązane problemy