diff --git a/docs/en/Modules/cms-kit/Blog-System.md b/docs/en/Modules/cms-kit/Blog-System.md new file mode 100644 index 0000000000..6222064e67 --- /dev/null +++ b/docs/en/Modules/cms-kit/Blog-System.md @@ -0,0 +1,98 @@ +# Blog System + +CMS kit provides a **blog** system to add blogs & posts to a public website. This section describes the details of the blog system. + +## Feature + +CMS kit uses the [global feature](https://docs.abp.io/en/abp/latest/Global-Features) system for all implemented features. Commercial startup templates come with all the CMS Kit-related features are enabled by default, if you create the solution with the public website option. If you're installing the CMS Kit manually or want to enable the blog feature individually, open the `GlobalFeatureConfigurator` class in the `Domain.Shared` project and place the following code to the `Configure `method. + +```csharp +GlobalFeatureManager.Instance.Modules.CmsKit(cmsKit => +{ + cmsKit.Blogs.Enable(); +}); +``` + +# Internals + +## Domain Layer + +#### Aggregates + +This module follows the [Entity Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Entities) guide. + +- `Blog` _(aggregate root)_: Presents blogs of application. +- `BlogPost`_(aggregate root)_: Presents blog posts in blogs. +- `BlogFeature`:_(aggregate root)_: Presents blog features enabled/disabled state. Such as reactions, ratings, comments, etc. + +#### Repositories + +This module follows the [Repository Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Repositories) guide. + +Following custom repositories are defined for this feature: + +- `IBlogRepository` +- `IBlogPostRepository` +- `IBlogFeatureRepository` + +#### Domain services + +This module follows the [Domain Services Best Practices & Conventions](https://docs.abp.io/en/abp/latest/Best-Practices/Domain-Services) guide. + +- `BlogManager`: Includes some operations for `Blog` aggreate root to keep data consistency. + - `CreateAsync`: Creates a new `Blog` entity and makes sure slug is used one time. + - `UpdateAsync`: Updates existing `Blog` entity and makes sure slug is used one time. +- `BlogPostManager`: Includes some operations for `BlogPost` aggreagate root such as creating & updating. + - `CreateAsync`: Creates a new BlogPost and makes sure slug is used only one time. + - `SetSlugUrlAsync`: Sets `UrlSlug` property of BlogPost entity and makes sure slug isn't duplicated in same blog. +- `BlogFeatureManager`: Includes some operations for managing blog features. + - `SetAsync`: Sets a feature enabled/disabled for a Blog. + - `SetDefaultsAsync`: Resets all feature configuration for a Blog. + +### Application layer + +#### Application Services + +##### Admin + +- `BlogAdminAppService` _(implements `IBlogAdminAppService`)_: Implements use cases of blog management. +- `BlogFeatureAdminAppService` _(implements `IBlogFeatureAdminAppService`)_: Implements use cases of blog feature management. +- `BlogPostAdminAppService` _(implements `IBlogPostAdminAppService`)_: Implements use cases of blog post management. + +##### Common + +- `BlogFeatureAppService` _(implements I`BlogFeatureAppService`)_: Implements feature checking operations. + +##### Public + +- `BlogPostPublicAppService` _(implements `IBlogPostPublicAppService`)_: Implements use cases of blog posts management on public websites. + +### Database providers + +#### Common + +##### Table / collection prefix & schema + +All tables/collections use the `Cms` prefix by default. Set static properties on the `CmsKitDbProperties` class if you need to change the table prefix or set a schema name (if supported by your database provider). + +##### Connection string + +This module uses `CmsKit` for the connection string name. If you don't define a connection string with this name, it fallbacks to the `Default` connection string. + +See the [connection strings](https://docs.abp.io/en/abp/latest/Connection-Strings) documentation for details. + +#### Entity Framework Core + +##### Tables + +- CmsBlogs +- CmsBlogPosts +- CmsBlogFeatures + +#### MongoDB + +##### Collections + +- CmsBlogs +- CmsBlogPosts +- CmsBlogFeatures diff --git a/docs/en/Modules/cms-kit/Comment-System.md b/docs/en/Modules/cms-kit/Comment-System.md index 40b9d91a96..542be54c59 100644 --- a/docs/en/Modules/cms-kit/Comment-System.md +++ b/docs/en/Modules/cms-kit/Comment-System.md @@ -1,6 +1,6 @@ # Comment System -CMS kit provides a **rating** system to add comments feature to any kind of resource, like blog posts, products, etc. This section describes the details of the comments system. +CMS kit provides a **comment** system to add comments feature to any kind of resource, like blog posts, products, etc. This section describes the details of the comments system. ## Feature @@ -114,4 +114,4 @@ The comment system provides a commenting widget to allow users to send comments ``` You need to specify entity type and entity ID parameters. Entity type represents the group name you specified while defining the comments in the domain module. Entity ID represents the unique identifier for the resource that users send comments to, such as blog post ID or product ID. -For more information about widgets see [widgets](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Widgets) documentation. \ No newline at end of file +For more information about widgets see [widgets](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Widgets) documentation. diff --git a/docs/en/Modules/cms-kit/resources/CmsKit-BlogsFeatureMenuView.png b/docs/en/Modules/cms-kit/resources/CmsKit-BlogsFeatureMenuView.png new file mode 100644 index 0000000000..e110065724 Binary files /dev/null and b/docs/en/Modules/cms-kit/resources/CmsKit-BlogsFeatureMenuView.png differ diff --git a/docs/en/Modules/cms-kit/resources/CmsKit-BlogsFeaturesManagement.png b/docs/en/Modules/cms-kit/resources/CmsKit-BlogsFeaturesManagement.png new file mode 100644 index 0000000000..67fc60335d Binary files /dev/null and b/docs/en/Modules/cms-kit/resources/CmsKit-BlogsFeaturesManagement.png differ diff --git a/docs/en/Modules/cms-kit/resources/CmsKit-BlogsMenuView.png b/docs/en/Modules/cms-kit/resources/CmsKit-BlogsMenuView.png new file mode 100644 index 0000000000..0f45569bae Binary files /dev/null and b/docs/en/Modules/cms-kit/resources/CmsKit-BlogsMenuView.png differ