asp.net mvc - route - Construyendo un sitio con Orchard CMS
orchard cms docs (3)
Estoy en las primeras etapas de tratar de aprender Orchard, y parece que todavía estoy teniendo problemas con los conceptos básicos sobre cómo crear una página que contenga una multitud de contenidos diversos que puedan ser gestionados fácilmente por usuarios no técnicos.
Idealmente, lo que estoy tratando de hacer es lo siguiente, simplemente no puedo entender cómo encajarlo en la arquitectura de Orchard usando Tipos de Contenido, Partes, Campos, Widgets, Zonas, etc. Además, ya que todavía estoy aprendiendo , También estoy tratando de evitar cualquier módulo personalizado, o contenido codificado en el sitio (aunque estoy abierto a la idea, ¡si esa es la mejor manera de hacerlo!).
Objetivo: crear un diseño de "página de inicio" que contenga un menú, una presentación de diapositivas con imágenes y varias descripciones de funciones. Para cada imagen en la presentación de diapositivas, necesito un título, subtítulo, descripción y una imagen. Para facilitar la administración de los usuarios no técnicos, me gustaría definir la plantilla HTML (tipo de contenido personalizado, parte o lo que sea), y permitir a los autores especificar solo esas propiedades bien definidas. Intenté usar partes de contenido para esto, pero desafortunadamente, solo puedo tener una parte de contenido de un tipo en particular en una parte del contenido. También vi recomendaciones para crear múltiples partes de contenido con el mismo conjunto de propiedades, pero no sé cuántas imágenes se mostrarán (y no quiero asignar un número arbitrario).
Necesito hacer algo similar para las descripciones de las características, permitiendo a los autores especificar una imagen, título, descripción y una página para vincular. Tengo el mismo problema que el anterior, no estoy seguro de cómo permitir que los autores especifiquen una lista finita de contenido, pero que cada elemento de contenido esté bien definido.
Hasta ahora, la mejor opción parece ser crear algún tipo de widget personalizado para "alojar" el contenido, pero por alguna razón, mi instinto me dice que crear una capa personalizada para una sola página solo para especificar qué contenido mostrar está abusando del propósito de las capas, que es capaz de personalizar un diseño particular en función de algunos criterios (si el usuario está autenticado o no, por ejemplo).
Espero que eso haya tenido sentido, y me disculpo por haber tardado tantas palabras en explicar mi problema, realmente he alcanzado mi punto máximo de frustración, y aunque creo que los chicos de Orchard definitivamente lo han resuelto en términos de arquitectura, simplemente no puede superar estos problemas aparentemente simples para construir un sitio web simple.
¡Aprecio enormemente los consejos, sugerencias y consejos que esta comunidad tiene para ofrecer!
TIA, -Jeremy
Acabo de pasar por este escenario exacto yo mismo. Creo que lo que quieres se puede lograr usando Orchard Lists. El UX no es exactamente intuitivo para el usuario final, pero parece que es la forma más sencilla de lograr este objetivo sin instalar / desarrollar un módulo personalizado.
Primero, asegúrese de utilizar Orchard 1.4 porque necesitará el soporte incorporado para generar alternativas para los Widgets de Contenedor para cada zona. Habilitar el Shape tracing
, las Url alternates
y Widget alternates
módulos de Widget alternates
Ahora, cree una lista de elementos como se describe en la documentación (consulte http://docs.orchardproject.net/Documentation/Creating-lists ). Traduzca "reseña de libro" en "diapositiva" y "reseña de libro" en "diapositivas" y obtendrá la idea. Puede agregar campos personalizados para representar su subtítulo, descripción, etc. Simplemente mantendría la imagen como parte del contenido en lugar de crear un campo personalizado para él.
Si ha seguido los pasos de la documentación, ahora debería ver una lista de sus diapositivas representadas como ul/li
''s. Ahora querrá personalizar cómo se representan las cosas para que pueda mostrar sus campos personalizados y, en general, personalizar las etiquetas. Use el marcador de forma y cree alternativas para la lista como mejor le parezca. Ahora eres libre de controlar todo el renderizado. Consulte http://weblogs.asp.net/bleroy/archive/2011/03/27/taking-over-list-rendering-in-orchard.aspx y http://weblogs.asp.net/bleroy/archive/2011/05/23/orchard-list-customization-first-item-template.aspx para obtener ideas.
En realidad, administrar esta lista desde la perspectiva de su usuario final es bastante fácil, pero realmente no creo que sea muy intuitivo.
Me tomó tres días cavar a través de blogs y documentos para resolver esto por mí mismo.
Lo que definió en términos de Orchard es un Tipo de contenido llamado Característica.
- Vaya a Contenido -> Tipo de contenido y haga clic en Crear.
- Seleccione esas partes por defecto:
- Título, porque desea que sus autores proporcionen un buen título / nombre para las características
- Autoroute, que creará una URL amigable para SEO basada en el Título (se puede personalizar)
- Clic en Guardar
- Añadir campos específicos
- Subtítulo, de tipo TextField. Configúrelo a Predeterminado, Requerido.
- Descripción, de tipo TextField. Configúrelo a TextArea, Requerido.
- Imagen, de tipo Selector de medios. Configúrelo a Requerido.
- Puede agregar algunas sugerencias a cada campo, que se mostrarán en el editor de funciones para describir qué ingresar en cada campo. Muy útil para los autores.
Ahora puede crear Características haciendo clic en el enlace en la parte superior izquierda del Tablero. El siguiente paso es poner esas características en la página de inicio. Lo que sugiero es crear una Proyección que se configurará como la página de inicio. Una proyección es solo una página con una URL, que mostrará el resultado de una consulta como su contenido. La consulta en su caso será "Dame todas las funciones ordenadas por fecha de creación".
- En el panel, haga clic en Consultas.
- Haga clic en "Crear una nueva consulta"
- Introduzca "Todas las características"
- Haga clic en "Agregar un nuevo filtro"
- Seleccione Tipo de contenido, luego seleccione Característica, Guardar
- Haga clic en "Agregar un criterio de clasificación"
- Seleccione "Fecha de creación", luego descendente, Guardar
En este punto, ya puede obtener una vista previa del resultado de la consulta haciendo clic en Vista previa. Pero lo que queremos es una página de inicio.
Cree una nueva proyección haciendo clic en Proyección en la sección "Nuevo" del tablero (nuevamente en la parte superior izquierda) - Asígnele un título, y no olvide consultar "Establecer como página de inicio" para convertirla en la página de inicio - Seleccione el Sólo consulta disponible, llamada "Todas las características" - Guardar
En la página de inicio debería ver todas las características, ordenadas por fecha. Pero lo que quieres es un control deslizante. En ese momento, necesita dos pasos más: - Integrar un control deslizante jQuery plugin - Hacer que el HTML sea compatible con su complemento jQuery
De manera predeterminada, cuando renderiza una Proyección, usará el diseño estándar "Resumen". Pero con las proyecciones puede decidir exactamente qué diseño desea aplicar y exactamente qué etiquetas y clases html.
- Editar la consulta llamada "Todas las características"
- Añadir un nuevo diseño
- Seleccione la lista html
- Selecciona "Propiedades" y guarda
- Haga clic en Agregar propiedades
- Seleccione Mostrar texto, Guardar
- Hacer lo mismo para
- Característica: Subtítulo
- Característica: Descripción
- Característica: Imagen
- Guarda tu consulta
- Edite la proyección de la página de inicio y seleccione este diseño específico en lugar del predeterminado.
Verá que cada propiedad se representa en un contenedor html.
Al editar cada propiedad, puede decidir qué clase aplicar y qué etiqueta html usar. Al cambiarlos, puede representar exactamente lo que desea y personalizar su CSS / HTML para que muestre bien el control deslizante. Esto es simplemente su conocimiento de HTML que debe aplicar aquí, o encontrar algunos artículos al respecto.
Para sus editores, solo tienen que ir al panel de control y agregar / actualizar algunos elementos del contenido de la función, se reflejará en el sitio web.
Opcionalmente, hay un módulo Slider en la Galería Orchard. Puedes probar este también. Pero si quieres manejar exactamente qué sucede, la técnica que describí es mejor.
También recomendaría este módulo maravilloso llamado Slider de elementos destacados . Tiene todas las funcionalidades básicas de una presentación de diapositivas, incluidas todas las mencionadas en la pregunta, además de algunas capacidades adicionales fantásticas, como diferentes animaciones. También puede ajustar el diseño y el estilo proporcionando css adicional. Obtenga la fuente here . Y here está la presentación de diapositivas en acción. Si ya existe un módulo que proporciona la funcionalidad que está buscando, entonces es mejor usar eso en lugar de reinventar la rueda, a menos que lo haga con fines de aprendizaje.