Skip to content

Patterns - comment ajouter / modifier

Ajouter un nouveau client (skin)

  1. Creer le dossier code src/Nanoxi.Cms.Custom/<Client>/ (sous-projets Data, Mvc, et Shop si e-commerce).
  2. Creer la solution client src/Nanoxi.Cms.Custom/StarterKitv3_<skin>.sln (referencee par la cible Build-Customer).
  3. Creer les sources design design/v2/<skin>/ (Gruntfile.js + Skins/), modelees sur un client existant.
  4. Ajouter une entree pour le skin dans doc/StarterKitv3_InfosTechniques.json (langues, URL, shop on/off, modules, widgets). Le build valide ce JSON contre StarterKitv3_InfosTechniques_Schema.json.
  5. Creer la config de production prodconfig/<skin>/ (transforms Web.config, licence).
  6. Builder : .\build.ps1 --target="Review-App" --skin="<skin>".

Voir ../modules/customer-skins.md.

Activer le shop pour un client

  1. Dans doc/StarterKitv3_InfosTechniques.json, passer le module Shop a isActif: true pour le skin (IsShopEnabled() lit cette valeur).
  2. Le build compilera alors StarterKitv3_shop.sln (Build-Shop), installera uCommerce (Install-uCommerce) et fera les postbuild shop.
  3. 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/ ou data/, 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.SynchroWindsorContainer et 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.css
  • Js/umbraco.controllers.js
  • Js/umbraco.resources.js
  • Js/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.

Contributors

No contributors

Changelog

No recent changes