Patterns - comment ajouter / modifier
Ajouter un nouveau client (skin)
- Creer le dossier code
src/Nanoxi.Cms.Custom/<Client>/(sous-projetsData,Mvc, etShopsi e-commerce). - Creer la solution client
src/Nanoxi.Cms.Custom/StarterKitv3_<skin>.sln(referencee par la cibleBuild-Customer). - Creer les sources design
design/v2/<skin>/(Gruntfile.js +Skins/), modelees sur un client existant. - Ajouter une entree pour le skin dans
doc/StarterKitv3_InfosTechniques.json(langues, URL, shop on/off, modules, widgets). Le build valide ce JSON contreStarterKitv3_InfosTechniques_Schema.json. - Creer la config de production
prodconfig/<skin>/(transforms Web.config, licence). - Builder :
.\build.ps1 --target="Review-App" --skin="<skin>".
Voir ../modules/customer-skins.md.
Activer le shop pour un client
- Dans
doc/StarterKitv3_InfosTechniques.json, passer le moduleShopaisActif: truepour le skin (IsShopEnabled()lit cette valeur). - Le build compilera alors
StarterKitv3_shop.sln(Build-Shop), installera uCommerce (Install-uCommerce) et fera les postbuild shop. - Code shop custom du client dans
src/Nanoxi.Cms.Custom/<Client>/Shop/.
Voir ../modules/shop-ecommerce.md.
Ajouter un widget (contenu base)
Les widgets vivent dans Nanoxi.Cms.Base.Content.Widget. Un widget = logique (controller/handler MVC ou WebForms), une vue, et la declaration dans la config Umbraco (document types / data types). Le rendu suit le modele hybride WebForms+MVC d'Umbraco 7. Cote design, ajouter le LESS correspondant dans le skin et compiler via Grunt.
Ajouter / modifier l'acces a une table custom (petaPoco)
- Les tables custom sont prefixees
nanoxi_*. - L'acces se fait via petaPoco (ORM Umbraco). Exemple existant :
nanoxi_IchMatchingGlobalMedia(synchro IEDS). - Le schema doit etre cree : ajouter le script SQL adequat dans
db/oudata/, ou via les migrations (Nanoxi.Cms.Base.App.Migrations,migrations-spk/).
IoC
- Service CMS : enregistrer dans la configuration Autofac (
App.Ioc.Configuration/App.Ioc.Models). - Service shop / pipeline uCommerce : enregistrer dans le conteneur Castle Windsor (
Shop.Synchronization.SynchroWindsorContaineret configs uCommerce).
Mettre a jour Umbraco
A CHAQUE mise a jour d'Umbraco, reappliquer les 4 fichiers patches (source de verite Nanoxi.Cms.Resources/Umbraco/) :
assets/css/umbraco.cssJs/umbraco.controllers.jsJs/umbraco.resources.jsJs/umbraco.services.js
Et aligner Nanoxi.Cms.Resources/Umbraco/currentArticlePreview.html (ligne 4) lors d'une mise a jour de jQuery. Ajouter le schema DB correspondant dans db/u7_base-<nouvelle-version>.sql.
Documents (Aspose)
La generation de documents (Excel, PDF, email) passe par Aspose (App.Aspose, libs Aspose.Cells / Aspose.Pdf / Aspose.Email). Cote shop, voir Shop.Print pour les confirmations de commande PDF.

