私がやろうとしているのは、サイト内のユーザーの場所に基づいて、「コンテンツの追加」ページでデフォルトの用語を自動的に選択することです。
例:ユーザーは現在、「場所」の語彙にある「カリフォルニア」にある「ロサンゼルス」の下にリストされている求人広告を表示しています。
新しい求人広告のコンテンツフォームに表示される「場所」語彙のデフォルト値を、表示しているエリアを識別する用語に自動的に設定したいと思います。
これは可能ですか?
注: GeoIPまたはロケーションベースのモジュールについては言及していません。すでに表示している用語を自動的に選択し、作成中のノードに使用する方法を探しています。
答えは、URLの引数を使用してボタン/メニュー項目を動的にすることだと思います。ユーザーが[求人広告を追加]をクリックすると、特定の場所の分類用語でタグ付けされた求人広告が既に表示されているようです。その場合、用語名(またはID)が現在のURLに表示されると思います。たとえば、 http://yoursite.com/classifieds/LosAngeles のようになります。もしそうなら、私はあなたがその用語をURLから引き出してあなたのリンクでそれを使うことができると信じています http://yoursite.com/node/add/classified/LosAngeles のように。次に、「コンテンツの追加」フォームを変更して、URL(LosAngeles部分)から用語を取得する必要があります。これは理論的には機能するはずですが、実際にどのように行うのか正確にはわかりません。あなたがあなた自身の質問に答える前に私がそれを理解できるかどうかを見ますが、それは少なくとも今のところあなたを正しい方向に向けるのに役立つはずです。
smart_ip モジュールを使用してユーザーの場所を特定し、フォームをフックして、選択した分類用語を hook_form_alter() / form api reference で変更できます。 = .Smart ipは、100%ブラウザ互換ではなく正確なW3C Geolocation APIを使用するか、geoデータベースをmaxmindsすることができます。 Maxmindは無料のGeoliteデータベースを提供していますが、精度が必要な場合は、商用のgeoipデータベースを使用する必要があります。
Yourdomain /?q = node/add/content_type /のように、URLに意図された用語を引数として追加して「追加」というリンクを張ることができます。これで、フィールド設定を編集して、URLからこの用語をフェッチするデフォルト値フィールドのPHPスニペットを記述できるようになりました。これがうまくいくことを願っています。