Risposte:
Ctools
In Ctools c'è un sottomodulo chiamato "Gestore di pagine". Questo modulo, al suo interno, è un'interfaccia utente grafica per hook_menu . Ti consente di creare nuovi percorsi nel sistema o di assumere alcuni di quelli forniti da Core.
Gestore di pagine
Una volta che Page manager gestisce un percorso per te, può fare diverse cose con esso. Immediatamente, può fornire reindirizzamenti per te. Un caso d'uso comune per questo, è negare l'accesso ai nodi che non hanno un tema adeguato perché non sono pensati per essere visualizzati da soli, come "Caselle di fatti" o "Nodi immagine". Un altro è reindirizzare da una visualizzazione a termine a una ricerca Solr dello stesso termine.
Uno dei principali vantaggi di Page manager è che introduce un modo di gestire il "contesto", da non confondere con il modulo contesto . Il kicker qui è che i riquadri, che sono "blocchi leggermente più intelligenti", possono dichiarare le loro dipendenze al sistema e hanno gli argomenti reali (chiamati contesti) passati in stile di iniezione di dipendenza .
Per chi non ha familiarità con DI, ma ha familiarità con Drupal, questo, ad esempio, consente di non dover mai più utilizzare menu_get_object per ottenere "Quell'unico nodo a cui si fa riferimento dal percorso del menu". E se ci fosse più di un nodo nel percorso? O se vuoi davvero basare il blocco su un nodo da un riferimento di entità? Questo diventa un non-problema con Page manager, rendendo tutti i blocchi (riquadri) molto più flessibili e riutilizzabili.
pannelli
Il caso d'uso più comune, tuttavia, è consegnare il layout e il rendering del percorso ai pannelli . Pannelli fornisce strumenti per definire i layout, sia nel codice che direttamente nel browser, e consente di posizionare i contenuti direttamente nel browser.
Conclusione
Entrambi questi moduli sono molto potenti e relativamente scarsamente documentati, il che ha portato molte persone a sentirsi frustrate. Capire come usarli è comunque valsa la pena se si sta costruendo un sito più grande, soprattutto perché il loro approccio alla gestione "pagine", così come il layout, sembra che stanno andando in Drupal 8 nucleo, per gentile concessione di EclipseGC s' iniziativa SCOTCH . Progetto sandbox rilevante
Ulteriori letture
Esempi di altre cose interessanti che si possono fare con questi strumenti:
$page_data = page_manager_get_current_page()
è dove si trova il denaro, in particolare$page_data['handler']
In Drupal 7, Page Manager era il fondamento del modulo Pannelli .
" Learn Page manager " è un insieme interessante (e sorprendente) di video. Contengono vari argomenti relativi al modulo Pannelli . Ecco un riepilogo dell'intero set di video su questo argomento (citazione dal link sopra):
- Il gestore della pagina ti consente di raccogliere e gestire informazioni contestuali in modo flessibile e coerente. È una parte importante della costruzione di infrastrutture sui siti Web Drupal e dovresti sapere come utilizzare questo modulo.
- La serie screencast è rivolta a sviluppatori Drupal esperti.
- Gli episodi 1, 2 e 3 introducono i concetti più elementari, come pagine personalizzate, varianti, regole di selezione e (in una certa misura) oggetti contestuali.
- Gli episodi 4, 5, 6 e 7 parlano di pannelli, con enfasi sull'integrazione di Views ma anche alcune parole su una cache efficiente.
- Episodi 8 e 9 su controllo degli accessi, voci di menu e non ultimo il modulo di amministrazione contestuale poco noto ma molto utile.
- Gli episodi 10 e 11 parlano di più sull'uso di oggetti contestuali in Gestione pagine, incluso l'uso di Views come contesto. Questo è, imho, il vero potere di Page manager.
- Gli episodi 12 e 13 raccolgono vari pezzi, ad esempio come utilizzare i pannelli per riorganizzare facilmente il modulo di modifica del nodo, le impostazioni di importazione / esportazione e alcuni moduli extra che possono essere utilizzati con Gestione pagine.
Fare riferimento a Spiegazione dei pannelli: una panoramica per gli sviluppatori Drupal per un'altra grande spiegazione sul modulo Pannelli.
In Drupal 8, Page Manager è diventato un modulo separato, mentre in precedenza (fino a Drupal 7), faceva parte del modulo CTools . Ecco alcune altre citazioni dalla pagina del progetto (relativa a D8):
Supporta la creazione di nuove pagine e consente di posizionare blocchi all'interno di quella pagina.
Come il Page Manager di Drupal 7, fornisce un concetto di "varianti di pagina", ognuna con le proprie condizioni di selezione.
Inoltre, può essere utilizzato per assumere il controllo di una pagina esistente, come l'override / nodo /% per modificare ciò che viene visualizzato durante la visualizzazione di un nodo.
Esso utilizza il nucleo
Conditions
,Context
eBlocks
API per ottenere questo risultato.