Mam wtyczkę Ctools aka. typ zawartości aka. panel panelu. Jak renderować to programowo?
chaos-tool-suite
roGi
źródło
źródło
Odpowiedzi:
ctools_content_render()
jest rozwiązaniem.źródło
ctools_include('content');
wcześniejctools_content_render()
, ponieważ w innym przypadku wystąpi błąd krytyczny.Jest świetny i prosty przykład, jak to zrobić w
ctools_ajax_sample
module (w pakiecie CTools).Jak już wspomniano, kluczem jest użycie funkcji
ctools_content_render()
.Przykład pokazuje, jak wypełnić argumenty funkcji, chociaż oczywiście musisz ją dostosować do swoich potrzeb.
Wątek w Grupach Drupal daje więcej informacji na temat ładowania właściwego kontekstu.
Plik
ctools/ctools_ajax_sample/ctools_ajax_sample.module
źródło
Jeśli załadujesz wymagany plik, wszystko, co naprawdę musisz zrobić, to wywołać funkcję renderowania (
hook_content_type_render
), która zwróci obiekt klasy standardowej, podobnie jakhook_block_view
robi to.Wszystko, czego potrzebujesz, to funkcja motywu, chyba że chcesz tylko renderować nieprzetworzone dane wyjściowe bezpośrednio.
W kodzie może wyglądać mniej więcej tak:
źródło
Udało mi się wyciągnąć panelowaną stronę w panopolu przy użyciu następującego kodu:
źródło
module_load_include()
Dołączając plik wtyczki, możesz przerwać proces ładowania wtyczek ctools. CTools używarequire_once
metody, więc jeśli plik został wcześniej dołączony przez skrypt innej firmy , nie będzie można go dołączyć za pomocą narzędzi ctools (i parsować$plugin
tablicę). W związku z tym okienko nie będzie działać w innych miejscach.