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_sample
mó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.module
fuente
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_view
hace.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_once
método, por lo que si el archivo fue incluido previamente por un script de terceros, no será posible incluirlo por ctools (y parse$plugin
array). Como resultado, su panel no funcionará en otros lugares.