Skip to content

Menu compartilhado

Requisitos

  • Configurável;
  • Não pode ser removido por um autor;
  • Compartilhado entre uma página raiz e todas as páginas descendentes (filhas, netas, …), mesmo as que usarem page templates ou page components diferentes;
  • Editável apenas a partir da página raiz.

Solução passo a passo

  1. Adicionar um iparsys ao page template da página raiz e uma instância de menu a esse iparsys;
  2. Incluir, estaticamente, a instância de menu  no page component da página raiz;
  3. Criar um page template e um page component para páginas descendentes;
  4. Adicionar um iparsys vazio ao page template da página descendente, usando o mesmo nome do iparsys definido em (1);
  5. Incluir esse iparsys no page component da página descendente, configurando seu wcmmode para desabilitado;
  6. Você também pode precisar

Como funciona?

O iparsys se encarrega da herança de conteúdo entre uma página e suas páginas filhas. Como nós temos apenas uma instância de iparsys (aquela definida no template da página raiz), todas as páginas descendentes acabarão referenciando, exatamente, a mesma instância.

Ao incluir a instância do menu no page component da página raiz ao invés de incluir o iparsys que o contém, nós desabilitamos a capacidade do autor em mover/remover a instância do menu e a habilidade em adicionar mais componentes àquele iparsys.

Setar o wcmmode para disable, no page component da página descendente, é o suficiente para garantir que um autor não conseguirá quebrar ou sobreescrever a herança de iparsys.

Como de praxe, um projeto de exemplo pode ser encontrado no GitHub.

Seja o Primeiro a Comentar

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *