269
Kentico 9

Kentico 9 - Xperience...An overview of the development process as we see it. What are page templates and what is the role of the content editors? Development models (Portal engine,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • Kentico 9

  • 1. Developing websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1 Website development basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Choosing the right development model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3 Defining website content structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.3.1 Page types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3.1.1 Creating page types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.1.2 Creating content only page types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.3.1.3 Creating container page types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.3.1.4 Advanced content modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.3.1.5 Configuring page types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    1.3.1.5.1 Changing page type icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.3.1.5.2 Creating alternative forms for page types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.3.1.5.3 Specifying the URL pattern for content only pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.3.1.5.4 Extending the page type listing filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.3.1.5.5 Limiting the pages users can create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.3.1.5.6 Reference - Page type properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    1.3.2 Custom tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.3.2.1 Creating custom tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.3.2.2 Editing custom tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.3.2.3 Managing custom table data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.3.2.4 Creating alternative editing forms for custom tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.3.2.5 Setting custom table permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    1.4 Preparing your environment for team development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.4.1 Setting up continuous integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    1.4.1.1 Continuous integration repository structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481.4.1.2 Object types supported by continuous integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501.4.1.3 Restoring continuous integration files to the database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541.4.1.4 Using continuous integration with Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    1.4.2 Working with object locking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571.4.3 Editing object code externally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    1.5 Developing websites using the Portal engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611.5.1 Creating portal engine page templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631.5.2 Editing page layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651.5.3 Using and configuring web parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711.5.4 Creating portal engine master pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781.5.5 Inheriting portal engine page content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791.5.6 Working with layout web parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891.5.7 Using web part containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    1.6 Developing websites using ASPX templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971.6.1 Creating master pages for ASPX templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991.6.2 Creating ASPX page templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011.6.3 Adding portal engine functionality to ASPX page templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1051.6.4 Using both ASPX and portal templates on a single site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071.6.5 Exporting portal engine templates as ASPX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

    1.7 Developing sites using ASP.NET MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091.7.1 Creating MVC applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    1.7.1.1 Installing Kentico integration packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111.7.2 Creating content repositories for MVC sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111.7.3 Defining content structure on MVC sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121.7.4 Developing MVC applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    1.7.4.1 Retrieving content on MVC sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131.7.4.2 Working with page attachments in MVC applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151.7.4.3 Generating classes for Kentico objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181.7.4.4 Displaying shared content in MVC applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1201.7.4.5 Providing friendly URLs on MVC sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

    1.7.4.5.1 Avoiding duplicate URLs on MVC sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241.7.4.6 Providing smart search on MVC sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241.7.4.7 Adding preview mode support for MVC sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241.7.4.8 Localizing data on MVC sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1261.7.4.9 Handling 404 Not Found globally in MVC applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271.7.4.10 Processing scheduled tasks when developing MVC applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291.7.4.11 Testing MVC controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

    1.7.5 Improving performance of MVC applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311.7.6 Deploying MVC applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

    1.8 Using ASP.NET Web API with Kentico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1351.9 Managing page templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371.10 Loading and displaying data on websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

    1.10.1 Loading page data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1411.10.1.1 Writing page path expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

    1.10.2 Building website navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1451.10.3 Loading data using custom queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1521.10.4 Displaying data from custom tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551.10.5 Writing transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

    1.10.5.1 Creating transformations for pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1601.10.5.2 Using hierarchical transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1661.10.5.3 Writing transformations for custom tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1721.10.5.4 Using transformations in macro expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

  • 1.10.5.5 Displaying context menus in transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781.10.5.6 Reference - Transformation methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

    1.10.6 Filtering and paging data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971.10.7 Displaying data - advanced scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

    1.10.7.1 Creating wizards on websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021.10.7.2 Setting up syndication feeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

    1.10.7.2.1 Syndication transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2061.10.7.2.2 Usage example - CMS RSS feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2071.10.7.2.3 Usage example - RSS feed + Data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2081.10.7.2.4 Usage example - RSS repeater + Data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2091.10.7.2.5 Usage example - External RSS feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111.10.7.2.6 Syndication web parts and widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

    1.10.7.3 Displaying related pages using named relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2131.10.7.4 Displaying image galleries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.10.7.5 Displaying maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

    1.10.7.5.1 Displaying static maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191.10.7.5.2 Displaying dynamic maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

    1.11 Designing websites using CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2221.11.1 Combining stylesheets from multiple sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2271.11.2 Using printer friendly CSS styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2281.11.3 Creating printable versions of pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2281.11.4 Creating skins using ASP.NET themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301.11.5 Adding CSS to page components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

    1.12 Previewing design changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2341.13 Developing websites for mobile devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

    1.13.1 Configuring mobile development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2361.13.2 Creating device profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371.13.3 Resizing images for devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2381.13.4 Creating page layouts for devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2381.13.5 Mapping shared mobile layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2401.13.6 Creating mobile pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2411.13.7 Creating separate website sections for mobile devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2451.13.8 Device macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

    1.14 Preparing widgets for users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2471.14.1 Creating widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481.14.2 Setting up widget zones on pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2531.14.3 Configuring permissions for widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

    1.15 Validating website code and accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2561.15.1 Validating HTML code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571.15.2 Validating CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571.15.3 Validating links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2571.15.4 Validating accesibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

    1.16 Managing JavaScript files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2591.17 Troubleshooting websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

    1.17.1 Viewing system information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2601.17.2 Working with the system event log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611.17.3 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

  • Developing websites

    Basics

    An overview of the development process as we see it. What are page templates and what is the role of the content editors?

    Development models (Portal engine, ASPX or MVC?)

    Kentico offers several ways to build websites. If you are not sure which development model to follow, learn about their advantages anddisadvantages.

    Website data structure

    Before you begin developing websites, familiarize yourself with the system's data structure. Learn how pages and files are organized,and about and .page types custom tables

    Developing websites using the portal engine

    Design websites directly in your browser with minimal coding.

    Developing websites using ASPX page templates

    Register ASPX web forms as templates in the system and use them to create pages.

    Developing sites using ASP.NET MVC

    ASP.NET MVC is a powerful tool for building dynamic websites.

    Loading and displaying data on websites

    Learn how to display various types of data on your website's pages. Use components to load the required data and convert it into aviewable format using .Transformations

    Troubleshooting websites

    Learn where to view system information and the event log, and how to debug websites.

    Designing websites using CSS

    Adjust the appearance and design of your websites using CSS. Manage your CSS files directly in Kentico, or use your CSS filesgenerated by your favorite automation tools.

    Preparing widgets

    Create components that content editors and other types of users can add onto pages.

    Development for mobile devices

    Design your web pages to be easily viewable on mobile devices. for tablets, smartphones, or other devices, Create device profiles prepa and .re unique page layouts for different profiles develop mobile web pages

  • 1. 2.

    3. 4.

    Website development basicsThe following figure shows the typical website development process in Kentico, and how the roles are split between developers and contenteditors:

    The developers analyze client requirements.The developers prepare the site structure (site map) and the overall web design. Designers can use external toolswireframingduring this process.The developers create for every type of page required on the site (home page, solutions, products, news, etc.).page templatesThe content editors create new pages — they enter text and images into the page templates defined by the developers.

    What is a page template?

    Page templates define the structure, design and core functionality of pages.

    The website can re-use a single template for any number of pages.Content editors can enter different content for all pages based on the same template.Templates allow editors to focus just on the content of pages, without the needing to take care of the page's layout and formatting.Templates help keep the design consistent throughout the whole website.

    Team development

    Configure your environment to support development in a collaborating team.

    http://en.wikipedia.org/wiki/Website_wireframe

  • There are three different that you can use to create page templates in Kentico.development models

    Choosing the right development modelKentico provides three basic development models. You can choose the model that best suits your needs:

    Portal Engine - allows you to build websites in a using components called web parts. Only requiresbrowser-based interfaceprogramming in Visual Studio when creating custom components.

    ASPX Templates - can be chosen by ASP.NET developers who prefer to create websites using standard ASP.NET architecture andstandard development tools, such as . This model requires you to be familiar with ASP.NET web form developmentVisual Studioand have at least basic programming knowledge of C# or VB.NET.

    MVC - allows developers to create websites using the Model-View-Controller architectural pattern (based on the ASP.NET MVCframework). Working with this model requires knowledge of programming and ASP.NET MVC.

    If required, the and models can be combined on a single website. For example, you can place pages usingPortal Engine ASPX TemplatesASPX templates onto a portal engine website, and even insert custom ASPX pages implementing your own applications. On the other hand,you can create ASPX page templates with areas that can be edited through the portal engine.

    Portal Engine ASPX Templates MVC

    How you work You build the website and designpages using a browser-basedinterface.

    No programming knowledge isrequired for common tasks.

    You build ASPX pages (web forms)that are used to display content fromKentico .

    At least basic programmingknowledge of ASP.NET and eitherC# or VB.NET is required.

    You implement models, controllersand views for rendering pagesrendering content retrieved from theKentico database.

    Requires knowledge of MVCarchitecture, ASP.NET and C# orVB.NET.

    How you assemble pages You use built-in or custom web partsthat you place into customizablepage layouts (HTML code withplaceholder zones for web parts).

    You use built-in or custom ASP.NETserver controls and place them ontothe ASPX pages. These arestandard web forms that are part ofthe web project, so you can alsowork with code behind files.

    It is also possible to place web partson the page templates if the requiredserver control is not available.

    The appearance of the content youdisplay is defined completelythrough MVC views, which arecomposed of HTML and inline code.

    The content structure in Kentico isrepresented by content only pages,which do not have page templatesas they serve as content repositoriesonly.

    Master pages and visualinheritance

    Subpages can nest within anyancestor pages. You can break thenesting on any level.

    Page templates may inherit contentfrom a master page, which worksjust like a standard ASP.NET masterpage (.master file).

    Pages do not inherit content fromtheir parents in the website contenthierarchy.

    Visual representation is handled bythe MVC application completely.

    Custom code integration andextensibility

    You can create your own usercontrols (ASCX files) or web parts(ASCX files with a portal engineinterface) if you need to integratecustom functionality.

    Any custom controls or code can beadded to the web parts placed onthe website.

    You build standard ASPX pageswith code behind files, which meansyou can place any custom controlsand code onto the page.

    You prepare the content of the MVCviews and the functionality of thecontroller and model classes inVisual Studio, so have full controlover customization.

    Advantages Easier and faster way to buildwebsites.ASP.NET programmingknowledge is not required forcommon tasks.You can build the wholewebsite very quickly, using onlya web browser.

    Standard ASP.NETarchitecture.You can use your favoritedevelopment tools, such asVisual Studio.

    Model-View-Controllerarchitecture.The option of using the vRazoriew engineDevelopment via standard tools(Visual Studio).

    Disadvantages Proprietary architecture anddevelopment process.

    Requires ASP.NETprogramming knowledge.The design of the web pagescannot be fully managed viathe browserbasedadministration interface.

    Development tasks requireknowledge of ASP.NET MVCand programming.The design of the web pagescannot be managed via thebrowserbased administrationinterface.

    http://msdn.microsoft.com/en-us/VS2010TrainingCourse_ASPNETMVC3Razor

  • Defining website content structureOn this page, you can learn how to best store and organize data in Kentico.

    Deciding how you're going to store content in your project

    Kentico recommends storing data that you use on your website in the following ways:

    As - a hierarchical structure in the content tree of the application.pages Pages ?When should you use pages to store content

    In - suitable for storing large amounts of data in a flat structure. module classes?When should you use module classes to store content

    on module classes.More informationIn custom tables -

    ?When should you use custom tables to store content on custom tables. More information

    In - suitable for storing media libraries large files, not exclusively of media character, such as videos, high resolution images orpackaged files.

    ?When should you use media libraries to store content on media libraries.More information

    When should I use pages to store content?

    Use pages as a content storage when you need:

    Hierarchical structure - for example, when storing news articles or products:Store

    CoffeesCoffee product 1Coffee product 2...

    BrewersAccessoriesGrindersE-booksother store sections

    Workflow - you require to use for your content. Module classes and media libraries don't support workflow.workflowItem-level permissions - you require to configure access permissions on individual content item level. Pages allow you to configure

    for this purpose.access control listsMultilingual content - pages allow you to store content in and manage its translations.different languages

    Pages are stored in the content tree. The content tree defines the navigation and site map of the website:

    Limitations of using pages for storing content

    We recommend limiting the number of pages in the content tree to 500 000 to preserve performance.The limit depends largely on how the system is used and configured. If you mainly use the system for operations, suchread as displaying the content on the Live site, the system will be able to handle more pages. Having multiple editors make veryfrequent changes to content in the administration interface is, on the other hand, more demanding on the system'sresources.

    We recommend that each item (page) in the content tree have at most 1000 direct child pages. This is something we recommendtaking into consideration from the very beginning of your development process. See setting up content tree structure for a large

    .number of pages

    https://docs.kentico.com/display/K9/Creating+custom+moduleshttps://docs.kentico.com/display/K9/Configuring+media+librarieshttps://docs.kentico.com/display/K9/Using+workflowshttps://docs.kentico.com/pages/viewpage.action?pageId=59638426https://docs.kentico.com/display/K9/Multilingual+websites

  • The same limitations apply to the number of linked pages and pages in different cultures.When displaying data on the live site, we recommend to display content tree sections that contain 100configuring listing web parts000 descendant pages (pages in all levels) at most.The 'Alias path' for each item in the content tree cannot exceed 450 characters in length. Each item in the tree has an alias pathconsisting of all of the items leading to the item in the content tree. For example the alias path leading to a product can be /Store/Cof

    for a product called The alias path value of the field is stored in the databasefee/Nicaragua-Dipilto Nicaragua Diplito. CMS_Treetable's 'NodeAliasPath' field, which is set to 450 characters.

    Note: The limitations largely depend on the of the system.overall configuration

    Setting up content tree structure for a large number of pages

    When you plan on storing and creating a large number of pages, consider structuring the content tree into smaller segments. This can helpyou avoid reaching the recommended limit of 1000 child pages under a single page. For example, articles can be structured based on theday they were created on.

    Articles2015

    March1

    Article1Article2...

    23...31

    April1...30

    May

    If you plan on creating an even larger amount of content, you can structure the content tree even further.

    Articles2015

    March1

    MorningArticle1Article2...

    AfternoonArticle3Article4

    EveningArticle 5Article 6

    23...31

    AprilMay

    The 'Alias path' for each item in the content tree cannot exceed 450 characters in length. See limitations of using pages for storing content.

    Note: while this helps you structure content so that you don't exceed the recommended 1000 child pages limitation, the total number ofpages in the system will increase. Consider the number of pages in the system as well.recommended maximum

    Structured pages

    While all items in the content tree of the Pages application are pages, there are two types of pages that you can distinguish. There are pagesthat are set to display content and they are displayed as menu items by default (this can be also customized). Examples of these are the /Ho

    , , on the sample This behavior is enabled by editing individual Page types in the Page typesme /Products /Services Corporate site. application and enabling the option.Behave as Page (menu item)

    The second type of pages are , which contain structured data that is then displayed by pages that behave as menu items.Structured pages

    Resolving performance issues caused by storing a large number of pagesSee for information on how to resolve issues with website performance. One approach forOptimizing website performancereducing the amount of pages stored in the content tree is .setting up archival for outdated pages

    https://docs.kentico.com/display/K9/Loading+data+efficientlyhttps://docs.kentico.com/display/K9/Optimizing+website+performancehttps://docs.kentico.com/display/K9/Optimizing+website+performancehttps://docs.kentico.com/display/K9/Selecting+content+archival+approach

  • Examples of these are the news items under the section of the sample Corporate Site./News

    Pages that are set to behave as menu items usually contain unstructured content in the form of editable regions that can be edited on the Pa tab. Structured pages contain structured and typed data stored in page type-specific database tables and edited on the tab.ge Form

    You will typically use when you need to display a , such as list of news, list of products, etc.structured pages list of items

    Types of content stored in pages

    There are two types of content stored within pages:

    content stored in editable regions on the pagecontent stored in page fields

    The following table compares both approaches:

    Editable regions on the page Form tab

    Content structure Simple content structure, only text-basedcontent.

    Complex content structures, typed data,such as text, date-time, numbers, etc.

    Validation Only basic validation rules for minimum andmaximum length.

    Complex validation rules, including regularexpressions and custom form controls withcustom validation code.

    Display The content is displayed in the context ofthe page providing truly WYSIWYG editing.

    The content is displayed by controls or webparts using ASCX or XSLT transformations.

    Storage The content is stored in a single XMLdocument in the page properties.

    The content is stored in a separatedatabase table. Each field has its owncolumn. The data can be easily modifiedusing SQL queries or API.

    Examples of use Home page, contact page.

    Generally: pages with simply structured orunstructured, text-only content.

    The editable regions are usually used onlyin connection with pages of type Page

    .(menu item)

    News, product specification, event details,job opening, anything that requires different,more complex fields for its content.

    Generally: pages with structured contentwhere you need to separate content fromdesign and keep the content in its originaldata type.

    The form-based content is usually used inconnection with pages of type , News Produ

    etc.ct, Article,

    When should I use module classes to store content?

    Custom allow you to store large amounts of content without the hierarchy provided by the . Use module classes whenmodule classes pagesyou need:

    Access to the data via the UI, but without the need to represent the data in a hierarchical structure in the content tree.Need to store large amounts of data in a flat structure using the standard data types (int, string, ...) and one-to-many data (radiobuttons, drop-down lists).You don't necessarily need to display the data on the live site. This is possible, but custom module classes don't have built in listingweb parts for displaying the content on the live site the way custom tables do.You don't require versioning for you data.You don't need to store the same content in different languages.

    Scenario

    One specific scenario in which you can utilize module classes as a content storage is for page archival. That is, storing outdated pages thatyou don't need to display on the live site anymore. You are still able to access the page data but you don't have to clutter the content treewith unnecessary items.

    Limitations of using module classes for storing content

    There are several things to consider when deciding if you should be using pages to store your content. Use pages when you need:

    https://docs.kentico.com/display/K9/Creating+custom+modules

  • Data cannot be easily displayed on the live site.You cannot store multilingual content. Data can be translated using localization macros only.Unlike pages, data in module classes cannot make use of workflow.

    When should I use custom tables to store content?

    Custom tables allow you to store large amounts of content without the hierarchy provided by the pages. Use module classes when you need:

    Access to the data via the UI, but without the need to represent the data in a hierarchical structure in the content tree.Need to store large amounts of data in a flat structure using the standard data types (int, string, ...) and one-to-many data (radiobuttons, drop-down lists).You want to display the data on the live site. Kentico comes with built-in web parts that allow you to display custom table data on thelive site.You don't need to store binary stream data.You don't require versioning for you data.You don't need to store the same content in different languages.

    Pages vs. module classes and custom tables

    Pages Module classes Custom tables

    Can hold traditional data types (int,float, ...)

    Can hold binary stream data (files)

    Can hold one-to-many data (radiobuttons, drop-down lists)

    Data can be formatted usingtransformations

    Can be used as an E-commerceproduct

    Can be displayed by 'Listings' webparts

    Can be displayed by 'Navigation'web parts

    Workflow

    Versioning

    Multilingual content *

    Hierarchical data structure

    Each record has its own URL **

    Data can be accessed using API

    Importable / Exportable

    Performance

    Recommended for large data setswhen using flat data structure

    Number of database tables thatstore the data

    3+ 1 1

    Recommended for large binary data

    Binary data can be stored in filesystem

    *You can translate data using localization macros only.

    **You can access custom table records via listing web parts and query string URL parameters.

    When should I use media libraries to store content?

    Media libraries are designed to store large files — not exclusively of media character — such as videos, high-res images or packaged files.You can access media library files without overhead as there is no need to query the database to access them.

    https://docs.kentico.com/display/K9/Media+library+files

  • Pages vs. media libraries

    Pages Media libraries

    Recommended for large binary data

    Direct access to the data without queryingdatabase

    Number of database tables that store thedata

    3+ 2

    Binary data can be stored in file system

    Page typesEach page in Kentico is of a specific type – a page type. Each page consists of:

    fields (data structure)editing form layouttransformations (design)queries

    and other . properties Page types allow you to define custom website structure and store content (data) separately from design.

    Creating custom page types

    There are three 'types' of page types that you can create in Kentico:

    Standard page types - use these to create template-based pages that form the structure of the site. Standard page types hold datain fields that you can fully customize.Content only page types - suitable for pages whose only task is to hold content, such as individual news articles.on MVC sitesContent only pages aren't based on and don’t contain presentation properties and tabs. This allows content editorspage templatesto use the pages without unnecessary distractions.Container page types - suitable for storing queries and transformations. Container page types don't contain any custom fields asthey are created without a .coupled data table

    Configuring page types

    Page types are fully customizable – you can add, modify and delete any custom fields. You can also create additional versions of editingforms for individual page types, which you can then use in different situations.

    See configuring page types for more information.

    https://docs.kentico.com/display/K9/Page+database+structure

  • 1. 2.

    1.

    2.

    1. 2. 3. 4.

    Creating page typesThis page describes how you can create page types. You can create new page types in the application.Page types

    There are three 'types' of page types that you can create in Kentico:

    Standard page types - use these to create template-based pages that form the structure of the site. Standard page types hold datain fields that you can fully customize.Content only page types - suitable for pages whose only task is to hold content, such as individual news articles.on MVC sitesContent only pages aren't based on and don’t contain presentation properties and tabs. This allows content editorspage templatesto use the pages without unnecessary distractions.Container page types - suitable for storing queries and transformations. Container page types don't contain any custom fields asthey are created without a .coupled data table

    Creating standard page types

    Open the application.Page typesClick . A wizard opens.New page type New page type

    Step 1

    Fill in the values:Page type display name - the system displays this name to users in the administration interfaceNamespace: namespace distinguishes your page types from the default system types that use the namespace. cms Forexample, you can use your site name as the namespace.Name - page type identifier appended to its namespace

    Click .Next

    Step 2

    Enter a for the database table that stores the page type data.Table nameEnter a for the table.Primary key name(Optional) Select if you want the page to to .Inherit fields from page type(Optional) Enable . Content only page type

    Suitable for pages whose only task is to hold content, such as individual news articles. The pageson MVC sitesdon’t contain presentation properties and tabs. This allows content editors to use the pages without unnecessarydistractions. Note that you cannot convert 'Content only' page type to a standard page type later.

    https://docs.kentico.com/display/K9/Page+database+structure

  • 4.

    5.

    1. 2.

    Click .Next

    The wizard creates the database table.

    Step 3

    Now, you need to define fields of the page type (columns of the table). To define a page type field:

    Click .New fieldFor each field, enter the values, click Save and repeat the procedure until you have defined all the listed fields.

    Example of setting up fields for a Computer page type...

    Field name: ComputerNameData type: TextSize: 200Required: yes (checked)Field caption: Computer nameForm control: Text box

    Field name: ComputerProcessorTypeData type: TextSize: 200Field caption: Processor typeForm control: Drop-down listEditing control settings -> Data source: select and enter the following items into the text area, oneList of optionsper line:

    The page is only a container without custom fieldsUse the second option 'The page is only a container without custom fields' if you want to create a page type that doesn'tcontain any custom fields (Container page type). That is, a page page without a . Container page typescoupled data tableare suitable for storing queries and that are shared by multiple page types.transformations

    https://docs.kentico.com/display/K9/Reference+-+Field+editorhttps://docs.kentico.com/display/K9/Page+database+structure

  • 2.

    3.

    1.

    Athlon;AthlonPentium XEON;Pentium XEONPentium Core 2 Duo;Pentium Core 2 Duo

    Field name: ComputerRamSizeData type: Integer numberField caption: RAM (MB)Form control: Text box

    Field name: ComputerHDDSizeData type: Integer numberField caption: HDD (GB)Form control: Text box

    Field name: ComputerImageData type: FileField caption: ImageForm control: Upload file

    Click .Next

    Step 4

    Choose the field that will be used as the name for pages of this type. Pages of this type will use the value of the field in sitenavigation and in the Page application's content tree. Only fields are available in the drop-down list.Required 'text'

    You can also define system fields that will be displayed when editing pages of this type on the tab. You can do this using the Form drop-down list when creating a new field. Select and you can then choose from the following two groups ofField type Page field

    system fields:

    Page fields - offers system fields of pages.Node fields - offers system fields of content tree nodes.

    Page or node system fields will then be offered in the drop-down list. If you leave the Field name Display field in the editing check-box turned on, the field will be visible on the page's tab.form Form

  • 1.

    2.

    1. 2.

    3.

    Click .Next

    Step 5

    Select the page types that will be supported as parents for pages of this type in the application's content tree.Page

    Click and sAdd page types elect a specific page type.Click . OK

    Click .Next

  • 1. 2. 3.

    4.

    Step 6

    Assign the page type to all websites on which you want to use it.

    Click . Add sitesCheck the appropriate websites in the selection dialog.Click .OK

    Click .Next

    Step 7

    The wizard has finished the configuration of the new page type.

    Click . You have created a new page type.Finish

    Creating content only page typesContent only page types are suitable for pages whose only task is to hold content, such as individual news articles. on MVC sites Unlike

    Unlike custom tables, you can still use them to create a hierarchicalstandard page types, they don't have a representation on the website.data structure that supports workflow and versioning. Content only pages:

    Aren't based on .page templatesDon’t contain presentation properties and tabs. This allows content editors to use the pages without unnecessary distractions.Don't have a presentation URL by default. You can to allow content editors to display content only pages inspecifying a URL patternthe preview mode and .on the live site via the administration UI

    Now, you may want to:

    Create transformations for the page type - to define how the page type's content is rendered on your pages.Create alternative forms for the page type - to create alternative editing forms for the page type.Extend the page type's listing filter – editors use page listing to in the applperform multiple page (batch) operations Pages ication.Limit the pages users can create – this way you can control where on the site users create new pages.

    How content in page types is stored

    The new page type has its own database table for its specific fields. Each page is stored in three tables: CMS_TREE (treestructure), CMS_Document (page properties, metadata and content defined on the Page tab) and the custom table - for example, CUSTOM_Computer.

    The system automatically ensures all operations are performed correctly on these tables. The advantage of this storage is that it isvery fast and you can easily write standard SQL SELECT queries to retrieve data from the Microsoft SQL Server database.

    https://docs.kentico.com/display/K9/Multiple+page+operations

  • 1. 2.

    1.

    2.

    1. 2. 3. 4.

    5.

    1. 2. 3.

    Creating content only page types

    Open the application.Page types Click . A wizard opens.New page type New page type

    Step 1

    Fill in the values:Page type display name - the system displays this name to users in the administration interfaceNamespace: namespace distinguishes your page types from the default system types that use the namespace. Forcmsexample, you can use your site name as the namespace.Name - page type identifier appended to its namespace

    Click .Next

    Step 2

    Enter a for the database table that stores the page type data.Table nameEnter a for the table.Primary key name(Optional) Select if you want the page to to .Inherit fields from page typeEnable . Content only page type

    Click .Next

    The wizard creates the database table.

    Step 3

    Click to define individual New field fields of the page type (columns of the table).For each field, enter the values, click and repeat the procedure until you have defined all the listed fields.SaveClick .Next

    You can also define system fields that will be displayed when editing pages of this type on the tab. You can do this using the Form

    https://docs.kentico.com/display/K9/Reference+-+Field+editor

  • 1.

    2.

    1. 2. 3.

    1. 2. 3. 4.

    Step 4

    Choose the field that will be used as the name for pages of this type. Pages of this type will use the value of the field in sitenavigation and in the application's content tree. Only 'text' fields are available in the drop-down list.Page Required

    Click .Next

    Step 5

    Select the page types that will be supported as parents for pages of this type in the application's content tree.Page

    Click and select a specific page type.Add page types Click . OKClick .Next

    Step 6

    Assign the page type to all websites on which you want to use it.

    Click . Add sitesCheck the appropriate websites in the selection dialog.Click . OKClick .Next

    Step 7

    The wizard has finished the configuration of the new page type.

    Click . You have created a new page type. Finish

    drop-down list when creating a new field. Select and you can then choose from the following two groups ofField type Page fieldsystem fields:

    Page fields - offers system fields of pages.Node fields - offers system fields of content tree nodes.

    Page or node system fields will then be offered in the drop-down list. If you leave the Field name Display field in the editing check-box turned on, the field will be visible on the page's tab.form Form

    Now, you may want to:

    Specify URL pattern for content only pages - to allow content editors to display content only pages on the live site and inthe preview mode.Create transformations for the page type - to define how the page type's content is rendered on your pages.Create alternative forms for the page type - to create alternative editing forms for the page type.Extend the page type's listing filter – editors use page listing to in the applperform multiple page (batch) operations Pages ication.Limit the pages users can create – this way you can control where on the site users create new pages.

    How content in page types is stored

    The new page type has its own database table for its specific fields. Each page is stored in three tables: (treeCMS_TREEstructure), (page properties, metadata and content defined on the Page tab) and the custom table - for example, CMS_Document

    https://docs.kentico.com/display/K9/Multiple+page+operations

  • 1. 2.

    1.

    2.

    1.

    2.

    Creating container page typesContainer page types are suitable for storing queries and transformations. Container page types don't contain any custom fields as they arecreated without a .coupled data table

    Due to their limited functionality, container page types do not have the Alternative forms, Fields, Layout, and Search fields tabs.

    Creating container page types

    Open the application.Page typesClick . A wizard opens.New page type New page type

    Step 1

    Fill in the values:Page type display name - the system displays this name to users in the administration interfaceNamespace: namespace distinguishes your page types from the default system types that use the namespace. Forcmsexample, you can use your site name as the namespace.Name - page type identifier appended to its namespace

    Click .Next

    Step 2

    Select the option.The page is only a container without custom fields

    CUSTOM_Article.

    The system automatically ensures all operations are performed correctly on these tables. The advantage of this storage is that it isvery fast and you can easily write standard SQL SELECT queries to retrieve data from the Microsoft SQL Server database.

    https://docs.kentico.com/display/K9/Page+database+structure

  • 2.

    1. 2. 3.

    1. 2. 3. 4.

    1. 2.

    3.

    4. 5.

    Click .Next

    Step 3

    Select the page types that will be supported as parents for pages of this type in the application's content tree.Page

    Click and select a specific page type.Add page types Click . OKClick .Next

    Step 4

    Assign the page type to all websites on which you want to use it.

    Click . Add sitesCheck the appropriate websites in the selection dialog.Click . OKClick .Next

    Step 5

    The wizard has finished the configuration of the new page type.

    Click . You have created a new page type. Finish

    Advanced content modelingYou can use Kentico's page types to build an advanced content model. This allows editors to work with shared content (reusecontent onlypages) when modeling pages. Individual pages also support , and .workflow localization page-level permissions

    Kentico allows you to define a field on individual page types. Using the field, you can let content editors know that you expectPages Pagesthem to reuse different pages when modeling an individual page.

    For example, you can create an page type that consists of standard fields: , , and In addition to that, the article willArticle Header Text Image. consist of an page and an page. Both and are just pages that editors can use to create theInteresting fact Author Interesting fact Author content of this page.

    Setting up content for modeling with related pages

    To allow editors to reuse pages, add the form control to a page type:Pages

    In the application, a page type.Page types Edit On the tab, add :Fields New field

    Data type - PagesForm control - Pages

    Use the , and fields to inform content editors how you intend them to use the field.Field caption Field description Explanation textFor example:

    Field caption - Interesting Fact and Author

    (Optional) a . This allows you to specify the section of the site from which editors are able to select pages. Select Starting pathSave.

    Editors can now to reuse content on the tab.use this advanced content modeling technique Form

    Developers can display the content on the live site:

    By via generated code. For example in .accessing the data MVC viewsUsing . The Relationship name is in the Page type (field name) format.listing web parts

    Now, you may want to:

    Create transformations the page type will store - to be shared by other page types.Create custom queries to store in the page type

    This approach serves mainly for modeling content by editors. If you need to create named, two-sided page relationships betweenpages, use .standard page relationships

    Modeling content by adding different pages in the Pages field is not a versioned operation. Changing the model of a page under aworkflow immediately reflects the changes on the published version of the page. The individual pages that editors add using thePages can still be affected by a .workflow

    https://docs.kentico.com/display/K9/Configuring+workflowshttps://docs.kentico.com/display/K9/Editing+the+content+of+multilingual+websiteshttps://docs.kentico.com/pages/viewpage.action?pageId=59638426https://docs.kentico.com/display/K9/Modeling+content+by+reusing+pageshttps://docs.kentico.com/display/K9/Displaying+related+pages+using+named+relationships#Displayingrelatedpagesusingnamedrelationships-Displayingrelatedpagesusingwebpartshttps://docs.kentico.com/display/K9/Configuring+workflows

  • 1.

    2. 3.

    4.

    Configuring page typesYou can edit page type properties in the application, on the tab of a particular page type. The following topics describePage types General some of the common page type configuration scenarios:

    Changing page type iconsKentico allows you to upload your own icons and associate them with page types. You can also use a font icon class as a page typerepresentation.. This can be useful if you create custom page types or if you want particular page types to be more easily recognizable in vari

    . For example, when users want to create a new page type.ous parts of the system

    To change a page type icon:

    Open the Page types application.

    Edit ( ) the page type.On the tab, youGeneral choose between two types of images:

    Image - upload a standard image file

    Font icon class - enter the name of a CSS class that defines a font icon

    Save the changes.

    You have changed a page type icon.

    Where does the system use page type icons?

    Users can see the smaller page type icons in, for example, the content tree of the application.Pages

    Users can see the larger page type icons in, for example, the webpage dialog on the and tabs:Insert link Content -> Tiles Thumbnails

    Note:

    Page type icon files must be in the .PNG format.The system automatically converts the image you upload to the appropriate size. However, werecommend at least 16x16 pixels for the small icon and 48x48 pixels for the large icon.

    https://docs.kentico.com/display/K9/Working+with+font+iconshttps://docs.kentico.com/display/K9/Working+with+links+and+anchors

  • 1.

    2. 3. 4. 5.

    6.

    1. 2.

    a.

    b.

    Creating alternative forms for page typesAlternative forms allow you to create additional versions of editing forms for page types, which you can then use in different situations. See C

    for more information.reating alternative forms

    In , you can learn about special code names of alternative forms. If you create anCode names of automatically used alternative formsalternative form with one of these names, the system uses the form automatically for a specific purpose.

    Example - Creating a custom Page type insert form

    The following example demonstrates how to create an alternative form for the page type and use it to customize the editing formNewsdisplayed when creating news articles.

    Adding an alternative form

    Create an alternative form for the page type:News

    Open the application.Page types

    Edit ( ) the page type.News Switch to the tab. Alternative formsClick .Create new formSet the names of the form to the following:

    Display name: News creationCode name: (this is the used for creating new items)insert automatic alternative form code name

    Click .Save

    The system creates a new alternative form.

    Configuring the alternative form

    After you create an alternative form, you can change its fields using the .field editor

    Switch to the tab.FieldsModify the fields as you desire. For example:

    Select the field.NewsTitle

    See for another practical example of using alternative forms with page types.Extending the page type listing filter

    https://docs.kentico.com/display/K9/Creating+alternative+formshttps://docs.kentico.com/display/K9/Creating+alternative+formshttps://docs.kentico.com/display/K9/Code+names+of+automatically+used+alternative+formshttps://docs.kentico.com/display/K9/Code+names+of+automatically+used+alternative+formshttps://docs.kentico.com/display/K9/Reference+-+Field+editor

  • 2.

    b. c. d.

    e. f.

    g. h. i. j.

    Type into the field's setting.The title of the news article... Editing control settings -> Watermark -> TextClick .SaveSelect the field.NewsReleaseDate

    Click ( ) next to the field's .Edit value Default valueEnter the into the dialog and click .{% DateTime.Now %} macro OKClick .SaveSelect the field.NewsTeaserClear the check box.Display field in the editing formClick .Save

    The alternative form is ready to be used. If you open the application and create a new page, you can see the modificationsPages Newsmade in the alternative form:

    The field displays the entered watermark textNews titleThe field automatically contains the current date and timeRelease DateThe field is no longer visible (it is only available when editing existing News pages)Teaser

    https://docs.kentico.com/display/K9/Macro+expressions

  • 1. 2. 3. 4.

    5.

    1. 2.

    If you edit an existing News page on the tab, the original default editing form is used.Form

    Specifying the URL pattern for content only pagesContent only page types don't have a presentation URL by default. This means that content editors cannot access content only pages in the

    mode or when opening them on the live site via the administration UI. Content editors also aren't able to create page links using the Preview If you want your content only pages to support this functionality, you need to specify the property of their page type.text editor. URL pattern

    Specify the property when:

    Using a standalone which handles the presentation of your content only pages.MVC applicationUsing the portal engine and make use of content only page types.

    You will usually only want to specify the property for pages with a separate presentation. For example, pages that provide information that isonly used when aggregated on a different page may not need to have their own specified. Examples of these pages could beURL patternindividual branches/offices/cafes of a company that you use on an aggregate page that displays all the branches/offices/cafes in one place.

    Specifying the URL pattern property

    (Optional) the site's .If you run your live site on a different domain, specify Presentation URLOpen the application.Page typesEdit a content only page type.Fill in the under which you want the page to be accessible from the administration UI. You can use iURL pattern macro expressionsn the pattern to access the . For example:page and node data

    /{% DocumentCulture %}/Articles/{% NodeAlias %}

    Resolves into URL ' for a page in the 'en-US' culture with 'On Roasts'.Roasts'http://www.example.com/en-US/Articles/On- Node alias

    Click . Save

    Editors can now access the pages of this type from the administration UI using the button. They can also insert links to the pagesLive site using the .text editor

    The system may add a parameter to the resulting URL when displaying pages. For example, the parameter is added to the URLviewmodewhen you open a page on live site via the administration UI. The resulting URL may then look like this:

    Roasts?viewmode=0http://www.example.com/en-US/Articles/On-

    Adding support for preview mode

    After you set the URL pattern for your content only page types, the system can automatically generate preview URLs for the given pages.You can use the preview mode in two ways within the application:Pages

    Switch to mode using the main view mode selector.PreviewGenerate preview links for pages in , which you can then send to other users. See: Properties -> General -> Preview URL Sendinglinks to unpublished pages

    The preview URLs that the system generates for content only pages can be very long (they contain information about the virtual context ofthe page and validation hashes). We recommend increasing the maximum allowed URL length for the application used to present thecontent.

    Edit the web.config of the application.Set the attribute of the element in the section (512 should be a large enough value):maxUrlLength httpRuntime system.web

    Another example of the usage of page type alternative forms is in the web part used by the feContribution list User contributionsature. In this web part, you can define pages that visitors are allowed to create on the live site.

    The macro allows you to retrieve a page alias that you can use to create more SEO-friendly URLs.{% NodeAlias %}

    Note: We do not recommend using query string parameters in URL patterns. The system removes any parameters whengenerating URLs for pages based on the pattern.Preview

    Note:

    Preview mode is not supported if you are using content only page types in combination with the portal engine and standard pages.You can instead use the preview of the pages that load and display the given content.

    When developing an application that handles the presentation of content only pages (for example a ,standalone MVC application)you need to manually ensure that the preview mode displays the latest versions of pages. For more information, see Adding

    .preview mode support for MVC sites

    https://docs.kentico.com/display/K9/Using+the+editorhttps://docs.kentico.com/display/K9/Setting+domain+names+for+sites#Settingdomainnamesforsites-Runningsitesondifferentdomainshttps://docs.kentico.com/display/K9/Macro+syntaxhttps://docs.kentico.com/display/K9/Page+database+structurehttps://docs.kentico.com/display/K9/Using+the+editorhttps://docs.kentico.com/display/K9/Sending+links+to+unpublished+pageshttps://docs.kentico.com/display/K9/Sending+links+to+unpublished+pageshttps://docs.kentico.com/display/K9/User+contributions

  • 2.

    3.

    1.

    2. 3. 4. 5.

    a. b.

    6.

    ... ...

    Add a element to the and set the attribute to the same value:requestLimits sectionsystem.webServer maxUrl

    ...

    The application can now correctly process the preview URLs generated by the system.

    Extending the page type listing filterTo extend the possibilities of listing a certain page type, you can customize the filter that is used in the mode . Editors use the pageListing listing filter to in the and on perform multiple page (batch) operations Pages application Live site.

    To extend the page type listing filter, in which you specify the fields that are then available in the filter.create an alternative form

    Creating an alternative form to extend the page type listing filter

    The following example shows how you can create an alternative form that extends an existing page type by a field.Location

    Open the application.Page types

    Edit ( ) the page type for which you want to customize the filter.Switch to the tab. Alternative formsCreate new form.Fill in the details as follows:

    Display name - FilterCode name - Filter

    The alternative form needs to have as its Code name to work as a filter in page listing.Filter

    https://docs.kentico.com/display/K9/Multiple+page+operations

  • 6.

    7. a.

    b.

    i. ii.

    Save the alternative form.The alternative form inherits all the fields from the parent (original) form by default. You can either:

    Add new fields that you want to display in the page listing filter.— or — Deactivate the fields that you don't want to use in the page listing filter.

    To deactivate the fields:

    Switch to the .Fields tabFor each field that you don't want to use in the page listing form filter, turn the fielDisplay field in the editing formd off and the changes.Save

    Now, whenever a user lists the page type for which you created the Filter alternative form, the system displays the customized filter.

    Limiting the pages users can createThis topic explains how you can make creating new pages more intuitive for editors on your site. You can also use the same functionality tocontrol which pages are created in certain sections of the site and under certain page types in general. There are two complementary wayshow you can achieve this:

    Allowed page types - define which page types users can place under the current page type. This is a general setting that doesn'ttake into account the path that users place the page types under.Page type scopes - define which page types users can use when creating new pages under specified paths. You can use scopes todistinguish certain sections of the website and restrict the pages that users can create in them.

    Allowing users to place certain pages under a page type

    You can control which page types users can create under a specific page type. Do that by adding allowed types to a page type. For example,you may want to allow users to only create page types under page types. This rule then appliesFile (CMS.File) Folder (CMS.Folder)

    Note that custom layout in the alternative forms that are used to extend the page type listing filter.isn't applied

  • 1.

    2. 3. 4. 5. 6.

    everywhere on the site.

    Defining allowed child page types

    Open the application. Page types

    Edit ( ) the page type under which you want to specify allowed page types.Switch to the tab.Allowed typesUnder , click . A dialog opens.Allowed child page types Add page types Select page typesTurn the check-box on next to the page types that you want to add to the allowed child page types.Confirm by clicking .OK

    You have added allowed child page types.

    Specifying which pages users can create under certain paths

    You can use page type scopes to narrow the number of page types that users can use when they create new pages under specified paths.This makes creating new pages more intuitive, especially if you have many page types in the system. For example, on the sample Corporatesite, you may want users to only create page types under the /Products/Books/ path.E-Book (CMS.Ebook)

    In this section, you can learn about:

    Defining allowed child page typesCreating page type scopesManaging page type scopes

    When you add an , the system also automatically adds an to the child page thatallowed child page type allowed parent page typeyou are allowing.

  • 1. 2. 3. 4. 5. 6.

    a.

    b.

    a.

    b.

    a.

    b.

    c.

    7.

    Creating a new page under a page type scope

    Creating page type scopes

    Open the Page types application.Switch to . ScopesIn the drop-down list, select the site under which you want to create a new page type scope.Site Click on .New scopeSpecify the path the scope applies to in the field. You can type the path in or use the button.This scope covers SelectSpecify the rest of the parameters.

    Click for a description of the available options:

    General – specify the scope coverage:

    This scope covers – use the button to specify the path to which you want the page type scope to apply. YouSelectcan also type the path in the field directly.Apply to the whole section – enable if you want the scope to apply to all child pages under the specified path as well.

    Page types – specify the page types the scope allows users to create:

    Allow all page types – turn the check-box on if you want the scope to allow users to create all page types under thespecified path.Allow only the following page types – enable the check-box and to specify which page types usersAdd page typescan create under the specified path.

    Advanced – specify additional options. These options are also limited to the page types you select in the Page types section.

    Allow creating a linked page – turn the check-box on to allow users to create a linked page when creating a newpage.Allow creating A/B test variant – turn the check-box on to allow users to create an A/B testing variant when creatinga new page.Condition – fill in a condition that further specifies when the scope is applied. For example, you can have two scopescover the same path, and the more restrictive of the scopes then apply to users who do not have the Globaladministrator . Scopes with a condition are evaluated before scopes without a condition.privilege level

    Save the page type scope.

    You have now created a new page type scope.

    https://docs.kentico.com/display/K9/User+management

  • 1. 2. 3.

    4. 5. 6. 7. 8. 9.

    Managing page type scopes

    In this section, you can learn about:

    Limiting multiple page types to a specific scope – Use to add multiple page types to a single page type scope.Limiting a page type to multiple scopes – Use to add a page type to multiple different page type scopes.Removing multiple page types from a scope – Use to remove multiple page types from a single page type scope.Removing a page type from multiple scopes – Use to remove a single page type from multiple page types at once.

    Limiting multiple page types to a specific scope

    Use this method if you want to assign multiple page types to a single page type scope. To assign a page type to multiple different page typesscopes, use .this method

    Open the Page types application.Switch to . ScopesIn the drop-down list, select the site under which you want to add page types to an existing page type scope.Site

    Edit ( ) the page type scope.Enable the check-box.Allow only the following page types Click on . The dialog opens.Add page types Select page typesTurn the check-box on next to the page types that you want to add.Confirm by clicking .OKSave the page type scope.

    You have assigned page types to a page type scope.

    Limiting a page type to multiple scopes

  • 1.

    2. 3. 4. 5. 6.

    1. 2. 3.

    4. 5.

    6. 7. 8.

    1.

    2. 3. 4. 5. 6.

    1.

    2. 3.

    Use this method if you want to assign a page type to multiple different page types scopes. To assign multiple page types to a single pagetype scope, use .this method

    Open the Page types application.

    Edit ( ) the page type to which you want to assign page type scopes.Switch to the tab.ScopesClick on . The dialog opens.Add to scopes Select scopesTurn the check-box on next to the page type scopes that you want to assign to the page type.Confirm by clicking .OK

    You have assigned page type scopes to a page type.

    Removing multiple page types from a scope

    Use this method if you want to remove multiple page types from a single page type scope. To remove multiple page type scopes from a pagetype, use .this method

    Open the Page types application.Switch to . ScopesIn the drop-down list, select the site under which you want to remove page types from an existing page type scope.Site

    Edit ( ) the page type scope.Turn the check-box on next to the page types that you want to remove.

    Click on . Remove selectedConfirm by clicking .OKSave the page type scope.

    You have removed page types from a page type scope.

    Removing a page type from multiple scopes

    Use this method if you want to remove a page type from multiple page type scopes at once. To remove multiple page types from a singlepage type scope, use .this method

    Open the Page types application.

    Edit ( ) the page type from which you want to remove page type scopes.Switch to the tab.ScopesTurn the check-box on next to the page type scopes that you want to remove from the page type.Click on .Remove selectedConfirm by clicking .OK

    You have removed page type scopes from a page type.

    Viewing which pages are users allowed to create under a specific page type

    To list the pages users are allowed to create under a page type:

    Open the Page types application.

    Edit ( ) the page type under which you want to view which pages are users allowed to create.Switch to the tab.Allowed childs

    You have listed the page types users can create under a specific page type.

    If you want to remove all page types from the page type scope at once, click on ( ) and choose .... Remove all

  • 1. 2. 3.

    4.

    Viewing which pages are users allowed to create under a specific path

    To list the pages that users are allowed to create under a page type scope:

    Open the Pages types application.Switch to . ScopesIn the drop-down list, select the site under which you want to view which pages are users allowed to create under a specificSitepath.

    Edit ( ) the page type scope(s) covering the path.

    You have viewed the pages that users are allowed to create under a specific path.

    Note that some page type scopes can cover not only their specified paths, but all their child pages as well. This is indicated by an enabled A option.pply to the whole section

    Viewing under which paths are users allowed to create a page

  • 1.

    2. 3. 4.

    You can view under which paths users are allowed to create a certain page type. To do that, list the page type scopes the page type isassigned to:

    Open the Page types application.

    Edit ( ) the page type for which you want to list the page type scopes.Switch to the tab.Scopes In the drop-down list, select the site under which you want to list the page type scopes.Site

    You have listed the page type scopes to which a page type is assigned.

    Reference - Page type properties

    General

    Display name The name of the page type displayed in the administration andcontent editing interface.

    Code name Sets a namespace prefix and unique name that serves as anidentifier for the page type, for example in selectors or the API.

    Table name Displays the name of the database table used to store coupled datafor pages of this type, i.e. the content of its specific fields.

    Inherit fields from pages type If a page type is selected and saved, the definitions of its fields willbe loaded and added to the current page type. These fields can beviewed and modified on the Fields tab.

    Page type icon Allows you to that will be used to represent theupload custom iconspage type in various parts of the system.

    Include in module package Allows you to assign the page type to a custom module (onlymodules that are in development mode are available). The systemthen includes the page type in that you createinstallation packagesfor the selected module in the application.Modules

    If you select a module, you cannot specify on which the pageSitestype is available. The page type automatically uses the site bindingsof the given module, which you can edit in the application.Modules

    New page settings

    New page URL of the page that will be used when creating new pages of thistype.

    Show template selection Indicates if users will be required to select a page template whencreating a new page of this type.

    Root page template category May be used to limit the page template options available for pagesof this type to a specific sub-section of the template catalog. Whencreating new pages of the given type, users can only choose fromthe templates located under the specified category or in its childcategories.

    Default page template Sets the page template used by default when the page is created. Ifno page template is specified, new pages inherit the template oftheir parent by default.

    Due to their limited functionality, page types do not have the tabs.container Alternative forms, Fields, Layout, and Search fields

    https://docs.kentico.com/display/K9/Creating+installation+packages+for+modules

  • Editing pages settings(specify if you do not wish to use the system's default editing pages)

    Editing page URL of the editing page that will be used when the page isdisplayed in editing mode via the Page tab.

    Editing form URL of the editing page that will be used when the page isdisplayed in editing mode on the Form tab.

    Preview page URL of the page that will be used when the page is displayed inpreview mode.

    List page URL of the editing page that will be used when the page isdisplayed in list mode.

    Advanced settings

    Use publish from/publish to Indicates if the Publish from/to fields should be offered on the Formtab for pages of this type. These may be used to schedule the pagerepresented by the page to be published on the live site on aspecific date and time, or shown only during a limited time interval.

    Behaves as Page (menu item) type Indicates if the page type behaves similar to the default Page (menu page type:item)

    The default view mode for pages of this type is the Page tab.Pages of this type do not inherit the parent page's pagetemplate by default.Viewer web parts placed on pages automatically display childpages if their Path property is empty.Custom content is rendered on pages of this type if theheader content is defined in page template properties ->Header tab.

    Related pagesCreating page types

    Custom tablesCustom tables allow you to create your own tables in the system database. You can manage the data in custom tables without usingMicrosoft SQL Server Management Studio or any other database management tool. You will find this useful especially when you need tostore a large number of items in a flat data structure. Standard Kentico pages are not as efficient as custom tables for storing items in a flatstructure. Refer to for more information on the advantages of using custom tables over Pages.Storing data effectively

    To learn how to display data from custom tables on the live website, see:

    Displaying data from custom tablesWriting transformations for custom tables

    Data stored in the tables can be searched through using . You can also . These forms canSmart search create alternative forms for the tablesbe used instead of the default forms for creating or editing custom tables in the administration interface, as described in Code names of

    .automatically used alternative forms

    You can use custom tables to store the data of custom-developed modules. Developers can handle custom tables and their data via the cust.om table API

    Creating custom tablesThere are two applications related to custom tables in Kentico:

    Custom table object typeIf you need to specify the type of the records in a custom table, use the following naming convention:

    CustomTableItem.

    For example, a custom table with code name has records of type:CustomTable.Users

    CustomTableItem.CustomTable.Users

    https://docs.kentico.com/display/K9/Defining+website+content+structure#Definingwebsitecontentstructure-Storingdataeffectivelyhttps://docs.kentico.com/display/K9/Setting+up+search+on+your+websitehttps://docs.kentico.com/display/K9/Code+names+of+automatically+used+alternative+formshttps://docs.kentico.com/display/K9/Code+names+of+automatically+used+alternative+formshttps://docs.kentico.com/display/K9/Custom+table+internals+and+APIhttps://docs.kentico.com/display/K9/Custom+table+internals+and+API

  • 1. 2.

    1.

    2.

    1. 2.

    Custom tables application allows you to create new custom tables, given you are the site's global administrator. You can also viewand manipulate data in existing tables using this interface.Custom table data application allows you to view and manipulate data in existing custom tables only.

    Note that you can create new custom tables using the wizard in the application only. There is currently no simple way ofCustom tablescreating custom tables using the API. This is due to the need to create related objects and settings — these tasks are handled by the wizard.

    Creating a custom table

    Follow the example to create a new custom table using the .New custom table wizard

    Starting the New custom table wizard

    Open the application.Custom tables Click . A starts.New custom table New custom table wizard

    Step 1

    Enter the following details:Custom table display name: People

    display name is used in Kentico user interface.Namespace: customtableName: people

    Name is used in website code — always preceded by a Namespace, which allows you to have different tables ofthe same name in different contexts.

    Click .Next

    Step 2

    Specify the details of the database table that the custom table uses.

    Choose Create a new database table.Leave the value customtable_People in the Database table name field.

    Click here for information about the available options...

    Create a new database table - choose this option to create a brand new table in the system's database.Database table name - the actual name of the table in the system database. A name in the _ format is pre-filled automatically.Primary key name - primary key column name, pre-filled with the value.ItemID

    Use an existing database table - choose this option if you already have a physical table in the system database andwant to register it in the system.

    Database table name - the actual name of the table in the system database. The drop-down list offers onlydatabase tables which are not part of the default Kentico database schema and are not yet registered for anyobject.

  • 2.

    3. 4.

    1.

    2.

    3.

    4.

    5.

    Primary key name - primary key column name. The original table's primary key column is used automatically.Note that this column needs to be an identity column as well.

    The following check-boxes allow you to choose the default fields that you want to include in the custom table:

    Include ItemGUID field - globally unique ID of the particular custom table data record. Note that this field is mandatoryif you want to to a different instance of Kentico.stage the table's dataInclude ItemCreatedBy field - user name of the user who created the item.Include ItemCreatedWhen field - date and time of when the item was created.Include ItemModifiedBy field - user name of the user who last modified the item.Include ItemModifiedWhen field - date and time of last modification.Include ItemOrder field - order of the item when table content list is displayed. The lower number, the earlier positionin the list.

    Make sure all the checkboxes are enabled.Click .Next

    Step 3

    Third step contains a . The field editor lets you define the columns in the database table.field editor

    Create the following fields to follow this example:

    Create a field using the button with the following properties:New fieldField name: FirstNameData type: TextSize: 100Required: Yes (check the box)Field caption: First nameForm control: Text box

    Click Save. Create a second field using