Respostas:
Ctools
No Ctools , existe um submódulo chamado "Gerenciador de páginas". Este módulo, em sua essência, é uma interface gráfica do usuário para o hook_menu . Permite criar novos caminhos no sistema ou assumir alguns dos fornecidos pelo Core.
Gerenciador de páginas
Depois que o Gerenciador de páginas gerencia um caminho para você, ele pode fazer várias coisas diferentes. Pronto para uso, ele pode fornecer redirecionamentos para você. Um caso de uso comum para isso é negar acesso a nós que não possuem temas adequados, porque eles não devem ser visualizados por si próprios, como "caixas de fatos" ou "nós de imagem". Outra é redirecionar de uma visão de termo para uma pesquisa Solr do mesmo termo.
Um dos principais benefícios do gerenciador de páginas é que ele introduz uma maneira de lidar com o "contexto", que não deve ser confundido com o módulo contexto . O ponto principal aqui é que os painéis, que são "blocos um pouco mais inteligentes", podem declarar suas dependências para o sistema e têm os argumentos reais (chamados Contextos) transmitidos no estilo de injeção de dependência .
Para aqueles que não estão familiarizados com o DI, mas que estão familiarizados com o Drupal, isso, por exemplo, permite que você nunca precise usar menu_get_object novamente para obter "Esse único nó referenciado no caminho do menu". E se houver mais de um nó no caminho? Ou se você realmente deseja basear o bloco em um nó a partir de uma referência de entidade? Isso se torna um problema no Gerenciador de páginas, tornando todos os blocos (painéis) muito mais flexíveis e reutilizáveis.
Painéis
O caso de uso mais comum, no entanto, é entregar o layout e a renderização do caminho para os painéis . Painéis fornece ferramentas para definir layouts, no código ou diretamente no navegador, e permitem colocar o conteúdo diretamente no navegador.
Conclusão
Ambos os módulos são muito poderosos e estão relativamente pouco documentados, o que levou muitas pessoas a ficarem frustradas com eles. A compreensão de como usá-los é no entanto vale a pena se você está construindo um site maior, especialmente porque sua abordagem para lidar com "páginas", bem como o layout, parece que eles estão indo para Drupal 8 core, cortesia de EclipseGC 's iniciativa SCOTCH . Projeto sandbox relevante
Leitura adicional
Exemplos de outras coisas interessantes que podemos fazer com essas ferramentas:
$page_data = page_manager_get_current_page()
é onde está o dinheiro, especialmente$page_data['handler']
No Drupal 7, o Page Manager foi a base do módulo Panels .
O " Learn Page manager " é um conjunto de vídeos interessante (e incrível). Eles contêm vários tópicos relacionados ao módulo Painéis . Aqui está um resumo de todo o conjunto de vídeos sobre este tópico (citação no link acima):
- O gerenciador de páginas permite coletar e gerenciar informações contextuais de maneira flexível e consistente. É uma parte importante da construção de infraestrutura nos sites do Drupal e você deve saber como usar este módulo.
- A série de screencast é direcionada a desenvolvedores experientes do Drupal.
- Os episódios 1, 2 e 3 apresentam os conceitos mais básicos, como páginas personalizadas, variantes, regras de seleção e (até certo ponto) objetos contextuais.
- Os episódios 4, 5, 6 e 7 falam sobre painéis, com ênfase na integração do Views, mas também algumas palavras sobre o cache eficiente.
- Os episódios 8 e 9 sobre controle de acesso, itens de menu e, não menos importante, o pouco conhecido, mas muito útil módulo de Administração Contextual.
- Os episódios 10 e 11 falam mais sobre o uso de objetos contextuais no Gerenciador de páginas, incluindo o uso de Views como contexto. É aqui que está o poder real no Gerenciador de páginas.
- Os episódios 12 e 13 coletam vários bits e partes, como usar painéis para reorganizar facilmente o formulário de edição de nós, configurações de importação / exportação e alguns módulos extras que podem ser usados com o Gerenciador de páginas.
Consulte Explaining Panels: A Overview for Drupal Developers para obter outra excelente explicação sobre o módulo Panels.
No Drupal 8, o Page Manager se tornou um módulo separado, enquanto anteriormente (até o Drupal 7) fazia parte do módulo CTools . Aqui estão mais algumas citações da página do projeto (relacionada ao D8):
Ele suporta a criação de novas páginas e permite colocar blocos dentro dessa página.
Como o Gerenciador de páginas do Drupal 7, ele fornece um conceito de "variantes de página", cada uma com suas próprias condições de seleção.
Além disso, ele pode ser usado para assumir o controle de uma página existente, como overriding / node /% para alterar o que é exibido ao visualizar um nó.
Ele utiliza o núcleo
Conditions
,Context
eBlocks
APIs para alcançar este objetivo.