Come importare a livello di codice un blocco nella vista esistente?
Devo importare a livello di codice un blocco nella vista esistente con le sue impostazioni .

So come esportare l'intera vista e importarla a livello di codice. Ma non voglio esportare l'intera vista e quindi importare l'intera vista. A mio avviso ci sono 25 blocchi, quindi mi dà 4000 righe di codice da importare. Posso copiare il codice di esportazione solo del mio nuovo blocco. Ma come importare solo questa parte di codice nella vista esistente ? È possibile? Non riesco a trovare alcuna soluzione.
Risposte
Il "blocco" indicato nell'interfaccia utente è chiamato internamente "display". I display sono memorizzati all'interno dell'oggetto vista nella display
proprietà (ad esempio $view->display
).
Se guardi il codice di esportazione delle viste dovresti vedere il modello dei blocchi esportati (ad esempio /* Display: Block 1 */
, /* Display: Block 2 */
, ecc.) che è reso dal views::export()metodo.
Per ogni blocco (es. display) dovresti vedere il $handler = $view->new_display(...)
seguito da molte $handler->display...
righe che aggiungono i relativi campi/filtri per quel display.
Per importare a livello di codice un singolo display, dovresti fare qualcosa di simile al seguente:
$view = views_get_view('my_existing_view');
// @TODO: Add my new display handler code
$view->save();