Ciao a tutti,
vorrei inserire un blocco di una vista dentro un nodo, ho visto che è possibile usando la funzione views_embed_view, ho provato mettendo nel nodo
<?php
print views_embed_view('immagini_nodo','block_2', $node->nid);
?>
Mi potete dire dove sbaglio? Se devo attivare altre cose?
grazie mille
dove "immagini_nodo" è il Block name
non era il nome("macchina") della view che deve andarci come primo parametro?
Negli esempi che ho trovato in rete ho sempre visto "block_1" o "block_2" come secondo parametro così ho ipotizzato fosse il machine name, proverò ad invertirli e vedere se funziona.
grazie
da quello che so il primo parametro è il nome macchina della view..il secondo è il "display" cioè la visualizzazione, es. block,page,ecc..che trovi sotto ad "altri settaggi" (qualcosa di simile a destra)...
Ciao ho provato anche invertendo e modificando altri valori ma continua a non funzionare, proverò a chiedere a quelli di drupal.org, altrimenti metto tutto nel nodo
Ciao,
se date un'occhiata alle API per views_embed_view noterete come il primo parametro debba essere il nome macchina della vista e non il node del blocco, mentre il secondo parametro è il display_id della vista che volete caricare.
Quando state modificando una vista e non vi trovate nel display Master ('default') il path sarà simile al seguente:
admin/structure/views/view/machine_name/edit/display_id
Nel tuo caso sarà qualcosa del genere:
admin/structure/views/view/view_immagini/edit/block
Quindi, ipotizzando che 'block_1' sia il tuo display_id e il nome macchina della vista sia 'view_immagini' la chiamata diventa:
<?php
print views_embed_view('view_immagini', 'block_1', $node->nid);
?>
Ciao, ho risolto, il codice era giusto, ho fatto dei test con altri blocchi e funzionava, solo con quello no, poi sono riuscito a capire che andava in conflitto con un altro blocco della stessa vista; mi sono accorto che il template della vista prendeva quello generale e non quello specifico di quella vista del blocco.
Grazie a tutti per l'aiuto
Ciao, grazie al vostro post sono riuscito a ottenere quello che volevo, anche se ottengo sempre queste righe di errore:
Notice: Undefined variable: node in eval() (linea 2 di /home4/hosting/public_html/nomesito/modules/php/php.module(80) : eval()'d code).
Notice: Trying to get property of non-object in eval() (linea 2 di /home4/hosting/public_html/nomesito/modules/php/php.module(80) : eval()'d code).
Notice: Undefined variable: node in eval() (linea 2 di /home4/hosting/public_html/nomesito/modules/php/php.module(80) : eval()'d code).
Notice: Trying to get property of non-object in eval() (linea 2 di /home4/hosting/public_html/nomesito/modules/php/php.module(80) : eval()'d code).
Riesco a vedere il blocco dentro al mio nodo ma questo errore è un po fastidioso, il comando che eseguo è:
EDIT: Guardando il codice di php.module ho capito che forse l'errore viene generato da modulo help, potrebbe essere?
EDIT2: Ho risolto, usando questo codice:
Ciao, questo post mi è stato molto utile! Ho un problema invece con l'inserimento di un normale blocco:
dalla documentazione di drupal vedo che devo usare questo codice
Seguendo le stesse indicazioni di questo topic ho provato ad aggiungere un blocco del modulo "adsense", l'url di gestione del blocco è questo:
admin/structure/block/manage/adsense_managed/1/configure
Pertanto ho adattato il codice così:
Ma non funziona... avete qualche idea? Grazie!