Home / Community / Blog / Wyszukiwanie po atrybutach klasy (2)

Wyszukiwanie po atrybutach klasy (2)

Zgłębiam temat rozpoczęty ostatnio. Wyszukuję za pomocą wbudowanej funkcji advancedsearch. Formatkę wyszukiwania, a w zasadzie jej pola, można zrobić tak jak podano w przykładzie (strona nie jest już rozwijana, ale przykład działa). Ma to ten minus, że atrybuty trzeba wstawić po ich ID, a nie nazwie, ale odpowiednio komentując kod można go zrobić przejżystym.

W mojej wersji zrobiłem wyszukiwanie po atrybutach o ID 362 i 363 (każdy się domyśli, że wyszukuję po Miejscowości i powiecie :-) . Wstawiłem w jednym z własnych szablonów (template) taki kod:

<form action={"/content/advancedsearch/"|ezurl} method="get">
    {* 45, czyli Atrakcja *}
    <input type="hidden" name="SearchContentClassID" value="45" />
    {* 363 - Powiat *}
    Powiat: <input type="hidden"
name="Content_search_attribute_fulltext_classattribute_id[]"
value="363" />
    <input type="text"
name="Content_search_attribute_fulltext_value[]"
value="" />
    {* 362 Miejscowość (attraction_attrib_city) *}
    Miasto: <input type="hidden"
name="Content_search_attribute_fulltext_classattribute_id[]"
value="362" />
    <input type="text"
name="Content_search_attribute_fulltext_value[]"
value="" />

    <input type="submit" value="Search" name="SearchButton">
</form>

To nawet działa, trzeba tylko pamiętać o ustawieniu

[SearchSettings]
AllowEmptySearch=enabled

w pliku settings/override/site.ini.append.php, ew. można jeszcze dołożyć w tej samej sekcji

EnableWildcard=true

, ale to wymagane tylko dla zaawansowanych użytkowników.

Teraz wystarczy tylko ustalić jak zrobić własną stronę z własnym szablonem na którym będzie tylko wyszukiwanie. Można oczywiście utworzyć własną klasę, nawet nie musi mieć atrybutów - wystarczy, że będzie miała nazwę, którą będzie można powiązać z szablonem zawierającym wyłącznie formularz wyszukiwania, ale może można to zrobić prościej.

Comments

Log in or create a user account to comment.

Just my blog...

Mon Tue Wed Thu Fri Sat Sun
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31