Pergunta

Gostaria de adicionar minha própria seção ao painel Umbraco para que eu possa integrar minha própria peça de administrador à estrutura de login/administrador existente. Isso é possível sem editar e recompilar a própria fonte de Umbraco? É recomendado? Se sim, alguém tem recursos para começar a fazer isso?

Foi útil?

Solução

Sim, isso é possível.

O back -end pode ser estendido tanto em termos de Dascoard, seções e árvores de conteúdo.

Existe um arquivo de configuração que você pode usar para definir novas seções do painel. O arquivo de configuração pode ser encontrado na seguinte pasta: /config/dashboard.config

Normalmente, o arquivo Dashboard.Config tem algum exemplo XML de como ele precisa ser estruturado, o que se parece com isso (eu o ampliei um pouco para mostrar mais dos recursos).

<dashBoard>
    <section>
        <areas>
            <area>default</area>
            <area>content</area>
            <area>member</area>
        </areas>

        <tab caption="Last Edits">
            <control>/usercontrols/dashboard/latestEdits.ascx</control>
        </tab>
        <tab caption="Latest Items">
            <control>/usercontrols/dashboard/newestItems.ascx</control>
        </tab>
        <tab caption="Create blog post">
            <control>/usercontrols/umbracoBlog/dashboardBlogPostCreate.ascx</control>
        </tab>
    </section>
    <section>
        <areas>
            <area>media</area>
        </areas>

        <tab caption="Last Edits">
            <control>/usercontrols/dashboard/latestEdits.ascx</control>
        </tab>
    </section>
</dashBoard>

O nó da seção permite configurar diferentes grupos de guias para diferentes seções de administrador. No exemplo acima das edições mais recentes das guias, os itens mais recentes e a postagem do blog Crie serão aplicados às seções padrão, membro e conteúdo. DeFaut é a primeira coisa que o usuário vê ao fazer login no back -end antes de selecionar uma seção.

Para controlar o que é visto nas diferentes seções, você configura um novo nó de seção e define a qual área se aplica e a guia para mostrar. No exemplo acima, a segunda seção se aplica apenas à seção de mídia.

O que é exibido na guia é um controle do usuário .NET normal. Isso pode ser totalmente separado de Umbraco ou pode conter código específico da Umbraco, dependendo de se você está integrando um aplicativo legado ou simplesmente estendendo a Umbraco.

Se você deseja criar uma nova seção (um dos ícones que aparece no canto inferior esquerdo do back -end de Umbraco), precisará deixar as mãos um pouco mais sujas.

Para adicionar uma seção, você precisa adicionar algumas entradas de banco de dados. Primeiro, você precisa definir o aplicativo na tabela UmbracoApp.

Em seguida, adicione uma entrada ao Umbracousers2App para o usuário administrador (0).

Você precisará definir uma nova árvore de conteúdo e criar os controles do usuário de suporte.

Há mais informações sobre como configurar isso aqui: http://www.geckonewmedia.com/blog/2009/8/3/how-to-create--custom-section-in-umbraco-4

A primeira abordagem (apenas definindo algumas novas guias) é consideravelmente mais fácil do que adicionar uma nova seção, então eu recomendo que você comece com isso. Então, quando você se sentir mais confortável, pode mergulhar e criar novas seções e árvores de conteúdo!

Outras dicas

Uau! A postagem de 7 anos ainda está no topo da pesquisa do Google.

Então, vamos atualizar a resposta:

Aqui você pode encontrar a documentação para estender o painel:Painéis

Painel

Assim como os outros arquivos .config no diretório /config, o arquivo Dashboard.config permite personalizar uma parte da experiência da Umbraco. Nesse caso, o arquivo Dashboard.Config controla o que aparece na seção do painel da interface do usuário quando uma seção do site carrega. O painel é a área no lado direito da interface do usuário, onde ocorre a maior parte da entrada de dados e a interação funcional.

Por padrão, o Umbraco mostra um painel em branco quando uma nova seção carrega e mostra apenas um formulário quando você age dentro da seção (ou seja, quando você clica em um nó na seção de conteúdo, o painel mostra o formulário para atualizar os dados desse nó). Mas e se você quisesse apresentar aos usuários da interface do usuário algumas opções antes mesmo de clicar em um nó? Bem, é isso que o painel.config permite que você faça.

Layout

Como o outro painel de arquivos .config.config é um arquivo XML simples com um layout bastante direto, como visto abaixo.

