net - umbraco tv
Extendiendo el tablero de umbraco. (2)
Me gustaría agregar mi propia sección al panel de control de umbraco para poder integrar mi propia pieza de administrador a la estructura de inicio de sesión / administración existente. ¿Es esto posible sin editar y recompilar la propia fuente de umbraco? ¿Se recomienda? Si es así, ¿alguien tiene recursos para comenzar a hacer esto?
¡Guauu! La publicación de 7 años sigue siendo superior en la búsqueda de google.
Así que vamos a actualizar la respuesta:
Aquí puede encontrar la documentación para Extender Dashboard: Dashboards
Tablero
Al igual que con los otros archivos .config en el directorio / config, el archivo Dashboard.config le permite personalizar una parte de la experiencia de Umbraco. En este caso, el archivo Dashboard.config controla lo que aparece en la sección Panel de la interfaz de usuario cuando se carga una sección del sitio. El Tablero es el área en el lado derecho de la interfaz de usuario donde se lleva a cabo la mayor parte de la entrada de datos y la interacción funcional.
De forma predeterminada, Umbraco muestra un Tablero en blanco cuando se carga una nueva sección y solo muestra un formulario cuando toma medidas dentro de la sección (es decir, cuando hace clic en un nodo en la sección Contenido, el Tablero muestra el formulario para actualizar los datos de ese nodo). ¿Pero qué sucede si desea presentar a sus usuarios de UI algunas opciones incluso antes de que hagan clic en un nodo? Bueno, eso es lo que Dashboard.config te permite hacer.
Diseño
Al igual que los otros archivos .config, Dashboard.config es un archivo XML simple con un diseño bastante sencillo como se ve a continuación.
<?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>
Sección (diferente de la sección UI de Umbraco) Delimita la información del panel de control para aplicarla a una o más secciones. El Dashboard.config puede incluir varias secciones.
Áreas
Define a qué secciones de la interfaz de usuario de Umbraco aplicar el subconjunto de información del panel de control. área - Siempre en minúsculas!
El nombre * de la Sección de UI de Umbraco donde desea que se muestre su control de usuario (por ejemplo, contenido, medios, desarrollador, configuración, miembros o un nombre de sección personalizado). Puede agregar sus controles a más de una sección agregando múltiples nodos.
El área con el nombre ''predeterminado'' es el primer panel que se muestra cuando un usuario inicia sesión, sin importar a qué secciones tenga acceso el usuario.
Un poco, ¡asegúrate de incluir el nombre de tu aplicación en minúsculas!
Lengüeta
Define una pestaña de página a la que desea que se agregue el control de usuario. El atributo ''título'' define el texto que se muestra en la pestaña. Puede haber varias pestañas para cada control de "página" del Panel de control
Define la ruta al control de usuario que desea que se muestre en una pestaña.
El elemento hace posible establecer permisos en secciones, pestañas y controles y puede otorgar o denegar el acceso a ciertos tipos de usuarios.
Funciona agregando un nodo <access/>
debajo de un nodo <section />
, <tab/>
o <control />
. Como hijos de ustedes pueden agregar
<grant />
que otorga permisos a esos tipos de usuarios (¡Y automáticamente niega el acceso a aquellos que no están allí!)
<grantBySection />
que otorga permisos a aquellos usuarios que obtuvieron acceso a secciones específicas. Esto puede ser útil para permisos más granulares.
<deny />
que niega permisos a esos tipos de usuarios (Y otorga automáticamente a todos los demás)
No importa la configuración, el usuario raíz (id: 0) puede ver todo, así que no se preocupe si configura los permisos de denegación para los administradores y aún puede ver todo ;-)
Ejemplo de permisos:
<tab caption="Last Edits">
<access>
<grant>writer</grant>
<grant>editor</grant>
<grantBySection>content</grantBySection>
</access>
<control>/usercontrols/dashboard/latestEdits.ascx</control>
</tab>
Personalización
Para personalizar el tablero de mandos en Umbraco, uno necesita hacer un par de cosas. Crear uno o más UserControls
El Panel de control carga uno o más UserControls y los muestra en una serie de pestañas. Entonces, para personalizar el control, primero se deben crear los UserControls que se mostrarán en la página. Si son para su uso personal, simplemente coloque los UserControls en una ubicación de su sitio a la que pueda acceder Umbraco. Se recomienda que los coloque en el directorio / usercontrol, preferiblemente en su propia subcarpeta. Si está creando un paquete para que otros lo utilicen, debe incluir los controles de usuario en el paquete para instalarlo con el resto del contenido del paquete. Actualice el Dashboard.config
Una vez que haya creado los UserControls que desea cargar cuando se carga una sección, debe actualizar el Dashboard.config para decirle a Umbraco que cargue los UserControls cuando un usuario ingrese a una nueva sección. Nuevamente, si está haciendo esto por sí mismo, todo lo que necesita hacer es editar el Dashboard.config en su sitio para agregar los controles. Sin embargo, si está agregando una sección para ir con un paquete, deseará incluir una Acción de paquete para actualizar el Dashboard.config durante la instalación. Haga clic aquí para obtener más información sobre las acciones del paquete. Muestra
A continuación se muestra un ejemplo de un Dashboard.config válido:
<?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>
Lo que esto hace es que cada vez que un usuario hace clic en la sección Contenido de la interfaz de usuario de Umbraco (las secciones se encuentran en la parte inferior izquierda de la pantalla), carga una página con tres pestañas llamadas "Últimas ediciones", "Últimos elementos" y "Crear blog". enviar". Para cada pestaña, se carga un UserControl para proporcionar la funcionalidad que el desarrollador creó para esas pestañas. La interfaz de usuario encuentra los UserControls a través de las rutas proporcionadas.
Sí, esto es posible.
El backend se puede ampliar tanto en términos de panel de control, secciones y árboles de contenido.
Hay un archivo de configuración que puede utilizar para definir nuevas secciones del panel. El archivo de configuración se puede encontrar en la siguiente carpeta: /config/dashboard.config
Normalmente, el archivo dashboard.config tiene un ejemplo de XML de cómo se debe estructurar, que se parece a esto (lo he ampliado un poco para mostrar más características).
<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>
El nodo de sección le permite configurar diferentes grupos de pestañas para diferentes secciones de administración. En el ejemplo anterior, las pestañas Últimas ediciones, Últimos elementos y Crear entrada de blog se aplicarán a las secciones predeterminadas, miembros y contenido. La configuración predeterminada es lo primero que ve el usuario al iniciar sesión en el back-end antes de seleccionar una sección.
Para controlar lo que se ve en las diferentes secciones, configura un nuevo nodo de sección y define a qué área se aplica y la pestaña que se mostrará. En el ejemplo anterior, la segunda sección se aplica solo a la sección de medios.
Lo que se muestra en la pestaña es un control de usuario .NET normal. Esto puede ser totalmente independiente de Umbraco o puede contener un código específico de umbraco, dependiendo de si está integrando una aplicación heredada o simplemente extendiendo umbraco.
Si desea crear una nueva sección (uno de los íconos que aparece en la esquina inferior izquierda del backend de umbraco), deberá ensuciarse un poco las manos.
Para agregar una sección necesita agregar un par de entradas de base de datos. Primero necesitas definir la aplicación en la tabla umbracoApp.
Luego agregue una entrada a umbracoUsers2App para el usuario administrador (0).
Luego, deberá definir un nuevo árbol de contenido y crear los controles de usuario de soporte.
Hay más información sobre cómo configurar esto aquí: http://www.geckonewmedia.com/blog/2009/8/3/how-to-create-a-custom-section-in-umbraco-4
El primer enfoque (solo definir algunas pestañas nuevas) es considerablemente más sencillo que agregar una nueva sección, por lo que te recomiendo que empieces con eso. Luego, cuando esté más cómodo, puede sumergirse y crear secciones y árboles de contenido completamente nuevos.