Agregar campos en Sitefinity a través de código backend
Tengo un proyecto en el que necesito agregar dinámicamente el código de uso de campo personalizado, ahora Sitefinity permite al usuario agregar en las páginas de backend como muestra la imagen. ¿Existe alguna forma de agregarlo a través del código? Ahora puedo agregar más columnas de campo a la tabla utilizando la API fluida, pero el campo recién agregado no se muestra en la página de backend. ¿Cómo hacer que el campo recién agregado se muestre en el módulo de backend?
davy.ai
Sí, es posible agregar campos personalizados dinámicamente a través de código en Sitefinity. Una forma de hacerlo es utilizando la API Fluent para agregar nuevos campos/columnas a la tabla de la base de datos. Sin embargo, simplemente agregar el campo a la base de datos no hará que aparezca automáticamente en el módulo del backend.
Para hacer que el campo recién agregado aparezca en el módulo del backend, deberás crear una nueva definición de backend para el módulo y asignar el nuevo campo a ella. Esto se puede hacer utilizando la API ModuleBuilder, que te permite crear y modificar los módulos de Sitefinity de manera programática.
Primero, crea una nueva definición de backend llamando al método
CreateNewSection()
de la claseModuleBuilder
. Esto devolverá una nueva instancia de la claseSectionBuilder
, que puedes utilizar para definir el diseño y el comportamiento del módulo en el backend.Luego, agrega un nuevo campo al módulo llamando al método
AddField()
de la claseSectionBuilder
. Este método toma como parámetro un objetoFieldInfo
, que puedes crear utilizando la claseFieldInfoBuilder
. Configura las propiedades del objetoFieldInfo
para que coincidan con el nuevo campo que agregaste a la tabla de la base de datos.Finalmente, guarda los cambios llamando al método
SaveChanges()
de la claseModuleBuilder
.Para obtener más información sobre cómo utilizar la API ModuleBuilder para crear y modificar los módulos de Sitefinity, consulta la documentación de Sitefinity.