Git & Web-design: event handling múltiples templates personalizadas

Estoy desarrollando un CMS (con Django, pero eso no importa) y he elegido GIT.

Las instalaciones variarán en:

  • Configuraciones
  • Contenidos de la base
  • Medios de comunicación
  • Plantillas

Los primeros 3 no son un problema con git: simplemente no los necesitamos 🙂

Mientras desarrollo, tengo 1 plantilla pnetworkingeterminada con medios relacionados. Más tarde, cada cliente recibirá su propio layout basado en templates pnetworkingeterminadas (algunas pequeñas personalizaciones).

No voy a admitir cada una de las templates personalizadas a medida que presento nuevas funciones. La modularidad ayuda con esto, pero no es una solución al 100%.

¿Tienes alguna experiencia para compartir?


Ejemplo: Actualmente, v0.1 rocks: tiene una plantilla 'pnetworkingeterminada' y 10 personalizadas: una por cliente.

Ahora, en CMS v0.2 aparecieron algunas características nuevas: por ejemplo, un cuadro de inicio de session. Lo probé en la plantilla 'pnetworkingeterminada', funciona muy bien y estoy orgulloso de ello 🙂 Ahora, los 10 clientes quieren tener esa gran e innovadora caja de inicio de session. ¿Realmente tengo que actualizar todas las 10 templates personalizadas manualmente?

De la forma en que lo veo, esencialmente tienes dos opciones:

  1. Dile a git que ignore el directory de templates, y git clone el repository para cada cliente nuevo, y luego crea las templates individuales para cada uno de ellos. El CMS lee en el set de templates y muestra la página.
  2. Cada cliente obtiene su propio subdirectory de templates y usted pone las templates allí. Luego, su CMS puede cargar las templates relevantes dependiendo de la URL entrante o una configuration, o alguna otra cosa.

Ahora, para elegir, hay varios aspectos de esto que debes tener en count:

  • ¿Vas a dar acceso a git a tus clientes?
  • ¿Va a tener una instancia única de la aplicación para todos sus clientes (y no creará una instancia para cada uno de sus clientes)?
  • ¿Va a hospedar la (s) aplicación (s) usted mismo (y no dejar que el cliente aloje la suya)?

Si la respuesta es sí a alguna de las preguntas, use la primera opción. Probablemente no desee que los clientes vean / tengan acceso a las templates de sus otros clientes.

Si la respuesta es no a todo eso, entonces examine su propio flujo de trabajo y use lo que crea que le resultará más fácil de mantener. Probablemente elegiría la segunda opción, ya que solo tendrías que preocuparte por una base de código cuando actualiza tu aplicación, así como por el beneficio adicional de tener control de versión en las templates.