2010-12-08 6 views
3

Das Facettensuchmodul in Drupal erstellt eine Reihe von Blöcken für jede neue facettierte Suchumgebung (aktuelle Suche, geführte Suche, verwandte Themen usw.).Drupal: Wiederverwenden von facettierten Suchblöcken

Wenn Sie eine facettierte Suchumgebung für z. Bücher, könnten Sie es mit einer Basispfadbrowse/books und eine Startseite als browse/books/results einrichten. Um die facettierten Suchblöcke anzuzeigen, würden Sie legen Sie dann die Seite Spezifische Sichtbarkeitseinstellungen für den Block als ‚Show nur auf den aufgelisteten Seiten‘ und die tatsächlichen Seiten als

browse/books 
browse/books/results* 

Frage: Ich möchte wieder - Verwenden Sie den Block "Geführte Suche" auf einer anderen Zielseite. Die Zielseite sollte eine Liste der verfügbaren Suchbegriffe (sidebar-left) anzeigen und eine Ansicht über den Rest der Seite anzeigen.

Bis jetzt hat das Hinzufügen eines anderen Pfades zur Liste 'Zeige nur auf den aufgelisteten Seiten' keine Auswirkung.

Antwort

1

Drupal Veteranen würde wahrscheinlich in der Lage sein, besser zu bieten, saubere und richtige Lösungen, aber die folgenden Werke für mich:

ich einen neuen Block hinzugefügt, die die folgende PHP läuft:

$env = faceted_search_env_load ($fs_env_id); 
if (!$env->ready()) 
{ 
    $env->prepare(); 
    $env->execute(); 
} 
faceted_search_ui_add_css(); 
$env->ui_state['stage'] = 'results'; 
print faceted_search_ui_guided_block($env); 

$fs_env_id hängt von Ihrer Einrichtung ab. Die von der API generierten Links werden wie erwartet mit den tatsächlichen facettierten Suchumgebungspfaden verknüpft.

1

Eine Möglichkeit, fast bekommen, gibt es einen neuen benutzerdefinierten Block hinzufügen und dann die den tatsächlichen Block mit angezeigt werden versuchen, folgenden:

<?php 
    $block = module_invoke('faceted_search_ui', 'block', 'view', 'xxxxx'); 
    print $block['content']; 
?> 

Wo xxxxx die ID der facettierten Suchumgebung ist zum Beispiel 1_guided . Problem ist, dass das Betrachten von function faceted_search_ui_block(...) Sie nur so weit bringt. Der Block wird nur gerendert, wenn sich die Umgebung im richtigen Zustand befindet. Wenn es sich nicht um eine bekannte facettierte Suchumgebung handelt, die angeblich unter dem zugehörigen Pfad ausgeführt wird, ist dies nicht der Fall.

So sieht nicht aus wie es möglich ist.

0

Hmm. Ich bin mir nicht sicher, ob das ist, was ich suchte oder nicht-

Hier ist, was ich jetzt benutze. Ich weiß nicht, ob es genau das ist, nach dem Sie suchen, aber Sie können die Facetten auf jeder Seite darstellen, die anwendbar ist. (die Facetten sollen auf zeigen)

Für mich sind es Suchergebnisse über Ansichten.

Ich rendere einen Block, mit all meinen Suchfacetten in einem Block.

<div class="xfacet"> 
Something here 
<?php 
$block = module_invoke('facetapi', 'block_view', 'xxxx'); 
print render($block['content']); 
?> 
</div> 
<div class="xfacet"> 
Something there 
<?php 
$block = module_invoke('facetapi', 'block_view', 'xxxx'); 
print render($block['content']); 
?> 
</div> 

Ich kontrolliere nur, wo der Block zeigt. Ich werde nach dem Start mit einem Link folgen.

Verwandte Themen