Estoy heredando una implementación existente de Sitecore que tiene grandes carpetas de contenido, todas usando la misma plantilla. Algunas de las carpetas contienen literalmente cientos de artículos. Las diferentes carpetas deberían ser de interés para diferentes tipos de Personas. Me gustaría no tener que ir artículo por artículo configurando las propiedades de Personas y Perfil para cada página individual. Idealmente, me gustaría ingresar a las propiedades solo una vez para una carpeta completa de artículos. ¿Cuál es la mejor práctica en un caso como este?Sitecore OMS: mejor práctica para la jerarquía de contenido
¿Debo crear una plantilla diferente para cada tipo de artículo? ¿O hay una forma de heredar estas propiedades de un elemento principal en el árbol de contenido?
Gracias
EDITAR
yo tuvimos una conversación en línea con John West, director de tecnología de EE.UU. Sitecore. Aquí están sus sugerencias para abordar este problema. Pensé en compartirlos aquí ya que otras personas podrían estar interesadas en resolver un problema similar.
No conozco ninguna solución existente para heredar estos valores, pero es probable que haya otros enfoques (tal vez similares al lenguaje alternativo).
Si el número de plantillas es relativamente pequeño, probablemente usaría el enfoque de plantillas: convierta la plantilla existente en una plantilla base para plantillas para todos los elementos existentes y actualice las opciones de inserción en consecuencia. No estaría de más poner estas cosas en carpetas, pero no heredarán estos valores de esa manera (podrías implementar algo que los heredara como se mencionó anteriormente). Uno de los beneficios aquí es que puede actualizar esos detalles en valores estándar, que se aplicarían a todos los artículos basados en esas plantillas.
Otra forma sería implementar algo así como diseño y ajustes preestablecidos de seguridad, pero para estos otros valores.
Hagas lo que hagas, asegúrate de que cuando el usuario crea un nuevo elemento, pueda aplicar fácilmente estas propiedades o se apliquen automáticamente.
Otra forma sería escribir un script que actualice los elementos existentes, pero eso no ayuda con los artículos futuros (a menos que haga algo como un controlador de guardar para aplicar los mismos valores automáticamente en la creación). Tal vez copie los valores de esa carpeta principal.
Me gustó la idea de añadir un campo booleano a la plantilla existente que controla si el artículo se supone que copiar los valores del perfil de su matriz directa y luego implementar un salvamento manejador de hacer la copia al establecer dicho campo a verdad Entonces le pregunté a John si había documentación sobre cómo construir tales manipuladores. Aquí está su especie respuesta:
Esto explica algunas de las maneras en que puede aprovechar para la creación/cambio de elemento para ajustar sus valores:
Asumo que usted podría utilizar un elemento Guardado controlador de eventos. Evito el elemento: manejadores creados porque si mi lógica falla, quiero que se ejecute nuevamente en el siguiente evento de guardar. En su caso, si estos campos están vacíos, es probable que desee establecer el valor.
Puede utilizar la fábrica para pasar los parámetros a su controlador de eventos para evitar la codificación.Por ejemplo, puede pasar el maestro de nombre de la base de datos (cancelar el controlador si el elemento guardado está en una base de datos diferente) y una lista de los ID de plantilla afectados. Entonces puede agregar plantillas más fácilmente a la lista en el futuro.
He aquí alguna información sobre eventos:
http://sdn.sitecore.net/Articles/API/Using%20Events.aspx
Esto incluye un ejemplo que utiliza un controlador de ahorrar:
Me gusta esto mejor. La otra solución requeriría un "guardar" para copiar los valores del padre al hijo. Su solución no requeriría eso. Un cambio en el padre sería inmediatamente visible por todos los niños marcados. –
No estoy muy familiarizado con esta parte de la API. ¿Puedes compartir algún enlace para comenzar (es decir, documentación de API, ejemplos, ...)? Gracias –