Search és view összerendelés

agostonl képe

Sziasztok!

http://webwash.net/tutorials/how-create-search-pages-using-views-drupal-7
Ez alapján létrehoztam egy search-page-et, de sehogy nem tudok rájönni, hogyan tudom összerendelni a search buttonn-al, tehát, hogy a search megnyomásakor a search-page view jelenjen meg.

Drupal verzió: 
lonalore képe

A hagyományos Drupal kereső block-ot kapcsold ki, a View-ba pedig kapcsold be, hogy az Exposed filter külön block-ban jelenjen meg, ezután pedig ezt a block-ot rakd be a hagyományos Drupal kereső block helyére. :) Így ha oda beír valamit és rányom a gombra, az szépen átvisz a (Views) keresőre.

0
0
agostonl képe

Értem én, de én nem blokkban jelenítem meg, hanem template hívja, így:

 print drupal_render(drupal_get_form('search_block_form'));

Nem igen értem még ezt a template dolgot, ezért nem tudom, hogyan, merre.

0
0
lonalore képe

Szerintem nem a formot kellene akkor behúznod, hanem a Views által legenerált Exposed Filter block-ot:

  1. $block = module_invoke('module_name', 'block_view', 'block_id');
  2. print render($block);

tehát, ha jól sejtem neked valami hasonló kell:

  1. $block = module_invoke('views', 'block_view', 'BLOCK_DELTA...');
  2. print render($block);

itt van elég részletes infó: module_invoke

0
0
lonalore képe

Illetve egy másik megoldás: Az általad használt theme .info fájljába létrehozol egy egyedi régiót:

regions[custom_search] = Custom Search

Törölsz cache-t, utána meg is jelenik az admin felületen a block-oknál, szépen helyezd bele az Exposed Filter Block-ot. Ezután, a tpl fájlba ahova a formot próbáltad berakni, rakd be ezt:

  1. <?php if ($custom_search = render($page['custom_search'])): ?>
  2. <?php print $custom_search; ?>
  3. <?php endif; ?>

... és voálá, meg is jelent az exposed filter. :)

(itt persze megjegyzem, hogy ha contrib theme-t használsz, ajánlatos egy subtheme-ben felülírni az eredeti theme configot, hogy egy esetleges update során ne kelljen újra megcsinálni)

0
0
agostonl képe

Köszönöm, mindkét megoldást megnézem, de első olvasatra a második megoldás szimpatikusabb.

0
0
agostonl képe

Értem én, de én nem blokkban jelenítem meg, hanem template hívja, így:

 print drupal_render(drupal_get_form('search_block_form'));

Nem igen értem még ezt a template dolgot, ezért nem tudom, hogyan, merre.

0
0
agostonl képe

Vajon mitől dupláz a fórum?

0
0
agostonl képe

Vajon mitől dupláz a fórum?

0
0