<?xml version="1.0" encoding="utf-8" ?> 
<dashBoard> <!-- root of the dashboard xml tree -->
   <section>  <!-- defines a dashboard layout for a group of sections -->
        <areas> <!-- Declares which sections (i.e. content,media,users,[your own]-->
            <area>[area name]</area> <!-- A section to apply this to -->
            ...
        </areas>

        <tab caption="[caption]"> <!-- Creates a tab in the Dashboard with the assigned Caption -->
            <control>[path]</control> <!-- What control to load in that tab -->
        </tab>
        ...
   </section>
   ...
</dashBoard>

Seção (diferente de uma seção UI UI Umbraco) delimita as informações do painel para aplicar a uma ou mais seções. O painel.config pode incluir várias seções.

Áreas

Define em quais seções da interface do usuário Umbraco aplicar o subconjunto de informações do painel. Área - Sempre minúscula!

O nome* da seção Umbraco UI, onde você deseja que o controle do usuário seja exibido (por exemplo, conteúdo, mídia, desenvolvedor, configurações, membros ou um nome de seção personalizado). Você pode adicionar seus controles a mais de uma seção adicionando vários nós.

A área com o nome 'Padrão' é o primeiro painel mostrado quando um usuário login, independentemente de quais seções o usuário tem acesso!

Um pouco de petcha, certifique -se de incluir o nome do seu aplicativo em minúsculas!

Aba

Define uma guia Página à qual você gostaria que seu controle do usuário seja adicionado. O atributo 'Legenda' define o texto exibido na guia. Pode haver várias guias para cada controle de "página" do painel

Define o caminho para o controle do usuário que você gostaria de ser exibido em uma guia.

O elemento possibilita definir permissões em seções, guias e controles e você pode conceder ou negar um acesso de determinados usuários.

Funciona adicionando um <access/> nó sob um <section />, <tab/> ou <control /> nó. Como crianças de vocês podem adicionar

<grant /> que concede permissões a esses tipos de usuários (e negam automaticamente o acesso àqueles que não estão lá!)

<grantBySection /> que concede permissões aos usuários que obtiveram acesso a seções específicas. Isso pode ser útil para mais permissões granulares

<deny /> que nega permissões a esses tipos de usuários (e concede automaticamente a todos os outros)

Independentemente das configurações, o usuário raiz (ID: 0) pode ver tudo, então não entre em pânico se você definir permissões negativas para os administradores e ainda conseguir ver tudo ;-)

Exemplo de permissões:

<tab caption="Last Edits">
    <access>
        <grant>writer</grant>
        <grant>editor</grant>
        <grantBySection>content</grantBySection>
    </access>
    <control>/usercontrols/dashboard/latestEdits.ascx</control>
</tab>

Personalização

Para personalizar o painel em Umbraco, é preciso fazer algumas coisas. Crie um ou mais UserControls

O painel carrega um ou mais UserControls e os exibe em uma série de guias. Portanto, para personalizar o controle, é preciso primeiro criar os UserControls que devem ser exibidos na página. Se estes forem para o seu uso pessoal, você pode apenas colocar os UserControls em um local no seu site que pode ser acessado pela Umbraco. Recomenda -se que você os coloque no diretório /userControl, de preferência em sua própria subpasta. Se você estiver criando um pacote para que outras pessoas usem, inclua os UserControls no pacote para instalar com o restante do conteúdo do pacote. Atualize o painel.config

Depois de criar os UserControls que você deseja carregar quando uma seção carregar, você deve atualizar o painel.config para dizer ao Umbraco para carregar seus userControls quando um usuário inserir uma nova seção. Novamente, se você estiver fazendo isso por si mesmo, tudo o que precisa fazer é editar o painel.config no seu site para adicionar os controles. No entanto, se você estiver adicionando uma seção para acompanhar um pacote, você desejará incluir uma ação do pacote para atualizar o painel.config durante a instalação. Clique aqui para obter mais informações sobre ações do pacote. Amostra

Abaixo está um exemplo de um painel válido.config:

<?xml version="1.0" encoding="utf-8" ?> 
<dashBoard>
    <section>
        <areas>
            <area>content</area>
        </areas>        
        <tab caption="Last Edits">
            <access>
                <deny>editor</deny>
            </access>
            <control>/usercontrols/dashboard/latestEdits.ascx</control>
        </tab>
        <tab caption="Latest Items">
            <control>/usercontrols/dashboard/newestItems.ascx</control>
        </tab>
        <tab caption="Create blog post">
            <control>/usercontrols/umbracoBlog/dashboardBlogPostCreate.ascx</control>
        </tab>
    </section>
</dashBoard>

O que isso faz é sempre que um usuário clica na seção de conteúdo da interface do usuário Umbraco (as seções estão no canto inferior esquerdo da tela), carrega uma página com três guias chamadas "Last Edits", "mais recentes itens" e "Criar blog publicar". Para cada guia, um UserControl é carregado para fornecer a funcionalidade que o desenvolvedor criou para essas guias. A interface do usuário encontra os UserControls através dos caminhos fornecidos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top