Ich habe ein ctools Plugin aka. Inhaltstyp aka. Panel-Bereich. Wie rendert man es programmatisch?
chaos-tool-suite
roGi
quelle
quelle
Antworten:
ctools_content_render()
ist die Lösung.quelle
ctools_include('content');
vorher einzuschließenctools_content_render()
, da sonst ein schwerwiegender Fehler auftritt.Es gibt ein großartiges und einfaches Beispiel dafür im
ctools_ajax_sample
Modul (in der CTools-Suite).Wie bereits erwähnt, müssen Sie die Funktion verwenden
ctools_content_render()
.Das Beispiel zeigt, wie Sie die Argumente der Funktion füllen, obwohl Sie sie natürlich an Ihre Bedürfnisse anpassen müssen.
Dieser Thread in Drupal-Gruppen bietet weitere Informationen zum Laden des richtigen Kontexts.
Datei
ctools/ctools_ajax_sample/ctools_ajax_sample.module
quelle
Wenn Sie die erforderliche Datei laden, müssen Sie nur die Renderfunktion (
hook_content_type_render
) aufrufen, die ein Standardklassenobjekt zurückgibt, ähnlich wie dies derhook_block_view
Fall ist.Alles, was Sie von dort benötigen, ist eine Theme-Funktion, es sei denn, Sie möchten die Raw-Ausgabe direkt rendern.
Im Code könnte es ungefähr so aussehen:
quelle
Mit dem folgenden Code konnte ich eine Panel-Seite in Panopoly abrufen:
quelle
module_load_include()
einbeziehen, können Sie den Ladevorgang der ctools-Plugins unterbrechen. CTools verwendet dierequire_once
Methode. Wenn die Datei zuvor von einem Drittanbieter-Skript eingeschlossen wurde, kann sie nicht von ctools (und dem Analysearray$plugin
) eingeschlossen werden. Als Ergebnis wird Ihr Fenster an anderen Stellen nicht funktionieren.