¿Cómo importar programáticamente un bloque a una vista existente?
Necesito importar mediante programación un bloque a la vista existente con su configuración .

Sé cómo exportar la vista completa e importarla mediante programación. Pero no quiero exportar la vista completa y luego importar la vista completa. En mi opinión, hay 25 bloques, por lo que me da 4000 líneas de código para importar. Puedo copiar el código de exportación solo de mi nuevo bloque. Pero, ¿cómo importar solo esta parte del código a la vista existente ? ¿Es eso posible? No puedo encontrar ninguna solución.
Respuestas
El "bloque" indicado que señala en la interfaz de usuario se denomina internamente "pantalla". Las visualizaciones se almacenan dentro del objeto de vista en la display
propiedad (p. ej $view->display
., ).
Si observa el código de exportación de vistas, debería ver el patrón de bloques exportados (p. ej /* Display: Block 1 */
., /* Display: Block 2 */
, etc.) que representa el views::export()método.
Para cada bloque (es decir, pantalla), debería ver $handler = $view->new_display(...)
seguido de muchas $handler->display...
líneas que agregan los campos/filtros relevantes para esa pantalla.
Para importar mediante programación una sola pantalla, haría algo como lo siguiente:
$view = views_get_view('my_existing_view');
// @TODO: Add my new display handler code
$view->save();