In Kentico CMS all information related to the documents are saved inside the database in many joined tables.
The tables used for storing document records are as follows :
CMS_Tree – This table stores the information about the tree structure of the website document content and contains one record for all culture versions for the document.
CMS_Document – This table contains the records for document and each one represents the one language version of the document.
Coupled table – This table contains fields specified with a document-type
like the ‘News’ document-type the coupled table ‘Content_News’ contains the fields NewsTitle, NewsSummary, NewsText etc which are specific for that document-type with each culture versions as one record.
All the tables described above are encapsulated into a single class CMS.TreeEngine.TreeNode and we can work with
the document values using the TreeNode class properties.
Here i had described how to create a document of specific type using the Kentico API.
Example:
//Include the following namespace at the header position of the page using CMS.SiteProvider; //Create the instance for the TreeProvider class CMS.TreeEngine.TreeProvider provider = new CMS.TreeEngine.TreeProvider(CMS. CMSHelper.CMSContext.CurrentUser); //Get the Parent node for the new document CMS.TreeEngine.TreeNode parent = provider.SelectSingleNode(CMS.CMSHelper. CMSContext.CurrentSiteName, "/MyNews", "en-us"); //Create a new Tree node at the specified CMS.TreeEngine.TreeNode node = new TreeNode("cms.news", provider); if (parent != null) { //Now set the properties for the document if the parent node found node.NodeName = "MyFirstNews"; node.NodeAlias = "MyFirstNews"; node.SetValue("DocumentCulture", "en-us"); node.SetValue("NewsTitle", "MyFirstNewsTitle"); node.SetValue("NewsSummary", "My First News Summary."); node.SetValue("NewsText", "My First News Text."); node.SetValue("NewsReleaseDate", DateTime.Now); //Now insert the document at the proper place New document node.Insert(parent.NodeID); }