Tengo un complemento de ctools aka. tipo de contenido aka. panel de panel. ¿Cómo se renderiza mediante programación?
chaos-tool-suite
roGi
fuente
fuente

Respuestas:
ctools_content_render()Es la solución.fuente
ctools_include('content');antesctools_content_render(), porque en otro caso obtendrá un error fatal.Hay un excelente y simple ejemplo de cómo hacer esto en el
ctools_ajax_samplemódulo (en la suite CTools).Como se ha señalado, la clave es usar la función
ctools_content_render().El ejemplo muestra cómo llenar los argumentos de la función, aunque obviamente debe personalizarla según sus necesidades.
Este hilo en Drupal Groups da más información sobre cómo cargar el contexto correcto.
Archivo
ctools/ctools_ajax_sample/ctools_ajax_sample.modulefuente
Si carga el archivo requerido, todo lo que realmente necesita hacer es llamar a la función de representación (
hook_content_type_render) que devolverá un objeto de clase estándar, al igual que lohook_block_viewhace.Todo lo que necesita a partir de ahí es una función de tema, a menos que solo desee renderizar la salida sin formato directamente.
En código, podría verse más o menos así:
fuente
Pude extraer una página panelizada en panopolia usando el siguiente código:
fuente
module_load_include(), puede interrumpir el proceso de carga de complementos de ctools. CTools usa elrequire_oncemétodo, por lo que si el archivo fue incluido previamente por un script de terceros, no será posible incluirlo por ctools (y parse$pluginarray). Como resultado, su panel no funcionará en otros lugares.