Skip to content

Patterns - comment ajouter / modifier

Ajouter / modifier un widget

Les widgets vivent dans Nanoxi.Content.Widgets, organises par categorie (Ad, Geo, Management, Multimedia, Social). Voir l'inventaire et l'anatomie dans ../modules/widgets.md.

  1. Creer la classe Widget<Nom>.cs dans la categorie adequate, heriter de BaseWidget (ou implementer IWidget / II18nWidget).
  2. Brancher le rendu cote vue : macro Umbraco (partial view MVC ou UserControl WebForms) selon le widget.
  3. Si le widget porte du style, ajouter le LESS correspondant dans design/v2/<skin>/Skins/Default/Widgets/ (ou Webparts/) et recompiler avec Grunt.
  4. Cote contenu/backoffice, le document type et la config eventuelle sont injectes par les scripts SQL data/ et/ou l'API d'install (voir plus bas).

Ajouter un module framework (Nanoxi.App.* ou Nanoxi.Content.*)

  1. Creer le projet .csproj (net48) et l'ajouter a StarterKit_base.sln.
  2. Respecter le nommage : Nanoxi.App.* (framework) ou Nanoxi.Content.* (contenu).
  3. Versionner via src/SharedAssemblyInfo.cs (partage par tous les assemblies).
  4. postBuildAction.ps1 copie les DLLs compilees vers website/bin : verifier que le nouveau projet y est pris en compte.

Ajouter un controller / une action MVC

  • Coeur : src/Nanoxi.App.Mvc/Controllers/ (SurfaceControllers Umbraco pour les POST de formulaire, RenderMvcControllers pour le rendu).
  • API REST : src/Nanoxi.App.Api/Controllers/ (Web API, ex. ArticleController, EventController, PdfController).
  • Vues : Nanoxi.App.Mvc/Views_v2/ (et Views_v1/ pour le legacy).

Ajouter un nouveau client (skin)

Procedure resumee (detail dans ../domain/workflows.md et ../modules/multi-tenant-skins.md) :

  1. Creer la base SQL umbracoCMS_<skin> + l'utilisateur UmbracoUser_<skin> (script dans Readme.md).
  2. Ajouter le client aux metadonnees doc/StarterKitv2_InfosTechniques.xlsx (active/desactive le shop, etc.).
  3. Generer la config via l'outil Nanoxi.Builder, deposer le resultat dans prodconfig/<skin>/.
  4. Creer le design design/v2/<skin>/ (souvent en copiant un skin existant) avec son Gruntfile.
  5. Si besoin de code propre : creer src/Nanoxi.Customization/<Skin>/ + StarterKit_<skin>.sln.
  6. Injecter la structure de base : passer les scripts data/01.Scratch, puis appeler l'API /Umbraco/Api/StarterKit/Install.

API d'installation / mise a jour du StarterKit

L'installation et la migration de la structure de contenu passent par l'API Web :

  • StarterKitController + StarterKitController_Create / _Method : creation des elements de base (/Umbraco/Api/StarterKit/Install).
  • StarterKitController_Upgrade : migrations versionnees (/Umbraco/Api/StarterKit/Upgrade). A chaque nouvelle release, ajouter une etape d'upgrade ici (cf. Readme.md).
  • Pour des elements propres a un client, prevoir une classe Nanoxi.App.Api.Install.Install<ClientName>.

Scripts SQL (structure & donnees)

L'ordre des dossiers data/ est significatif : 00.CleanDB -> 01.Scratch (structure de base) -> 02.Customer -> 03.Patch -> 04.PostInstall -> 06.Shop -> 07.Translation -> 08.Sql. Voir ../modules/content-model.md.

Code client (customization)

Un client peut comporter ces sous-projets sous src/Nanoxi.Customization/<Skin>/ : Mvc (controllers, vues, ApplicationEvent, util), Data, Widgets, Module, Backend. Ils sont references par StarterKit_<skin>.sln et compiles par Build-Customer. Exemple metier complet : le devis Swiss Cocktails (Morand), documente dans ReadmeCustomer.md.

Contributors

No contributors

Changelog

No recent changes