Googleマップ検索のカテゴリフィルタ

私は現在、 Google Maps for Objective HTML を利用した小規模なプロジェクトに取り組んでいます。シナリオは、検索フォームを持つページです。検索フォームには、ポストコードフィールド、距離フィールド、カテゴリドロップダウンセレクトが含まれています。

Search form layout

検索作業の2/3はOKです。私が郵便番号を入力し、その郵便番号から距離を設定すると、ユーザは結果ページに移動して、必要なポイントがマークされた地図を表示します。

それはすべてうまく、問題はカテゴリです。検索フォームのドロップダウンリストは正しく入力されていますが、カテゴリを結果ページに渡して、選択したカテゴリに応じて結果をフィルタリングする方法を把握していません。

私はおそらく完全に間違っていたかもしれませんが、カテゴリーは使用されているURLに非常に依存していると私は理解していました。それはあなたが以下で見るようにこれで方程式に入っていないようです。 return = パラメータはカテゴリの記述なしで結果テンプレートに移動する必要があります。私のマークアップは以下の通りです

{exp:gmap:search
    channel="property_sales"
latitude_field="fs_latitude"
longitude_field="fs_longitude"
geocode_field="location"
distance_field="distance_max"
cache_post="false"
return="/property/results/"}


<input name="location" id="location" class="form-control" value="{if post:location}{post:location}{/if}" type="text"> {if error:location}

{error:location}

{/if}
<button class="btn btn-primary btn form-control" type="submit">Search</button> {/exp:gmap:search}

これが検索フォームです。これが結果のテンプレートマークアップです。ここでカテゴリ情報が入っていると仮定しています

{exp:gmap:init id="map" class="gmap" style="width:100%;height:400px"}

{exp:gmap:results 
    order_by="distance" 
    sort="asc" 
    parse="inward"}

    {if has_searched}
    {results}{total_results}
  • {title} - {distance}
  • {/results}
{results} {exp:gmap:marker id="map" latitude="{fs_latitude}" longitude="{fs_longitude}"} {/results} {if:else} {exp:channel:entries channel="property_sales" dynamic="no" disable="member_data|pagination" parse="inward"} {location_gmap id="map"} {/exp:channel:entries} {/if} {if no_results}

No results found

{exp:channel:entries channel="locations" dynamic="no" disable="member_data|pagination" parse="inward"} {location_gmap id="map"} {/exp:channel:entries} {/if} {/exp:gmap:results}

私は長い間巻き込まれた質問をお詫びしますが、誰もこのモジュールで作業するカテゴリフィルタを取得できました

ありがとう、アドバイスが大歓迎です

0

2 答え

私たちはカテゴリにチェックボックスを使っていますが、私はそれが似ていると仮定しています...

検索フォーム:

{categories show="1|2|3|4" limit="4"}
    <div class="checkbox">
        
    </div>
{/categories}

その後、結果タグに:

{exp:gmap:results 
    orderby="distance"
    category_search_type="OR"
    match_categories_exact="yes"
    limit="25"
    paginate="true"
    pars_vars="true"}
2
追加された
私も非常に似たものを持っています。
追加された 著者 UnkwnTech,
これは、これを設定した方法とほとんど同じです。ここのカテゴリはURLとは独立しており、結果タグによって生成されたクエリのデータベースに渡されます。チャンネルエントリタグのカテゴリによるフィルタリングと同様に、URLの値に依存しません。
追加された 著者 vitule,

@christiaanとAndrewはカテゴリを渡す際に問題はないはずですが、select要素では、ユーザーが選択したカテゴリを結果に渡すために name = "categories []" を追加する必要がありますテンプレート。

下に更新された検索テンプレート

{exp:gmap:search
    channel="property_sales"
latitude_field="fs_latitude"
longitude_field="fs_longitude"
geocode_field="location"
distance_field="distance_max"
cache_post="false"
return="/property/results/"}


<input name="location" id="location" class="form-control" value="{if post:location}{post:location}{/if}" type="text"> {if error:location}

{error:location}

{/if}
<button class="btn btn-primary btn form-control" type="submit">Search</button> {/exp:gmap:search}

結果ページで、結果のタグに適切なカテゴリパラメータを追加する必要があります。追加する必要があるタグは結果ドキュメントです。

  • category_search_type = ""
  • match_categories = ""
  • match_categories_exact = ""
  • match_category_operator = ""
  • match_no_categories = ""
0
追加された