From ef0ddbd66552772c184a5deeeda81042d396dabc Mon Sep 17 00:00:00 2001 From: Ahmet Date: Sat, 9 May 2020 00:38:09 +0300 Subject: [PATCH] Update Text-Templating.md adding the definition is started --- docs/en/Text-Templating.md | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/docs/en/Text-Templating.md b/docs/en/Text-Templating.md index c6f684ff8f..6b8357ac7d 100644 --- a/docs/en/Text-Templating.md +++ b/docs/en/Text-Templating.md @@ -51,6 +51,7 @@ public class YourModule : AbpModule { } ```` + ## Logic A Text Template is a combination of two object. @@ -164,6 +165,47 @@ A layout Text Template must have `{{content}}` area to render the child content. ## Definition a Text Template +First of all, create a class that inherited from `TemplateDefinitionProvider` abstract class and create `Define` method that derived from the base class. + +`Define` method requires a context that is `ITemplateDefinitionContext`. This `context` is a storage for template definitions and we will add our template definitions to the context. + +> For default, ABP uses **`Virtual Files`** for text templates. All given examples are for `Virtual File Text Template Definitions`. + +```csharp +public class MyTemplateDefinitionProvider : TemplateDefinitionProvider + { + public override void Define(ITemplateDefinitionContext context) + { + // Layout Text Template + context.Add( + new TemplateDefinition( + name: "MySampleTemplateLayout", // Template Definition Name + isLayout: true + ).WithVirtualFilePath("/SampleTemplates/SampleTemplateLayout.tpl", true) + ); + + // Inline Localized Text Template + context.Add( + new TemplateDefinition( + name: "ForgotPasswordEmail", + localizationResource: typeof(MyLocalizationResource), + layout: TestTemplates.TestTemplateLayout1 + ).WithVirtualFilePath("/SampleTemplates/ForgotPasswordEmail.tpl", true) + ); + + // Multiple File Localized Text Template + context.Add( + new TemplateDefinition( + name: "ForgotPasswordEmail", + defaultCultureName: "en" + ).WithVirtualFilePath("/SampleTemplates/ForgotPasswordEmail", false) + ); + } + } +``` + +### Context + ## Getting Template Definitions ### Template Definition Manager