Personalização da criação de página customizing-page-authoring
O AEM fornece vários mecanismos para permitir a personalização da funcionalidade de criação de página (e o consoles) da sua instância de criação.
-
Clientlibs
Clientlibs permitem estender a implementação padrão para realizar novas funcionalidades, enquanto reutiliza as funções, objetos e métodos padrão. Ao personalizar, você pode criar sua própria clientlib em
/apps.
A nova clientlib deve:- dependa da clientlib de criação
cq.authoring.editor.sites.page
- fazer parte do
cq.authoring.editor.sites.page.hook
categoria
- dependa da clientlib de criação
-
Sobreposições
As sobreposições são baseadas nas definições de nó e permitem que você sobreponha a funcionalidade padrão (em
/libs
) com sua própria funcionalidade personalizada (em/apps
). Ao criar uma sobreposição, não é necessária uma cópia 1:1 do original, já que fusão de recursos sling permite herança.
Elas podem ser usadas de várias maneiras para estender a funcionalidade de criação de página na sua instância do AEM. Uma seleção é abordada abaixo (em um nível alto).
- Uso e criação clientlibs.
- Uso e criação sobreposições.
- Granite
- Estrutura da interface de usuário habilitada para toque do AEM para obter detalhes sobre as áreas estruturais usadas para criação de página.
/libs
caminho./libs
O é substituído na próxima vez que você atualizar sua instância (e pode ser substituído quando você aplicar um hotfix ou pacote de recursos).- Recrie o item necessário (ou seja, como ele existe em
/libs
)/apps
- Faça quaisquer alterações no
/apps
Adicionar nova camada (modo) add-new-layer-mode
Quando você edita uma página, há várias modos disponível. Esses modos são implementados usando camadas. Eles permitem o acesso a diferentes tipos de funcionalidade para o mesmo conteúdo da página. As camadas padrão são: editar, visualizar, anotar, desenvolvedor e definição de metas.
Exemplo de camada: Status da Live Copy layer-example-live-copy-status
Uma instância de AEM padrão fornece a camada MSM. Isso acessa dados relacionados a gerenciamento de vários sites e o destaca na camada.
Para vê-lo em ação, você pode editar qualquer Cópia de idioma We.Retail e selecione a página (ou qualquer outra página de Live Copy) Status da Live Copy modo.
Você pode encontrar a definição de camada do MSM (para referência) em:
/libs/wcm/msm/content/touch-ui/authoring/editor/js/msm.Layer.js
Amostra de código code-sample
Este é um pacote de amostra que mostra como criar uma nova camada (modo), que é uma nova camada para a exibição MSM.
CÓDIGO NO GITHUB
Você pode encontrar o código desta página no GitHub
- Abra o projeto aem-authoring-new-layer-mode no GitHub
- Baixe o projeto como um arquivo ZIP
Adicionar nova categoria de seleção ao navegador de ativos add-new-selection-category-to-asset-browser
O navegador de ativos mostra ativos de vários tipos/categorias (por exemplo, imagem, documentos etc.). Os ativos também podem ser filtrados por essas categorias de ativos.
Amostra de código code-sample-1
aem-authoring-extension-assetfinder-flickr
é um pacote de amostra que mostra como adicionar um novo grupo ao localizador de ativos. Este exemplo se conecta a FlickrO fluxo público do e o exibe no painel lateral.
CÓDIGO NO GITHUB
Você pode encontrar o código desta página no GitHub
- Abra o projeto aem-authoring-extension-assetfinder-flickr no GitHub
- Baixe o projeto como um arquivo ZIP
Filtrar recursos filtering-resources
Ao criar páginas, o usuário geralmente deve selecionar entre os recursos (por exemplo, páginas, componentes, ativos etc.). Isso pode assumir a forma de uma lista, por exemplo, da qual o autor deve escolher um item.
Para manter a lista em um tamanho razoável e também relevante para o caso de uso, um filtro pode ser implementado na forma de um predicado personalizado. Por exemplo, se a variável pathbrowser
Granite é usado para permitir que o usuário selecione o caminho para um recurso específico, os caminhos apresentados podem ser filtrados da seguinte maneira:
- Implementar o predicado personalizado ao implementar
com.day.cq.commons.predicate.AbstractNodePredicate
interface. - Especifique um nome para o predicado e faça referência a esse nome ao usar a variável
pathbrowser
.
Para obter mais detalhes sobre como criar um predicado personalizado, consulte este artigo.
com.day.cq.commons.predicate.AbstractNodePredicate
A interface do também funciona na interface clássica.Adicionar nova ação a uma barra de ferramentas de componentes add-new-action-to-a-component-toolbar
Cada componente (geralmente) tem uma barra de ferramentas que fornece acesso a uma variedade de ações que podem ser executadas nesse componente.
Amostra de código code-sample-2
aem-authoring-extension-toolbar-screenshot
é um pacote de amostra que mostra como criar uma ação personalizada da barra de ferramentas para renderizar componentes.
CÓDIGO NO GITHUB
Você pode encontrar o código desta página no GitHub
- Abra o projeto aem-authoring-extension-toolbar-screenshot no GitHub
- Baixe o projeto como um arquivo ZIP
Adicionar novo editor no local add-new-in-place-editor
Editor no local padrão standard-in-place-editor
Em uma instalação padrão do AEM:
-
/libs/cq/gui/components/authoring/editors/clientlibs/core/js/editors/editorExample.js
Mantém definições dos vários editores disponíveis.
-
Há uma conexão entre o editor e cada tipo de recurso (como no componente) que pode usá-lo:
-
cq:inplaceEditing
por exemplo:
-
/libs/foundation/components/text/cq:editConfig
-
/libs/foundation/components/image/cq:editConfig
-
propriedade:
editorType
Define o tipo de editor em linha que será usado quando a edição no local for acionada para esse componente; por exemplo
text
,textimage
,image
,title
.
-
-
-
-
Detalhes adicionais de configuração do editor podem ser configurados usando um
config
nó contendo configurações, bem como um outroplugin
nó para conter os detalhes necessários da configuração do plug-in.Veja a seguir um exemplo de definição de taxas de proporção para o plug-in de corte de imagem do componente de imagem. Observe que devido ao potencial do tamanho de tela muito limitado, as proporções do corte de corte foram movidas para o editor de tela cheia e só podem ser vistas lá.
code language-xml <cq:inplaceEditing jcr:primaryType="cq:InplaceEditingConfig" active="{Boolean}true" editorType="image"> <config jcr:primaryType="nt:unstructured"> <plugins jcr:primaryType="nt:unstructured"> <crop jcr:primaryType="nt:unstructured"> <aspectRatios jcr:primaryType="nt:unstructured"> <_x0031_6-10 jcr:primaryType="nt:unstructured" name="16 : 10" ratio="0.625"/> </aspectRatios> </crop> </plugins> </config> </cq:inplaceEditing>
note caution CAUTION Observe que, em AEM proporções de corte, conforme definido pela variável ratio
, são definidas como altura/largura. Isso difere da definição convencional de largura/altura e é feita por motivos de compatibilidade de legado. Os usuários da criação não estarão cientes de qualquer diferença desde que você defina a variávelname
claramente, já que isso é exibido na interface do usuário.
Criação de um novo editor no local creating-a-new-in-place-editor
Para implementar um novo editor no local (na clientlib):
/libs/cq/gui/components/authoring/editors/clientlibs/core/js/editors/editorExample.js
-
Implementar:
setUp
tearDown
-
Registre o editor (inclui o construtor):
editor.register
-
Forneça a conexão entre o editor e cada tipo de recurso (como no componente) que pode usá-lo.
Amostra de código para criar um novo editor no local code-sample-for-creating-a-new-in-place-editor
aem-authoring-extension-inplace-editor
é um pacote de amostra que mostra como criar um novo editor no local no AEM.
CÓDIGO NO GITHUB
Você pode encontrar o código desta página no GitHub
- Abra o projeto aem-authoring-extension-in-place-editor no GitHub
- Baixe o projeto como um arquivo ZIP
Configuração de vários editores no local configuring-multiple-in-place-editors
É possível configurar um componente para que ele tenha vários editores no local. Quando vários editores no local estiverem configurados, você poderá selecionar o conteúdo apropriado e abrir o editor apropriado. Consulte a Configuração de vários editores no local documentação para obter mais informações.
Adicionar uma nova ação de página add-a-new-page-action
Para adicionar uma nova ação de página à barra de ferramentas da página, por exemplo, uma Voltar aos sites (console).
Amostra de código code-sample-3
aem-authoring-extension-header-backtosites
é um pacote de exemplo que mostra como criar uma ação personalizada da barra de cabeçalho para saltar de volta para o console Sites .
CÓDIGO NO GITHUB
Você pode encontrar o código desta página no GitHub
- Abra o projeto aem-authoring-extension-header-backtosites no GitHub
- Baixe o projeto como um arquivo ZIP
Personalização do fluxo de trabalho da solicitação de ativação customizing-the-request-for-activation-workflow
O fluxo de trabalho pronto para uso, Solicitação de ativação, é acionado automaticamente quando um autor de conteúdo não tem os direitos de replicação apropriados.
Para ter um comportamento personalizado nessa ativação, você pode sobrepor o Solicitação de ativação fluxo de trabalho:
-
Em
/apps
sobreponha a Sites assistente:/libs/wcm/core/content/common/managepublicationwizard
note note NOTE Isso mesmo substitui a instância comum de: /libs/cq/gui/content/common/managepublicationwizard
-
Atualize o modelo de fluxo de trabalho e configurações/scripts relacionados, conforme necessário.
-
Remova o direito do
replicate
ação de todos os utilizadores apropriados para todas as páginas relevantes; para que esse fluxo de trabalho seja acionado como uma ação padrão quando qualquer um dos usuários tentar publicar (ou replicar) uma página.