Die Facetten-API ermöglicht benutzerdefinierte Anzeige-Widgets durch Implementierung eines Plugins. Das Plugin hat vollen Zugriff auf das Render-Array, sodass Sie letztendlich die vollständige Kontrolle über das Erscheinungsbild der Facetten haben.
Plugins werden dem System hinzugefügt, indem hook_facetapi_widgets () implementiert wird, die auf eine Klasse mit einer execute () -Methode verweisen. Ein Beispiel für ein funktionierendes Plugin finden Sie in der Datei plugins / facetapi / widget_links.inc im Facet API-Modul. Andere Beispiele für coole Dinge, die Sie mit Facetten-API-Widgets tun können, sind Diagrammfacetten und Tagcloud-Facetten.
Weitere Informationen zum Arbeiten mit den Render-Arrays in der execute () -Methode des Plugins finden Sie im Artikel zu Render-Arrays in Drupal 7 unter http://drupal.org/node/930760 .
Ein Beispielcode ist unten:
/**
* Implements hook_facetapi_widgets().
*/
function mymodule_facetapi_widgets() {
return array(
'mymodule_mywidget' => array(
'handler' => array(
'label' => t('My Custom Widget'),
'class' => 'MymoduleMywidget',
),
),
);
}
Fügen Sie die Klasse einer separaten Datei hinzu und legen Sie fest, dass sie automatisch aufgenommen wird, wie hier beschrieben: http://drupal.org/node/542202
/**
* My custom widget.
*/
class MymoduleMywidget extends FacetapiWidget {
/**
* Renders the widget.
*/
public function execute() {
$element = &$this->build[$this->facet['field alias']];
// $element is the render array that will render the facet.
}
}