it-swarm-eu.dev

Jak přesměrovat vystavený dotaz na stránku s výsledky zobrazení, která žije na jiné stránce panelu?

Moje nastavení: Drupal 7,2, Panely 7.x-3.0-alfa3, Pohledy 7.x-3.0-beta3, Sada nástrojů Chaos 7.x-1.0-beta1

Řekněme, že chci vytvořit webovou stránku s ovocem. V zobrazeních mám podokno obsahu „ovoce“ s exponovanými filtry založenými na taxonomii „color“. Web má mít dvě panelové stránky. Na první stránce panelu se zobrazí pouze exponované filtrové pole „prohledat ovoce“ s rozevíracími seznamy „barva“ a tlačítkem pro vyhledávání. Po výběru z rozevíracího seznamu a kliknutí na tlačítko Hledat se má uživatel přesměrovat na druhou stránku panelu, která obsahuje podokno obsahu pohledu se seznamem ovoce, které odpovídají filtru (barva).

Problém je v tom, že odkryté pole filtru na první stránce nebude po kliknutí na tlačítko použít přesměrováno na stránku s výsledky. Jak nastavím pohledy a panely, abych toho dosáhl?

8
Andreas
function hook_form_alter(&$form, &$form_state, $form_id) {  
  if ($form_id=='views_exposed_form') {
    global $base_url;
    $form['#action'] = $base_url.'/path_that_you_want'; 
  }
}
7
118218

Nejjednodušším řešením je vytvoření stránky s pohledy. Set "exponovaný formulář v bloku: Ano" Přidat blok "Exposed form: ..." na požadovanou přední stránku.

Interlated je výše formální mě dostal do poloviny s odhaleným blok filtru pracuje na otevření a zobrazení výsledků na nové stránce.

Potřeboval jsem však také blok filtrů, aby byl na této stránce výsledků. Formulář (exponovaný filtrový blok) jsem tedy připojil přes oblast pohledu v záhlaví. Pak jsem narazil na rekurzivní chování, když se oba zobrazily ve stejném pohledu.

Abych to vyřešil, oddělil jsem dva displeje (stránku a blok) do jejich vlastních příslušných pohledů - vytvořil jsem jeden blok jako exponovaný filtr, který obsahoval pole pro výsledky, pak úplně nové zobrazení stránky, aby bylo možné dosáhnout adresy URL. Zobrazení stránky má jedno pole (nadpis), které je přepsáno jako bílé místo (hlavně proto, že výsledky by byly nadbytečné, ale také nepřesné - zjistil jsem, že výsledky byly přesně zobrazeny z polí v exponovaném filtrovacím bloku). Zachoval jsem stejné filtrované nastavení mezi oběma displeji a používal lepší exponované filtry pomocí ajax na obou displejích.

Udělal jsem to v D8, ale pravděpodobně to bude stejné na 7.

0
vrwired

Nejsem si jistý, zda existuje „správný“ způsob, ale učinil jsem to tak, že napíšem hook_form_alter pro vystavený filtrový formulář, který změní cíl.

Není ideální, ale dostal jsem výsledky, které jsem potřeboval.

0
Mark Ferree

Nejjednodušší řešení je

  • Vytvořte stránku zobrazení
  • Vytvořte odkryté zobrazení
  • V části Upřesnit> vystavený formulář. Nastavit "exponovaný formulář v bloku: Ano"
  • Přidejte blok "Exposed form: ..." na požadovanou přední stránku.
0
Interlated