You are on page 1of 253

Kentico 8.

1

1. Configuring Kentico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Managing sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Installing new sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1.1 Creating new sites using the wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1.2 Creating new sites from templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1.3 Creating web templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2 Setting domain names for sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.3 Managing site licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.4 Setting up multiple websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.4.1 Running multiple sites on a single domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.4.2 Configuring nested websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.5 Switching sites to off-line mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6 Configuring settings for sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.1 Settings - Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.1.1 Settings - Content management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.1.2 Settings - Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.1.3 Settings - Blogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.1.4 Settings - Translation services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.2 Settings - URLs and SEO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.3 Settings - Security & Membership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.3.1 Settings - Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.3.2 Settings - Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.3.3 Settings - Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.4 Settings - System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.4.1 Settings - Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.4.2 Settings - E-mails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.4.3 Settings - Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.4.4 Settings - Health monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.4.5 Settings - Output filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.4.6 Settings - Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.4.7 Settings - Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.5 Settings - On-line marketing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.5.1 Settings - Contact management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.5.2 Settings - Newsletters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.5.3 Settings - Web analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.6 Settings - E-commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.6.1 Settings - Global objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.6.2 Settings - Authorize.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.6.3 Settings - PayPal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.7 Settings - Community . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.7.1 Settings - Forums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.7.2 Settings - Message boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.7.3 Settings - Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.7.4 Settings - Avatars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.7.5 Settings - Chat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.8 Settings - Social media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.8.1 Settings - Facebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.8.2 Settings - Google+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.8.3 Settings - LinkedIn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.9 Settings - Social marketing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.9.1 Settings - URL shorteners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.10 Settings - Intranet & Collaboration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.10.1 Settings - Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.10.2 Settings - Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.11 Settings - Versioning & Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.11.1 Settings - Staging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.11.2 Settings - Object versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.11.3 Settings - Web farm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.12 Settings - Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.12.1 Settings - Integration bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.12.2 Settings - Microsoft SharePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.12.3 Settings - REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.12.4 Settings - WebDAV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.12.5 Settings - Data.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.12.6 Settings - Salesforce.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.12.7 Settings - 51Degrees.mobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.6.12.8 Settings - Strands Recommender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Managing files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Storing files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Importing files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3 Uploading files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.4 Resizing images on upload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.5 Administering files globally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.6 Editing file metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Configuring page URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 URL format and configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 Setting page aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5
6
7
7
8
10
11
12
12
16
17
18
19
21
22
24
24
25
27
30
33
34
35
37
39
42
43
44
45
46
46
52
52
57
58
60
63
63
63
64
65
66
66
66
67
70
70
71
71
71
72
72
72
72
73
73
73
74
75
75
75
76
77
77
77
78
78
79
80
82
84
85
86
88
88
91
93

1.3.3 Wildcard URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.4 Custom and extensionless URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.4.1 Troubleshooting custom and extensionless URL configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.5 Linking pages and files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.6 Custom handling of URL path values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 Search engine optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1 Configuring websites for SEO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.2 Google Sitemaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.3 Managing robots.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5 Optimizing website performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1 Loading data efficiently . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2 Configuring caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2.1 Caching page output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2.1.1 Using output cache substitutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2.2 Caching files and resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2.3 Caching the data of page components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2.4 Setting cache dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2.5 Debugging cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2.6 Reference - Cache settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.3 Using code minification and compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.4 Setting up a web farm environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.4.1 Web farm synchronization mechanisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.4.2 Defining web farm servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.4.3 Debugging web farms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6 Setting up search on your website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.1 Enabling search indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.2 Creating search indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.2.1 Defining page indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.2.2 Defining forum indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.2.3 Defining custom table indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.2.4 Defining on-line form indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.2.5 Defining user indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.2.6 Defining general indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.3 Monitoring search indexing tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.4 Adding search functionality to pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.4.1 Setting up predictive search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.5 Configuring search assistance features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.6 Searching attachment files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.6.1 Configuring SQL search for attachment files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.7 Using search filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.8 Smart search syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.9 Displaying search results using transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.10 Searching according to page permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.11 SQL search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7 Scheduling tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7.1 Configuring scheduled task execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7.2 Installing the Scheduler Windows service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7.3 Reference - scheduled task properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.8 Configuring SMTP servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.8.1 Reference - SMTP server properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.9 Managing e-mail templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.10 Working with widget dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.10.1 Managing widget dashboard content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.10.2 Adding widget dashboards to the interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.11 Using output filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.12 Configuring time zones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.12.1 Managing time zones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13 Working with object versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.1 Using object versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.13.2 Objects recycle bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14 Creating alternative forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.1 Code names of automatically used alternative forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14.2 Displaying filters using alternative forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15 Health monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.1 Registering performance counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.2 Installing the Health monitoring Windows service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.3 Enabling health monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.4 Monitoring using the Performance monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.5 Reference - default performance counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.16 Adding cookie law consent to web pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.16.1 Cookie levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.16.2 Reference - Kentico cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.17 Banning IP addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.18 Configuring countries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.19 Working with system reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.19.1 Creating reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.19.2 Creating report categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94
95
98
99
100
102
103
106
110
112
114
116
118
121
123
124
125
127
129
133
135
136
136
139
140
141
142
145
150
151
152
153
155
156
157
159
163
166
168
171
174
175
176
176
177
177
179
181
182
185
186
187
188
190
195
198
200
201
203
204
205
206
206
208
209
211
212
213
215
216
217
218
221
222
223
223
237

1.19.3 Defining report parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.19.4 Storing data from reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.19.5 Displaying reports on websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.19.6 Subscribing to reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.19.7 Example - creating a simple report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.19.8 Reporting security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.20 Configuring Windows Communication Foundation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.21 Configuring the administration interface URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.22 Configuring the code editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

237
239
239
239
243
247
249
251
251

Configuring Kentico
Configure the
environment for
content editing

Configure the
system
Sites

Workflows
Workflows define the
life cycles of pages.
Learn how to create
them and apply them to
pages.

Whether you run one or
multiple sites, it is
useful to know how to
manage sites in the
system. Learn how to in
stall new sites, add site
licenses, set domain
names, and more.

Page versioning
Configure versioning of
pages with or without a
workflow. Set up lockin
g of pages for
collaborative editing.

Media libraries
Configure custom
storage for media
libraries, custom file
types or maximum file
upload size.

WYSIWYG editor
Configure and
personalize the
WYSIWYG editor for
content editors.

On-site editing
Allow content editors to
adjust page content on
websites directly while
viewing the website in a
live mode.

Enable content editors
to receive notification
messages when pages
are created, updated or
deleted.

WebDAV
Enable the content
editors to
collaboratively edit files
stored on remote
servers using the client
applications (e.g., using
Microsoft Word)
installed on their local
computers.

Performance
optimization
Learn which aspects
affect the performance
of your websites and
what can you do to
improve the
performance. Setting up
web farms can also
provide load balancing
for your website.

Files
Explore the ways of
storing files in Kentico.
Choose whether to stor
e files in the database
or the file system, uploa
d multiple files to your
websites, set up image
resizing on upload.

Search engine
optimization (SEO)
Help your website be
visible in search
engines like Google.

Output filters
Page URLs
Learn how to set the
URLs for web pages in
Kentico. Adjust your
URLs so that they do
not have extensions.

The output filters
enable the system to
automatically adjust the
HTML code of pages
before sending the
code to browsers.

Health monitoring
Website search
The system provides
built-in, index-based
search functionality. En
able search indexing, cr
eate search indexes an
d add Smart search
web parts to your site.

SMTP servers
Content notifications

Optimize your
website

Connect the system to
SMTP servers to allow
Kentico to send out
e-mails.

E-mail templates
Create and manage
templates for e-mails,
which are automatically
sent by the system.

Scheduled tasks
Learn how to configure
the system to
periodically perform
tasks.

Set up performance
monitoring for your
application. This can
help you find
bottlenecks in the
system.

3. 2.Object versioning Configure the system to keep track of changes made to objects and learn how to work with the object recycle bin. Starting and stopping sties You can stop or run individual sites in the Sites application. You can assign the following objects to the site: Classes SMTP servers Smart search indexes Modules Users .0. Switching between sites on a single domain You cannot start sites that use the same domain name (or domain alias) as another site that is already running. Managing sites You can run any number of sites within a single instance of Kentico. set this domain for all sites and switch between them using the Start site and Stop site actions. Use the following actions: Start site Stop site When you stop a site: Visitors cannot access the live site Users cannot edit the site in the site-specific sections of the administration interface To stop a live website with administration enabled.0. such as http://localhost. Creating sites See Installing new sites. See also: Setting up multiple websites Assigning objects to sites Many objects in Kentico need to be assigned to specific sites in order to be available on the given sites. Open the Sites application. Edit ( ) the site. Alternative forms Create alternative versions of various types of editing and input forms in the system. Site bindings allow you to limit where objects can be used when running multiple websites in the system. The websites share the same web project (code base) and database. You can manage all types of site bindings for individual websites in a single location: 1. Open the Assigned objects tab. keep the site running and switch it to off-line mode. Each site runs on its own domain name and stores content in a separate content tree. You can run multiple sites at the same time using alternative host names that point to the same domain (for example http://localhost and http://127.1). If you need to test multiple websites on a single domain.

Start the New site wizard in the Sites application. 2.Enter new site settings Enter the following basic site properties: Site display name .domain name under which the new site will run. The Site deletion confirmation dialog opens. Enable or disable the following options: Delete page attachment physical files .Choose default website In the first step of the wizard.if checked. Step 2 . Select the users that you want to add to the site. Site culture . Delete media files physical files . Click Next. Step 1 .CSS stylesheets Page templates Web part containers Page relationship types Polls For example. you can assign users from other sites in the system: 1. 3. and select Create a new site using a wizard in the first step. the deletion process removes files attached to the site's pages from the file system (stored in the <web project>\<site name>\files folder). after creating a new site. Site code name . the deletion process removes physical files stored in the site's media libraries (<web project>\<site name>\media folder). Click Add users. Click Delete ( ) next to the site that you want to delete. Use website template . 3.if checked. Create a new site using a wizard . Installing new sites Use the New site wizard to add new websites to the system. The list in the Sites application no longer includes the deleted site. the deletion process removes the site's meta files (stored in the <web project>\<site name>\metafiles folder). Creating new sites using the wizard This page describes how to add a new website to the system using the wizard.the default culture of the site. Select the Users sub-tab.if checked. The system displays a log showing the progress of the deletion. Deleting sites You can delete sites from the system in the Sites application. .creates a new site based on a web template. Domain name . Follow the links above to learn about the rest of the site creation process. When the process finishes.creates a new blank site. Click Select. 4. choose if you want to create the new site using a wizard or import a website template.name of the new site used in website code. You can access the wizard in the Sites application. 4. The domain must be unique for each website running in the system. Click Next to continue. Click Yes. click OK. 2. Delete meta files physical files .name of the new site displayed in the administration interface. 1.

and others. Community site is a sample community website demonstrating social networking capabilities of Kentico.The website has been created successfully You have successfully created the new website. Start the New site wizard in the Sites application and select Use website template in the first step.Step 3 .Choose website template You can choose from a number of website templates: Corporate site is a typical web presentation of a company. select which objects will be imported along with your new site.Select master page Here you can select the master page template. Step 5 . Step 2 . Step 4 .Import progress A log appears. Step 6 . Select one of the layouts and click Next. Creating new sites from templates This page describes how to create a new website based on a predefined web template. Choose the categories displayed in the tree on the left side of the wizard. You can now begin developing the website or managing the website content. The master page defines the basic visual structure of the website. Click Finish to return to the Sites application. E-commerce site is an e-shop showing the possibilities of the Kentico E-commerce Solution. click Next. showing the progress of the site creation. You can switch to a different master page later at any time. . one using the portal engine and the other using ASPX page templates. When the process finishes. You can leave the default settings and click Next to continue.Object selection In this step. Custom templates You can create your own web templates from existing sites. Some of the templates are available in two versions. Blank site is a blank template used for creating websites from scratch.

if enabled. the system deletes the site if any part of the import process fails. payment options.Objects selection In this step. any synchronization tasks included in the web template will be imported. You cannot import assembly files if your application is precompiled. You cannot import code files if your application is precompiled. Log staging synchronization tasks .indicates if the new site includes code files that require compilation. i.selects all objects included in the web template. Step 4 .name of the new site displayed in the administration interface. Deselect all objects . Click Next to continue. the system logs staging tasks reflecting all changes made by the creation of the new site. The domain must be unique for each website running in the system. ascx. the system logs outgoing integration tasks for all changes made by the creation of the new site. vb. the new site includes custom assembly files bound to notification gateways. select which objects from the web template you want to import.if checked.if checked. Check this option to synchronize the imported data to other servers connected through Content staging. Delete incomplete site when import fails . Import settings Assign all objects to the imported site (recommended) . Import tasks (recommended) . files with the following extensions: cs. Log integration tasks .unique identifier of the new site. Import global folders .Choose one of the listed website templates and click Next. the import process includes global files originally exported from the following folders: ~/App_Code/Global/ ~/CMSGlobalFiles/ . Run the site after import .if enabled.if enabled.clears the selection for all objects in the web template.selects only those objects that do not already exist in the system (clears selection for existing objects). integration connectors. the import process skips any child objects whose parent objects is not present in the target system. the system attempts to start the new site immediately after the import is finished.if checked. scheduled tasks and smart search indexes from the web template. The following options are available in the root of the tree: Global object selection Load default selection Select all objects . Domain name . Import custom assembly files .Enter new site settings Enter the following basic site properties: Site display name .domain name under which the new site will run. Select only new objects . Check this option if you want to transfer the imported data to a system connected via the System integration bus. aspx. Do not import objects where parent object is missing . Import files (recommended) Import code files . all imported site related objects will be assigned to the imported site.if checked. Site code name .e. prefix.If enabled. Choose the categories displayed in the tree on the left side of the wizard. Custom assemblies are those whose names do not begin with the CMS.If checked. Step 3 .

Open the ~\App_Data\Templates folder inside your web project directory. such as the Corporate or Community site. web parts.if checked. search indexes. Enter the following details: Display name . Step 5 . 6. To save a site as a web template: 1. etc. When the process finishes.Import progress A log appears. 5. Add a sub-folder named Data. Extract the content of your site's export package into the Data folder. Creating web templates The system allows you to save sites created in Kentico as web templates. Click Finish to return to the Sites application. showing the progress of the site creation. Important: You need to carefully consider which global objects you include in the site export package (such as modules. We recommend that you only keep objects that are directly related to the site's design and content. click Next. Step 6 . When you create new sites based on the template. Click New web template.). Export your site. 4. the system overwrites existing objects using the ones from the web template. 3. .the name of the web template displayed in the new site wizard. Log into the Kentico administration interface and open the Web templates application. You can then use the web templates as starting points for developing new sites. 2. This folder stores all default templates. 8. the import process includes site-related files originally exported from the following folders: ~/App_Code/<site code name>/ ~/App_Data/<site code name>/ ~/<site code name>/ ~/Controllers/<site code name>/ ~/Views/<site code name>/ You can leave the default settings and click Next to continue.~/CMSScripts/Custom/ ~/App_Code/Controllers/ ~/Controllers/Global/ ~/Views/Global/ Import site folders . You can now begin developing the website or managing the website content. Create a new folder for your web template.The website has been created successfully You have successfully created the new website. 7.

9. License editions / packages .com:8080 Incorrect: http://mycompany. Setting domain names for sites The Domain name is one of the basic properties that you assign when creating new sites. Correct: mycompany. Use the same format as for the site's main domain name. . You can create new sites based on the template. 3. Code name . 4. Redirecting aliases to the main domain You can configure domain aliases to automatically redirect users to another URL. If the only purpose of your domain aliases is to make the site available under multiple domain names. Edit ( ) the site. Select the Domain aliases tab.text describing the content and purpose of the web template. The system only offers the template if the license requirements are fulfilled on the given instance of Kentico.co. 2. This is a common Search engine optimization practice that prevents duplicate web content (i. Type the alternative domain name into the Domain alias property.8. Edit ( ) your site. Domain alias licenses are free of charge if you already own a license for the main domain. without the protocol or www prefix. 4.com as its main domain and you also wish to assign the my-company.e. To set the main domain name for an existing website: 1. the system sends them to the specified URL instead. 5. Include the port number if it is different than 80. To create a domain alias for your website: Note: You need to have a valid license for every domain alias. Click Save. Your new web template is now included in the list. 6.serves as a unique identifier of the web template.com partners. Domain name format Enter the domain name without the http:// protocol and www prefix. The system displays this image next to the template in the Choose website template dialog of the new site wizard. The site is now available under the alias's domain name. Aliases can be particularly useful when building multilingual websites. For example. Web template folder . Overrides the Settings -> Content -> Default alias path setting.mycompany. The system generates the URLs of the website's pages and other components using the specified domain name. 3.uk domain to the same website. Click New domain alias. it is recommended to redirect the aliases to the website's main domain. Click Save.allows you to upload a preview image. if your website uses mycompany.com mycompany. 2. you need to create a domain alias. You can add any number of domain aliases for each site. Every website running in the system must have a unique domain name.com www.mycompany. 1.select the editions of Kentico where the web template is supported. having multiple URLs leading to the same content). Open the Sites application.specifies the path to the folder containing the template's export package: ~\App_Data\Templates\<y our folder> Description . Specifies the default page that the system displays when users access the site's root URL through the domain alias. Open the Sites application. Thumbnail . 7. (Optional) Set the Default alias path. When a visitor accesses the website through the domain alias. Type the domain into the Site domain name property on the General tab.com Adding domain aliases Domain aliases are alternative domain names that lead to the same website. Click Save.

Setting up multiple websites Kentico allows you to run any number of websites from a single installation.To set up redirection for your domain aliases: 1.uk as a domain alias. for example: {%protocol%}://domain.uk/example. Use macro expressions to dynamically redirect users to the correct page. Domain alias licenses are free of charge if you already own a license for the main domain.com https://example. Every valid license key also allows you to use the local server's hostname (localhost and 127. Select the Domain aliases tab.com/example. To manage your system's licenses. such as example1. 2. All sites run under a single web site in IIS.com domain. open the Licenses application. users who access https://domain. Managing site licenses Kentico requires a license key for every domain that your sites use. Click Save.0.com or example. 5.aspx are redirected to https://domain. For example.com http://www.co. including the domain names.x (where x is between 1 and 255) If you use domain aliases (different domain names that point to the same website). The system now automatically redirects all users to the site's main domain. How licensing works License keys support all protocol and www prefix combinations for the specified domain. 3. For example.com http://localhost http://127.net. Copy the full license key into the field.resolves into the current URL scheme name (protocol) when the redirection takes place 6.0.co. if your site's main domain is domain.example.example.1).com{%re lativepath%} {% relativepath %} . only global applications are available in the administration interface. The Licenses page displays a list of all licenses added to your system. you can use all of the following domains: http://example.a spx. if you add a license key for the example. The websites share the same web project (code base) and database. 4. 3. When you obtain a license key (full or trial) for a domain: 1.0. You cannot view or edit sites running on domains that do not have a matching license in the system. Open the Sites application. Note: If you do not have a valid license for the current domain.0. Click New license.com and you have domain. expiration dates and license editions. you need to add extra license keys for these domains. Edit your aliases. 2.resolves into the current relative URL path when the redirection takes place {% protocol %} .You can generate the domain alias license keys on the Kentico client portal.com https://www. Type the target URL into the Redirect URL property. . Edit ( ) your site. Click Save.

Make sure you have valid license keys for both domains in the Licenses application. Your customers are very sensitive to security and you do not want to risk that other clients will get access to other websites because of an administrator’s mistake. 2. Open the sites application. .com mysite2. Make sure both sites are running. Create two websites. The following sections demonstrate how to set up multiple websites on an example of two sites: mysite.Using separate installations for each site It is recommended to run separate instances of Kentico for every website in the following scenarios: Your websites contain a very large number of pages and high performance is a critical requirement. You can check the site status on the main site list. such as the administration interface or the structure of shared database tables. You can either import existing websites or create new websites using the New site wizard. Your customers have very different requirements and you need to customize shared parts of the system. 4.com Creating multiple sites in Kentico 1. 3. Edit ( ) each website and set the Site domain name values (without the www prefix and http:// protocol). 5.

Host name: www. Enter the following details: Site name: mysite. Open your Internet Information Services (IIS) Manager console (Start -> Control Panel -> Administrative tools -> Internet Information Services (IIS) Manager).config file is stored). right-click Sites and select Add Web Site.Configuring multiple sites on a local IIS server 1.com Physical path: disk path to the location of your site's web project (where the application's web.mysite. 3. 2.com . In the tree.

Right-click the site and select Edit bindings. Click Add. 7. . Enter the domain name of your second website as the Host name and click OK. 6.4. 8. Click OK. The site appears under the Sites node. Add two more bindings for both sites without the www prefix. 5.

7. 6.mysite2. Create a new virtual directory named mykenticoweb. Create two IIS applications under mykenticoweb named web1 and web2. In the installer. Install a Kentico web project to the following folder: C:\inetpub\wwwroot\mykenticofolder. In this scenario. When you open http://www.1 mysite.Your new IIS web site is now configured to handle all incoming requests for domains mysite. Log in to the Kentico administration interface and open the Sites application. 3.0. Set the Physical path of both applications to the web site folder of the installed project (C:\inetpub\wwwroot\mykenticofol der\CMS in this example).0. you do not need to obtain new domains for each site. .com (or your own domain names) in a browser. you can test the configuration by modifying the server's C:\WINDOWS\system32\drivers\etc\host s file.mysite2. create an empty folder for this purpose.1 127.com www. choose Custom installation and Built-in web server in Visual Studio (does not create a virtual directory). Testing domains If you do not own the domains.mysite. Open your Internet Information Services (IIS) Manager console (Start -> Control Panel -> Administrative tools -> Internet Information Services (IIS) Manager). add the following lines to the end of the file: 127. The name of the virtual directory must be different than the folder where you installed the web project. Set the application pool according to the type that you specified in the installation of the Kentico web project. Example . Set the Physical path to a non-website folder in the root of a local disk. for example: c:\empty 4.mysite.0.0. so the website will only work when accessed from a browser on the server machine.Installing two sites onto a single domain 1. You may need to ask your network administrator to redirect the domain in the DNS records to your website.com and http://www . you can differentiate websites by subfolder (virtual directory).com mysite2.1 127. See Runni ng multiple sites on a single domain for more details.1 127.0. 2. Multiple websites on a single domain If you cannot use multiple domain names for your website. you should see two different websites.0.com Note: These are client settings. 5. Open your browser and type in either http://localhost/mykenticoweb/web1 or http://localhost/mykenticoweb/web2.com.0. For this example.com www. Ideally. Running multiple sites on a single domain This page describes how to run multiple websites in separate sub-folders on a single domain.com and mysite2.0.

6.
7. Install both sites. Set the Site domain name fields:
Website 1: localhost/mykenticoweb/web1
Website 2: localhost/mykenticoweb/web2
Now when you go to http://localhost/mykenticoweb/web1, you will see website 1. If you go to http://localhost/mykenticoweb/web2, you
will see website 2.

Synchronizing global data for the sites
To ensure the synchronization of settings and global objects between the two sites, you need to set up a Web farm environment.
1. Add the following keys to the <appSettings> section of the web.config file in the installation directory shared by both websites:

<add key="CMSWebFarmEnabled" value="true"/>
<add key="CMSWebFarmSynchronizeFiles" value="false" />
<add key="/mykenticoweb/web1:CMSWebFarmServerName" value="server1" />
<add key="/mykenticoweb/web2:CMSWebFarmServerName" value="server2" />

This enables web farms in general and disables synchronization of files, which is not needed since the applications
already use the same physical folder. Notice that each application has a different web farm server name specified via a
prefix in the name of the CMSWebFarmServerName key. This prefix must match the path that you set for the
corresponding application in IIS, including the virtual directory.

2.
3.
4.
5.

Log in to the Kentico administration interface on one of the sites.
Open the Web farms application.
Create a web farm server for each application.
To prevent potential problems with conflicts during Smart search indexing, specify a different physical folder for each application's
search index files through the following web.config keys:

<add key="/mykenticoweb/web1:CMSSearchIndexPath"
value="App_Data\CMSModules\SmartSearch\Web1\" />
<add key="/mykenticoweb/web2:CMSSearchIndexPath"
value="App_Data\CMSModules\SmartSearch\Web2\" />

Your websites should now work without any issues.

Configuring nested websites
A nested website is a site that users can access through a URL sub-directory under the domain name of a different website. The following
steps demonstrate how to create two Kentico sites that utilize nesting:
1. Install two Kentico web projects into separate folders.
Choose folder names different than the virtual directory names you plan to use in the URL. This prevents collisions when
setting up the IIS. For example:
Inetpub/wwwroot/NestedWeb/Web1
Inetpub/wwwroot/NestedWeb/Web2
You now have two completely independent instances of Kentico, each with its own web project.

2. Open your Internet Information Services (IIS) Manager console (Start -> Control Panel -> Administrative tools -> Internet
Information Services (IIS) Manager).
3. Create two applications under your web site:
[IIS web site]/KenticoCMS1 - set the Physical path to Web1
[IIS web site]/KenticoCMS1/KenticoCMS2 - set the Physical path to Web2 (the child website)

You now have two independent applications in IIS, one nested under the other.

4. Edit the web.config of the nested application (Web2) and remove all module and handler definitions. This avoid duplicate module
and handler definitions of the two applications.
If you have any additional custom keys in these configuration sections, ensure that they are not duplicated in the two web.
config files, i.e. that they are only added in one of the two files.

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
// remove or comment out all keys in this section
</modules>
<handlers>
// remove or comment out all keys in this section
</handlers>
</system.webServer>

The websites are now accessible via nested URLs. You can configure the websites independently without any issues.

Additional configuration for Staging
This section describes how to set up Content staging on nested websites.
Staging uses sections in the web.config that collide on nested websites. Config files are inherited within the IIS virtual directory structure
(even when the projects are not nested on the file system), but you cannot have the same section of web.config twice in the config file.
If you configure staging from the KenticoCMS1 site to the KenticoCMS1/KenticoCMS2 site, the inner project may have issues with the
configuration.
If you get the "The username token has already been added" error message, some of the configuration is duplicated. User name token
authentication is defined in the policy file, which is referenced from the <microsoft.web.services3> section.
You need to remove the whole <microsoft.web.services3> section from the web.config of the nested web project (Web2).
Do not remove the section from the Web1 (outer) project, since both websites will use this configuration.
Staging between the nested sites should now work correctly.

Switching sites to off-line mode
Kentico allows you to bring sites off-line. This can be useful if you need to make major modifications to your site and wish to hide it while the
update is in progress. When in offline mode:
Visitors cannot access the live version of the website
The site still remains running and editors and administrators can normally work through the administration interface.
To enable off-line mode for websites:
1. Open the Sites application.
2. Edit ( ) the site.
3. Open the Off-line mode tab.
4. Choose how to handle users who attempt to access the site while it is off-line:
Display following message - add the message content using the WYSIWYG editor. The system sets the HTTP response
status code of the page to 503, so applications and crawlers who access the site should be able to correctly recognize the
situation.
Redirect visitor to following URL - enter the address of an alternate website or page to which users will automatically be
redirected until the site is returned back on-line.

5. Click Save.
6. Click Take the site off-line.
The site is now off-line. Visitors who access the site either see your off-line message or are redirected to the specified alternative page.

At any time, you can allow visitors to access the site again by clicking Bring the site on-line on the Off-line mode tab.

Configuring settings for sites
You can configure settings for sites in the Settings application.
There are two basic types of settings:
Global - apply to all sites in the system, unless individual sites override the values.
Site-specific - apply to the selected Site. The site settings load the global values unless you uncheck Inherit from global settings f
or individual settings and enter different values.
Note: Some settings are only available as global settings.

Searching for settings
There is a very large number of settings in Kentico . To find a particular setting among all the categories:
1. In the Settings application, select the root of the settings tree (Settings).
2. Type the name of the setting or related words into the field at the top of the page.
3. Click Search.
If you check Search in description, the search also finds settings that have the given text in their description (tooltip).
The page displays all settings that contain the search text in their name. You can edit the values of the settings directly.

Resetting settings
To reset settings to their default values:
1.
2.
3.
4.
5.

Select a category in the Settings application.
Choose (global) in the Site selector above the settings tree.
Click Reset these settings to default.
Click OK in the confirmation dialog.
Click Save.

All settings in the given category now have the default value defined in the Default value property of the corresponding keys.

Exporting the setting values
You can export the values of all settings in the selected category to a text file. Click Export these settings in the header of the setting page.
Exporting settings can be useful, for example when consulting issues with Kentico support.

Loading the values of settings in code
The Kentico API allows you to check the values of settings in your code. You can load values of both the default and custom settings.
Use the following methods of the SettingsKeyInfoProvider class according to the data type of the required setting:
GetBoolValue
GetStringValue
GetIntValue
GetDoubleValue
The methods accept a string parameter that identifies the setting in the following format: <site code name>.<settings key code name>
Note: When loading global-only settings, only enter the code name of the required settings key in the parameter.
For example:

using CMS.DataEngine;
using CMS.SiteProvider;
...
string value = SettingsKeyInfoProvider.GetStringValue(SiteContext.CurrentSiteName +
".CMSDefaultAliasPath");

Getting setting values in macro expressions
Macro expressions allow you to:
Dynamically insert the values of settings into most fields in the Kentico administration interface
Work with settings in macro conditions or other expressions with advanced logic
You can load values of both the default and custom settings.
Use the following expression to get setting values inside macros: Settings.<settings key code name>
For example:

{% Settings.CMSStoreFilesInFileSystem %}

Settings - Content
Page not found
Page not found for non-published pages

If checked, pages that are not published return a Page not found
error (404) if they are viewed on the live site.

Page not found URL

Specifies a custom page that will be displayed to users who
encounter a Page not found error (404 HTTP status code). It can
either be a physical aspx file in the web project or a dedicated page
created in the site's content tree.
In both cases, you need to enter the URL of the page, for example:
~/SpecialPages/PageNotFound.aspx
This value could be used to specify the URL of a physical page file
placed in the given location, or select a page with an alias path
equal to /SpecialPages/PageNotFound.
The advantage of using a page for this purpose is that you can
leverage all features of the portal engine. For instance, you can
translate the page not found page on a multilingual website and the
system will automatically display the appropriate culture version
according to the currently selected language.

Log page not found exception

If enabled, the system logs Page not found (404) http errors in the
Event log application. You can recognize the errors by the
"PAGENOTFOUND" event code.

Multilingual
Default content culture

Used to select which culture should be the default language option
of the website's content.

Combine with default culture

Indicates if the default culture version of pages should be offered
for pages that are not available in the currently selected language.

Combine files with default culture

Indicates if the default culture version of files should be used for
untranslated file pages.

Web site content
Default alias path
Metadata

Alias path of the website's default page.

Example: {%prefix%} . i. Clicking the button opens the onsite editing interface. If you do not wish to use this button. manage pages and even configure the properties of web parts. Page title format Specifies the page title format. On-site editing allows authorized users to make changes to page content. design and functionality of the website's pages directly in the content tree. users are notified when leaving a modified page in editing mode with unsaved changes. should be enabled for the website selected in the Site drop-down list (or for all websites that inherit the setting if (global) is selected in the drop-down list). Enable On-site editing button When enabled along with on-site editing.pages are added to the end of the given content tree level. the only options are span or div. Wireframes provide a way to easily plan out the structure. Control element Specifies the element that should be used instead of the standard <span> element. you can edit the following settings related to content management and workflows: General New page order Specifies the default order used when inserting new pages. Related pages Multilingual websites Creating custom error handling pages Settings .e. Possible values are: First . users cannot make any modifications or create new wireframes. Allow global categories Indicates if the use of global categories. or by manually going to the following URL: http://<domain>/<virtual directory>/cmsedit Mobile development .new pages are added to the first position on the given level of the content tree.Page key words prefix Specifies a prefix for all page keywords on the website. However.{%pagetitle_orelse_name%} Page title prefix Page title prefix used for all pages.Content management On this page. Alphabetical . On-site editing Enable On-site editing Indicates whether the website's pages should be editable through a special interface directly on the live site. Currently. users can alternatively access on-site editing mode through links provided by the Edit page link or Admin actions web part. Prompt to save changes on exit If enabled. The system displays all existing wireframes even if this setting is disabled. Page description prefix Specifies a prefix for all page description on the website.pages are inserted to the appropriate alphabetical position based on their name. Last . categories shared across all websites in the system. Enable wireframing Allows users to create and edit wireframe schematics in the Pages application. the Edit page button is displayed in the corner of pages on the live site for users who are authorized as editors. Replaces the {% prefix %} macro in the page title format.

Note: The resizing only works for images loaded through one of the Kentico system pages (getattachment. the system automatically resizes images to match devic e profiles. getmetafile. This reduces the maximum side size of images to the larger of the dimensions set for the used device profile (Preview width or Preview height). Use check-in/check-out Indicates if content locking (check-in/check-out) should be used with page types that use versioning. Display redirected icon Display published icon Display version not published icon Display not published icon Display archived icon Display checked out icon Display wireframe icon Workflow Send workflow e-mails Indicates if the workflow e-mail notification should be sent. a link that takes you to the page list is displayed after the allowed number of records. only pages for which the current user has the Read per mission are displayed in the content tree (in the Pages application in the editing and listings modes and in various dialogs where the content tree is displayed). the child page is not displayed as well.Enable device profiles Enable this setting if you want to use device profiles on the website. In case that a user doesn't have the Read permissions for any page at all. Content locking allows content editors to lock the page for editing so that the other editors cannot modify the page at the same time. You can disable the resizing for individual images by adding the re sizemode=1 query string parameter to the image source URL. . If a user has the Read permission for a child page but not for its parent. Device profiles allow you to customize the layout and content of pages for specific devices. Resize images according to device profile If enabled. Use automatic version numbering If you use workflow without content locking. Display linked icon These settings indicate if special icons should be displayed in the content tree next to pages under the specified conditions. The system automatically assigns a device profile to each visitor according to the parameters of the device they use to view the page. Content management UI Check page permissions If enabled.com> format. Send workflow e-mails from E-mail address of the workflow e-mails sender.). a message is displayed instead of the content tree. Enable layout mapping If enabled. pages with shared page layouts automatically use replacement layouts according to the layout mappings set for individual device profiles. If the number of pages exceeds the maximum number. You can define device profiles in the Device profiles application. getmedia. To configure the layout mappings of a device profile. saying that they are not authorized to modify any page. Display not translated icon Learn more about the icons in Configuring page status icons. You can also use the Someone<some@something. edit it in the D evice profiles application and open the Layout mapping tab. The feature cannot resize images that use web links or direct paths in their source. automatic version numbering will be used by default. Max tree nodes The maximum number of pages that will be displayed under an unfolded page in the tree view. etc.

URLs of medial library files will be generated in permanent format (~/getmedia/<file guid>/<file name>.mp4.jpg). If the number of versions exceeds the specified maximum number. You can use: physical disk path .<thumbnail extension> HTML5 support Render HTML5 media tags If enabled. otherwise direct path to the file will be used (e. If disabled.: ~/MySite/Media/MyLibrary/MyImage. Media file hidden folder Name of the folder where thumbnails of media files will be stored.Media In this dialog.<files friendly URL extension>).~/UploadedFiles UNC path . Allow permanent preview links Indicates if page preview links remain usable even if page workflow cycle is restarted (when pages in Published/Archived workflow step are switched to the Edit step). Security Media file allowed extensions Extensions of files which can be uploaded to media libraries.g. Storage Media libraries folder Folder where media library files are stored. you can make settings related to the Media libraries module. i. It is useful for better orientation in files when multiple sites are running in the system. Settings . . e. Media file thumbnail suffix Suffix added to thumbnail files. c:\myfiles\mysite virtual path . new preview links are generated in this situation and the original ones are no longer usable. Max subfolders Maximal number of folders that can be displayed under an expanded folder node in the tree view. Settings .. Enter a list of extensions separated by semicolons. Divide the extensions by semicolons. the default location is: ~/<site code name>/media Use site-specific subfolders for custom media libraries folder This setting is applied only when a Custom media libraries folder is configured. the system renders HTML5 <audio> and <video> tags for media content.<file extension>. Check files permissions Indicates if the "See media library content" permission is checked when retrieving media files using permanent URLs. media library files will be stored in a sub-folder named as the site code name under the custom files folder. the older versions are destroyed. If enabled. <custom media libraries folder>/<site code name>.Version history length Specifies maximum number of versions in the page history. Media extensions to be rendered with HTML5 Specifies a list of media extensions to be rendered with HTML5 media tags.ogg.\\server\folder If no value is entered. This folder is hidden in the file system by default and thumbnails are generated within it. The following settings are available: General Use permanent URLs If true.e. The thumbnail files' names are in the following format: <file name>_<file extension><thumbnail suffix>.Blogs The Blogs settings category allows adjusting the following settings: General .g.g.e.

when editing an existing post. Clear this setting if you are creating your site on the production server to avoid creating trackbacks to your production server.Translation services General Enable translation services Enabling this setting allows users to create new language versions of pages and localize text values via translation services. Enable double opt-in for blog post comments Indicates if double opt-in should be enabled for blog post comments. users are required to confirm their subscription by clicking a link that is sent to them in an e-mail.MetaWeblog API Allow automatic summary If enabled.e. Summary length Length of automatic blog post summary in characters. all blog post attachments which are not used in post text or have not been uploaded via WLW (i. The available translation options are determined by the other settings in this category. The subscription confirmation link that will be sent to users will point to this page. Related pages Configuring blogs Settings . these confirmation e-mails are always sent. When enabled. Double opt-in interval (hours) Amount of time in hours. Related pages Blogs Configuring blogs Settings . Use external service for trackbacks Indicates if the external Scheduler Windows service should be used to process scheduled tasks which handle trackbacks. Double opt-in approval page path Path to the page that contains the Blog post subscription confirmation web part.Send blog e-mails from E-mail address that will be used as the Sender ('From') address of notification e-mails. If double opt-in is disabled. during which the users have to confirm their subscription request. and will be as long as the value of the Summary length property. . Allow attachment translation Determines whether the system submits file attachments for translation along with the main content of pages. have been uploaded via Kentico user interface) will be deleted when an existing blog post is modified and then published from WLW. Send double opt-in confirmation Indicates if an e-mail confirmation should be sent to users after they approve a subscription. Subscriptions Blog unsubscription URL URL of a page on which the Blog post unsubscription web part is placed – this is a special web part used for handling unsubscriptions from receiving notifications about new blog posts. specified blog posts are pinged after the new blog post is saved. Delete unused attachments If enabled. the summary is not updated. This is applied only when a post is created . Enable blog post trackbacks If checked. blog post summary will be created automatically from the beginning of the blog post text.

for example: txt. When the translation is imported. the system deletes the zip packages containing finished translations after importing the XLIFF data (the submissions can be managed in the Translations application). To assign different translator addresses for specific languages: 1. which insert the appropriate resource strings. It is also possible to import translated XLIFF data via REST. this setting is disabled for the majority of web part properties. Warning: This overwrites pages immediately when a service finishes the translations. If empty. Delete ZIP after successful download If enabled. This property overrides the E-mail sender setting.docx. the system creates a resource string for each property. all types of attached files are included in page translations. Translation via e-mail Translation submission recipients Specifies the addresses to which the system sends translation assignments when submissions are created for the e-mail service. Manual translation Translation submission export folder Specifies the path of the folder in the file system where the service creates the zip packages with the translation source data (XLIFF files and instructions) when pages are submitted for manual translation. the ~/App_Data/Translations/Import/ folder is used. By default. which can be configured in Settings -> Integration -> REST. You can configure this for specific web parts in the Web parts application by editing their properties on the Properties tab. which may be used to retrieve the data of pages and other types of objects in XLIFF format.pdf If empty. 2. Translate web part properties Determines if text values entered into the properties of web parts are also submitted for translation. You can enter multiple e-mail addresses. For example: utf8 Enable REST translation service Enables or disables the translation REST service. This allows translation of content added onto pages via text web parts such as Static text. Automatically import translated submissions If enabled. Only properties that have the Translate field flag enabled in the web part definition are included. containing the translated values in the given languages. The translation REST service is not affected by the general REST settings.Translation attachments file types May be used to limit which attachment file types can be submitted for translation. the system automatically inserts translated content into pages when the data is imported into submissions. Entered as a list of allowed file extensions separated by semicolons. the ~/App_Data/Translations/Export/ folder is used. Translations import folder Sets the path of the folder from which the system imports zip packages containing completed translations. Open the Translation services application. If empty. without the approval of administrators. The original text values of the properties are replaced by localization macros. users need to manually process completed translation submissions in the Translations application. 3. . Edit the services and enter the appropriate translator addresses into the Translation submission recipients prope rty. Create a Clone of the Translation via e-mail service for each additional language. Encoding to use Sets the character encoding type for the XLIFF pages used to transfer translation data in and out of the system. separated by semicolons. With this setting disabled.

Allowed URL characters Determines which characters are usable in URLs by means of a regular expression. Microsoft Translator Client secret Enter the Client secret received when registering the application for the Microsoft Translator on the Azure DataMarket.URLs and SEO URL format Forbidden URL characters This setting allows you to list additional characters that should be replaced or removed in URLs (page aliases and URL paths). .com.'#[]+=„“ and the space character. The value of this setting is used if no user address is available. The following characters are forbidden by default: \/:*?"<>|&%. Client user name Sets the user name under which the application accesses the Translations. If empty. Client user password Enter the password matching the client user name.config key. only the characters specified by the Forbidden URL characters setting are prohibited. If necessary. used by the Google Translator service to identify the application's translation project. When allowing special characters in the regular expression. Related pages Configuring content for translation Settings . Client ID Enter the Client ID that you specified when registering the application. Example: Entering a-zA-Z0-9\^ as the value only allows alphanumeric characters and the caret symbol (^) to be used in URLs. Translations.com service. Google Translator API Key Enter a valid API Key. Forbidden characters replacement Specifies the character that the system uses as a replacement for forbidden characters in URLs. the default set of forbidden characters can be overridden through the CMSForbiddenURLValues web. for example in the case of translations submitted automatically or via the API.E-mail sender When sending translation assignment e-mails. Any characters not specified are forbidden. Project short code A code string used to identify your translation project. Note: this setting cannot be used to allow the default forbidden URL characters. they must be preceded by a backslash (\) as an escape character.com Project Director URL The URL of your project that you received when setting up the service at Translations. the system automatically sets the sender to the address of the user who submitted the translation. You can obtain the key from the Google APIs console.

The paths must always start with a forward slash (/). URLs of pages and page attachments will be generated in permanent format. friendly URLs will be used. Page URLs Default URL path prefix Defines a default URL path prefix that will be used for all URLs of the content pages. enter the matching URL paths: Use URL paths without the website's domain name or virtual directory. You can enter multiple URLs separated by semicolons (. Additional extensions are supported in URLs when accessing pages. Sample value: . To disable URL rewriting for pages. Example: getfile/<node alias>/myimage.).aspx . ~/Custom2. for example: ~/Custom.. Remember original URLs when moving pages Determines if new page aliases should be created when a new page URL path or extension is set. Learn more in Linking pages and files.excludes all pages whose URL path starts with /Cu stom. /Custom . Entering a value excludes all URLs that start with the given path./Static . without the virtual path designator (~).. Use permanent URLs If enabled. Also. Search engine optimization (SEO) Google sitemap URL Sets the URL where the website's Google (XML) sitemap can be accessed. Sample values: /Custom. Automatically update page alias If enabled.Friendly URL extension Specifies the extensions that the system adds to page URLs. enter a semicolon without any extension. the file URLs end with no extension: getfile/<node alias>/myimage Excluded URLs Specifies a list of URLs that are excluded from the URL rewriting engine. The entered value is added to the website's domain to form the final URL.aspx. including sub-directories and all possible extensions.htm /Custom.excludes all pages whose URL path starts with /Custom or /Static. Extensions must be preceded by the period character. you can improve their page load performance and also prepare scenarios with custom URL rewriting logic. Warning: Do not exclude the URLs used by the regular pages in the website's content tree. This prefix is rewritten to urlpathprefix query string parameter. . If disabled.excludes the ~/Custom.aspx page stored directly under the website's root. You can add multiple extensions separated by semicolons (. Files friendly URL extension Specifies the extension that the system adds to file URLs. The internal path to the page responsible for generating the sitemap can be specified through the Google sitemap path setting.aspx. ~/Custo m/Page. the alias of a page is automatically updated to match any changes in the name of the given page in the default culture. To allow extensionless URLs.). Use name path for URL path If checked.. The first extension is used as the default option when generating links and page URLs. By excluding the URLs of physical pages stored inside the web project directory.aspx If empty.aspx. the name path of pages will automatically be copied into their URL path when they are saved. the page alias property will not be editable manually.html.htm.

a full sitemap of the website is automatically generated by the ~/CMSPages/GoogleSiteMap. Available options: Do not check the URL case Use the exact URL of each page Redirect all requests to lower case URLs Redirect all requests to upper case URLs Redirect pages to main extension If enabled. If left empty. This page must contain the Google Sitemap (XML Sitemap) web part. This page should contain a Custom response web part configured to generate the required robots. Process domain prefix Determines how the rewriter handles the www domain prefix in the website's URLs. Note: You can override this setting for individual page aliases through their Alias redirection property. This is highly recommended. Robots.URLs Use URLs with trailing slash Specifies how the rewriter handles trailing slashes in URLs.Google sitemap path Specifies the path of the page used to generate the website's sitemap. Regardless of the selected page's location in the content tree. or custom URL path if one is specified. Note: That this setting does not apply for IP addresses and toplevel domains. If necessary.aspx system page. You can leave the domain as it was entered or have it rewritten to either always or never include the www prefix. txt file. This is achieved by including the rel="nofollow" attr ibute in the output code of all such link tags. Possible options: Leave the URL as is Always use URLs with a trailing slash Always use URLs without a trailing slash Redirect page aliases to main URL Enabling this setting ensures that pages always have only one valid URL and other aliases are redirected to this main URL (for SEO purposes). the system uses permanent (301) redirection instead of standard temporary (302) redirection. . the system places the ViewState field at the end of the output code generated for pages. Any URLs with a different extension are automatically redirected to a corresponding URL with the main extension. SEO . The actual URL where web crawlers can read the sitemap is determined by the value of the Google sitemap URL setting. Allow permanent (301) redirection If enabled. This only sets the internal path of the sitemap. Move ViewState to the end of the page If enabled. users can override the default value and set a different replacement page path.txt URL is requested. its output is returned whenever the <website domain>/robots. Redirect invalid case URLs to their correct versions Determines how the system handles the letter case of characters in URLs.txt path Specifies the path of the page used to provide the website's robots. message boards or in blog comments. This helps search engine crawlers process more page content. Use NOFOLLOW for user links If enabled. Default replacement page The entered page path is loaded as the default value of the Replac ement page field if users choose to specify an alternate page while deleting a page in the Pages application. because it allows web crawlers to properly react to any changes made on your website and pass page rank to the new or main URL. The main extension is the first one specified in the Friendly URL extension setting. This precaution can help prevent user-generated links from damaging the search ranking of your website.txt content. the system instructs search engine crawlers (robots) not to follow links posted by users on forums. the system ensures that all page URLs use the current main extension. The main URL of a page is determined either by its alias path.

The name of the prefix matches the culture code (or culture alias) of the content culture selected on the website. Related pages Search engine optimization Configuring page URLs Configuring URLs for multilingual websites Managing robots. create Domain aliases with an appropriately set Visitor culture. Use page defined by default alias path . SEO . You can choose from the following options for the home page URL: Not specified .aspx Important: This setting only works correctly if the website is hosted on IIS 7 or newer. . the system generates the domain name in page URLs based on the current content culture. Using a unified home page URL is highly recommended.Default page Allows you to redirect (permanent 301) all possible URLs that access the home page of your website to one single URL. URLs without language prefixes are allowed. and uses an application pool with an Integrated Managed pipeline mode.always uses the base URL of the website's domain name. It is used in places where the administrator's e-mail address cannot be specified in the administration interface or in web part properties (e. the URL is redirected to the corresponding domain name. Note: You cannot use this option in combination with language prefixes.Security & Membership General Administrator's e-mail Specifies the administrator's e-mail address. You can assign cultures to domains by editing your site in the Sites application: Set the culture of the website's main domain through the Visit or culture property on the General tab. because it prevents the duplicate content problem on your website's most important URL. To define domain names for other languages. the system generates page URLs with language prefixes.. Use language prefix for URLs If enabled.always uses the default URL: <doma in>/default. Whenever a user switches to a different language on the website. Use domain root . user account confirmation page).txt Settings . Example: <domain>/en-US/Home.supports all possible home page URLs and does not perform any redirection.always uses the URL of the paeg specified by the website's Content -> Default alias path setting. Otherwise the system redirects such URLs to a corresponding URL that includes a language prefix. Use default page URL . Only applies if Use language prefix for URLs is enabled. A language prefix is a subdirectory inserted into the URL.g.aspx Allow URLs without language prefixes If enabled.Cultures Force domain culture If checked.

On-line users Monitor on-line users Enables monitoring of on-line users who are currently browsing the website. Registration confirmation page path Path to the page that contains the Registration e-mail confirmation web part. records about on-line users will be stored in the database. When a user registers on the live site or is edited/created on a specific site (i. Entered user names must be divided by semicolons. meaning that it will be possible to create users with names that are already taken on another site in the system. Share user accounts on all sites If enabled.Expiration notification email template. The registration confirmation link that will be sent to users will point to this page. not globally. If disabled. Reverting back to the default state where user names are globally unique would require a significant amount of effort and direct editing of your user database.e. Require unique user e-mails If checked. Storing the data in the database also allows the system to provide more detailed information about anonymous users (guests) when using Contact management. These e-mails are only sent for memberships that were assigned with the Send notification flag enabled and for those that were purchased as a product with a limited duration. Do not enable this setting if you wish to have accounts shared across multiple sites. user names will only have to be unique for each site. Registration requires administrator's approval Indicates if an administrator's approval is needed for a user to get registered. new accounts will be assigned only to the current site and not the others. The value sets how many days before the expiration date reminders should be mailed out. Store on-line users in database If checked. This is necessary when running the system on a web farm. Deny login interval Interval in minutes during which kicked users cannot log back in to the site. . The content of the notifications is based on the Membership . the unique identifier (GUID) of the given site will internally be added as a prefix to that user's name.Send membership reminder (days) Determines when the system should send email notifications about Memberships that will soon expire. Update on-line users (minutes) Content Interval in minutes after which information about on-line users will be updated. Registrations Reserved user names Sets a list of users names that cannot be selected during registration. in the Users application). their account will be deleted after the entered number of days. Use site prefix for user names If enabled. Registration requires e-mail confirmation Indicates if user registration should require confirmation via e-mail ( double opt-in). user accounts created on one site will be shared among all the sites running on the installation. you need to enter the same value which is set for the Sessions remove expired sessions scheduled task (you can read the value in the S cheduled tasks application -> edit Sessions remove expired sessions -> Task interval -> Every: X minutes). When running the system on a web farm. users cannot enter an e-mail address during registration if the address is already used by another user's account. Delete non-activated user after (days) When users register but do not activate their account. Memberships are checked periodically using the Membership reminder scheduled task. Warning: Use this setting only if you have your system's user/site organization planned according to the functionality described above.

The system loads the list of connection strings from the <connectio nStrings> section of the application's web.permissions will be checked for all pages on the website. Secured areas . Enable code editing for site administrators Indicates whether users with the Administrator privilege level are automatically allowed to edit code on the website. users will not need to enter their username and password when they switch between edited sites in the administration interface (using the Site drop-down list). You can use reporting connection strings for the following scenarios: Retrieving data from a Separated on-line marketing database Restricting the database-level permissions of reporting queries via a connection string with a limited database user Related pages Security model overview . with the https URL scheme). You can configure the permissions of pages in the Pages application on the Properties -> Security tab. See Special security permissions. The (default) option represents the CMSConnectionString added by the application's initial database installer.Check page permissions Indicates if the website should check the user permission settings of pages and apply them. UI personalization Enable UI personalization Indicates if UI personalization should be enabled. users only see those parts of the UI that are allowed for the UI profile assigned to their roles. Access denied page URL URL of the page that should be displayed when a user is not allowed to read a page. Website logon page URL Specifies the URL of the page where users can sign in on the website in order to access its secured areas. The restriction applies to ASCX code of page layouts and transformations (modifying the HTML version of the code is allowed regardless of the setting).permissions will be checked only for pages that are configured to require authentication. No page . Existing reports also inherit the connection string value from this setting by default. If disabled. and SQL queries. Note: This page is different from the one used to log into the administration interface. The following values are possible: All pages . Administration Use SSL for administration interface Indicates if the pages of the administration interface should automatically use URLs that are secured by the SSL protocol (i. Only users who have the Set connection string permission for the Reporting module can change the connection strings of individual reports. If disabled.config file.e.g. Automatically sign-in user when site changes If enabled. the entire UI is visible for all users. e. for objects in the Reporting module. If this is the case. Reporting Default report connection string Sets the database connection string that the system assigns to newly created reports. administrators can still edit code if they have the appropriate permissions assigned: Edit Code for the Design module or Edit SQL Queries for the Reporting module.permissions will not be checked for any pages.

. If disabled. it is recommended to set the appropriate format directly after the installation. If you change the password format.Settings . The value of this setting is used by the administration interface logon page and inherited by individual Logon form web parts if their own Reset password page property is not set. if user's passwords should be valid only for the number of days specified in the following setting. It is necessary to set all passwords again so that they are stored in the new format. but will instead be sent an email containing a link to a page where they can manually set a new password. For this reason. Note: An empty string in the UserPassword field of the CMS_Use r database table is considered to be a blank password for both plain text and hashed password formats. Password expiration period (days) Specifies the number of days after which the users passwords become invalid. They may either be saved in plain text or as the result of a security hash function. users who submit a password recovery request through a logon form will not receive their password directly. If you forget the global administrator password. Password expiration Enable password expiration Indicates. the link in the password recovery email will expire and become invalid. or a newly generated password if hashing is used. If disabled. The Reset password web part must be placed on the specified page to ensure that users can set a new password. the system will send an email to the given user containing their current password if passwords are stored in plain text. Reset password interval Sets the length (in hours) of the time interval during which users will be allowed to change their password after submitting a password recovery request (if the Reset password requires email approval setting is enabled).Passwords Passwords Send password e-mails from Sets the e-mail address from which password recovery e-mails will be sent. Reset password page URL Sets the URL of the page where users can change their password after they submit a password recovery request. See Password expiration for more information. Password format Selects the format used to store the passwords of users. The recommended option that provides the best security is SHA2 with salt. users will receive another email containing their new password once they successfully reset it. If empty. the ~/CMSModules/Membership/CMSPages/ResetPas sword. Password reset Reset password requires email approval If checked. Password expiration behavior Specifies the behavior of the system after a user's password becomes invalid. you can manually insert an empty value to reset it. before you create user accounts or allow users to start registering. After the specified amount of hours. users' passwords never expire. Password expiration warning period (days) Specifies the number of days for which should be a warning message displayed before the user's password expires. please keep in mind that this only affects how future passwords are stored and existing passwords will remain unchanged. Send email with reset password If enabled.aspx default page is used.

any character except for numbers and letters) that must be present in a password in order for it to be accepted. If left empty. the policy is applied only to the passwords of newly registered users. For example: ^(?=. if the system checks whether the users' passwords meet the configured password policy whenever the users try to log on. . a default message will be shown. Enabling this setting does not change the passwords of existing users. Passwords that do not meet the required conditions will be rejected.e. If you specify a regular expression for passwords. if the system sends the users e-mails when their passwords expire. Policy violation message Specifies a custom text message that will be displayed to users who attempt to enter a password which does not fulfill the requirements of the password policy. The minimum amount of characters would be determined by the remaining policy settings. upper case letter and number. If disabled.*\d)(?=. Password policy Use password policy Indicates if a security policy should be used to validate the passwords entered by users for their accounts. If your site has multiple cultures (languages) assigned to it.*[a-z])(?=. it is recommended to describe its requirements in this message. Number of non alphanumeric characters Sets the minimum number of non alphanumeric characters (i. it only adds requirements that must be fulfilled by new passwords. Regular expression Can be used to enter a regular expression that will be used to validate user passwords. Enable Autocomplete If true Autocomplete for user name text box in login form is enabled. Bad words Check bad words Determines if bad word check should be performed.Send password expiration e-mail Indicates. Minimal length Sets the minimum number of total characters required for user passwords. Force password policy on logon Indicates. The details of the policy can be specified through the settings below.*[A-Z]). you can enter a different message for each language via the Localize actio n. the users are forced to change the password.*$ This sample expression would require passwords to contain at least one lower case letter.Protection General Display account lock information message Indicates if user friendly information about account lock should be displayed. Related pages Security model overview Securing user accounts and passwords Password strength policy and its enforcement Settings . When the passwords do not meet the requirements. informing about the minimum password length and number of non alphanumeric characters. This regular expression is applied in combination with the other policy settings. Bad word replacement Default replacement text which will be used during bad word check.

Users can choose to enable multi-factor authentication when they register to your website. Text CAPTCHA .requires re-typing of a string displayed in an image. Settings . reCAPTCHA private API key Private key for the domain you want to use reCAPTCHA on.requires re-typing of two words from which one is checked for correctness.aspx will be used). invalid logon attempts functionality is disabled. If set to 0. Redirect banned IPs to URL If the IP address is banned the user is redirected to this page.com/recap tcha. Invalid logon attempts Maximum invalid logon attempts Maximum invalid logon attempts before user account is locked. Screen lock Enable screen lock Enables or disables screen lock feature. The following four types of controls are available: Logic CAPTCHA . if multi-factor authentication is enabled.google. Flood protection Enable flood protection Enables or disables flood protection. Flood protection interval Value in seconds which represent the minimal interval between user's actions. The behavior of these form controls throughout the system can be changed by modifying the settings of the individual controls.com/recap tcha. You can obtain the necessary API keys at http://www.requires re-typing of a string into multiple fields. system page ~/CMSModules/Membership/CMSPages/UnlockUserAccount.Bad word action Default action which will be performed during bad words check. Warning interval (seconds) Warning period (in seconds). .requires answering a logical question. reCAPTCHA public API key Public key for the domain you want to use reCAPTCHA on. Warning with countdown is shown for this number of seconds before the screen is locked. You can obtain the necessary API keys at http://www. The multi-factor authentication settings have global effect. They cannot be configured for individual sites. This value has to be greater than 0 and lower than session timeout. you can adjust settings related to the Multi-factor authentication. Lock interval (minutes) Time (in minutes) that has to pass before the screen is locked. Unlock user account path Path to custom page for unlocking user account (if not set. Multi-factor authentication Enable multi-factor authentication Indicates.google. Banned IPs Enable banned IPs Enables or disables banned IPs features. reCAPTCHA . Send unlock account e-mail Indicates if account unlock e-mail is sent when a user account is locked due to reaching maximum invalid logon attempts. which prevents spam on forums and other community services. which locks the part of the browser with the Kentico administration interface. CAPTCHA settings Control to use Determines the default CAPTCHA control that should be used for CAPTCHA verification throughout the system – in web parts and for the Security code form control.Authentication On this tab. Simple CAPTCHA .

Required user data page URL of a page containing the Required LiveID user data web part. Multi-factor authentication is required globally Indicates if all users in the system including newly created users are required to use multi-factor authentication. Users need to log in through the identity provider specified by the settings below (for example Active Directory Federation Services or Access Control Service).Claims-based authentication On this tab. General Enable OpenID Indicates if OpenID authentication is enabled. Enter the Client ID that you received when registering your website as a Live ID application. General Enable WIF authentication Enables claims-based authentication.Windows LiveID On this page. you can set up support for Windows Live ID authentication. . The user types the token into the Kentico Passcode generator mobile application.OpenID On this tab. Application ID Identifier of your website. If entered. new Live ID users who log into the site will not have their user account created immediately. you can adjust settings related to Claims-based authentication.Display initialization token Displays an initialization token when a user tries to sign in to Kentico with multi-factor authentication for the first time. Application secret Secret code that will be used to encrypt messages transferred between your website and the Live ID server. Assign new users to roles New users registered via OpenID will be assigned to these roles. If entered. Enter the Client secret that you received when registering your website. Disables the standard authentication mechanisms in Kentico. but they are redirected to this page and required to enter some additional data (or merge with an existing account) using the web part. Assign new users to roles New users registered via Live ID authentication will be assigned to the roles specified here. but will first be redirected to the specified page where they will be required to enter some additional data (or merge with an existing account) using the web part. Required user data page URL of the page where the OpenID required data web part resides. Note: You may need to set up SSL for your site to use certain identity providers. Settings . Settings . their user account is not created automatically. General Enable Windows Live ID authentication Indicates if users should be allowed to log in to the website using their Windows Live ID credentials. then when a new OpenID user logs in to the site. Related pages Configuring Windows Live ID authentication Settings . Disable if you want to use customized multi-factor authentication (without the mobile application). you can adjust settings related to OpenID authentication.

Peer trust . If not specified. When exceeded by 10% (or a different percentage set by means of the CMSLogKeepPercent web. The certificate must be installed on the server hosting Kentico in the Local Computer -> Trusted People certificate store. You can find the value in the provider's configuration interface or WS-Federation metadata. including letter case. Chain trust .accesscontrol. DB object schema Sets the database schema that is used for newly created database tables (e. Peer or chain trust . Settings .no validation of the certificate is done and the system accepts any certificate with the given thumbprint. The prefix is added upon object creation.Identity provider URL Specify the URL of your identity provider's WS-Federation passive endpoint. Event log Event log size The number of events stored in the Event log.net/adfs/ls https://accesscontrolnamespace.accepts certificates whose chain of trust leads to a trusted certification authority. You can use your website's domain name (and virtual directory if applicable) in most cases. Trusted certificate thumbprint Enter the thumbprint of the certificate used to secure the communication between Kentico and the identity provider.509 certificate specified in the Trusted certificate thumbprint setting. the percentage of the oldest events is deleted from the log in a batch.config key). The certificate must be installed on the server hosting Kentico in the Local Computer -> Personal certificate store. See Working with Certificates. use the base domain name of the website. for custom page types).accepts self-issued certificates. Object code name prefix A default prefix added to all object code names in the system. any trailing slashes and the protocol (http or https). Allowed audience URIs URIs of allowed audience for the identity provider.windows. None . To allow the authentication for all restricted sections of your website and the Kentico administration interface. Examples: https://adfs.System General Default user ID Default user ID that is used when no current user is defined. separated by semicolons. Set 0 if you don't want the system to log any events. Certificate validator _________________________ Sets the validation mode used for the X. The value must be exactly the same as in the relying party config uration of your identity provider. The value must match the corresponding relying party settings of your identity provider. any trailing slashes and the protocol (http or https).g. including letter case. the current database user is the owner of the tables. . The only values that make sense are either dbo or the current database user.accepts self-issued certificates.net/v 2/wsfederation Security realm Enter a URI that identifies your website or application. You can typically find the certificate thumbprint in the provider's Key/Certificate configuration. or certificates with a chain that leads to a trusted certification authority.

option. Doesn't overwrite Event log size set to 0. Scheduled tasks enabled Scheduled tasks will only be executed if this setting is enabled. Any additional tree nodes will be accessible via the click here for more. Log to database Indicates if events are logged to the database. You can set the minimum time between the checks to any interval. if you haven't turned on the Registration of Kentico in Windows Event Log opt ion when installing Kentico. . You can set an interval of 1 to 30 seconds. Service scheduler interval Determines how often the external Windows service checks if there are any tasks ready to be executed (in seconds). Use external service Indicates if scheduled tasks that have the Use external service op tion enabled are processed by the Kentico Scheduler Windows service. Server time zone Specifies the time zone of the physical location of the server. Setting 0 stops the scheduling of tasks. Log to trace Indicates if events are logged to trace. You can install the service using Kentico Service Manager. If disabled. Max UI tree nodes Maximum number of nodes displayed under one parent node in the administration UI trees.e. Site time zone Specifies the time zone for the selected site. Scheduler Application scheduler interval Determines how often the application checks if there are any tasks ready to be executed (in seconds). Send e-mail notifications from E-mail address used as the sender for e-mail notifications. Time zones Enable time zones Indicates if time zone support is enabled.. you can set an interval of 1 to 30 seconds. If it is configured to check automatically. Use the Modify feature of the Kentico installer. the service must be installed and running. Doesn't overwrite E vent log size set to 0.. the scheduler is configured to check tasks only on page requests. E-mails No-reply e-mail address Various types of automated e-mails will be sent from the e-mail address that is specified here. edited or deleted) are logged in the Event log. If enabled and the service is not running. Use EventLog trace listener Indicates if the system logs events in your Windows Event Viewer. when an object or page is created. these tasks are not processed at all. Log to filesystem Indicates if events are logged to the file system. Setting 0 stops the scheduling of tasks.Log metadata changes Indicates if changes of object and page metadata (i. User interface Hide unavailable user interface Indicates if the user interface is hidden for features unavailable due to license restrictions. Doesn't overwrite Event log size set to 0. which automatically selects appropriate parent category. It is possible to enter multiple addresses separated by semicolons. Note: for this to work. By default. all scheduled tasks are processed by the application itself. Error notification e-mail address E-mail notifications about errors logged in the event log will be sent to the specified addresses.

file requests are redirected to the corresponding physical file (if the requested file is stored in the file system). This type of caching cannot cause the website to display outdated information. listing pages in the user interface remember the preferences set by individual users. The system always caches files for at least one minute to protect against brute force attacks. Using 0 as the value disables content caching for the given web part instance. Kentico retrieves page information many times during the processing of a single page. It is recommended to cache all possible content. so always set this value to at least 10 minutes. Client-side file caching . without the drawback of not having the latest data available. Applies globally for all sites in the system. the default dependencies automatically ensure that web parts reload the cached content whenever the data is modified.Performance General Enable output compression Enables compression for the HTML output code of all pages rendered by Kentico. and web resources such as CSS stylesheets and JavaScript files. the system optimizes access to uncached data so that concurrent threads only use a single data access operation and share the results. Cache content (minutes) Sets the number of minutes for which web parts/controls with data sources cache their content (typically retrieved from the Kentico database). Maximum file size to cache Specifies the maximum file size in kilobytes that is allowed to be cached. Output compression requires compliance from client browsers. Setting a limit stops the file cache from using an excessive amount of memory. filter and state If enabled. the system automatically clears the corresponding part of the page info cache. Browsers that do not support compression always download uncompressed page output.Remember listing. You can use cach e dependencies to clear the cache on content changes. This leads to better performance if the website is under a heavy load. so file caching cannot cause the website to display outdated content. For most non-custom data sources. Redirect files to disk If checked. Use progressive caching If checked. Includes images. Kentico automatically removes files from the cache if they are modified. When a page is modified. You can override this value for specific web part instances by setting their Cache minutes property. including: filtering options sorting order the number of the selected page page size Settings . Server file caching Cache files (minutes) Sets the number of minutes for which the system caches images and other files on the server. Server content caching Cache page info (minutes) Sets the number of minutes for which the system caches page information (basic page properties and metadata).

If you enter a value. and web resources such as CSS stylesheets and JavaScript files. the server returns a 304 Not Modified response. Revalidation can have the following results: If the server contains a newer version of the file than the client cache. the system allows output caching. To enable output caching for pages. If unchecked. To completely disable client caching of files. The client cache keeps the file and refreshes the expiration time. To ensure that files are always up-to-date in the client cache. If the file is unchanged. browsers always fully reload expired files. configure the Allow file system cache property of individual pages in the Pages application on the Properties -> General tab. Output cache stores the full HTML source of pages. configure the Output cache p roperties of individual pages in the Pages application on the Prope rties -> General tab. the system only saves the output cache in the application memory. The client and server only exchange HTTP header information. If not set. output caching is disabled on the whole website. If disabled. Revalidation allows the client cache to refresh unchanged files without loading the file data from the server. set the value to 0 and enable the Allow client cache revalidation sett ing. . Cache output in file system (minutes) Specifies the number of minutes for which the system stores output cache in the file system. This provides persistent cache storage in case of application restarts. Output caching Enable output caching If checked.Client cache (minutes) Sets the number of minutes for which client browsers are allowed to cache files (i. Client file caching includes images. set the value to 0 and disable client cache revalidation. the revalidation fails and the server returns the full file (standard 200 HTTP response). browsers perform revalidation when requesting files that have expired in the client cache. Both the main website setting and page settings must be enabled to use output caching. the length of the client cache expiration time). Allow client cache revalidation If enabled.e. To enable output caching in the file system for pages. which is significantly faster than fully reloading files. the system checks both types of output cache.

the output cache does not distinguish between users — if a page's output is cached for one user. Click Edit to change the default settings. If not checked.the device profiles detected for visitors.the page view modes used by Kentico. the system only uses caching for the live site view mode. Applies globally to the partial cache of all web parts.different types of web browsers.the cookie level preferences of visitors. cookielevel . If disabled.the website domain name (check to disable output cache sharing between different domain aliases of sites). the system loads the same content for all languages (depending on the remaining partial cache variables). preview or live site. browser . the lang variable ensures that each web part instance has a separate version of the partial cache for every language.every site in the system (leave checked unless your sites have identical content). the partial cache does not distinguish between languages — if a web part's output is cached for one language. the system allows partial caching of web parts. viewmode . This reduces the amount of data that must be loaded. Minification of the given resource type must be enabled (via the All ow JavaScript/CSS minification settings) in order for compression to be applied. For example. Currently. the username variable ensures that the system stores a separate version of each page's output cache for every logged in user. the system compresses JavaScript and CSS stylesheet web resources before sending them to the client browser. browser . You need to enable partial caching for individual web part instances using the P artial cache minutes property. lang . Click Edit to change the default settings. web parts do not use partial caching. the system only uses caching for the live site view mode.Output cache variables Determines under which conditions the system stores multiple versions of the output cache for pages. the system may load the same content for all other users (depending on the remaining output cache variables).different types of web browsers. Currently.each language version of pages. By default. sitename . . sitename . For example.each language version of pages. The partial cache stores the HTML output of individual web part instances.the page view modes used by Kentico. partial caching is disabled on the whole website for all web parts. preview or live site. Uncompressed versions remain available for browsers that cannot process compressed data. such as e dit. viewmode . If disabled.every logged in user (public users always share the same partial cache). Partial cache variables Determines under which conditions the system stores multiple versions of the partial cache for web parts.every site in the system (leave checked unless your sites all have identical content on pages with the same path). lang . such as e dit. Resources (global settings only) Allow resource compression If enabled. You can enable or disable separate output cache for: username . You can enable or disable separate partial cache for: username . domain . The output cache always creates separate cache items based on the: Page path (including the virtual directory and extension) Protocol in the request URL Enable partial caching If checked.every logged in user (public users share the same output cache). deviceprofile .

E-mails General E-mail encoding Sets the character encoding used for e-mails sent by the system. If Both is selected and an e-mail template has both formats defined. you first need to remove all occurrences of macros from your stylesheets. Minified code has a reduced size. but may not be suitable for debugging. Related pages Optimizing website performance Configuring caching Using code minification and compression Designing websites using CSS Settings .g. Allow CSS minification Indicates if CSS stylesheet resources should be minified before they are served to the client browser. you either need to have all styles defined in the website's stylesheet. CSS Styles (global settings only) Resolve macros in CSS If checked. Using the email queue is highly recommended when sending out large amounts of emails over a short amount of time (newsletters or other types of mass emails). so browsers cannot process stylesheets containing macros. E-mail processing Enable e-mails If checked.) are automatically requested by the page where they are placed. If disabled. To insert this type of macro. You can choose between HTML and Plain text. e-mails will be sent directly to the SMTP server. several web parts) are always retrieved by a single request. web parts. . pages load the CSS styles of all contained components via a single request. It is recommended to leave the default encoding unless you encounter issues with extended characters in your e-mails. UTF-8 is used. Combining the CSS requests into one may improve the load time of individual pages and is recommended in most cases.g. which saves bandwidth and decreases response times. Otherwise different types of components each generate a separate request. add an expression into the code of a stylesheet according to the following format: {%CSS["<stylesheetn ame>"]%} Warning: If you wish to disable this setting. page templates etc. You can temporarily disable sending of e-mails by clearing this check-box. macro expressions can be used in CSS stylesheets to dynamically insert the content of other stylesheets. an e-mail queue will be used when sending e-mails. Otherwise. The styles of multiple components of the same type (e. HTML will be used for the e-mail text and plain text will be included as an attachment. This allows advanced email processing and automatic resending of mails that are lost due to errors. Unresolved macro expressions are not valid CSS code. when performing administration tasks.g. CSS styles defined for individual page components (e. Allow CSS from components If enabled. E-mail format Format used for e-mail messages. e-mail sending will be enabled. Combine CSS from components If enabled. or link the styles of the required components into the stylesheets via CSS macros. Enable e-mail queue If checked. By default. e.Allow JavaScript minification Indicates if JavaScript resources should be minified before they are served to the client browser.

a new batch is prepared and assigned to the next available server. It improves site performance. Files folder The folder on the disk where page attachments and metafiles are stored. This setting affects all sites in the system. Store files in database Indicates if files should be stored in the database. This process is repeated until all e-mails are mailed out. You can define additional servers that will be used if this one is busy in the SMTP servers application. This option only applies if files are stored in the file system. you can enter the user name here. Enter localhost if you wish to use the server provided by your local machine. Settings . please include it in the name. If set to 0. it will accept emails from all sites in the system and also handle mails that are not related to any specific website). It is useful for better orientation in files when multiple sites are running in the system.g. the files are stored in folder ~/<site code name>/files. If enabled. e-mails will not be archived. SMTP server user If the server requires authentication. Generate thumbnails Indicates if the Kentico should generate image thumbnails on the disk when a resized version of the image is displayed. Use SSL Indicates if the SMTP connection to the server should be secured by SSL.e. This field must contain the domain name or IP address of the server. you can enter the password here. the server will either be dedicated to a single website. c:\myfiles\ virtual path: ~/UploadedFiles UNC path: \\server\folder If you do not specify any value. The server must be configured to use SSL in order for this to work. Depending on the value selected in the Site dropdown list. or will be designated as a global server (i. <custom form files folder>/<site code name>.Batch size Sets the maximum number of e-mails that can be transferred from the e-mail queue to an SMTP server in one batch.e. i. Such emails may be viewed in the E-mail queue application on the Sent e-mails tab. If the specified value is smaller than the total amount of e-mails to be sent from the queue. attachment files will be stored in a sub-folder named according to the code name of the site where the form is placed. Archive e-mails (days) Sent e-mails will be stored by the e-mail queue for the number of days specified here. If the connection to the server should use a different port than 25. . You can use: physical disk path: e. so it is only available if the (global) option is selected from the Site dropdown list.Files Storage Store files in file system Indicates if files should be stored in the file system. Default SMTP server SMTP server The SMTP server specified here will be used as the default option when sending emails. Use site-specific subfolders for custom files folder This setting is only applied when a Custom form files folder is configured. SMTP server password If the server requires authentication.

Watermark position The position where the image watermark is placed on the watermarked images. attachment files will be stored in a sub-folder named as the site code name under the custom files folder.e. Watermark Watermark image Image name or path that will be used for watermarking images. the files are stored in ~/<site code name>/BizFormFiles. the built-in Performance monitor in Microsoft Windows.) or just a file name from the ~/App_The mes/Default/Images/Watermarks folder. Health monitoring allows system administrators to observe and record the application's load and performance using an external application. such as ASPX scripts. Use watermark for media files If checked. You can find more info in the Resizing images on upload chapter. height. Check files permissions If checked. Aspect ratio is preserved. Use site-specific subfolders for custom form files folder This setting is only applied when a Custom form files folder is configured. only files that are in the Published workflow step can be accessed from the live site when a workflow is applied to the page. the watermark is used for media files. uploading will be allowed for all file types. Use watermark for page images If checked. Only width or only height . Security Upload extensions Specifies which extensions are allowed for uploaded files. Max side size . You can use: physical disk path: e.images are resized so that the larger dimension matches the respective entered value. Image resizing Automatic image resize on upload (width.Health monitoring On this page. Aspect ratio is preserved and width and height settings are not applied.images are resized so that their width or height matches the entered value.jpg. File import folder Path to the source folder where files to be imported by the File import should be uploaded before import. <custom BizForm files folder>/<site code name>. You can restrict the types of uploaded files by entering a limited list of extensions separated by semicolons. It is useful for better orientation in files when multiple sites are running in the system.pdf This allows you to block users from uploading potentially dangerous files. The other dimension is also resized so that aspect ratio is preserved. for example: gif. Both width and height . Minimum image height for watermark Minimum height of an image to be watermarked. page permissions are applied to the files. the watermark is used for object attachments.if one of the image's sides is larger than this value.images are not resized.Custom form files folder Folder where files uploaded via Forms are stored.. Settings . If no value is specified.g.doc. the watermark is used for page attachments. User either a full path (~/. c:\myfiles\mysite virtual path: ~/UploadedFiles UNC path: \\server\folder If no value is entered. e. Check if files are published If checked. If no value is entered.g. If enabled. . Use watermark for object attachments If checked. i. ~/ CMSImportFiles is used by default. max side size) The behavior of the system when uploading images depends on which values you fill in these fields: No values are entered . the image is resized so that its larger side's dimension matches the entered value. Minimum image width for watermark Minimum width of an image to be watermarked. you can configure settings related to the Health monitoring functionality.

e. which ensures that all attributes of HTML tags are generated in valid XHTML format. which fixes the issue with nonworking postbacks on pages that use URL rewriting. It ensures that forms. no values are written to any of these performance counters.aspx would be changed to /my page1/mypage2. E-mails in queue and Error e-mails in queue perf ormance counters. dialogs and buttons will work correctly on pages managed by Kentico. For example. the external Windows service reads monitored values and writes them to the performance counters. Excluded resolve filter URLs Allows you to disable the URL resolving output filter. it is necessary to restart the Windows service in order for the new value to be used. using the external service may optimize your application's performance. e. which ensures that all HTML tags and attributes are generated in lower case. If disabled. Applying output filters to your website General Excluded output form filter URLs May be used to disable the Form output filter for specific URL paths. the application reads monitored values and writes them to performance counters. <br> will be replaced by <br />.General Enable health monitoring Indicates if Health monitoring is enabled.Output filter The settings in this category allow you to adjust the Output filter. ~/mypage1/mypage2. i. Only URLs inside src and href attributes are changed.g. . Excluded XHTML lower case filter URLs Specifies the URL paths of the pages that should be excluded from the Lower case XHTML filter. In this periodic interval. Service monitoring interval Time interval (in seconds).aspx (if the application is running in the root) or /Vi rtualDirectory/mypage1/mypage2. Excluded XHTML JavaScript filter URLs Specifies the URL paths of the pages that should be excluded from the JavaScript tag XHTML filter. In this periodic interval. Enable site counters Indicates if values are written to site specific performance counters. XHTML filter Excluded XHTML filter URLs May be used to specify the URL paths of the pages that should be excluded from all functionality provided by the XHTML output filter. which ensures that the type and la nguage attributes are included in all <script> tags. As these counters require database access to get their values. Settings . Excluded XHTML attributes filter URLs Specifies the URL paths of the pages that should be excluded from the Tag attribute XHTML filter.aspx (when using a virtual directory). values are written to general counters only. which performs additional changes to the final output code of pages before it is sent to the browser for rendering. which ensures that all HTML elements without closing tags are properly closed. If you are using the Health Monitoring Windows service and change this value. Application monitoring interval Time interval (in seconds). if monitored values are written to both General and Site performance counters related to this instance of Kentico. Use external service Indicates if external Windows service (Kentico Health Monitor) should be used to read and write monitored values to the Schedule d tasks in queue. If disabled. Excluded XHTML self close filter URLs Specifies the URL paths of the pages that should be excluded from the Self closing tag XHTML filter. which adjusts relative URLs so that they reflect the root URL of the website.

The system automatically assigns CSS classes to the replacement Div tags according to the name of the original tag. These classes need to be defined in the CSS stylesheet used by the website's pages. separated by semicolons. width. By default. align. all available file types are allowed. The affected attributes are: cellpadding. Allowed attachment file types Specifies which file types are included when searching page attachments.Excluded HTML 5 filter URLs Specifies the URL paths of the pages that should be excluded from the HTML5 output filter. border. This behavior can either be disabled completely. Enable smart search indexing Indicates if smart search indexing is enabled.Search On this page you can configure settings related to the search engine on your websites. enabled for all tables except for those marked by the _nodivs CSS class. the system can extract content for the following file types: xml. This setting is applied to all pages on which the XHTML output filter is enabled. You can enter multiple paths separated by semicolons (. or only enabled for the tables designated through the _divs class. xlsx. The following categories of settings are available: General All Cache access SQL queries IO Page ViewState Output . txt. You can specify multiple page types separated by semicolons (. If you leave the setting empty. Convert TABLE tags to DIV tags Determines which <table> elements (and their child <tr> and <td> t ags) should be converted to <div> elements by the output filter. Such attributes are removed and the system instead assigns CSS classes named in format <attribute name>_<attribute value>. valign For example: <table cellpadding="2" cellspacing="4"> would be replaced by: <table class="cellpadding_2 cellspacing_4"> Indent output HTML Indicates if the HTML output of pages should be processed into a properly indented.Debug On this page. This setting is only available if (global) is selected in the Site drop-down list. The classes need to be defined in the CSS stylesheet used by the website's pages. height. csv. htm.). pdf. Settings . Search Exclude page types from SQL search Specifies the page types that the system does NOT search when using SQL search. html. Only applies to Page indexes that have the Include attachment content option enabled for their allowed content. Exclude pages from SQL search Specifies site sections that the system does NOT search when using SQL search. Use path expressions to identify site sections or individual pages. pptx Enter the allowed file types as file extensions without dots. This filter replaces tag attributes that are obsolete in HTML5. docx. easier to read format.). not for individual sites. Settings . The smart search indexes the content of attachments along with the related pages. you can configure settings of the system's debugging tools. cellspacing.

Debug Import/Export If disabled. the number of requests for which debug information is preserved and displayed on the tab. the system tracks the code stack for all debug types and displays the information in the Context column of the debug interface in the Debug application. cache access debug information is also displayed at the bottom of each live site page. Include UI pages in all debugs If checked (true). it is recommended to leave this option disabled unless you need to debug the Import/Export process. all enabled debugs include actions performed on the pages of the user interface. i. access to data cached for pages of the administration interface will also be included in the cache access debug.e. the system does not log debug information for the pages of the Import/Export interface.log files in the ~/Ap p_Data/ folder (including the Event log and E-mail sending log). All Setting Debug everything everywhere Description Enables: All debug types Debugging of user interface pages for all debugs Live site debugging (for all debugs) Enable all debugs Enables all debugs and the corresponding tabs in the Debug appli cation. Debug cache access of UI pages If enabled. If empty. Debug resources If disabled. Display all debugs on live site If checked (true). the debug ignores all resource requests (GetResource and GetCSS). Cache access debug log length Sets the maximum length of the cache access debug log on the De bug -> Cache access tab.Security Macros Analytics Requests Web farm Event handlers General Setting Description Disable debugging Globally disables all debugs. This option requires cache access debugging to be enabled. . Display stack information in every debug If enabled. The default log length is used by debug types that do not have their own log length set. regardless of individual debug settings. Log everything to file Enables logging of all possible operations into . Debug scheduler If disabled. Display cache access debug on live site If enabled. Cache access Setting Description Enable cache access debug Enables cache access debugging and the Cache access tab in the Debug application. For performance reasons. value of the Default log length setting (or the CMSDebugEveryth ingLogLength key) is used. This option requires cache access debugging to be enabled. the debug ignores all operations executed by the sched uler. Default log length Sets the default maximum length of the debug log in the Debug ap plication. all enabled debugs display their information on the live site below the regular content of pages.

.e. the number of requests for which debug information is preserved and displayed on the tab. This information is only available in the debugging UI and on the live site. cache access debug log is saved into the logcache. close) are logged in the SQL query debug log. IO Setting Description Enable IO operation debug Enables IO operation debugging and the IO tab in the Debug appli cation. This option does not require SQL query debugging to be enabled. the system tracks the code stack when debugging IO operations and displays the information in the Context column. SQL queries Setting Description Enable SQL query debug Enables SQL query debugging and the SQL queries tab in the De bug application. not in the debug log written into the logfiles.log file in the ~\App_Data folder. the number of requests for which debug information is preserved and displayed on the tab. This option requires SQL query debugging to be enabled. SQL query debug log is saved into the logsql. This option requires IO operation debugging to be enabled.log file. not in the debug log written into the logsql. Display stack information If enabled. i. Display stack information If enabled. Log IO operations to file Page ViewState If enabled. This option does not require IO operation debugging to be enabled. Debug SQL queries of UI pages If enabled. IO operation debug log length Sets the maximum length of the IO operation debug log on the Deb ug -> IO tab. SQL queries called by pages of the administration interface will also be included in the SQL query debug. This information is only available in the debugging UI and on the live site. Display IO operation debug on live site If enabled. This option does not require cache access debugging to be enabled.log file in the ~\App_Data folder. IO operation debug log is saved into the logfiles.Display stack information If enabled. IO operations called by pages of the administration interface will also be included in the IO operation debug. SQL query debug information is also displayed at the bottom of each live site page. This option requires SQL query debugging to be enabled. If empty. value of the Default log length setting (or the CMSDebugEverythingLo gLength key) is used.log file. Log cache access to file If enabled. Log SQL queries to file If enabled. the system tracks the code stack when debugging cache access and displays the information in the Context column. IO operation debug information is also displayed at the bottom of each live site page. Display SQL query debug on live site If enabled. Debug IO operations of UI pages If enabled.log file.log f ile in the ~\App_Data folder. value of the Default log length setting (or the CMSDebugEverythingLo gLength key) is used.e. open. If empty. SQL connection operations (new. the system tracks the code stack when debugging SQL queries and displays the information in the Context column. SQL query debug log length Sets the maximum length of the SQL query debug log on the Debu g -> SQL queries tab. This option requires IO operation debugging to be enabled. not in the debug log written into the logcache. This information is only available in the debugging UI and on the live site. Debug SQL connections If enabled. i.

Debug security operations of UI pages If enabled. ViewState debug information is also displayed at the bottom of each live site page. Display security debug on live site If enabled. ViewState of administration interface pages will also be included in the ViewState debug. i. not in the debug log written into the logSecurity. security operation debug information is also displayed at the bottom of each live site page. the number of requests for which debug information is preserved and displayed on the tab.log file. If empty. Macros Setting Description . Display stack information If enabled. security checks performed by pages of the administration interface will also be included in the security debug.e. Debug ViewState of UI pages If enabled. value of the Default log length setting (or the CMSDebugEverythingLo gLength key) is used.e. This information is only available in the debugging UI and on the live site. value of the Default log length setting (or the CMSDebugEverythingLo gLength key) is used. Log output to file If enabled. Display ViewState debug on live site If enabled. Security Setting Description Enable security debug Enables security operation debugging and the Security tab in the Debug application. This option requires ViewState debugging to be enabled. This option requires security debugging to be enabled. If empty.e. Output Setting Description Enable output debug Enables page output debugging and the Output tab in the Debug application. This option requires output debugging to be enabled.log file in the ~\App_Data folder. Security debug log length Sets the maximum length of the security debug log on the Debug -> Security tab. the system tracks the code stack when debugging security and displays the information in the Context column. This option does not require security debugging to be enabled.Setting Description Enable ViewState debug Enables ViewState debugging and the Page ViewState tab in the Debug application. i. i. This option requires ViewState debugging to be enabled. output of administration interface pages will also be included in the output debug. Log security operations to file If enabled. This option does not require output debugging to be enabled. This option requires security debugging to be enabled. If empty. ViewState debug log length Sets the maximum length of the ViewState debug log on the Debu g -> ViewState tab. value of the Default log length setting (or the CMSDebugEverythingLo gLength key) is used. the number of requests for which debug information is preserved and displayed on the tab. the number of requests for which debug information is preserved and displayed on the tab.log file in the ~\App_Data folder. Output debug log length Sets the maximum length of the output debug log on the Debug -> Output tab. security debug log is saved into the logSecurity. output debug log is saved into the logOutput. Debug output of UI pages If enabled.

the system tracks the code stack when debugging macros and displays the information in the Context column. This information is only available in the debugging UI and on the live site. Macro debugging must also be enabled. Analytics Setting Description Enable web analytics debug Enables web analytics debugging and the Analytics tab in the Deb ug application. the system saves the macro debug log into the logmacr os. If empty. macro debug information is also displayed at the bottom of each live site page. Log macros to file If enabled. If empty. web analytics debug log is saved into the loganalytics. This option requires request debugging to be enabled. the debug only shows the final result of each macro. Display stack information If enabled. Display stack information If enabled.e.log file. not in the debug log written into the loganalytics. Macro debugging must also be enabled. This allows you to check the exact data content of a macro's components during each step of the resolving process.log file. the number of requests for which the macro debug stores information. i. Display web analytics debug on live site If enabled.lo g file in the ~\App_Data folder. Enable detailed macro debug If enabled. Debug macros resolved on UI pages If enabled. . You can enable the detailed debug only for specific expressions by adding the |(debug) parameter to the given macro. This information is only available in the debugging UI and on the live site. the system tracks the code stack when debugging web analytics and displays the information in the Context column. Log web analytics to file If enabled. Macro debugging must also be enabled.e. This option requires web analytics debugging to be enabled. the number of requests for which debug information is preserved and displayed on the tab. web analytics debug information is also displayed at the bottom of each live site page. value of the Default log length setting (or the CMSDebugEverythingLo gLength key) is used. Display macro debug on live site If enabled. not in the debug log written into the logmacros. macros resolved on the pages of the administration interface are also included in the macro debug. Macro debug log length Sets the maximum length of the macro debug log. the macro debug displays the results of all subelements used within macro expressions. Web analytics debug log length Sets the maximum length of the web analytics debug log on the De bug -> Analytics tab. Requests Setting Description Enable request debug Enables request debugging and the Requests tab in the Debug ap plication. If disabled.Enable macro debug Enables macro debugging and the Macros tab in the Debug applic ation. This option does not require web analytics debugging to be enabled. i. Display request debug on live site If enabled. request debug information is also displayed at the bottom of each live site page. the value of the Default log length setting (or the CMSDebugEver ythingLogLength key) is used. Detailed macro debugging is highly recommended if you encounter problems with complex expressions.log file in the ~\App_Data folder.

i. . This information is only available in the debugging UI and on the live site. the number of requests for which debug information is preserved and displayed on the tab. the number of requests for which debug information is preserved and displayed on the tab. the system tracks the code stack when debugging requests and displays the information in the Context column. operations performed via the administration interface will also be included in the event handlers debug. while the second one only lists requested URLs. Event handlers Setting Description Enable handlers debug Enables event handlers debugging and the Event handlers tab in the Debug application. Display stack information If enabled. web farm debug log is saved into the logwebfarm. This information is only available in the debugging UI and on the live site.e. not in the debug log written into the logRequests.Debug UI page requests If enabled. If empty. Log web farm operations to file If enabled. event handlers debug information is also displayed at the bottom of each live site page. request debug log is saved into the logRequests. Display handlers debug on live site If enabled. Debug web farm operations of UI pages If enabled.e. This option requires web farm debugging to be enabled. the system tracks the code stack when debugging web farm operations and displays the information in the Context colum n.e. not in the debug log written into the logwebfarm. This option requires event handlers debugging to be enabled. value of the Default log length setting (or the CMSDebugEverythingLo gLength key) is used. The first file contains the full log. Debug handlers in UI pages If enabled.log fil e in the ~\App_Data folder. i. This option does not require web farm debugging to be enabled. This option does not require request debugging to be enabled.log an d logRequestsUrls. the system tracks the code stack when debugging event handlers and displays the information in the Context column. This option requires request debugging to be enabled. i. If empty. This option requires event handlers debugging to be enabled. Web farm debug log length Sets the maximum length of the web farm debug log on the Debug -> Requests tab. not in the debug log written into the logwebfarm. value of the Default log length setting (or the CMSDebugEveryth ingLogLength key) is used.log file. Request debug log length Sets the maximum length of the request debug log on the Debug -> Requests tab. If empty. the number of requests for which debug information is preserved and displayed on the tab. Web farm Setting Description Enable web farm debug Enables request debugging and the Web farm tab in the Debug ap plication. Handlers debug log length Sets the maximum length of the event handlers debug log on the D ebug -> Event handlers tab. Display stack information If enabled. value of the Default log length setting (or the CMSDebugEverythingLo gLength key) is used. This information is only available in the debugging UI and on the live site. administration interface page requests will also be included in the macro debug.log file. operations performed via the administration interface will also be included in the web farm debug.log file.log files in the ~\App_Data folder. Log requests to file If enabled. Display stack information If enabled.

e-mail tracking. Newsletter marketing features. Once the test is running. A/B testing allows you to define different variants of pages. If checked. When a visitor views the tested page on the live site for the first time. a contact is kept until cookies are deleted or another contact is determined. the visitor's activity on the website is logged and categorized under the given variant. event handlers debug log is saved into the logwHandler s. Enable multivariate testing Indicates if multivariate testing (MVT) is enabled. The system displays the variants to users on the live site according to dynamically resolved conditions. This allows page designers (and content editors) to create different variants of web parts. the visitor's activity on the website is logged and categorized under the given MVT combination. Notes stamp format Defines the format of the stamps that can be added to account or contact notes. A/B testing and bounced mail monitoring. multivariate testing additionally requires the Enable web analytics and Track conversions settings to be enabled in Settings -> On-line marketing -> Web analytics.Log handlers to file If enabled.e. In order to work correctly. i.Activities . users can still work with existing contacts in the administration interface. contacts are kept until the current session expires. Settings . Settings . Content personalization Enable content personalization Indicates if content personalization is enabled. Logging of on-line marketing activities. A/B testing additionally requires the Ena ble web analytics and Track conversions settings to be enabled in Settings -> On-line marketing -> Web analytics. the system assigns one of the possible content combinations to visitors who access the page on the live site. If the setting is disabled. This allows you to define MVT tests for pages and create different variants of their content. Automatically recognize visitors by IP address Indicates if IP addresses are used to determine what contact is assigned to the current anonymous visitor. Remember contacts permanently Indicates how long contacts are remembered. From that point.log file in the ~\App_Data folder. entire web part zones or editor widgets. Optimization Enable A/B testing Indicates if A/B testing is allowed for pages. This includes the following functionality: Tracking of users on the live site as contacts. General Log IP addresses Indicates if logging of IP addresses is allowed. Settings .Contact management On this tab you can configure settings related to contact management. Otherwise. From that point.On-line marketing On-line Marketing Enable on-line marketing Indicates if on-line marketing should be enabled. Automatically recognize visitors by user agent Indicates if browser user agent information are used to determine what contact is assigned to the current anonymous visitor. This option does not require event handlers debugging to be enabled. the system randomly displays one of the variants. In order to work correctly.

activities are logged for the website (according to the other settings in this category). activity of removing a product from the shopping cart is logged. Adding a product to shopping cart If enabled. Track file downloads (cms. Clickthrough tracking If enabled. the activity of adding a product to wishlist is logged. Purchased product Indicates if an activity is logged individually for every purchase of a product. Landing page If enabled. Enter the allowed file types as a list of extensions separated by semicolons. User login If enabled. the system tracks all file types. This setting specifies which types of files the tracking includes. . Page Page visits If enabled. Forum post subscription If enabled. Leaving a group If enabled. the activity of visitor's adding a new comment to a blog post is logged.General Log activities If enabled. Message board subscription If enabled. the page visit activity is logged.docx. E-mail opening If enabled. the activity of adding a product to the shopping cart is logged. the activity of visitor's adding new forum posts is logged.file) for these extensions The system can track file downloads as Page visit activities for files stored as CMS. Forum posts If enabled. A landing page is where the visitor comes first when viewing the website. Membership User registration If enabled.png If left empty. Adding a product to wishlist If enabled. the forum post subscription activity is logged. the message board subscription activity is logged. the internal search activity is logged (the site visitor uses a standard search webpart). the newsletter unsubscription activity is logged. the joining a group activity is logged. the user registration activity is logged. Newsletter Subscription If enabled. the customer registration activity is logged. an activity is logged when a contact makes a purchase on the website (one record for the entire purchase). Blog post comments If enabled. the blog post subscription activity is logged. the user login activity is logged. Unsubscrption If enabled. Subscriptions Blog post subscription If enabled. the activity of user's clicking a particular hyperlink in an e-mail is logged. Removing a product from shopping cart If enabled. External search If enabled. the leaving a group activity is logged. the external search activity is logged (the site visitor uses an external search engine that leads them to the website). Search Search If enabled. Joining a group If enabled. Purchase If enabled. the landing page activity is logged. for example: pdf. the newsletter subscription activity is logged. the newsletter e-mail opening activity is logged.File pages in the content tree of a website. E-commerce Customer registration If enabled.

an activity is logged when a contact submits a support request via e-mail (this option is offered when no one from the chat support staff is online). Automatically create global contact for visitors with identical e-mail addresses If there are users with the same e-mail address across multiple websites. Other On-line form submission If enabled. the activity of poll voting is logged. an activity is logged when a contact accepts a chat request initiated by website personnel. the activity of creating a new page is logged. i. Poll voting If enabled.e. the content rating activity is logged. the abuse report activity is logged. the system creates a global contact for all site contacts associated with the given user. . an activity is logged when users accept automatically initiated chat requests.the oldest contact.the system creates a new contact and merges the other global contacts into it. The site-specific contacts are merged into the global contact. attendee's subscribing to an event. Deletion of existing page If enabled. select Indicates which contact the system uses as the primary contact for site visitors who have multiple global contacts assigned. Event booking If enabled. Automatically create global contact for user If enabled. User contributions Creation of a new page If enabled. Custom activities If enabled. Custom table form submit If enabled. First created . When choosing from global contacts. If one of the detected contacts is already global. Update of existing page If enabled. is logged. custom activities are logged. account statuses and contact roles on the website. an activity is logged when a contact requests chat support. the activity of updating an existing page is logged. Abuse report If enabled.Global data & merging Global data Allow global contacts Enables the use of global contacts on the website. the system directly merges the other contacts into it instead of creating a new contact.the contact that was most recently modified. Chat Requesting support If enabled. Accepting initiated chat request If enabled. Requesting support using offline form If enabled. Settings . The following options are available: Last modified . Accepting automatically initiated chat request If enabled. the activity after submitting custom table form is logged. Allow global accounts Enables the use of global accounts on the website. the activity of event booking. Create a new contact .Message board posts If enabled. the activity of visitor's adding new message board posts is logged. Allow global configuration Enables the use of global contact statuses. the activity of submitting an on-line form will be logged. Content rating If enabled. the activity of deleting an existing page is logged. Allow global contact groups Enables the use of global contact groups on the website. the system creates new global contacts when it detects that there are multiple contacts associated with a user registered on multiple websites in the system.

Area code Accepts integer-based and text-based columns. Country ID is used. the system automatically merges contacts that are associated with the same newsletter subscriber. Metro code Accepts integer-based and text-based columns. Edit the Contact management module. Settings . Postal code Accepts integer-based and text-based columns.Inactive contacts .the system creates a new contact as the parent a merges all matching contacts into it. Geodata mapping Country Accepts integer-based and text-based columns. DMA code. Navigate to the Modules application.Geolocation In this category.the contacts with the most recently logged activity. When mapping to an integer-based column. Settings . Create a new contact . the system automatically merges contacts that are associated with the same e-commerce customer. To create new fields to map into: 1.Automatic merging of contacts Merge contacts for identical Ecommerce customers If enabled. When a visitor has more contacts.Contact class. Organization/ISP (GeoIPOrg required) Accepts text-based columns. Longitude Accepts decimal-based and text-based columns. 2. Mind the type restrictions when assigning target fields or creating custom fields for holding geolocation data. 4. Latitude Accepts decimal-based and text-based columns. State ID is used. The Area code. Most active contact . Country display name is mapped into a textbased column. the system automatically merges contacts that have the same e-mail address. Merge contacts with identical e-mail addresses If enabled. Define the fields on the Fields tab. State Accepts integer-based and text-based columns.the contact with the highest number of logged activities. State display name is mapped into a textbased column. Latitude and Longitude fields don't have equivalent fields in Kentico. Suffix Type in an optional suffix. Use the drop-down lists to select the target fields into which the system maps the information. The suffix is only added to text-based fields. Merge contacts for identical Newsletter subscribers If enabled. General Enable IP geolocating contacts Indicates if contacts' locations can be tracked down based on their IP addresses. which the system adds to the values of contact fields obtained using Geolocating. When mapping to an integer-based column. On the Classes tab. edit the Contact management . The following settings are available. Metro code. City Accepts text-based columns. use Determines which contact the system selects as the parent when automatically merging: Last logged contact . you can configure the mapping of the Geolocation fields to Kentico contact fields. Note: The system always automatically merges contacts that are associated with the same user account. DMA code Accepts integer-based and text-based columns. 3. The specified column will only be updated if the GeoIP Organization Database is installed.

Merged into site contact only Determines whether the task should delete all contacts that were merged into another contact associated with the given site.g. At least one condition must be entered in order for any contacts to be deleted.e. Delete condition Last activity older than (days) Can be used to delete contacts that do not have any recent activities logged. entering 7 means that the task removes all contacts which were merged more than one week ago. Contact merged before (days) Can be used to delete contacts that were merged into another contact a certain number of days ago. if selected. Contact last modified before (days) Can be used to remove contacts that were not edited recently (e. Contacts whose latest modification is older than the specified number of days are deleted. Contacts whose latest activity is older than the specified number of days are removed. The Doesn't matter option is the equivalent of an empty value in this condition. If disabled. (i. the task does not delete any contacts unless at least one other condition is specified). entering 14 means that the task removes all contacts which do not have any activities logged within the last two weeks. setting the value to 365 means that the task removes all contacts created more than a year ago.General Delete inactive contacts Determines whether the contacts associated with the given site should be affected when the Delete inactive contacts scheduled task is executed. A merged contact is one that was combined into another contact. Contact created before (days) Can be used to clear out old contacts. . The remaining settings in this category are used to set the conditions that specify which contacts should be deleted. For example. Note: Contacts that are only related to a customer or subscriber are still considered as anonymous. Contact last logon before (days) This condition is only applied to contacts that are not anonymous (i. Contact is anonymous Can be used to choose whether the task should remove all contacts that are anonymous. For example. For example. All contacts that are older than the specified number of days are removed. For example. not the contact which is the actual result of a merge operation. If multiple conditions are set. only those contacts that fulfill all conditions are removed. or the opposite (those that are related to a specific user account). A merged contact is one that was combined into another contact. not the contact which is the actual result of a merge operation. A merged contact is one that was combined into another contact. only those that are associated with a specific user account).e. This task is used to periodically clear out contacts (and the activities logged for these contacts) according to certain conditions. Merged into global contact only Determines whether the task should delete all contacts that were merged into a global contact. not the contact which is the actual result of a merge operation. the site's contacts will only be removed if they are deleted manually. entering 31 means that the task removes all contacts which were not modified within the last month. had their contact address changed). entering 31 means that the task removes all contacts who have not logged in within the last month. It can be used to delete contacts who have not logged into the website recently. For example.

newsletter e-mails will be generated and saved into the E-mail queue even if the sending of e-mails is disabled in Settings -> System -> E-mails. the Delete inactive contacts task removes contacts that have an empty e-mail address (and fulfill all other delete conditions). This limit is set for all newsletters under the selected site. If 0 is entered. Double optin interval Sets the length (in hours) of the time interval during which users will be allowed to confirm their subscription to a newsletter that uses double optin. If empty. Bounced e-mail address Sets the address to which bounced e-mails are sent when the delivery of a newsletter issue to a subscriber fails. the link in their confirmation email will expire and become invalid.Custom SQL WHERE condition Allows you to enter an SQL WHERE condition that determines which contacts are deleted by the scheduled task. Bounced e-mails are received whenever there is a problem with the delivery of a newsletter issue to a subscriber. If set. Newsletter double opt-in approval page URL Sets the URL of the page where users can confirm their subscription to a newsletter with double opt-in enabled. For example: (ContactEmail is NULL OR ContactEmail = '') With this custom condition. The Subsc ription approval web part must be placed on the specified page to ensure the required functionality. the ~/CM SPages/Unsubscribe.aspx default page is used. but their bounced e-mail count will still be tracked and displayed in the Newsletters application. you will have to enable their Use external service property manually in the Scheduled tasks applic ation (remember to select the appropriate site. The value of this setting is inherited by individual newsletters if their Approval page URL property is not set. . Note: this does not change the settings of existing dynamic newsletter tasks. subscribers will never be blocked automatically. If empty. this address is used in the From field of newsletter issue e-mails.Newsletters General Newsletter unsubscription page URL Sets the URL of the page where users can unsubscribe from a new sletter. The value of this setting is inherited by individual newsletters if their Unsubscription page URL property is not set. Use external service for dynamic newsletters If enabled. Generate newsletter e-mails if e-mails are disabled If enabled. Bounced e-mail limit Sets the amount of bounced e-mails that can be counted for a subscriber before the system blocks them from receiving further newsletter issues. Settings . The same time limit is also applied to unsubscription requests submitted through the Unsubscription request web part. The Newsletter unsubscription web part must be placed on the specified page to ensure the required functionality. Bounced e-mails Monitor bounced e-mails Indicates if bounced e-mails should be tracked for newsletter subscribers.aspx default page is used. the ~/CMSModu les/Newsletters/CMSPages/SubscriptionApproval. If a user does not activate their subscription within the specified number of hours. the scheduled tasks that are created to ensure the mailout of new dynamic newsletters will be set to be processed by the external scheduling service by default. these tasks are not global). If you wish to configure these to use the external scheduler Windows service.

POP3 settings Server name Sets the address of the mail server where the bounced e-mails are stored. Changes do not affect previously logged data. If this setting is disabled. Otherwise the logging occurs directly on each request. the system does not track any of the statistics listed below. User name Sets the user name used for authentication against the mail server. Note: The system checks the values of the settings at the moment that tracked events occur. The value of the parameter stores the code name of the given campaign. In addition to general conversion.Block subscribers globally If checked. Note: this setting does not ensure consistency between the bounce counts of all subscribers with a shared address. i. In most cases. POP3 is used to check the server and monitor bounced e-mails. Track conversions Indicates if tracking of conversions is enabled. JavaScript logging ignores all browsers and devices that do not support JavaScript or have it disabled. Settings . this setting also applies to the logging of conversions for A/B or Multivariate tests and Campaigns. Campaign tracking URL parameter Sets the name of the URL query string parameter which is used to indicate that the site was accessed as a result of a campaign. This is applied across all sites in the system. only future events. bounces will be added to all subscribers that have the same e-mail address. when the (global) option is selected from the Site drop-down list. the system uses JavaScript to log web analytics and page-related on-line marketing activities. Server port Specifies the number of the port used to connect to the mail server. Log via JavaScript snippet If enabled. Switching to JavaScript logging does not reduce the performance of the website. This filters out non-human tools such as RSS readers and web crawlers from future statistics. Password Sets the password used for authentication against the mail server. The Auto option uses APOP if the server supports it and plain text user name and password authentication otherwise. it is recommended to use JavaScript logging. Authentication method Allows the selection of the authentication method used for the connection to the mail server. only that new bounces will be added to all of them.e. Use SSL Indicates whether the connection to the mail server should be secured using SSL. This field is only available when defining global settings.Web analytics The settings here allow you to enable or disable tracking of various types of events and specify other related configuration options. Options include basic user name and password authentication and several challengeresponse mechanisms. General Enable web analytics Enables or disables the entire web analytics application. Views & Downloads . Campaigns & Conversions Track campaigns Indicates if campaign tracking is enabled.

You can adjust this setting depending on how often visitors usually return to your site. Track mobile devices Excluded If enabled. Invalid requests are those that contain the website's domain name. Visitors Track browser types Indicates if the web analytics track the browser types and versions used by the website's visitors. Track visits Indicates if site visits are tracked.g. A single visit includes any number of page views or other actions performed by a specific user during one session. The countries are recognized according to the IP addresses of visitors. Note: This only includes crawlers whose user agent is specified for one of the search engines registered in the system. See Monitoring traffic from search engines for more information. The default value is 1380 (23 hours). Track landing pages Indicates if the web analytics track which pages are the first ones viewed by visitors when they start their browsing session on the website. web analytics track the countries from which visitors access the website. you could set the value to 60 minutes or less. Track page views Indicates if the web analytics track how many times the website's pages were viewed by visitors. to track how frequently your site's visitors return over the course of a single day. e. First time users are logged as new visits. Track exit pages If enabled. Track registered users Enables tracking of user registrations. Track search crawlers Indicates whether the web analytics monitor the activity of search engine web crawlers (robots). the web analytics track the average time that users spend on pages. . Track average time on page If enabled. but specify a path to a page that does not exist. but the overall statistics for a high number of visits should provide correct results. the web analytics track whether visitors access the website using mobile devices. For example. if many of your visitors have cookies disabled in their browser. the web analytics log the final pages that were visited by users when their browsing session ended. Visitor idle time (minutes) Determines how long (in minutes) a visitor must be inactive before their presence on the website is logged as a returning visit. the system stores the IP addresses of the website's visitors in the memory for the specified number of minutes. which may not be 100% reliable in all cases. known users are logged as returning visits. Track aggregated views If enabled. Important: Web analytics only track files stored as pages in the website's content tree. the system tracks which files were downloaded by website visitors. This type of tracking is performed even if the Exclude search engines setting is enabled.Track file downloads If enabled. the web analytics track access to pages via links contained in RSS or Atom feeds (created using the Syndication fun ctionality). Visitors are recognized using a browser cookie. Only pages that are served by Kentico are included in the statistics. You may use this setting in cases where there are problems identifying visitors using the standard approach. Remember visitors by IP (minutes) If the entered value is higher than 0. Track invalid pages Indicates if invalid page requests should be tracked. Track countries If enabled. After a specified time period of inactivity.

i. SKUs without their page representations in the sections tree). Excluded URLs Can be used to exclude websites or their sections from all types of web analytics tracking.jpg. The asterisk ( * ) wildcard can be used as a wildcard for any number in an IP address.). Track referring sites Indicates if the web analytics log the total amount of page views gained through links from external websites and the statistics for individual website domains.: /Products.g.e. The file types are specified using a list of extensions separated by semicolons (. The system displays this subtree in the products administration UI. for example: . Track referring local pages If enabled. you can create a complete product. substituting for all values from 0 to 255. This does not affect the Search crawlers statistic. To exclude a page and all underlying pages. you can create only stand-alone SKUs from the products administration UI. Excluded file extensions Sets which file types should not be tracked as part of the File downloads statistics. Track referrals Indicates if the web analytics log the full URLs of external pages from which visitors were linked to the website and the number of resulting page views. Display products in sections tree Indicates if the system displays products in the product sections tree.). Traffic sources Track search engines Indicates if the web analytics track traffic from search engines. Track referring pages by direct link If enabled. Products UI Display tree of product sections Indicates whether the system displays the tree of product sections in the products administration UI.e.Exclude search engines If enabled. the system displays the stand-alone SKUs node above the product sections tree in the products administration UI. Allow stand-alone SKUs Indicates whether the users can create stand-alone SKUs (i. Products properties . hits generated by search engine robots (crawlers) are not included in tracking statistics. Excluded IP addresses Hits generated by the client IP addresses listed here are not included in web analytics tracking.e. Products starting path Indicates a path within the content tree where the subtree of product sections starts. menus or other types of links present on the site's pages). The setting has no effect if the sections tree is hidden. an SKU with its page representation in the sections tree. The setting has no effect if the sections tree is hidden. You can specify multiple URLs (or site sections) separated by a semicolon (. the web analytics track which links visitors use to navigate within the website (i. e. If the sections tree is hidden.). If so. Track search keywords Indicates if the web analytics log the keywords that were entered into search engines in order to find the website.. Track on-site keywords Indicates if the keywords that were used in the website's local search functionality should be logged.gif Note: it is necessary to include the period in the extension name. enter its URL (or page alias).E-commerce Here you can configure the Kentico E-commerce Solution settings. the web analytics log when the website's pages are accessed directly through a URL entered into the browser. You can enter multiple addresses separated by semicolons (. so that they do not influence tracking results. Settings . This can be used to exclude the IP addresses of the website's administrators or other special users. The setting has no effect if the sections tree is hidden. Otherwise.

The system uses data that the customer provided during the checkout process. regardless of the product-specific public status configuration. Default product image URL Here you can enter the default product image URL (virtual path).e. visible in the product listing. or select your country or country where you sell the most. Enter the { 0} expression to insert the weight into the formatting string.OrderID%} is used. The product-specific public status is then used when displaying the product status indicator on the live site. The system applies all taxes based on their values as set for the default country. This setting allows you to select or modify a template for the notification e-mail. Display price including taxes Indicates if the system displays product prices on the live site including taxes. If you leave the default option. Pages My account URL Indicates the URL of the My account page (virtual path). Shipping Weight formatting string Indicates the format used for displaying product weight. Public status for 'new products' Specifies a product public status indicating that this product is new in your on-line store. The system uses this image if no image is specified for a given product. Unregistered customers Register customer after first checkout Indicates if the system automatically creates an account for unregistered customers after successfully completing the checkout process. i. Taxes related to orders with no shipping address specified are calculated based on the billing address. If left empty. . the default pattern {%Order. regardless of this setting. i. unless the customer specifies their country (or state) during the checkout process. Products are 'new' for Specifies the number of days for which the recently added products are marked as New products in your on-line store. automatically with the price of the cheapest product variant. The system can mark any product with this status automatically based on the Products are ‘new’ for setting. Keep the advertised price of the products according to their cheapest product variant For each product. This gives them the possibility to use more than one type of relationship among products. (all).Related products relationship name Specifies the name of the relationship used when defining related products. and the In store from product property. Apply taxes based on Indicates whether the system applies taxes based on the shipping address or billing address. Invoice Invoice number pattern Indicates the pattern used for generating invoice numbers. This takes effect only for prices that are displayed through the GetSKUFormattedPrice() or GetSKUPriceSaving() met hods. an e-mail address and a randomly generated password. indicates if the system updates the product price. The customer then receives a notification e-mail with their login information. Taxes Default country Allows you to specify the default country. This takes effect only for prices that are displayed through the GetSKUFormattedPrice() or GetSKUPriceSa ving() methods. Live site pricing Display price including discounts Indicates if the system displays product prices on the live site including discounts. Registration after checkout e-mail template The system sends a notification e-mail to unregistered customers after the first checkout if the Register customer after first checkout setting is enabled. invoice numbers are then equal to order IDs. The system counts the days based on the products' In store from property.e. the users can select from all relationships existing on the current site while adding related products.

Conversion tracking Registration conversion name Here you can enter the name of a conversion logged when a customer successfully registers on the site while going through the checkout process. together with the Order conversion. i. . store administrators can manually complete order payment by turning on Order is paid for selected orders (available in Orders -> edit order -> Billing tab). Send e-products reminder (days) Allows you to specify how many days prior to e-products expiration the system sends to the customers a notification e-mail. The system sends these notifications automatically if the customers paid through payment gateways. Registration conversion value Allows you to specify a number that the system records. or if orders moved to a status with the Mark order as paid property on (available in Store configuration -> Order status -> edit order status). E-mails Send e-commerce e-mails from Here you can specify an e-mail address from which e-commerce notification e-mails are sent. each Ord er conversion automatically stores the given order’s price as its value. i. The E-commerce order notification to customer e-mail template is used when sending notifications to customers. Redirect to shopping cart If on. The E-commerce order notification to administrator e-mail template is used when sending notifications to administrators. Otherwise. and the product is added to the shopping cart in the background. the system redirects the customer to the shopping cart content page when they click Add to shopping cart. and the E-commerce . For example: {% EcommerceContext.Order payment notification to administrator e-ma il template is used when sending notifications to administrators. Use customer's culture for e-mails Indicates if the system sends the customers e-mails in the shopping cart culture. when a conversion hit is logged.Order payment notification to customer email template is used when sending notifications to customers. The values are cumulative. the merchant's e-mail address) to which e-commerce notification e-mails are sent. when a conversion hit is logged. the specified value is added to the total sum previously recorded for the conversion. Send e-commerce e-mails to Here you can specify an e-mail address (e. Shopping cart URL Indicates the URL of the Shopping cart page (virtual path). With this configuration.TotalPrice %} The macro is resolved into total price of all items contained in the order. You can insert a macro expression to dynamically retrieve a value from the current website context.g. as the Registration conversion value when this conversion is logged. You can insert a macro expression to dynamically retrieve a value from the current website context. Send order notification Indicates if the system sends e-mail notifications after completing and saving orders. including tax and shipping. the customer stays on the same page. together with the Registration conversion. the specified value is added to the total sum previously recorded for the conversion. The values are cumulative. as the Order conversion value when this conversion is logged. Note: The E-commerce .e. Besides. Order conversion value Allows you to specify a number that the system records.e.Wishlist URL Indicates the URL of the Wishlist page (virtual path). Send payment notification Indicates if e-mail notifications are sent after completing order payment. Order conversion name Here you can enter the name of a conversion logged when a customer completes an order.CurrentShoppingCart.

Add to shopping cart conversion value Allows you to specify a number that the system records. For example: {% ShoppingCartItem.e. General API login Allows you to specify an API login ID for the payment gateway account. Special case objects Include site-bound E-commerce Solution objects. or as site-specific objects together with global objects. Test mode configuration in the Kentico administration interface and in the Authorize. discounts. the Add to shopping cart conversion logs the price (including tax) of a product added to the shopping cart. and in the Authorize. Check boxes in the Use global settings for section indicate for the selected site if the respective global settings are used (ON). for example customers. Settings . Corresponds to the Allow global objects for section.UnitTotalPrice %} With this macro as the conversion value. either as site-specific objects. Transaction key Here you can enter a transaction key obtained from the merchant interface.NET Merchant Interface. Use test mode The behavior of the payment gateway depends on test mode confi guration both in the Kentico E-commerce Solution administration interface (Settings -> E-commerce -> Payment gateways -> Authorize.NET Here you can configure settings related to the Authorize. or if the respective site-specific settings are used (OFF). ord ers. Corresponds to the Use global settings for section. as the Add to shopping cart conversion value when this conversion is logged. i. for which there are no global object settings available. Settings .Authorize. when a conversion hit is logged. or if only the respective site-specific objects are used (OFF).NET Merchant Interface resulting in the transaction being processed as a live transaction: OFF/OFF . The values are cumulative. Objects with only site or global option Include E-commerce Solution objects that you can use only separately. You can insert a macro expression to dynamically retrieve a value from the current website context. the specified value is added to the total sum previously recorded for this conversion.e. or as global objects.NET Merchant Interface resulting in the transaction being processed as a test transaction: ON/ON.Add to shopping cart conversion name Here you can enter the name of a conversion logged when a customer adds a product to the shopping cart.NET payment gateway.NET). OFF/ON. ON/OFF Test mode configuration in the Kentico administration interface and in the Authorize. together with the Add to shopping cart conversion. i. The system allows you to use: site-specific objects available on your separate sites only global objects shared across all these sites Concerning the multistore approach.Global objects Here you can configure settings related to the use of global objects in the Kentico E-commerce Solution. Check boxes in the Allow global objects for section indicate for the selected site if the respective global objects along with the respective site-specific objects are used (ON). reports. there are three groups of objects available for your sites: Objects with both site and global option Include E-commerce Solution objects that you can use either as site-specific objects.

/Members/Mana gement.g. where UserName is a wildcard replaced by the name of a given user. /Members/{UserName}. . Groups security access denied path Alias path of a page to which users will be redirected when they try to access pages of a group they don't have permissions for. Notify URL Allows you to enter a URL to which PayPal sends information about the transaction. /Groups/{GroupName}. Friend management path Node alias path of a page with the Friendship management web part. overrides the settings in the PayPal Merchant Interface. /Groups/{GroupName}/Management. the link will no longer be functional. This page should contain the Group security message web part. e.Settings . By default. the link for joining the group included in the e-mail will be active for the number of days entered here. where GroupName is a wildcard replaced by the name of a given group.g.g. the link will be functional permanently. e.PayPal Here you can configure settings related to the PayPal payment gateway.e. if no such URL is defined. the system redirects the browser to the corresponding PayPal page. e. This is a special web part for handling friendship approval or rejection requests. if no such URL is defined. e.Community Groups Group template path Alias path of the page that will be used.g. Settings . Enter the primary PayPal e-mail of the merchant's account. After the specified duration. Enable friends Indicates if the Friends functionality should be available in other modules on the live site. Group profile path Alias path of the group profile page. together with the pages stored under it. for example a URL on your site displaying your custom Thank you for your payment page. If 0 is entered. /Gr oups/{GroupName}/Access.g. i. If specified.e. Group management path Alias path of the group management page. this is a special web part handling requests for joining a group when a user clicks the joining link in group invitation e-mail. /Group s/Template. Return URL Allows you to enter a URL to which the system redirects the customer's browser after completing the payment. containing the Group profile web part.g. By default. Group invitation expires after (days) When some user receives a group invitation e-mail. e. The value of this setting is used by the Group registration web part if its Template source alias path property is empty. as a template for newly created groups. i. Cancel return URL Here you can specify a URL to which the system redirects the customer's browser if the payment is cancelled. /Special-p ages/Invitation-acceptation. Member profile path Alias path of member the profile page. Members Member management path Alias path of the member management page. e. the system redirects the browser to the corresponding PayPal page. Group invitation Invitation acceptation path Alias path of the page containing the Group invitation web part. General Business Allows you to specify an e-mail address for the merchant's PayPal account.g. e. for example a URL on your site displaying your custom Payment cancelled page.

Content management Use parent community group for new pages Indicates if new pages should inherit the value of the Owned by group property from their parent page. Max forum post nodes Determines the maximum number of forum post nodes displayed in the forum post tree when editing a forum in the Forums application . Subscriptions Forum unsubscription URL Sets the URL of the page that unsubscribes users from receiving notifications about new forum posts. link will be displayed at the bottom of the tree. Having a correct base URL is important for generating valid links in forum-related e-mails. the ~/CMSPa ges/Unsubscribe. Forum base URL This setting should contain the relative URL of the page where the website's forums are located. Settings . Double opt-in interval (hours) Amount of time in hours.aspx default page is used. If left empty. The value of this setting can be inherited by forum groups and through them by particular child forums. Activity points for forum post Number of activity points that users receive for adding a forum post. The subscription confirmation link that will be sent to users will point to this page. If blank. Enable double opt-in for forums Indicates if double opt-in should be enabled for forum objects. Activity points for message board post Number of activity points that users receive for adding a message board post. Activity points for blog comment post Number of activity points that users receive for adding a blog post comment. You can override this setting in the properties of a particular forum group or a forum. If there are more nodes than allowed by this value. all extensions are allowed..Forums On this page you can adjust the settings related to forums. letting you display a list of all nodes in the main area. .. during which a user has to confirm their subscription request.Activity points Enable user activity points If checked. Forum attachments allowed extensions Allows you to specify a list of file extensions that will be allowed for forum post attachments.aspx Forum groups and individual forums can either inherit this value from the settings or use their own. Double opt-in approval page path Path to the page that contains the Forum subscription confirmation web part. the click here for more . users are required to confirm their subscription by clicking a link that is sent to them in an e-mail. The extensions should be entered without dots and separated by semicolons. The Forum unsubscription web part must be placed on the page in order for the unsubscriptions to work. General Send forum e-mails from Sets the e-mail address that will be used as the sender for forum notifications and confirmation e-mails. for example: ~/Community/Forum. When enabled. activity points will be logged for users. Activity points for blog post Sets the number of activity points that users receive for adding a blog post.

If double opt-in is disabled. You can override this setting in the properties of a particular forum group or a forum. The settings on this page are related to these notification e-mails: General Messaging sender e-mail E-mail address that will be used as the sender address (From field) of the notification e-mails. Settings . See Managing message boards Enable double opt-in for message boards Indicates if double opt-in should be enabled for message boards. Messaging e-mail subject Entered text will be used as content of the Subject field of notification e-mails. Board base URL Global board base URL that can be inherited by message boards. predefined avatars when choosing a user or group's avatar image. This setting does not affect Gravatars. It can be used by board notification e-mails and message board viewers. If double opt-in is disabled. you can adjust settings related to avatars. Double opt-in interval (hours) Amount of time in hours.Message boards On this page you can adjust settings related to message boards. it will be possible to select one of the shared. General Send message board e-mails from E-mail address that will appear in the From field of notification messages about new message board messages.Messaging Users can be notified about new messages received using the notification e-mails. This web part handles requests for unsubscription from notifications about new message board messages. . Send double opt-in confirmation Indicates if an e-mail confirmation should be sent to users after they approve a subscription. Settings . Settings . these confirmation e-mails are always sent. If disabled. only custom uploaded avatars will be allowed. users are required to confirm their subscription by clicking a link that is sent to them in an e-mail. these confirmation e-mails are always sent. Subscriptions Board unsubscription URL URL of the site on that the Message board unsubscription web part is placed. Double opt-in approval page path Path to the page that contains the Message board subscription confirmation web part.Send double opt-in confirmation Indicates if an e-mail confirmation should be sent to user after they approve a subscription.Avatars On this page. during which a user has to confirm their subscription request. The subscription confirmation link that will be sent to users will point to this page. General Enable pre-defined avatars If checked. When enabled.

If one or both dimensions of the uploaded image are larger. R . Settings .may contain rude gestures. Avatar height If the Avatar max side size setting is set to 0. you can adjust settings related to chat. Gravatar rating Gravatars are rated according to the maturity level of their content.Avatar type Determines what kind of user avatars will be usable on the website. or hard drug use. so it may not always be accurate.Chat On this page. PG .may contain hardcore sexual imagery or extremely disturbing violence. If 0 is entered. If a user's Gravatar does not meet the site's rating requirements. the Avatar height and Avatar width settings will be used instead. the default image is displayed instead.users can either upload their own image or choose a predefined one. User avatars Avatar max side size Sets the maximum allowed size of user avatar images. Gravatar support will be enabled for public users. images will be resized to this width. Users must be registered at http://gravata r. images will be resized to this height. Note that switching to this option will change the avatars of users who have uploaded a custom image locally on the website. avatar images will be resized to this height. User can choose . Most of the options automatically generate a different default image based on the email address of the given user. provocatively dressed individuals. the lesser swear words. Through this setting. Avatar width If the Avatar max side size setting is set to 0. The remaining options provide various types of default Gravatar images. If one or both dimensions of the uploaded image are larger. it will be resized so that the larger dimension matches the entered value.users will be able to choose if they want to use a local avatar or a Gravatar when configuring their profile. If 0 is entered. or mild violence. intense violence. the local avatar image specified as the default option for users in the Avatars application is used. Gravatar default image Determines what type of image should be displayed as the avatar of users who do not have a valid Gravatar registered for their email address. General . nudity. The images are stored locally in the website's database or file system. Group avatar height If the Group avatar max side size setting is set to 0. X . you can specify the maximum rating that will be allowed on the site.the system will automatically load and display the g lobally recognized avatars associated with the e-mail addresses of users. Gravatar . If the (none) option is selected. it will be resized so that the larger dimension matches the entered value. avatar images will be resized to this width. The following options may be selected: Avatar . Group avatar width If the Group avatar max side size setting is set to 0. Group avatars Group avatar max side size Sets the maximum allowed size of group avatar images. Note that the rating of a Gravatar is entered by its owner.com/ to have a custom avatar.may contain such things as harsh profanity.suitable for display on all websites with any audience type. otherwise a default image will be assigned to them. The following options are available: G . the Group avatar height and Group avatar width settings will be used instead.

. If BBCode is enabled globally.e. Maximum length of message Maximum number of characters in a message. Enable BBCode in messages Indicates if BBCode tags will be allowed and resolved in chat messages. which don't have any messages in them. consider setting this number to a higher value. If you are experiencing performance issues with chat. Timeout settings Room ping interval (seconds) Defines how often room related web parts will update their content (messages. consider setting this number to a higher value. you can still disable it for a specific web part in its settings. The ping interval is the time in seconds between two requests to the server. Default paths .e..Allow anonymous users Indicates if users can enter chat without being logged in on the website. URLs in messages will be converted to clickable HTML anchors. Records will be deleted according to these rules: All messages written earlier than the time specified will be deleted. rooms and chat users will be deleted after the number of days specified in this setting. i. Send support messages to this e-mail address Messages sent in support chat when no support person is on-line will be sent to this e-mail address. Convert URLs to HTML anchors in messages If checked. Kick lasting time (seconds) Defines how long a kicked users will not be able to join the room they were kicked from. before the system logs them out. Delete chat history older than (days) Messages. Support chat Enable support chat Indicates if support chat is enabled in the administration interface. etc. Release room taken by support when not pinging for more than (seconds) Time of inactivity needed to release a room taken by a support person. before the system logs them out. Log out support engineer when inactive for more than (seconds) Defines how long a support people can be inactive. no one has access to them and were created earlier than the time specified. have not written any message and haven't been on-line for the specified time. users in the room. The ping interval is the time in seconds between requests for new data to the server. the room will appear as available to other supporters. This can happen if the users' Internet connections are down or they closed the chat window. This can happen if the users' Internet connections are down or they closed the chat window. Enable sound in support chat Indicates if the system uses sound notifications for new support requests and new messages in support chat. Convert emoticons to images Indicates if emoticons will be converted to images in messages. Force unique nicknames for anonymous users If checked. If you are experiencing performance issues with chat. After this time passes. Enable sound in live chat Indicates if the system uses sound notifications for new messages opened in one-on-one conversations. Guest prefix Text that will be appended with a number and used as the user name for anonymous users. Nicknames of registered users always have to be unique. All rooms will be deleted. available rooms and notifications).). i. This setting affects the Room messages web part (resolving) and the Send message web part (inserting BBCode tags). Log out user when inactive for more than (seconds) Defines how long chat users can be inactive. not send any request to the server. nicknames of anonymous users on chat will have to be unique. not send any request to the server. All users will be deleted. who are anonymous. Global ping interval (seconds) Defines how often global chat web parts will update their content (on-line users.

users per page Defines how many users will be displayed on one page when inviting a user to a room. Display 'Leave room' system message If checked system messages of this type will be displayed when a user enters a room. Default redirection path .maximum users in response Defines how many users can be returned as a response to a search query when the Search on-line users web part's search mode is activated.leave room action When this setting has a value. users will be redirected to the given path after they enter chat. the Search on-line users web part will be used when inviting a user to a room. users will be redirected to the given path after they leave chat. Specified web part setting will override this global setting. Display 'Enter room' system message If checked system messages of this type will be displayed when a user enters a room. Affects on-line users. Specified web part setting will override this global setting. Join room interval (seconds) Number of seconds which have to pass between two subsequent room joinings made by one chat user. users will be redirected to the given path after they join a chat room.Web parts On this page you can adjust settings related to chat web parts. Specified web part setting will override this global setting. Chat room popup window URL URL of the window that is opened as a chat room pop-up (for support chat or one-on-one chat). Affects on-line users. Flood protection Enable flood protection Enables flood protection according to other settings in this section. Settings . user search results. users in rooms. Value 0 means that pages will not be grouped. Default redirection path . Create room interval (seconds) Number of seconds which have to pass between two subsequent room creations by one chat user. users in rooms. Show filter limit Filter will be shown when there is at least the specified number of items displayed by a web part. Search on-line users . Post message interval (seconds) Number of seconds which have to pass between two messages posted by one chat user.search mode If enabled. This setting can be overridden by a web part setting. Otherwise. and rooms. Change nickname interval (seconds) Number of seconds which have to pass between two nickname changes made by one chat user. . This setting can be overridden by a web part's setting. the response will not be limited. users will be redirected to the given path after they leave a chat room. Invite users . This setting can be overridden by a web part's setting. Default web parts settings Items per page Number of items displayed on one page when paging is enabled.join room action When this setting has a value.enter chat action When this setting has a value.Default redirection path . and rooms.leave chat action When this setting has a value. the On-line users web part will be used. system messages of this type will be displayed when a user enters a room. Invite users . Pages in group Number of pages displayed in one group when paging is enabled. user search results. This setting can be overwritten by a specific web part's setting. Default redirection path . Specified web part setting will override this global setting. If this setting is set to 0. First load of messages Display 'Kick' system message If checked.

Display 'Invited' system message If enabled system will display messages when users invite other users to chat room in that room. Facebook app App ID A numeric ID of your Facebook App. Initiated chat transformation name Transformation for displaying chat bubble. Close all button transformation Transformation that will be used to display the Close all button. Related pages Writing transformations for chat Settings . the system assigns the user to the roles entered here. Assign Facebook members to roles When a new user logs in using Facebook. Room message transformation name Transformation that will be applied to messages in a normal (not one-on-one chat) room. You can find your App secret on the Facebook App editing page. . Default transformations Room user transformation name Transformation for displaying users present in a room. You can find your App ID on the Facebook App editing page. If checked. Room transformation Transformation to be used for displaying rooms in their list. Configuring these settings on a global level could cause problems if you have multiple sites and each of the sites has a different associated Facebook page and Facebook App. which informs site visitors that a support person wants to initiate chat with them. Notification transformation Transformation used for displaying notification messages.Social media This category contains settings dedicated to the configuration of social media integration. Error transformation Transformation that will be used for displaying errors. Login with Facebook Enable login with Facebook Enable if you want your website users to log in with their Facebook account.Facebook This section contains settings related to Facebook features integrated into Kentico.Display 'Change nickname' system message If checked system messages of this type will be displayed when a user enters a room. Display 'Support greeting' system message Indicates if automatic greeting support message will be displayed to users when they enter support chat. On-line user transformation Transformation for displaying on-line users. Chat room name transformation Transformation for displaying chat room name in the room title. App secret The key used to authenticate Kentico against the Facebook App. Announcements will be displayed when a user enters a room. Chat support request transformation name Transformation name for the element that allows to initiate on-line support. Negative number means there is no limitation and all messages from the room will be displayed. which include Facebook authentication and posting to Facebook. Display 'Announcement' system message Announcement is a message written from Kentico administration interface (Chat -> Chat room -> Messages -> New announcement). Settings . See Facebook authentication for more information. Number of messages displayed after entering room Indicates how many messages will be displayed when a user enters a chat room. We recommend that you configure these settings for individual sites separately.

General Client ID Key obtained during the authorization of API access on Google. Access token Click the Get button to obtain a site-wide access token required to execute Google+ API calls that require authorization. you can adjust settings related to Google+ services. The default shortener appears as the default selection when posting to a social network in the Facebook. when they log in for the first time. or LinkedIn applications. If entered and a new LinkedIn user logs in to the site for the first time.google. create an account at https://accounts.Update users using their Facebook profile Allows you to load information from the user's Facebook profile and store it with the user's record in Kentico. create an account at https://www. it is renewed automatically.Google+ On this tab. To obtain these keys.LinkedIn On this tab. Settings . General API key Key obtained during the registration of your application at LinkedIn. This feature only works when users log in using their Facebook accounts. This feature enables live site users to register and log on to your website using their LinkedIn logon credentials. Mapping of Facebook user profile Determines how Kentico user fields match with Facebook profile fields. Settings .com.com/secure/develo per. their user account is not created automatically. The API key and Application secret fields must be filled in. Assign new users to roles New users registered via LinkedIn authentication will be assigned to these roles. After the token expires. but they are redirected to this page and required to enter some additional data (or merge with an existing account) using the web part. Never – disables this feature. Client secret Key obtained during the authorization of API access on Google. To obtain these keys. Every time they log in – updates the user information every time they log in. When they log in for the first time – downloads the user information only once. Access token Click the Get button to obtain a site-wide access token required to execute LinkedIn API calls that require authorization. In the Default URL shortener category. Twitter.google.com/console and authorize it on the APIs & auth -> Credentials tab. . User information that has been already downloaded stays in the system. The Client ID and Client secret fields must be filled in.Social marketing In this section you can adjust settings that relate to the integration of Kentico with social media.com/ and create a new application at https://www. Settings . Application secret Key obtained during registration of your application at LinkedIn. you can set up the default URL shortener that the system will use to shorten links posted to social media.linkedin. These settings are currently needed only for one web part: Google+ activity feed. create a new API project at https://cloud. Required fields: The Access token field is used mainly for certain web parts (it is not required for LinkedIn authentication). you can adjust settings related to LinkedIn authentication. Required user data page URL of the page where the LinkedIn required data web part resides. Authentication Enable LinkedIn authentication Indicates if LinkedIn authentication is enabled.linkedin.

you can configure settings related to the Projects application: General Task detail page URL of a page that displays detailed information about the tasks as signed to users. but it is highly recommended.Intranet & Collaboration In this section. Click the Credentials tab.google.com/console. After registering an account (or signing in) at https://bitly.google. Register an account (or sign in) at https://accounts. Settings . you can configure settings related to the Intranet portal. Note that if you signed into bitly using Facebook or Twitter. Sender's name Name of the sender. your actual login may be different from the displayed name. Visit the API console at https://cloud. Activate the URL Shortener API on the APIs & auth -> APIs tab. Providing the API key for goo. you can adjust settings URL related shortening to services that can be set for Facebook. LinkedIn and Twitter. bitly Login Your Bitly account username.com: TinyURL service does not require any settings.gl service is not necessary.Events In this section. 2. Settings . Such services shorten URLs that are undesirably long in posts. 4.com. It is necessary to provide these settings in order to use the bit.a spx Send project management emails from Sets the email address from which automatic project management notification emails are sent when tasks are created or modified.Projects In this section.gl API key Key assigned to your google application after enabling an API access. The following setting is available: Departments Department template path Alias path of a page that will be used. you can view your user name and API key at http://bitly. To obtain it: 1. Sample value: ~/Employees/Management/My-Projects-and-tasks. This page should contain the Tasks assigned to me web part. together with the pages stored under it. General Sender's e-mail Senders e-mail address.ly service. The value of this setting is used for generating links to personal tasks in project management email notifications and as the URL that is linked to by the Task info panel web part if its Task detail page URL property is empty.Settings . as a template for newly created departments. you can configure settings related to events. You can generate and view the API key on this page TinyURL. 3.com/. goo. It is especially useful in case of Twitter.com/a/your_api_key. API key Key assigned to your bitly account.URL shorteners --------------On this tab. E-mail subject Here you can add the subject of the event announcement message. . because its posts cannot be longer than 140 characters and generated URLs can take up a lot of this space. Settings .

Check for source server. All objects . Server key ID Staging service server certificate key ID. no versions are created when objects are modified. they are deleted permanently. See Preparing your environment for team development. Settings .all objects that support staging synchronization a re moved to the recycle bin when deleted.only objects that support versioning and whose versioning is enabled by the settings below are moved to the recycle bin when deleted. Check for target server. Log object changes Specifies whether the object change tasks are generated. Keep new objects checked out Indicates if new objects are automatically checked out upon creation. See Using X. check for source server. Staging service user name Staging service user name for username authentication. Version history .e. Log staging changes If enabled. Staging service (target only) Enable staging service Specifies whether the staging service is enabled. Delete objects to recycle bin Determines which objects should be moved to recycle bin when deleted: No . Settings . synchronization tasks are created for changes made by synchronization from another server to this server Log export tasks Specifies whether the export tasks are logged when the object is deleted (incremental update support). Client (source only) Log content changes Specifies whether content change tasks are generated. If disabled. Staging service authentication Staging service authentication type. This option is enabled by default. Versioned objects only .no objects are moved to recycle bin when deleted.Versioning & Synchronization This category contains settings related to content staging and object versioning.Settings . X509 Certificates Client key ID Staging service client certificate key ID. staging tasks are logged when data in custom tables are modified.Object versioning General Enable object versioning Globally enables or disables object versioning.Staging On this page you can adjust settings related to the Content staging functionality. Staging service password Staging service password for username authentication. Team development Use check-in/check-out for objects Indicates if object locking (check-in/check-out) should be used for virtual objects.509 authentication. use value ‘USERNAME’ or ’X509’. i. Log data changes If enabled.

Transformations Indicates if versioning of page type and custom table transformations is allowed. a new version is created whenever you save an edited object. Web part layouts Indicates if versioning of web part layouts is allowed. Automation process Indicates if versioning of the automation process objects is allowed. Page type definitions Indicates if versioning of page type definitions is allowed. minor versions history length is not limited. If set to 0. on-line forms and custom table alternative forms is allowed. the oldest version is deleted. Web part containers Indicates if versioning of web part containers is allowed. Workflows Indicates if versioning of workflow objects is allowed. Newsletter issues Indicates if versioning of newsletter issues is allowed. Only custom queries are versioned — system queries are not versioned because they are re-generated by the system automatically when their parent object is modified. Promote to major version if older than (hours) If an object is edited and saved after this number of hours since it was last saved. If the number of major versions exceeds this value. E-mail templates Indicates if versioning of e-mail templates is allowed. Form definitions Indicates if versioning of on-line form definitions (the Forms module) is allowed. Media files Indicates if versioning of media files (the Media module) is allowed. major versions are never created automatically. If set to 0. UI element Indicates if versioning of UI element objects is allowed. Use object versioning for Alternative forms Indicates if versioning of page type. Report values Indicates if versioning of report values is allowed. . CSS stylesheets Indicates if versioning of CSS stylesheets is allowed. If it is saved after more minutes since it was last saved. Page templates Indicates if versioning of page templates is allowed. Custom table definitions Indicates if versioning of custom table definitions is allowed.Version history length (minor versions) Indicates how many minor versions of a single object will be stored in its version history. Version history length (major versions) Indicates how many major versions of a single object will be stored in its version history. If set to 0. changes made to it are saved to the last version. the oldest versions are deleted. major versions history length is not limited. a new version is created. If set to 0. This options is disabled by default because versioning of large media files may consume an extensive amount of database space. Report graphs Indicates if versioning of report graphs is allowed. Report definitions Indicates if versioning of report definitions is allowed. Only media files with extensions enumerated here will be versioned. If it is saved earlier. Report tables Indicates if versioning of report tables is allowed. a new major version is created. a new minor version is created or the changes are saved to the latest version (depending on the setting above). Save to last version if younger than (minutes) If an object is edited and saved within this number of minutes since it was last saved. Newsletter templates Indicates if versioning of newsletter templates is allowed. Media files versioned extensions Extensions of versioned media files. Queries Indicates if versioning of page type and custom table queries is allowed. Page layouts Indicates if versioning of page layouts is allowed. If the number of versions exceeds this value.

The integration synchronizes objects and pages (in both directions). Enable logging of outgoing tasks Indicates if the integration bus logs changes made to pages and objects in Kentico as outgoing integration tasks. the E nable system integration bus setting must also be enabled. You can enable or disable logging/processing of incoming/outgoing tasks separately through the other settings in the category. Enable processing of outgoing tasks Check to allow processing of outgoing integration tasks.Web farm General Enable web farm Indicates whether web farm support is enabled. If you disable this setting. Use web farm database updater Indicates whether database web farm updater is used. Settings .execution of the integration tasks. To process tasks. Enable processing of incoming tasks Check to allow processing of integration tasks incoming from external systems.Microsoft SharePoint . the Enable system integration bus setting must also be enabled. delete etc.Settings . If true. you can enable or disable web farm synchronization of a particular object.Integration bus The settings in this category allow you to adjust the functionality of the integration bus. Maximum file size to be synchronized (kB) Sets the maximum file size in kilobytes which should be synchronized. Settings . General Enable system integration bus Allows logging and processing of incoming and outgoing integration tasks. Allow synchronization for In this category. the Enable system integration bus setting must also be enabled. synchronization must be ensured through scheduled tasks or custom code. To log tasks. Delete generated servers on application end Ensure that generated web farm servers will be deleted on application end event. The synchronization process consists of two steps: Logging . To process tasks. Web farm updater custom class Specifies custom web farm updater class (given class must inherit from IWebFarmUpdater interface). Generate servers dynamically Specifies whether web farm servers are generated dynamically on application start. update. Update within request Enable this setting if you want synchronization to be triggered with every page request. you don't have to create them in the user interface. Settings .creation of integration tasks for actions that require synchronization.). Processing . Integration tasks represent individual synchronization operations for objects or pages (create.Integration This category contains settings related to integration with external applications and services. Enable logging of incoming tasks Indicates if the integration bus logs integration tasks received from external systems. the Enable system integration bus setting must also be enabled. which can connect Kentico with external third party systems. Web farm application physical path Path to the application's physical path on disk for synchronizing physical files. To log tasks.

If empty. If enabled. Allowed page types Specifies a list of page types that the REST service is allowed to access. or both.REST On this tab. Enter the names of page types separated by semicolons. You must specify the address of the SharePoint server itself in the properties of SharePoint web parts. the REST service only allows GET requests for pages (pages cannot be modified). Restrictions: Only works for GET requests (read only data retrieval) You cannot use hash parameter authentication for /all object retrieval requests (~/rest/<objecttype>/all). the REST service only allows GET requests for objects (objects cannot be modified). website domain name. Allowed object types Specifies a list of objects types that the REST service is allowed to access. the current user's windows domain credentials will be used to access the SharePoint server. Supported types are Basic and Forms authentication. regardless of this setting's value. and query string parameters. it will be used by default if you leave the Username and Password fields blank in the properties of SharePoint web parts. For example: http://mywebsite. See Configuring the REST service. Enter the names of object types separated by semicolons. Generate authentication hash for URL Click the button to generate an authentication hash for specific REST URLs. The following settings can be adjusted: General Service enabled Enables or disables the Kentico REST service. If empty. Object access is read only If enabled. all object types are allowed. If you configure a Username and Pass word here. Default encoding Sets the character encoding that the REST service uses for requests that do not contain a supported Accept-Charset header. Page access is read only If enabled. Enter the full absolute URL of the REST request. If you enable the Use Windows Authentication option. including the protocol. REST path. . Note: You can authenticate REST requests using the hash query string parameter in both modes. See Authent icating REST requests. REST requests authenticated using the credentials of users with the Global administrator privilege level are allowed to work with data fields that contain sensitive information (for example fields related to passwords). security is always checked. Settings . you can adjust settings related to Kentico REST service. You can copy the URL and use it to perform the REST request without any other type of authentication. all page types are allowed. Service enabled for Choose if the REST service allows access to objects. Important: The settings configured here are automatically used for authentication by the GetSharePointFile.com/rest/content/currentsite/en-us/all/news?forma t=json The system adds the authentication hash parameter to the URL. pages. Requests authenticated under non-administrator users can NEVER access sensitive fields. security is not checked when accessing published versions of pages. Authentication type Determines which type of authentication the REST service uses. Allow sensitive fields for administrators If enabled.In this section you can configure the default logon credentials used to access the SharePoint server. it is highly recommended to enter the credentials of a user that is authorized to access only the files you want to display on your website. Always check page security If disabled.aspx page and since the URL to access the page can be entered manually. virtual directory.

The replication process transfers contact data to leads according to the mappings. you can enable WebDAV integration and configure which file types should be editable using WebDAV.g. Each batch only requires one API call. . If disabled.WebDAV On this tab. otherwise this settings have no effect. click Edit at the bottom of the Contact or Company sections.com On this tab. Organization access must be granted in order for this option to be configurable. WebDAV is only functional if Kentico is configured to use Windows authentication. Mapping of contacts to Salesforce leads Allows you to map contact fields to the fields of Salesforce leads. .com fields Contact management Settings .Salesforce. General Enable WebDAV support Enables or disables WebDAV editing in both the Edit mode and the Browse mode.docx. Replication of contacts into Salesforce leads Enabled Enables or disables replication of Kentico contacts into Salesforce leads. This setting specifies the maximum number of contacts that the system replicates in a single batch. you can configure the Salesforce integration module which replicates Kentico contacts to Salesforce leads based on their scores.Data. contacts are only replicated once.com contacts Kentico accounts and Data. the replication process includes contacts that have already been replicated before.com integration Mapping Data..pptx.xlsx. This ensures that the system updates the corresponding Salesforce leads based on the current contact data. To minimize the number of calls. Batch size Applications can only make a limited number of API calls to Salesforce within a 24 hour window. Related pages Data.Settings . e. The Edit in client application ( next to pages with this extension. An appropriate client application with WebDAV support must be installed on the client machine for each listed extension in order for WebDAV editing of these files to be possible. Settings . General Organization access Allows you to authorize access of Kentico to your Salesforce organization on behalf of a specific user.jpeg.jpg. Keep Salesforce leads updated If enabled. the replication process handles contacts in batches.com The settings in this category allow you to configure data field mappings between: Kentico and Data. separated by semicolons. ) icon is only displayed Enter extensions with or without the leading dots.com company profiles To modify the default field mappings.. Supported file extensions List of file extensions that should be editable using WebDAV Edit mode.

The account that lists the contact as a secondary contact 4. General License settings Insert your Premium Data license key into the text box and click Ac tivate.g. This setting allows you to specify a default company name.ContactLastName %} from {% CurrentSite.SiteName %} Default company name All Salesforce leads require a company name value. The value of the Default company name setting (if none of the above steps are successful) Settings . You can also upload a Premium data file using the Choose file an d Upload button instead.Score Allows you to select the score that determines which contacts are replicated. Note: The replication process is always performed separately for each website.SiteName %} For example. Minimum number of points for replication Specifies the amount of points that contacts must reach in the score selected through the Score setting. Lead description Defines a custom description for replicated contacts. to use the Business phone value instead of the last name. select the Gener ated lead description source in the field mappings.mobi On this tab. The name of the account in which the contact is listed as a pri mary contact 3. which is included in Kentico by default. To map the description to a specific field of Salesforce leads. The system attempts to retrieve the company name value from sources in Kentico in the following order: 1. The system only replicates contacts that reach a certain value in the given score (specified via the Minimum number of points for replication setting). the system replicates all contacts. enter the following expression: {% Contact. Once a contact reaches this value. The value of the contact's Company name field 2. It also contains additional properties in comparison with the Lite data version.mobi Data license key or uploading a Premium data . the system marks it for replication as a Salesforce lead.xml file. The default description adds the Last name of the contact that is being replicated and the name of the current site: {% Contact.ContactBusinessPhone %} from {% CurrentSite. The Premium data version contains additional devices. you can enhance the functionality of Device profiles by adding a Premium 51Degrees. game consoles. which the replication process uses for contacts who are not associated with any company.. tablets and smart phones. If you do not choose a score (None). e.51Degrees. eBook readers. . The first account that contains the contact as a regular contact 5. You can insert the values of contact fields into the description using macro expressions. so you can only select a score for individual sites. not globally.

XLS. Automatic catalog upload Enable automatic catalog upload Enables automatic upload of the Strands catalog feed to Strands. etc. Catalog access restriction Username The username used for restricting access to the Strands catalog feed.) to the Kentico database or file system and manage them as any other content. you can configure the Strands Recommender integration functionality which allows you to place recommended content to site visitors based on their behavior. the Save button automatically uploads the Strands catalog feed to Strands. SWF.Strands Recommender On this tab. WHERE condition The value of the WHERE condition in the SELECT statement that specifies the items in the Strands catalog feed. Managing files Kentico allows you to upload files (such as GIF. You will typically use this type for files that are used as part of unstructured pages. You can find your Validation Token in the My account section of the Strands Recommender website. DOC. File management approaches in Kentico If you need to upload files to the Kentico database or file system. The Document library module allows convenient management of CMS. You can set the frequency more precisely directly on the Strands portal (e.Settings .File pages into the content tree. Leave empty to include all page types. PDF. When selected. General API ID Enter the unique identifier of your Strands Recommender account. Password The password used for restricting access to the Strands catalog feed. Path The path from which items are generated into the Strands catalog feed.File pages on the live site. Automatic upload frequency The frequency at which the Strands catalog feed is requested by Strands.g. you can set an exact hour for weekly updates). You can also use the File import module when uploading multiple files. It is advisable to have files stored within folders (CMS. The system requires the ID to communicate with the recommendation service. Product types The page types from which items are generated into the Strands catalog feed. You can find your API ID in the My account section of the Strands Recommender website. such as page links or images inserted into editable regions of pages. you need to distinguish between four types of files: CMS. Only items in the feed will be considered when recommending items.Folder page type).. Catalog feed Catalog layout Transformation used to generate each item in the Strands catalog feed.File pages These files are uploaded by content editors as new CMS. JPG. The Strands recommendation service requests the token when the application performs certain customer actions. . Validation token Enter the validation token of your Strands Recommender account.

You can define this in the Setti ngs application in the System -> Files category using the Store files in file system and Store files in database options.File pages can be physically stored in the file system. The application and its typical usage is described in Media libraries. while large file sizes are supported. or in both. They usually include images and Flash animations used throughout the site. You can find a detailed description of the whole concept and examples of typical usage in Attaching files to pages. Storing files Page attachments and CMS. You can have an unlimited number of files attached to a page. Media libraries The Media libraries application allows you to store large amounts of files.Page attachments These files are stored as a part of a structured page and their life cycle is also bound to the page (including workflow and versioning). . Unmanaged files These files are part of the website theme. These files are not managed by the system. in the database. They should be stored in the <web project>\app_themes\<theme>\images folder on the disk.

You can use: physical disk path: e. At the same time. This option provides the best performance. Media library files location . such as ASPX scripts. c:\myfiles\mysite virtual path: ~/UploadedFiles UNC path: \\server\folder If no value is entered. The process of granting the Modify permission is described in Disk permissions problems. metafiles are stored under ~/<site code name>/metafiles.this option combines the advantages of both options. Database . Both .The following three combinations can be achieved using the settings: File system . the Mo dify permissions on the disk must be granted to the ASP.jpg. You can adjust the following settings related to files submitted through forms and their storage in the file system: Storage Custom form files folder Folder where files uploaded via forms are stored.NET account on your machine.Files.the files are stored in the database.Database and file system . Use site-specific subfolders for custom form files folder This setting is only applied when a Custom form files folder is configured. <custom BizForm files folder>/<site code name>. you can use the full-text search because the database is also available. This option provides worse performance. If enabled.pdf This allows you to block users from uploading potentially dangerous files.e. uploading will be allowed for all file types. attachment files will be stored in a sub-folder named as the site code name under the custom files folder. Files may be submitted as part of form records. but doesn't require the Modify permission for the file system and allows you to easily backup the uploaded files as part of your database. However. i.doc. The default location is ~/<site code name>/BizFormFiles. for example: gif. It provides the same performance as the file system-only option since the files are stored in the file system. the files are stored in the ~/<site code name>/BizFormFiles/ folder.the files are stored in the configured folder on your disk. Form files location Files uploaded by website users into forms are always stored in the file system. Both these folders can be located in different locations. Learn more in Settings . Page attachments and metafiles location Page attachments are stored in the file system under ~/<site code name>/files. It is useful for better orientation in files when multiple sites are running in the system.g. which can be configured using the Settings -> System -> Files -> Files folder settin gs option. You can restrict the types of uploaded files by entering a limited list of extensions separated by semicolons. Security Upload extensions Specifies which extensions are allowed for uploaded files. You can customize the location in Settings -> System -> Files -> Custom form files folder. which is not always possible. typically when a form contains an uploader type field (specifically the Upload file field type/form control). If no value is specified.

culture to which the uploaded files (pages) will be assigned. The File import application isn't the only way how you can upload files to the system. as described in Configuring media libraries.Files stored in media libraries are always stored in the file system. such as allowed file extensions. Importing files The File import application allows you to import large amounts of files into the system. You can import files from the two following sources: From your computer . 2.use this option to import files from anywhere on your disk. The use of this application should be allowed only to site administrators. the system doesn't retain the original folder structure. The File import security subsection demonstrates how you can set permissions for this application.File pages. From a server disk . If you now open the Pages application and locate the alias path that you specified in the previous step.use this option to import files located on the server disk. Include file extension in name . The default location is ~/<site code name>/media. Switch to the Import from your computer tab. you can see that the files have been uploaded. Note that this options allows you to import files including their whole folder structure. 4. Culture .Folder) pages.File (or CMS. Specify the following properties: Target alias path . Note that this option allows you to perform import on a file-to-file basis only. Importing files from your computer When importing files from your computer. The files imported using this application are stored in the content tree as CMS. as the File import application doesn't check certain security settings from Settings -> System -> Files. Click Select files to select files that you want to import into the system. Files imported this way are stored as CMS. See Working with files for further details. while the location of the folder can be customized in Settings -> Content -> Media -> Media libraries folder. Click on Upload. 3.if enabled. Open the File import application. . 5. If you want to import whole folders.path within the content tree where the files will be imported. This eliminates the need to create pages and upload files in the content tree manually one-by-one. The system imports the files. 1. the file extension is included in the File name of the newly imported files. This means that you have to structure the files into folders manually. import the files from a server disk.

3. You can customize the file import path in Settings -> System -> Files -> Files folder.culture to which the uploaded files (pages) will be assigned. Delete imported files from disk . The system imports the files. 1.path within the content tree where the files will be imported. When files are uploaded this way.File (or CMS. Culture . 6.Importing files from a server disk You can ensure the entire folder structure is retained by importing files from a server disk. If you now open the Pages application and locate the alias path that you specified in the previous step. Select files to import. Click Start import. 5. you can see that the files have been uploaded. Specify the following properties: Target alias path . 4.Folder) pages. Open the File import application. files in the import folder will be deleted after a successful import.if enabled. Copy your files into the specified import folder. they are stored as CMS. 2. Include file extension in name . . The default file import folder is ~/CMSImportFiles. Switch to the Import from server disk tab.if enabled. the file extension is included in the File name of the newly imported files.

files related to specified objects (e. This can be useful if you need to upload a greater number of files at once.g.g. Meta files .files in media libraries (e.files attached to pages (e. or if you need to perform the task quickly. The File import application has only one permission: Import files . The client browser supports HTML 5 (for example.File import security You can configure access rights for the File import application using the Permissions application after selecting Permissions for: Module File import. Page attachments . Pages -> select page -> Properties -> Attachments). Select one or more files from a given location. Uploading multiple files at once is available for: Media files . ) e-mail template -> Requirements for uploading multiple files The following conditions must be fulfilled to allow uploading of multiple files: The application has the write-to-disk permission for the temporary file repository (CMS/App_Data/CMSTemp/MultiFileUploader fol der). . e-mail template attachments in E-mail templates -> Edit ( General). Media libraries -> Edit ( ) media library -> Files).g.members of the specified roles can import files using the File import application. the system only allows uploading of single files for older versions of Internet Explorer) How it works 1. Uploading files You can upload files in Kentico either one by one or as multiple files.

When the upload is finished.images are not resized.config file of the current web project folder). Aspect ratio is preserved. . the functionality is the following when uploading images: No values are entered . max side size) .2. You can change this setting by changing the value of the CMSDelet eTemporaryUploadFilesOlderThan key (you need to manually add the key into the web.depending on which values you fill in. The system provides the Delete old temporary upload files scheduled task (configurable in the Scheduled tasks application).images are resized so that the larger dimension matches the respective entered value. Both width and height . 3. height. users need to avoid causing a post back on the page containing the upload form field. the temporary files remain in the temporary repository. Resizing images on upload You can set global image resizing parameters in Settings -> System -> Files -> Image resizing by entering the following values: Automatic image resize on upload (width. the temporary files become the requested files: If a post back occurs while uploading multiple files or another error occurs. Only width or only height . which deletes these temporary files. To upload the files successfully. The other dimension is also resized so that aspect ratio is preserved. The files are downloaded as temporary files to a repository (CMS\App_Data\CMSTemp\MultiFileUploader). by default older than 24h.images are resized so that their width or height matches the entered value.

This part of the user interface is divided into tabs described in the following text. or choose (all) to view all page attachments on all websites in the system. Field editor fields . a filter is displayed above the grid.config key).performs the action for all listed files. the image is resized so that its larger side's dimension matches the entered value.if one of the image's sides is larger than this value.copies the attachment to the database. extension. Aspect ratio is preserved and the width and height settings are not applied. Image selection. BBcode editor. Using the filter. File attribute type -> Upload file and Direct uploader form controls. The test consists of the following steps: 1. Page type field editor.performs the action for files selected using the check-boxes in the grid.g. in forms.File pages Editable text web part . Delete from database . etc.uploading images using the Select image dialog. Attachments tab On the Attachments tab. Creation of a testing folder and file 2.copies the attachment to the file system. Use the two drop-down lists below the grid.uploading images using the text editor dialogs. the system allows you to perform for the page attachments management actions. etc. If there are more than 25 page attachments (or a different number set by means of the CMSDefaultListingFilterLimit web. size or depending on if they are stored in the database. This action is only displayed if the attachment is stored both in the file system and in the database while settings are configured for files to be stored only in the file system or to be stored both in the file system and in the database. Text attribute type -> HTML Area (Formatted Fext). web part properties. you can find a list of page attachments stored by the system.). Editable image web part . Deletion of the testing folder and file Click Test files to perform the test. you can either select a site and view all page attachments on the site. Modification of the testing file 3.uploading images using the following field types (form controls).deletes the attachment from the database. e. you can filter displayed attachments by their name. Depending on the Store files in file system and Store files in database settings in Settings -> System -> Files. Based on selection in the Site drop-down list. text editor dialogs. These settings are applied by default when uploading images as: media library files page attachments CMS. The default settings defined here can be overridden by local settings in the particular parts of the user interface (e. Copy to file system . This action is only displayed if the attachment is stored only in the . field editor. Administering files globally A user interface for global-level administration of files stored by the system is located in the System application on the Files tab. you can perform a test that verifies the system's access to the file system. Then you can select the required action from the second drop-down list and click OK.g. This action is only displayed if the attachment is stored only in the file system while settings are configured for files to be stored both in the file system and in the database. you can select: Selected files . All files . In the first drop-down list. Copy to database . Test tab On the Test tab. Media selection and File selection form controls.Max side size .

In the first drop-down list. Delete from database . Using the filter. In the Actions column in the grid. Using the Object type drop-down list. When rebuilding page indexes.performs the action for all listed files.displays metafiles of global. All files . size or depending on if they are stored in the database. This action is only displayed if the metafile is stored only in the file system while settings are configured for files to be stored both in the file system and in the database.displays metafiles of site-related objects belonging to the selected site.e. the system allows you to perform for the metafiles management actions: Use the two drop-down lists below the grid. while choosing one displays only metafiles of these objects that match the selection in the drop-down list above. you get all metafiles that match the selection in the drop-down list above. If there are more than 25 metafiles (or a different number set by means of the CMSDefaultListingFilterLimit web. extension.displays all metafiles stored by the system. the search loads the "cached" attachment text from the database. you can find a list of metafiles stored by the system. Delete from file system . The application stores the text extracted from page attachments in the database.database while settings are configured for files to be stored only in the file system or both in the file system and in the database. The displayed actions are the following. you can filter displayed metafiles by their name. Then you can select the required action from the second drop-down list and click OK. Copy to database . i.copies the metafile to the database. Based on selection in the Site drop-down list. The other options in the drop-down are particular object types.deletes the attachment from the file system. This allows you to rebuild your page indexes correctly in the following scenarios: After you apply a hotfix or upgrade that changes how the search indexes attachment files If you modify the functionality of a custom search text extractor Metafiles tab On the Metafiles tab.performs the action for files selected using the check-boxes in the grid. By selecting (all). you can select: Selected files . you can further limit which metafiles will be displayed. This action is only displayed if the metafile is stored both in the file . action icons are displayed depending on the Store files in file system and Store files in database settin gs in Settings -> System -> Files. you can select: (all) . <website> . The system only processes the file text directly for attachments that do not have any search content saved.config key). This action is only displayed if the attachment is stored both in the file system and in the database while settings are configured for files to be stored only in the database.deletes the metafile from the database. Clearing the attachment search content The Smart search feature of Kentico allows users to search the text of attachment files along with the content of pages. not site-related objects. (global) . a filter is displayed above the grid. Click Clear attachment search cache in the header of the Attachments tab to remove the search content from the database for all attachments. Depending on the Store files in file system and Store files in database settings in Settings -> System -> Files.

This action is only displayed if the metafile is stored both in the file system and in the database while settings are configured for files to be stored only in the database. This action is only displayed if the metafile is stored only in the database while settings are configured for files to be stored only in the file system or both in the file system and in the database. Copy to file system . see the Search engine optimization chapter). Title . The current file name is always pre-filled when the dialog is opened.text describing the content of the file. Configuring page URLs Kentico uses a rewriting engine to processes URLs.aspx?id=527 The friendly URLs provide several benefits: They are easy to remember and easy to write into the browser address bar. . ) icon next to the file listed in the respective part of the You can enter the following metadata: File name . Description . Delete from file system .deletes the metafile from the file system.the name of the file (without the trailing dot and extension).com/products. They are friendly towards search engines (for more information.copies the metafile to the file system. Editing file metadata You can use the Metadata editor to edit metadata (i. They represent a path that shows users where they are located on the website.com/products/kentico-cms. descriptions) of non-image files stored in media libraries .example.the title of the file (may be different from the actual file name).system and in the database while settings are configured for files to be stored only in the file system or to be stored both in the file system and in the database.aspx instead of something like: http://www. The engine allows the system to use friendly URLs in format: http://www. as page attachments or as object metafiles. The Edit metadata dialog is accessible by clicking the Edit ( administration interface.example.e.

the ~/cmsmessages/invalidwebsite. the system optionally applies output filters that perform additional changes in the rendered HTML code.aspx 1. If the requested domain name contains a port number that is not found. either via the main site domain name or domain aliases. Check for Page aliases . The most prioritized way to identify standard pages is the Page URL path. 3. If there is no page with a matching URL path. so the engine first attempts to find a page with a URL path set to /produ cts/kentico-cms. Look up the website based on the domain name The system checks the domain name in the URL and finds a matching site. If the website's content is available in multiple languages. Process the URL path The request in this example specifies a standard URL path. the rewriting engine tries to look up a page with an Alias path equal to /products/kentico-c ms (the alias path is generated according to the page's position in the content tree). individual language versions of pages are recognized based on a combination of their alias path and a URL with a culturespecific format. Figure: Basic page processing steps After pages are processed by the rewriting engine.Users can easily bookmark or send the URLs of pages Every page has its own unique URL.example.aspx page is displayed. the domain is checked without the port number. so the request is handled by the Kentico URL rewriting engine. If none of the currently running websites match the domain name. URL processing The steps below explain how the system handles a request for the following URL: http://www.com/products/kentico-cms. 2. or through completely custom URL paths (if specified).

without the virtual path designator (~).aspx?ali aspath=/products/kentico-cms In the case of MVC templates. including sub-directories and all possible extensions. Display the page When the requested page is identified.aspx page stored directly under the website's root. Handle errors If the steps described above fail to find a matching page for the requested URL. which renders the final output according to the web parts placed on the given template and the content of the specific page. /Custom . open the Settings application. the system displays the content according to the type of the page's template: If the page is managed by the Portal engine.excludes the ~/Custom. You can enter multiple URLs separated by semicolons. The rewriting engine evaluates MVC and Routing patterns in the same step of the process. the system does not process the request. The paths must always start with a forward slash (/). . 5. the system tries to find a page with a Page alias set to /products/kentico-c ms. which then renders the page using an appropriate MVC view.html or any other file types) stored inside the web project directory.If a page cannot be found under the given URL or alias path. To disable rewriting for specific pages. ~/Custom2.aspx system page is called. select the URLs and SEO category. the ~/cmspages/portaltemplate. Sample values: /Custom. You should always avoid collisions between MVC and Routing patterns. you can avoid unnecessary processing by excluding their URLs from the Kentico rewriting engine. the system passes on the request to the MVC controller and action specified for the given template. For ASPX page templates. This leads to better performance and also allows you to prepare your own custom URL rewriting logic. the system skips all URL rewriting actions and attempts to access the specified page directly.aspx . Figure: Processing for all types of URL requests Processing of MVC and Routing URL patterns If the URL of an incoming request matches the MVC or Routing pattern defined for a page. Entering a value excludes all URLs that start with the given path.excludes all pages whose URL path starts with /Custom. the pattern always has priority over other types of URL processing (even if it is set through a page alias). See also: Setting page aliases 4. for example: ~/Custom. and type the matching URL paths into the Excluded URLs setting: Use URL paths without the website's domain name or virtual directory. so precedence between the two is not defined. When a visitor requests an excluded URL. htm . Excluding URLs from the rewriting engine If your website uses custom physical pages (. for example: /products.aspx. The web server returns a 404 HTTP status code and displays the Page not found error page configured for the website.aspx.aspx. the appropriate template (web form) is loaded using an internal URL. ~/Custom/Page.

By default.&apos. You can specify the character that is used to replace forbidden characters through the Forbidden characters replacement setting in Settings -> URLs and SEO. such as handling non-ASCII character sets or assigning unique replacement strings for specific characters. By default.htm. Forbidden URL characters Certain characters have special meanings in URLs. or URLs without extensions. which leads to a page not found error in most cases. Open the Settings application. See Custom handling of URL path values f or more information. you can enter a regular expression into the Allowed URL characters setting to precisely specify which characters are allowed in URLs. such as . you need to configure the system as described in Custom and extensionless URLs. Select the URLs and SEO category. 3. page aliases and URL paths).|&amp.com/products/kentico-cms.com/products/kentico -cms. the system always tries to load a matching physical page. For example: <add key="CMSForbiddenURLValues" value="$\/:?&quot. or add new ones. Alternatively./Custom.aspx You can also use custom extensions. Note The default characters listed above are always forbidden unless you override the CMSForbiddenURLValues key in the /configurat ion/appSettings section of your application's web.&lt.example. 4. .config: <add key="CMSLimitUrlReplacements" value="false" /> This preference may also be set specifically for the Page URL Path property of pages (and no other URLs) via the key below: <add key="CMSUseLimitReplacementsForUrlPath" value="false" /> Advanced character replacement customization You can change the character replacement behavior to deal with specific scenarios./Static .&gt.aspx. such as http: //www. If you wish to have each forbidden character replaced individually. The system automatically replaces or removes forbidden characters.example. 2.config file. all URLs end with . It is strongly recommended to keep the default characters forbidden — entering the characters into URL paths may prevent certain types of URLs from working correctly. Warning: Be careful not to exclude the URLs used by the regular pages in the website's content tree. Type the characters into the Forbidden URL characters setting (without any separator).html or any other sequence of characters. Click Save. This can be achieved by customizing how the system converts URLs into a safe format. for example: http://www. the following characters are forbidden: \/:*?"<>|&%.%. so they cannot be used in values that determine the path to pages (i. By default. With URL rewriting disabled for a URL. add the following key to your web. forbidden characters located at the beginning or end of the path are removed completely and consecutive forbidden characters are only replaced by a single character. .#[] =" /> You can either use the key to allow some of the default forbidden characters.excludes all pages whose URL path starts with /Custom or /Static. URL format and configuration Defining URL extensions Page URLs can use various types of extensions.'#[]+=„" and the space character To specify additional forbidden characters: 1. In this case.e.

Reference .aspx. Page URLs Default URL path prefix Defines a default URL path prefix used for all URLs of content pages. the file URLs end with no extension: getfile/<node alias>/myimage Excluded URLs Specifies a list of URLs that are excluded from the URL rewriting engine. URLs of pages and page attachments are generated in permanent format. Learn more in Linking pages and files. Forbidden characters replacement Specifies the character that the system uses as a replacement for forbidden characters in URLs. You can add multiple extensions separated by semicolons (. See Excluding URLs from the rewriting engine for more information. To allow extensionless URLs.htm.Using URL Prefixes If you need to add a prefix to all URLs on a specific site (e. Friendly URL extension Specifies the extensions that the system adds to page URLs. Internally. they must be preceded by a backslash (\) as an escape character. Use name path for URL path If checked.. The following characters are forbidden by default: \/:*?"<>|&%. If you have both language prefixes and standard URL path prefixes enabled. you can specify it in Settings -> URLs and SEO -> Default Url path prefix.URL settings The above configuration tasks can be performed via the Settings application in the URLs and SEO category. type the prefix into the Settings -> URLs and SEO -> Use language prefix for URLs setting.'#[]+=„“ and the space character.). Any characters not specified are forbidden. enter a semicolon without any extension. the system automatically copies page name paths to the URL path.aspx If empty.. Sample value: . this prefix is rewritten to the urlpathprefix query string parameter.. Files friendly URL extension Specifies the extension that the system adds to file URLs.g. If empty. only the characters specified by the Forbidden URL characters setting are prohibited. the standard URL prefix always precedes the language prefix in the URL. The URLs use the following format: <domain>/<path prefix>/<page URL path> For example: http://www. Refer to Configuring URLs for multilingual websites for more details. When allowing special characters in the regular expression. for search engine optimization).html. The first extension is used as the default option when generating links and page URLs. The following table shows an overview of the available settings: URL format Forbidden URL characters List of additional characters that cannot be used in URLs (page aliases and URL paths). Additional extensions are supported in URLs when accessing pages.aspx Using language prefixes for URLs To add a different URL prefix for every page culture version. Example: Entering a-zA-Z0-9\^ as the value only allows alphanumeric characters and the caret symbol (^) to be used in URLs. Allowed URL characters Determines which characters are usable in URLs by means of a regular expression. Extensions must be preceded by the period character.example. . If disabled. Example: getfile/<node alias>/myimage.com/myprefix/products/kentico-cms. Use permanent URLs If enabled. friendly URLs are used.

To configure URLs.Remember original URLs when moving pages Indicates if the system creates new page aliases when a user sets a new page URL path or extension for a page. Aliases do not change how the system generates the main URL of a page. For example. Select the page in the content tree. The system first searches for the specified class in the CMS. For example. Other settings (related to SEO) may also affect the format of URLs.aspx Adding page aliases You can add more URLs to pages through page aliases. Automatically update page alias If enabled. refer to the Search engine optimization chapter.the fields in this section specify an alternate URL for the page.C ontrollers. Default action (MVC only) Specifies the MVC action that the controller performs when the page is accessed through the alias URL. the CMS. Open the Properties -> URLs tab. Path or pattern Enter a URL path for the page alias according to the selected Path type. 2.aspx Page URL path . as described in Wildcard URLs. they only make the given page available under other URLs. the alias of pages is automatically updated to match any changes in the name of the given page in the default culture. 4. regardless of its position in the website hierarchy. Route . The alias path of a page is then used to generate its default URL. You can fill in the following properties for each alias: Property Path type ________________ Description You can choose several different URL types for the alias path: Standard URL or wildcard . When enabled. the page alias property cannot be edited manually. which contains all parent pages up to the root of the site's content tree. Wildcard URLs can be used here. you can then access the page under the following URL: <domain>/Medi agallery.the alias URL is processed as an ASP. To learn about these. MVC .<current site code name> namespace.Global namespace is searched. For example. if you set a page's alias to Media. To create page aliases: 1.NET Route pattern. Setting page aliases Pages can have an unlimited number of different URLs. if you enter /Mediagallery as the value.Controllers. 5. Open the Pages application. if you select the Standard URL or wildcard Path type and enter /Medialibrary. then the URL is: <site domain>/<parent page alias path>/Media. . Click Add new alias in the Page aliases section. enter NewsMVC. 3. without the Control ler part at the end. If it is not found there. the URL of the page is: <domain>/Medial ibrary.the alias URL is handled by the standard Kentico rewriting engine. The selection determines how the system processes the value of the Path or pattern property. For example. if the class is called NewsMV CController. Aliases form the alias path of each page.aspx Default controller (MVC only) The name of the MVC controller containing the action performed when the alias URL is accessed.requests to the alias URL are handled as requests for an MVC page.the unique name of the page in the given section of the website. select a page in the content tree of the Pages application and open the Properties -> URLs tab: Page alias . See Developing sites using the MVC framework for more information.

This field is optional. 4. This allows the system to monitor how many page views the website receives as a result of the campaign and track the activity of the visitors who arrive as a result. 2. You can find an example on the sample Community starter site. Click Save. Click Save. How is it achieved? Log in to the administration interface and open the Pages application. 1. e-mails etc. The information provided can help you avoid URL collisions when creating new aliases. Open the Properties -> URLs tab. Enable the Remember original URLs when moving pagessetting. To use custom extensions. URL extensions Specifies additional supported extensions for the alias URL. such as banners. the system does not redirect the alias URL. the alias path or custom URL path (if specified). Open the Settings application. This field is optional. Select a page with an alias in the content tree.with this option. Select the URLs and SEO category. you need to configure the system according to the instructions in Custom and extensionless URLs.if selected. Track campaign The system assigns visitors who access the page through the alias to the selected web analytics Campaign. You can see /Members/{UserName} in the Page URL path field. Edit ( ) any alias.e. For example. you can create a special alias for a page and then use the alias URL in links contained in marketing materials. 4. The {UserName} part of the URL is the actual wildcard. the system always redirects the alias URL to the page's main URL. the redirection behavior follows the Redirect page aliases to main URL setting specified for the website in Settings -> URLs and SEO. Select the Members -> Profile page in the content tree and switch to the Properties -> URLs tab. Click View all aliases in the page header. This option is recommended if the URL of the alias contains a wildcard. If you now switch back to the page's Properties -> URLs tab. and allows you to manage aliases from a single location. 5. 3. 6. 2. Redirect to main URL .if selected. 3. Automatic creation of new page aliases You can configure the system to automatically create new page aliases when a user sets a new URL path.Alias redirection Determines how the system handles (redirects) the URL when the page is accessed through the alias: Use site settings (default) . Do not redirect . Wildcard URLs Wildcard URLs provide a way to load content dynamically depending on the page URL. Open the Pages application. i. The Members -> Profile page uses wildcard URLs to display user profiles — a single page displays profiles of various site users. See also: Search engine optimization Culture Determines which language version of the page the system displays when the page is access through the alias URL. You can add any number of aliases. Viewing all aliases on a website You can access a list of all aliases defined on the website (for all pages). the new alias appears in the Page aliases section. . alias or extension for a page: 1.

aspx extension to . and the value is the matching part of the entered URL.asp. you can have URLs ending with . In the original version. If you create a version of this page in another language.example. no profile is found. registration on the sample Community Starter Site doesn't allow user names with dots. The default value ensures that the system always generates the URL with a certain value in the wildcard. This happens because the URL path needs to be unique for every page.David} into the Page URL path field and click Save. An alias only makes the page accessible through a given URL.If you type <domain>/Members/David. For example.aspx. you must erase the Page URL path value for both language versions of the page. As a result. Additionally. Custom URL extensions allow you to change the default . select (all) in the Culture drop-down list. Adjust your web. If you want to keep such links functional in all language versions. instead of the default http://www. Since the last part of the URL after the last dot (smith in this case) represents the extension. To prevent this. Keep in mind that it is not possible to specify default wildcard values through page aliases.aspx. When the first page is accessed through the URL <domain>/Profile/Andy.aspx. as described in Setting page aliases.com/news To use custom URL extensions.aspx?username= David. Default wildcard values You can set default values for wildcards in URLs. Now let's presume that you have the following link leading to the page: <domain>/Members/David. The modification added to the end of the URL path changes the wildcard value representing the user name. but expect that the wildcard part may not always be present in the URL. Configure custom URL extensions in the Kentico settings Configuring IIS to allow custom URL extensions .com/news. you may encounter problems when referring to a page using a wildcard URL on multi-lingual sites. it does not enforce this URL for the page. the URL returns a 404 error. The name of the parameter is taken from the name of the wildcard. the page displays David's profile by default. move the wildcard in the Page URL to the middle of the URL. If you need to allow dots in user names and use wildcard URLs with user names at the same time. When creating the alias.smith. Use the following format in the URL path: {<wildcard name>. the profile page URL is http://<domain>/Members/ja ck. you need to define the /Members/{UserName} path via the Page aliases s ection. open the sample Community site in the Pages application and select the Members page. Dots in wildcard URLs You may encounter problems when string containing a dot character (". Switch to the Properties -> URLs ta b. The current value is used even for wildcards that have a different default value set in the URL path. The system converts the wildcard part of the URL (David) into a query string parameter. on the sample Community Starter site. The User public profile web part which is placed on the page recognizes the username parameter in the rewritten URL and displays David's profile.html: http://www. the Members -> Profile page opens. For example. which makes it impossible to find a matching user profile. A typical example of this can be found on the Members -> Profile page of the sample Community Starter Site.com/news. For example. or any other value.smith.example. the Page URL path is automatically changed to /Members/{UserName}-1.example.aspx.php. enter /Members/{UserName. If you now access the Members page on the live site. for example: /Members/{UserName}/Profile Custom and extensionless URLs You can configure the system to use custom URL extensions and extensionless URLs. For example.html you can also configure extensionless URLs: http://www.<Default value>}. .aspx into your browser. imagine a scenario with two pages that use a wildcard in their URL path: the first set to /Profile/{UserName} and the other to /Profile/{UserName}/Details. . take the following steps: 1. But if you try to click the link in the second language version.config or IIS to handle custom extensions 2. it works fine. Using wildcard URLs on multi-language sites The Page URL path is unique for each language version of a page.") get into the wildcard parts of URLs. the Members/Profile page has the Page URL path set to /Members/{UserName}.aspx.html. The page's Page URL path is /Members/{UserName}. because the URL in this language version is <domain>/ Members/David-1. For the username jack. navigation links to the second page are automatically generated as <domain>/Profile/Andy/Details. so that the internal URL actually looks like <domain>/Members/Profile. Default values are useful when you want to have a wildcard in a page's URL path. the current value of a wildcard is always used as the default value in all other URLs on the given page that contain the same wildcard. Before you can do this.

This approach is required for sites that use an application pool in Classic Managed Pipeline Mode.config.... Select the Content category. 1.webServer section directly under the web.aspx. open the Settings application. . Optional configuration (recommended) It is recommended to configure a custom Page-not-found (404) error page when using custom URL extensions. 1. you can also set error pages by configuring your IIS manually. 2. </modules> .e. otherwise a blank page may be displayed in some browsers if a user attempts to access a nonexisting resource. 2. Set the runAllManagedModulesForAllRequests attribute to true for the opening <modules> tag: <system. you can add a <httpErrors> element into the system. configure the extensions in the Kentico administration interface. You can also add the following key to the AppSettings section of the web.aspx" /> </httpErrors> Replace the <Virtual_Directory> string in the value of the path attribute of the <error> element with the name of the virtual directory where you run Kentico.webServer> . <modules runAllManagedModulesForAllRequests="true"> <remove name="WebDAVModule"/> <remove name="XHtmlModule"/> <remove name="CMSApplicationModule"/> <remove name="UrlRoutingModule-4. <add key="CMSUseExtensionOnPostback" value="false" /> If you are using trailing slashes (enabled through the Use URLs with trailing slash setting in Settings -> URLs and SEO). Open Start -> Control Panel -> Administrative Tools -> Internet Information Services (IIS) Manager. Edit your application's web. 2. 3.aspx page (obsolete) For the purposes of backward compatibility.webServer> With this modification in your web. 3.config file. 1. Enter the URL of the appropriate page (or aspx web form) into the Page not found URL setting. In the Kentico administration interface.config file. which ensures that URLs remain the same even after postback. for example: ~/CMSMessages/Pag eNotFound.Note: This procedure only works for IIS 7 sites that use an Application Pool with Managed Pipeline Mode set to Integrated. you can use the following extra key to have only extensionless URLs ending with the trailing slash..config root (i. </system. URLs ending with an extension are rendered without the slash when the key is used. Alternatively. Find the <modules> element inside the system. You can also perform additional configuration as described below.. Please read Creating custom error handling pages to learn more. not under a specific <loca tion> element).webServer section of your web.. <add key="CMSUseTrailingSlashOnlyForExtensionLess" value="true" /> Using the cmspages/handler404.config file according to the following: <httpErrors existingResponse="Auto" errorMode="Custom"> <clear/> <error statusCode="404" responseMode="ExecuteURL" path="/<Virtual_Directory>/CMSMessages/PageNotFound.0"/> .

This can be useful for SEO purposes. You may need to manually update static links that were created with the default . 8.DefaultHttpHandler Name: HTML 6. you need to enter /kentico/cmspages/handler404. Open the Settings application. . Run Internet Information Services (IIS) Manager.aspx .Web. 6. The default extension that appears in the browser address bar when opening pages is always taken from the global settings. Click to Add managed handler. Click OK. the system redirects URLs with non-default extensions to the corresponding URL with the default extension. It's not necessary to restart the application. to use the . If you receive a Lock violation message when configuring the following step. Select the URLs and SEO category. 4. 2.html. 1. if you want to change your site's URL extension. For example. Open Handler mappings. save an empty value into the Friendly URL extensions setting. Go back to step 3 and repeat the same procedure for the 405 error. 5. 4. enter a semicolon without an extension Examples: .html Type: System..aspx extension.. 9.htm.2.. Setting custom URLs Once you have performed the required low-level configuration. Example: if you run your web project in virtual directory /kentico.html extension by default..aspx Path type: Execute URL 5. 3. Select Execute a URL on this site and enter the same URL that you entered in step 4. 7. 2. Right-click the 404 error and select Edit Feature Settings. proceed to Troubleshooting custom and extensionless URL configuration. Select your website.aspx page according to your application's URL. 4. also allows aspx .. set the URL extensions in the Kentico administration interface: 1.html Click Save. Page-level extension settings In addition to the global settings. also allows htm. Type the required extension into the Friendly URL extensions setting. To allow extensionless URLs in combination with other extensions. Click OK. you can set URL extensions for individual pages. Setting up extensions in IIS manually (obsolete) The following approach is also possible.extensionsless URLs by default. Enter the following values: Request path: *.. the system renders all URLs in menus and listings with the specified extension. Pages can be accessed through URLs ending with all entered extensions.asp . 3. 2.html extension. separated by semicolons. . but not recommended and considered obsolete. Select your website from the tree and open the Error pages section. Click OK in all dialogs to save the changes. and use the new extension when the pages are accessed from a search engine that has your website indexed with the old extension. Use the following rules: The first extension is used as the default Enter other extensions. Open the Pages application. extensionless and asp If you enable the Redirect pages to main extension setting in Settings -> URLs and SEO. Enter the following values: Path: enter the URL of the cmspages/handler404. For example. go through the following steps: 1. Using multiple extensions You can enter multiple extensions into the Friendly URL extensions setting. Click OK. 3. Right-click the 404 error again and select Edit. for example: . Now when you go to the live website. Setting extensionless URLs To configure the system to use URLs without an extension.

You can check and unlock it in Internet Information Services (IIS) Manager. . you probably need to unlock it on a higher level in the IIS tree. i. Even if the Use custom URL extensions option is disabled. if you are using IIS 7. you can download and install it as a part of the IIS7 Administration Pack).2. In the Configuration Editor. Switch to the Properties -> URLs tab.webServer/httpErrors in the Section drop-down. 3. you may receive the Lock violation error message (especially if you are running Kentico in a virtual directory).5. on the parent site or on the root of the server. If the option is missing in the menu. right-click the attribute name and select the ‘defaultPath’ Attribute -> Unlock Attribute action. Troubleshooting custom and extensionless URL configuration When configuring your IIS 7 (or later) to allow custom extensions or extensionless URLs. Click Save. files (cms. Type the required extensions using the same rules as described above. 6.file pages) can be accessed under their physical extensions. Select the page in the content tree. Select your site (IIS site) and open Configuration Editor (it is included in the Management section in the standard installation of IIS 7. 5. This may be caused by a locked defaultPath attribute in the httpErrors section. If there is a lock icon next to the defaultPath attribute.e. Select the Use custom URL extensions check box. 4. choose system.

but allows you to specify the exact URL (e.com/getdoc/8FG7-84E394-FABD-5678/our-services/fr-fr. The <page name> value may contain any text — it is not used by the system.example.aspx?lang=fr-fr Linking attachments If you need to create a permanent link to a file uploaded as a page attachment.aspx is the permanent equivalent of: http://www. Linking pages and files Creating permanent links to pages If you need to create a permanent link to a page.com/getdoc/016fad52-0d69-46d5-80dc-daec9173c0c7/Products. use a URL in the following format: <domain>/getdoc/<page GUID>/<page name><extension> <page GUID> is the globally unique identifier of the page.Click Apply to save the changes. the Lock violation errors shouldn’t appear. For example: http://www. you use a URL in the following format: <domain>/getdoc/<page GUID>/<page name>/<culture code><extension> For example: http://www.com/company/products. you use a URL in the following format: . for the purposes of search engine optimization).g. You can find a page's GUID value in Pages -> Properties -> General -> Node GUID. It is an equivalent of: http://www. By default.example. Permanent links keep working even if you move the target page to another location. the system uses the page's name. From now.aspx Displays the given page in French (if the page is translated).com/company/our-services.aspx Linking specific language versions of pages If you need to link to a specific language version of a page.example.example.

GetFile URLs accept the following query string parameters: Parameter name Description Sample value guid Attachment GUID value.opens the browser's "Save or Open" dialog Resizing of images If your website has the Resize images according to device profile setting enabled in Settings -> Content -> Content management.example. Edit ( ) a profile. By default. To find the GUID of an attachment. 400 maxsidesize Resizes the image to the specified size of the longest side (in pixels). 100 height Resizes the image to a specified height (in pixels). versionhistoryid Version history ID of the attachment. If you wish to disable device profile resizing for an image. When a user views the website on a device that matches a device profile. 4. Click Save.<domain>/getattachment/<file GUID>/<filename><extension> The <file GUID> is not the same as the page GUID. The page is called whenever you use /getdoc. images automatically reduce their maximum side size to the larger of the dimensions set for the given profile. If you need to change the default behavior in any way. for example ü is converted to u. Characters with diacritics are replaced by the appropriate base character. add the resizemode=1 parameter to the GetFile URL. To configure the dimensions of device profiles: 1. you can register and implement a handler for one or both of the following system events: . inline You can use one of the following disposition values: or attachment inline .aspx parameters The system uses the GetFile. nodeguid Node GUID value. and makes any necessary changes. page URL paths.opens the file in the browser window if possible attachment . 3. 500 disposition Indicates the output disposition of the file.com/getattachment/763c8921-be94-4610-99b4-25e8d3be5b08/logo. the system checks text values for unsafe characters before they are added to the URL path.File page. forum names. post subjects etc. height and maxsidesize parameters used in GetFile URLs of image files. It is the GUID of the file in the CMS_Attachment database table.aspx page to retrieve uploaded files from the database. Open the Device profiles application. /getattachment or a direct URL based on the alias path of a CMS. Custom handling of URL path values To ensure that URLs can be processed correctly. the system may override the width. This affects fields such as page aliases. The <file name> value can contain any text. click the attachment in Pages -> Properties -> Attachments and view the URL. It can only be used together with the guid param eter. the process includes removal of diacritics and replacement of all forbidden characters according to the settings defined for the given site (as described in URL format and configuration). For example: http://www. 2. Set the Preview width and Preview height properties. width Resizes the image to a specified width (in pixels).aspx GetFile.

occurs whenever the system removes diacritics from text. Disabling the default system functionality may prevent parts of your website from working correctly. OnBeforeRemoveDiacritics .g. 3. Expand the App_Code folder (or CMSApp_AppCode -> Old_App_Code if your project was installed as a web application) and create a new class.OnBeforeGetSafeUrlPath += Custom_OnBeforeGetSafeUrlPath.OnBeforeRemoveDiacritics += Custom_OnBeforeRemoveDiacritics. This is one of the default steps performed when creating safe URLs. 4. e. Example The following example demonstrates how to define handlers for the forbidden character events: 1. /// </summary> public override void Init() { // Assigns a handler to the OnBeforeGetSafeURLPath event URLHelper.Helpers. you can convert characters from an international character set to an equivalent in Latin characters (ASCII) or specify a unique replacement string for particular forbidden characters. but the event is also triggered during many text parsing operations that are not directly related to URLs (for example when indexing text for the Smart search). The override the Init method of the CMSLoaderAttri bute attribute class allows you to assign custom handlers for events. Warning Only return a false value if you are sure that your custom handler can take full responsibility for all URL safety or diacritics removal requirements. For example. Delete the default class declaration and its content. Instead. . it is highly recommended to set the return value to true for all but the most extensive customizations. particularly in the case of handlers for the OnBeforeGetSafeUrlPath event. which can be found under the CMS. so any changes that you make in the code are reflected in the result. For this reason. Both handlers have a boolean return value that indicates whether the default functionality should also be performed after the handler is executed. The events are members of the URLHelper and TextHelper classes respectively. using CMS. Edit the class and add the following references: using CMS. 2. when the page alias field is saved (or filled automatically based on the page's name). add the following code: [URLFormatHandlerLoader] public partial class CMSModuleLoader { /// <summary> /// Custom attribute class.occurs whenever a potentially unsafe text value is added to a part of a URL. /// </summary> private class URLFormatHandlerLoaderAttribute : CMSLoaderAttribute { /// <summary> /// Called automatically when the application starts. The handlers for these events have the source text included as a string parameter passed by reference.Base.OnBeforeGetSafeUrlPath . // Assigns a handler to the OnBeforeRemoveDiacritics event TextHelper. Open your Kentico web project in Visual Studio. } } } This extends the CMSModuleLoader partial class and defines a new attribute. This event can be used to customize the final format of URL paths.Helpers namespace.

"oe" ).Replace( "Ü". 6. string siteName. Add the Custom_OnBeforeRemoveDiacritics handler: static bool Custom_OnBeforeRemoveDiacritics(ref string text. "ue" ). which is then used in the page's URL. The system applies the changes when creating new URLs and when removing diacritics from text.Replace( "Ö". This can be useful if you need to access the forbidden character settings of the given site in your custom code. EventArgs e) { // Replaces German special characters text = text. } This ensures that the system uses custom replacements for German special characters rather than simply stripping the diacritics and leaving the base character. "Ue" ). "ae" ). "and"). For example. it provides many features that simplify related configuration tasks and make it easier to follow general best practices. Note: The customization does not automatically change the aliases and URL paths of existing pages until the current value is changed or saved. 7. for example when mapping the character set of an international language to appropriate ASCII characters or words.Replace( "ß". // Returns true to indicate that the default URL replacements should also be performed (i. EventArgs e) { // Replaces all & characters with the word "and" url = url. In realworld scenarios.Replace( "ö". Add the definition of the Custom_OnBeforeGetSafeUrlPath handler into the private class: static bool Custom_OnBeforeGetSafeUrlPath(ref string url. text = text.Replace("&".e. text = text. text = text. While Kentico cannot guarantee by itself that your website will have good search engine optimization. "Ae" ). removing diacritics and forbidden characters) return true. Being higher in search results benefits the site by naturally attracting more visitors. the system ensures a solid SEO foundation by .Replace( "ü". The siteName parameter of the handler contains the code name of the site under which the event occurred. text = text.Replace( "Ä". text = text.Replace( "ä". Additionally. The rank determines the site's organic position in the results of web search engines (such as Google).5. Search engine optimization Search engine optimization (SEO) is a process that attempts to improve the page rank of a website. the handler can be much more complex. text = text. This example is only meant as a simple demonstration. "Oe" ). Build your project if it was installed as a web application. } This code replaces all ampersand (&) characters with the word and. Save the file. a page named Products & Services has its default page alias generated as Products-and-Services. // Returns true to indicate that the default diacritics removal should also be performed return true. "ss" ).

and page URLs in a search engine friendly format. SEO settings You can configure most of the SEO functionality of your website through the Settings application in the URLs and SEO category. Some search engines index this tag. The system adds the content of the field into the <title> element in the HEAD section of the page's output. the page name is used. Tracking is supported for: Traffic gained from search engines The activity of web crawlers on your site's pages See: Monitoring traffic from search engines Configuring websites for SEO This page describes the Kentico settings that can affect your website's SEO. Editing the metadata of pages An important SEO consideration is the metadata of individual pages. Macro expressions in metadata Use macro expressions in format (% ColumnName %} to dynamically insert values of page fields into metadata values. Search engine optimization (SEO) Before search engines can provide results that link users to your website. If the page title value is not set. You can also enable several options that help crawlers easily and accurately index the pages on your website. The settings allow you to set the prefixes and also the overall format of the page title. To edit the metadata of a page: 1.generating pages with valid. Page description A brief description of the page and its purpose. Many search engines use this title for the page in their search result lists. Tracking search engine traffic You can use web analytics to review the results of your website's SEO. they need to index the site using web crawlers (robots). Global metadata settings You can configure a prefix for the page title and description for all pages. The settings here are divided into three main sections. Open the Pages application. Select the corresponding page in the content tree. The sitemap allows you . Use the corresponding settings in Settings -> Content. You can set the following SEO-related properties: Property Page title Description The page title is displayed to users in the header of their browser (or tab) when the page is viewed. The description can be used for SEO purposes and when performing searches on the website. Open the Properties -> Metadata tab.{%pagetitle_orelse_name%} The title format consists of the prefix value. 3. The default page title format is: {%prefix%} . standards compliant output code. 2. The settings in this section allow you to use standard techniques for giving instructions to crawlers. Setting Google sitemap URL Description These two settings set up the URL of the website's Google (XML) sitemap and the path of the source page. followed by the page title value. The system adds the content of the property as a description meta element in the HEAD section of the page's output.

Assigning replacement pages for deleted pages Removing pages can have a negative effect on your website's traffic. Use NOFOLLOW for user links If enabled. Specify the path of the Replacement page. Message boards or in Blog comments. This is highly recommended. See also: Google Sitemaps Robots. Move ViewState to the end of the page If enabled.Google sitemap path to instruct web crawlers how to index the site's pages. the replacement only covers the main URL of the deleted page. Select the page that you wish to remove. which then provide invalid links in their search results until they reindex the site's content. the corresponding page's custom URL path (if one is specified) or alias path. the website uses the replacement page for all possible URL paths of the deleted page (including any page aliases). the system places the ViewState field at the end of the output code generated for pages. 6. You can mitigate these problems by setting up other pages as replacements when deleting pages: 1. . the system instructs search engine crawlers not to follow links posted by users on Forums. This is achieved by including the rel="nofollow" attribute in the output code of all such link tags. 3. 7. because it allows web crawlers to properly react to any changes made on your website and pass page rank to the new or main URL. Select the Display alternate page when visitors access the deleted page check box. If false. i. the system uses permanent (301) redirection instead of standard temporary (302) redirection.if checked. This helps search engine crawlers process more page content.txt Allow permanent (301) redirection If enabled. The setting can also help stop spammers from passing page rank to other sites. The field loads a default value from the Default replacement page setting of the current website. Enable or disable the following configuration options: Copy all paths . the website uses the replacement page for all child pages removed along with the deleted page. Visitors may find it confusing if pages suddenly become unavailable (for example if they have a deleted page bookmarked). Another thing to consider is that deleted pages might be indexed by search engines. but you can enter a different path for each specific case. txt file. Include child nodes . 5.e.txt path Specifies the path of the page that generates the website's robots. Default replacement page See the Assigning replacement pages for deleted pages section below. See also: Managing robots. This can prevent damage to your website's search ranking caused by usergenerated links that lead to unrelated content.if checked. Click Yes. Click Delete ( ). Open the Pages application. 2. 4.

You can leave the domain as it was entered or have it rewritten to either always or never include the www prefix. SEO . the replacement aliases also properly inform search engine crawlers about the change in your website's structure. Such problems can have a negative effect on search ranking. the system automatically adds page aliases to the replacement page. so it is recommended to set up a unified URL format. Note: You can override this setting for individual pages aliases through their Alias redirection property. Redirect invalid case URLs to their correct versions Determines how the system handles the letter case of characters in URLs. The main URL of a page is determined either by its alias path. having the same content available under multiple URLs. These aliases ensure that the website serves up the replacement page whenever a visitor requests the URLs of the deleted page. . Available options: Do not check the URL case Use the exact URL of each page Redirect all requests to lower case URLs Redirect all requests to upper case URLs Redirect pages to main extension If enabled. i.e. For more information about page URLs. Any URLs with a different extension are automatically redirected to a corresponding URL with the main extension. or custom URL path if one is specified. Setting Use URLs with trailing slash Description Specifies how the rewriter handles trailing slashes in URLs. Note: This setting does not apply for IP addresses and toplevel domains.URLs The settings in this section allow you to configure URL rewriting that focuses on avoiding issues with duplicate content. Process domain prefix Determines how the rewriter handles the www domain prefix in the website's URLs.Once you confirm the deletion. The main URL extension is the first one specified in the Friendly URL extension setting. Possible options: Leave the URL as is Always use URLs with a trailing slash Always use URLs without a trailing slash Redirect page aliases to main URL Enabling this setting ensures that pages always have only one valid URL and other aliases are redirected to this main URL. see Setting page aliases. When combined with permanent 301 redirection. the system ensures that all page URLs use the current main extension.

Use page defined by default alias path .Cultures The options in this section are important when performing search engine optimization of multilingual websites. Search engine crawlers (robots) use the sitemap data to determine which pages to index and how often to re-index pages. Sitemaps only serve as a recommendation and do not guarantee that all crawlers will index your website strictly according to the specified data.always uses the default URL: <doma in>/default. You can choose from the following options for the home page URL: Not specified . A sitemap is an XML file that lists the URLs of a website's pages along with additional metadata. Only applies if Use language prefix for URLs is enabled.aspx Allow URLs without language prefixes If enabled. Setting Force domain culture Description If checked. SEO . The name of the prefix matches the culture code (or culture alias) of the content culture selected on the website. the URL is redirected to the corresponding domain name. Example: <domain>/en-US/Home. Note: You cannot use this option in combination with language prefixes. Setting the sitemap URL To adjust the URL of your website's sitemap: . Use default page URL . and uses an application pool with an Integrated Managed pipeline mode. Sitemaps help search engines correctly index the content of websites and can have a significant effect on the resulting search ranking.supports all possible home page URLs and does not perform any redirection. A language prefix is a subdirectory inserted into the URL. URLs without language prefixes are allowed. The following settings allow you to set up unique URLs for different language versions of pages in a search engine friendly format. See also: Configuring URLs for multilingual websites Multilingual websites Google Sitemaps Kentico allows you to automatically generate sitemaps for your websites according to the Google Sitemap Protocol. Using a unified home page URL is highly recommended. Use domain root . Whenever a user switches to a different language on the website.sitemaps.always uses the URL of the page specified by the website's Content -> Default alias path setting. For detailed information about the Sitemap protocol. the system generates the domain name in page URLs based on the current content culture. create Domain aliases with an appropriately set Visitor culture. because it prevents the duplicate content problem on your website's most important URL. You can assign cultures to domains by editing ( Sites application: ) your site in the Set the culture of the website's main domain through the Visit or culture property on the General tab.aspx Important: This setting only works correctly if the website is hosted on IIS 7 or newer.Default page Allows you to redirect (permanent 301) all possible URLs that access the home page of your website to one single URL. Otherwise the system redirects such URLs to a corresponding URL that includes a language prefix. see http://www. To define domain names for other languages. the system generates page URLs with language prefixes.always uses the base URL of the website's domain name. Use language prefix for URLs If enabled.org/.

Click Save. Search crawlers can access the sitemap either under the main URL specified in the Google sitemap URL setting. 3.e. 4. 6. Create a new Page (menu item) page in your website's content tree.xml extension If you want to have your sitemap available under a URL with the . The web part only generates output when the page is accessed on the live site. By default the sitemap: Only contains pages of the CMS.1. Incorrect content filtering . For example. To load all pages regardless of the parentchild hierarchy in the content tree. Add the following attribute to the <modules> element: <modules runAllManagedModulesForAllRequests="true"> Defining the sitemap content The system generates sitemaps for websites based on the pages stored in the content tree.config root (i. disable the Hide children for hidden parent property of the Google Sitemap web part.webServer section directly under the web. 2.sections of the website may be excluded due to parent pages missing in the sitemap.xml extension. 3. Find the system. This page generates the default sitemap for websites that have an empty Google sitemap path setting.review the content filtering properties of your Google Sitemap web part. Add the page types that you wish to have in the sitemap. The sitemap generated by the web part replaces the default sitemap.a spx system page. you can instead edit the markup of the ~/CMSPages/googlesitemap. Adding this web part stops the page from displaying standard content.MenuItem type Automatically excludes all pages whose parent page is not in the sitemap. Open the Settings application. You can use the predefined SEO -> Google Sitemap page template to quickly create sitemap pages. Enter the path of your sitemap page into the Google sitemap path setting. 4. not under a specific <location> element). you need to configure your application to handle all types of request extensions: 1. Select the URLs and SEO category.specific pages may be excluded through their sitemap properties (Show in sitemap or Exclude from search). . Click Save. Open the Settings application and select the URLs and SEO category.config file. Place the Google Sitemap (XML Sitemap) web part onto the page. the default value googlesitemap. The GoogleSitemap control on the page provides the same configuration options as the Google Sitemap web part. 5. such as pages stored under folders or custom page types You can modify the content of your website's sitemap by creating a dedicated sitemap page: 1. 3.xml Using the . the sitemap only loads CMS. Enter the required URL into the Google sitemap URL setting. or directly through the URL of the page containing the Google Sitemap web part. 7. 2. You can limit which pages are included in the sitemap by entering an appropriate Path expression. If the Page types property is empty. Open the Pages application. This template contains the required web part by default. You can use the asterisk (*) wildcard to specify all page types. Troubleshooting: If you encounter problems with pages missing in your sitemap. try checking for the following: Manually excluded pages . Customizing the default sitemap directly If you do not wish to use portal engine pages and web parts.MenuItem pages. 2. Edit your application's web. Instead. the page returns an XML response with the sitemap data. Broken page hierarchy .xml means that web crawlers can access the sitemap through the following URL: <website domain>/googlesitemap. Configure the content of the sitemap through the web part's properties.

Sitemap priority Allows you to inform web crawlers which pages you consider to be the most important. individual Google Sitemap web parts can override this setting and generate sitemaps including pages that are excluded from search. you can review the generated XML output. you can exclude specific pages from sitemaps or give search crawlers additional details describing how to index pages: 1. 4. The <url> elements represent individual pages. Open the page's Properties -> Navigation tab. 3. Avoid duplicate content — do not list the same page URLs in multiple sitemaps. Add any number of sitemap pages. Separate your website's pages between the sitemaps by configuring the content filtering properties of the web parts. Configure the content filtering properties so that the sitemap index web part loads only the pages representing your sitemaps. This metadata provides a suggestion to search engines about how often they should re-index the page. If you need to include more pages. The sitemap loads the values of the <loc> and <lastmod> tags from the data of the corresponding pages. 4. 3. However. Select the page in the content tree. 2. Enabling this checkbox excludes the page from sitemaps by default. including search engines. The system automatically creates the required XML structure. prepare multiple sitemaps and create a sitemap index for your website: 1. Choose a value that reflects how frequently the page's content changes.Configuring sitemap settings for specific pages By filling in the sitemap properties of pages. Set up the following properties: Basic properties Show in sitemap Sitemaps only list pages that have this property enabled. Each sitemap can contain a maximum of 50 000 items. If you enter the URL of the sitemap into your browser. Switch the Sitemap mode property of the web part to Sitemap index. each one containing its own Google Sitemap web part. Create the index as another page with a Google Sitemap web part. The <changefreq> and <priority> optional tags are added for pages that have values in their Sitemap change frequency and Site map priority properties. Web crawlers only measure the priority in relation to other pages on the website. 2. The system converts the selected priority to a decimal number between 0 and 1 and adds the number as the value of the page's <priority> tag in the sitemap. . Creating sitemap indexes A single XML sitemap can only list up to 50 000 pages (URLs). Search & SEO Exclude from search Marks the page to be ignored by all forms of search. Open the Pages application. Sitemap change frequency Determines the value of the page's <changefreq> tag in the sitemap.

Submitting separate sitemaps for different language versions of the website One way to handle multilingual content is to present a separate sitemap for each language version of the website. you can specify a custom transformation for the Google Sitemap web part or GoogleSitemap control. the web part automatically encloses the transformed items within either a <urlset> or <sitemapindex> element depending on the selected Sitemap mode. Important To ensure that the sitemap dynamically presents pages for the language determined by the sitemap URL.GoogleSiteMap transformation uses the following code to define the sitemap structure: <url> <%# GetSitemapItem("loc") %> <%# GetSitemapItem("lastmod") %> <%# GetSitemapItem("changefreq") %> <%# GetSitemapItem("priority") %> </url> The GetSitemapItem transformation method generates XML tags according to the sitemap protocol.xml URL language prefixes Examples of full sitemap URLs http://domain/fr-fr/googlesi temap. This ensures that crawlers process the sitemap index first.xml URL language parameters Add the language query string parameter when submitting the sitemap URL.3. http://domain/googlesitemap. add the appropriate language modifiers to the sitemap URL. http://domain/googlesitemap. The sitemap index points search engine crawlers to the other sitemaps. When submitting your sitemap to search engines. and the value is dynamically loaded from the data of the transformed pages. For example. the default CMS. xml?lang=en-us Warning: This approach is not recommended. The method's parameter specifies the type of the tag. you need to use one of the approaches described below. If your website does not use culture-specific domains or language prefixes. You do not need to create multiple sitemaps. which then provide the lists of page URLs in the usual way.xml The sitemap automatically loads the page URLs for the language that matches the domain name. URL conflicts may occur between the different language versions of the same page. . To include pages from all languages in your sitemap. In the final XML output. This allows you to react to any changes in the Sitemap protocol. you need to leave the C ulture code property of your Google Sitemap web part with an empty value. Customizing the XML format of sitemaps If you need to override the default XML format of a sitemap or index.fr/googlesitem ap. http://domain/en-us/googlesi temap. http://domain. The format must match the URL structure that you use to identify language versions on your website. xml?lang=fr-fr The sitemap automatically lists the pages from the language version of the website specified by the full sitemap URL. Enter the path of your sitemap index page into the website's Google sitemap path setting. See Configuring URLs for multilingual websites for detailed information about the available options.Root.xml Include the language prefix when submitting the sitemap URL.com/googlesite map. 4. Creating sitemaps for multilingual websites Websites that offer content in multiple languages use different URLs for different language versions of the same page. http://domain. Multilingual URL structure Description Separate domain names Use the appropriate domain name when submitting the sitemap URL. This approach works best if your website is fully translated into all supported languages.

if only a limited number of pagesis translated. .txt files is to exclude certain pages from search engine indexing. Add the actual robots. c. However. Create a standard Page (menu item) page. Additionally. for example UTF–8. just like you would in a physical text file. 4. a robots. 1. Configure (double-click) the Custom response web part to generate a valid robots.txt in Kentico is to physically add the text file into the root of your web project. i. Each sitemap page lists the URLs of the pages available for a particular language. Like with Sitemaps. You can use the predefined SEO -> Robots.txt page template to quickly implement robots.txt file. Creating a robots.txt pages.txt instructions into the Content property.e. Add a Custom response web part to the page. Set the Content type property to text/plain. You can then submit the URL of the sitemap index to search engines without any language modifiers. 2. Managing robots.e. this scenario does not allow you to assign different robots. 2. This approach is most suitable for websites that are not fully available in the non-default languages. Assign the language through the Culture code property of the web part. each one containing its own Google Sitemap web part.Preparing one sitemap for all languages used on the website You can list the URLs of the pages from all language versions of the website inside a single sitemap. b. 3. d.txt file for your website The most direct way to use robots. it may be difficult to access the file system in certain types of hosting environments. the provided instructions are only considered as recommendations and may be ignored by some robots. i. The recommended approach is to create a dedicated page in your site's content tree and make it return the appropriate text response: 1. Add a sitemap index page and configure it to load the language-specific sitemap pages. The sitemap index combines the output of all language-specific sitemaps. This property supports K# macro expressions. Open the Pages application.txt files to specific websites (if there are multiple sites running on your installation).txt response according to the following steps: a.txt You can give instructions to web crawlers and other robots using the Robots Exclusion Protocol. Create a separate sitemap page for each language. Enter an appropriate Encoding type. Set the Combine with default culture property to No (prevents duplicate entries if your website uses the default content for untranslated pages). so you can dynamically load values from the current system data if needed. The primary purpose of robots. Set the Status code of the response to 200.

txt page into the Robots. 2. 2. You can specify a different value for each site by using the Site selector above the settings tree. Select the given page in the content tree. 4. Enabling the . Open the Pages application. not under a specific <location> element). Add the following attribute to the <modules> element: <modules runAllManagedModulesForAllRequests="true"> Excluding pages manually You can also configure individual pages to be excluded from search engine listings without the need to prepare a robots. Enable the Exclude from search property. Open the Properties -> Navigation tab.txt URL.config root (i.txt path setting.txt extension To ensure that the <domain>/robots. Compliant web crawlers read the instructions from this URL before processing other pages on the website. The system automatically adds the following meta tag to the <head> section in the HTML output of such pages: <meta name="robots" content="noindex. Click Save. The output of the specified page is always available under the standard <website domain>/robots. Open the Settings application and select the URLs and SEO category.txt URL is available.nofollow" /> This instructs web crawlers not to index the page and to ignore any links in the content. . 3. 3. Find the system. 1. Edit your application's web.config file.webServer section directly under the web. Enter the path of your robots.txt file.e. 6.5. regardless of the page's location in the content tree. you need to configure your application to handle all request extensions: 1. 5.

number of web parts per page) Custom functionality added to the application or individual sites The hardware and environment on which the Kentico application and database server are running The available resources if the server is shared with other applications Tip: Finding sources of performance problems Check the system's event log for errors Use the built-in debugging tools to investigate pages with low performance Monitor your application using performance counters (EMS license required) Configure caching for your website See the Configuring caching chapter for detailed information about the caching mechanisms available in Kentico. To enable output caching: 1. 2. Note: You may need to take additional steps to ensure that cached pages do not display outdated content. Click Save. Click Save. Save the settings. Storing files on the server's file system provides better performance in most cases: Requirement: Your application needs to have the Modify permission for the web project directory in the server's file system. 3. 2. 1. particularly for high-traffic pages. The following basic settings work well for most websites: 1. 2. Configure file storage and processing Loading files from the database is a demanding operation. Go to Settings -> System -> Performance. We recommend caching page output whenever possible. See also: Storing files . Enable the following settings: Store files in file system Generate thumbnails 3. Set the caching settings: Cache page info (minutes): 10 or more Cache content (minutes): 10 or more Cache files (minutes): 10 or more Client cache (minutes): 0 Allow client cache revalidation: yes (checked) 4. Consider disabling the following settings to improve loading time of page attachments: Check if files are published (if you do not use workflow or content scheduling on your website) Check files permissions (if you do need to restrict access to the attachments of secured pages) 4. Set up output caching for individual pages in Pages -> Edit -> Properties -> General -> Output cache. Check Enable output caching. 4. 3. Go to Settings -> System -> Performance. number of page nesting levels. Note: Caching only improves performance on the second and subsequent page loads.Optimizing website performance The performance of your website depends on many factors: The total number of pages on your website The complexity of the website (the depth of the content tree. Use output caching Output caching is the best way to significantly increase the performance of pages. See Caching page output for detailed information. Go to Settings -> System -> Files. Choose your website in the Site selector.

Type the / character (forward slash) into the following settings: Excluded output form filter URLs Excluded resolve filter URLs Excluded XHTML filter URLs Excluded HTML5 filter URLs 4. 3. see Loading data efficiently. Refer to Storing data effectively for more information. Check custom code If you integrated custom code into the application (including JavaScript). Go to Settings -> System -> Debug.Organize your website's content in the most effective way You can store your site's content either in Pages. Optimize your data source components Check the configuration of all components (web parts or controls) that load data from the database or other sources. Click Save. The system excludes all pages on the website from the output filter. please make sure it works correctly. please contact Kentico support to find a workaround. Choose your site in the Site selector. the ASCX transformation type generally provides better performance. . Disable output filters Applying output filters adds steps to the processing of pages. Go to Settings -> System -> Output filter. try to reduce the number of components that need to be compiled: Switch to the HTML type for page layouts that do not contain controls or inline code. you can disable the filters: 1. If the output code of your pages is valid without filtering. For best practices and examples. and may slow down the website. 3. but need to keep the functionality to produce valid code. If you resolve your performance issues by disabling the output filter. Use the Text / XML type for simple transformations (if the code is pure HTML or only performs basic loading of field values). This helps limit the volume of traffic between the server and clients. Minimize compilation requirements for pages If your pages have long initial load times (for example after application restarts). Consider precompilation of the entire project before deploying to the production environment. Disable debugging tools Always disable all Kentico debugging tools before deploying websites to the production environment: 1. Avoid excessive database operations Reuse objects whenever possible Use custom caching when you load data through the API Try to comment out your code and see if the performance improves. For complex transformations with method calls or other advanced logic. 2. Each storage type is designed for a different type of data. Limit scheduled tasks You can conserve system resources by limiting the execution of scheduled tasks: Disable all unnecessary tasks Increase the execution intervals of tasks Run tasks using the external Windows service if possible Enable minification and compression of resources Use code minification and compression to reduce the size of CSS and JavaScript resources. Check the Disable debugging setting. 2. Save the settings. Custom tables or Media libraries.

SiteName. To maximize data loading efficiency. Loading data efficiently Many pages use components (web parts or controls) to load and display data from the Kentico database. 4. Select <machine>/Application Pools. To learn how Kentico stores pages in the database. Open your Internet Information Services (IIS) Manager console (Start -> Control Panel -> Administrative tools -> Internet Information Services (IIS) Manager). you usually do not need all columns available in the source. Order by clauses etc. Note: To find a full list of the default navigation columns. NodeID. Transferring data between storage spaces and the application can be a performance bottleneck. use the S QL queries debugging tool and inspect the query performed by your navigation component. The less data you retrieve. ClassName. and set up a web farm Scale up . users may experience long delays when first opening the site. consider the following points when setting up data source components. To prevent this. NodeParentID Navigation Data sources of navigation components always load a set of default columns required to correctly display pages in menus. Leave the property empty unless your component requires a field that is not included in the defaults. Only load the data columns that you need When loading data. NodeOrder. 2. You can limit which columns data sources load through the Columns (or Selected columns) property. Scale the hosting environment If performance is still not satisfactory after you have taken all possible steps to optimize your website. you may need to upgrade your hosting environment: Scale out . Disable unnecessary processing Page data sources provide features for filtering data according to the settings and status of the website's pages. 3. The Columns property only allows you to add extra columns. Enter a list of column names separat ed by commas.upgrade the hardware of your server One way to create an easily scalable website is to deploy your instance to cloud hosting. or other external sources. Right-click the application pool used by the Kentico application and select Advanced Settings. Note: The system always loads the following columns used to identify pages: DocumentCulture. set the Idle time-out (minutes) property of your IIS application pool to a higher value: 1. The full list includes the columns of the View _CMS_Tree_Joined database view. We recommend loading only the columns that your components need to display the required results: Columns used in the code of transformations Columns inside Where conditions. When loading Kentico pages. and the coupled data columns of individual page types. the faster your pages will be. By setting the Columns property. refer to Page database structure. NodeLinkedNodeID.add more servers hosting the same content. Enter the required value into the Idle Time-out (minutes) property in the Process Model section. you can reduce . you specify exactly which of the columns the data source retrieves. NodeLevel. All such operations add steps to the data retrieval process and use the system's resources. By disabling filtering options that you do not need.Increase the application pool Idle Time-out in IIS If your website has periods of inactivity (no requests for over 20 minutes by default). the behavior of the Columns property depends on the type of the data source: Standard Standard page data sources load all columns if you leave the Colu mns property empty.

and use transformations to format the data into HTML output. all pages are published. As a result. 4. The Repeater web part: loads CMS. If view state contains a large amount of information.News pages as the data uses an ORDER BY expression: NewsReleaseDate DESC renders the data using the following Text type transformations: List item transformation <div class="listBoxWithTeaser"> <div class="teaser"> {% GetImage(NewsTeaser. web parts store data in the page's view state. If the website's pages do not use workflow or content scheduling (i. it can slow down page performance. Enable the Disable view state property in the Performance category. In this sample scenario. 2. pages are always published immediately). 3. You can turn off view state for web parts that do not need to preserve their state across postbacks: 1. All of the website's pages are publicly available without security requirements. Disabling view state reduces processing overhead and the size of the page output that clients need to download. Web parts may not work correctly without view state in some scenarios. On the Design tab.processing overhead when loading uncached data. Open the Pages application. Consider the following when configuring the properties of page data sources: If you are not loading sensitive data (secured pages).Optimizing a news list The following example demonstrates how to maximize the performance of a Repeater web part. "". configure the given web part instance (double-click). the Repeater displays news pages with the following configuration and environment: The website does not use workflow. Note: Test your web parts carefully after disabling view state. disable the Select only published property. disable the data source's Check permissions property. page load time improves (depending on the size of the view state). Select the page containing the web part. Repeaters load data from pages in the website's content tree. Example .e. 90) %} </div> <div class="description"> <a class="header bold" href="{% GetDocumentUrl() %}"> {% HTMLEncode(NewsTitle) %} </a> <p> <span class="black bold"> By {% GetUserFullName(NodeOwner) %} </span><br /><br /> {% NewsSummary %} </p> </div> </div> Expand source . Disable view state for web parts By default.

NodeAlias. 230. Cache types Kentico provides the following types of caching: Output cache (full page) . NodeOwner.caches the HTML output of individual page components (web parts).caches the full HTML output of pages. DocumentURLPath. Disable Check permissions (System settings category). Partial output cache . Each key stores the cached data itself (depending on the type of the cache). and allows faster access to the data in the future.stores files and resources. Check the Disable view state property (Performance category). . Configure the Repeater web part on the Design tab.Item detail transformation Expand source <div class="listDetail"> <h1> {% HTMLEncode(NewsTitle) %} </h1> <div class="teaser"> {% GetImage(NewsTeaser. 6. Configure caching for the web part: Content caching (caches the data loaded by the web part) Partial output caching (caches the web part's output code. This Repeater does not use filtering or paging. such as the website's SQL database and file system) Reduction of unnecessary page processing on repeated requests The built-in caching mechanisms of Kentico work primarily on the server side. Disable Select only published (Content filter category). NodeAliasPat h Column used in the ORDER BY expression Columns accessed directly inside the transformations Column required by the GetImage method in the transformations Columns required by the GetDocumentUrl() transformation method 4. as well as other information such as the expiration time or dependencies. Configuring caching Cache is a storage space that duplicates previously requested data. Cache keys have unique names that exactly identify the cached content. 5. CSS stylesheets or JavaScript files. skips unnecessary processing. NewsTitle. Correctly using caching can significantly improve the performance of your website. Open the Pages application. and utilize the application's memory to store data. 3. Set the following Columns (in the Content filter category): NewsReleaseDate. such as images. 2. NewsTeaser. File cache . 500) %} </div> <div class="contentText contentTextTeaser"> <div class="summary"> <p>{% NewsSummary %}</p> </div> <div class="text"> <p>{% NewsText %}</p> </div> </div> </div> To optimize how the Repeater loads data. 230. Click OK. perform the following steps: 1. Caching the content of web pages provides two primary benefits: Quicker loading of data (retrieving data from the cache avoids communication with slower storage spaces. so it is safe to disable view state. the best option for static lists) 8. Supports both server and client-side caching. NewsText. and uses caching. The web part now loads only the required data columns. The system saves data into the cache in the form of cache keys. 7. "". NewsSummary.

Custom code cache . Save the settings.Content cache . Page info caching cannot cause sites to display outdated information. The cache types shown at the top of the diagram provide the best performance — the page response time and processing costs increase as the request progresses through the cache layers. If the required content is found in one of the cache layers. Page info caching When a visitor requests an uncached page. Clearing the cache . 2. The following diagram shows the order in which the cache types are checked when handling requests (from top to bottom). 4.stores structured data loaded by web parts and controls (for data sources.stores basic information about pages.). including the following: alias path ID and name page metadata and other properties SKU information (for products) workflow information The Page info cache stores the retrieved information in the application's memory. the basic information stays in the cache for the specified number of minutes. When a user requests a page. The system automatically clears the cache for pages that are modified. IIS Output caching is completely separate from the caching mechanisms in Kentico. Type a number of minutes into the Cache page info (minutes) setting.allows developers to cache data used in custom code. When clients request a page whose valid output is cached on the IIS level. Expand the System -> Performance category. the system stops processing the request and sends the response without executing the page code or accessing the database. 3. so page info caching is an important factor in the website's performance. You can change the expiration time of the page info cache: 1. the server returns the response without requiring any processing from the Kentico application. Tip: You can view the cache keys that store page info through the cache debugging interface. the system queries the database for basic information about the page. which allows quicker access on subsequent requests. repeaters. The names of page info cache keys begin with pageinfo or pageinfobyurl. Do NOT set the value lower than 10 minutes. Page info cache . Open the Settings application. You can also configure IIS Output caching for your web application. etc. or until someone modifies the related page. The system reuses the information multiple times during the processing of a single page.

2. the system displays the cached output without processing the page. Output caching is not suitable for pages that need to refresh frequently (for example pages that update based on user input. you need to set your own output cache dependencies: 1. To ensure that pages are always up-to-date. Setting output cache dependencies The output cache of pages can become outdated when users update the website's pages and objects. The underlying pages need to have the Us e output cache property set to Inherit (this is the default state). click Clear cache. but use partial caching for sections of the page (individual web parts) Caching page output on the IIS level You can also configure IIS Output caching for your web application. or if the website's content is updated. Select the System -> Performance category. The drawback is that cached output can become outdated on dynamic pages. IIS Output caching is completely separate from the caching mechanisms in Kentico. Switch to the Design tab. the system saves the full output code into the cache. Save the settings. Set the Use output cache property to Yes (in the Output cache section). Edit the page in the Pages application. Until the cache expires. Open the System application. Enable output caching for individual pages: 1. To enable output caching for all pages on your site. Caching page output Output caching is the most effective way to increase page performance. 4. Dependencies allow the system to automatically delete cached content whenever related objects are modified. 2.e. 2. the page displays the old content until the output cache expires. The output cache stores the full source code of pages. However. i. if a page contains a list of news articles and you update one of the news pages.To delete all data from the application's cache: 1. The value must be greater than 0. the system displays the page using the cached output. 6. 5. Check Enable output caching. On the General tab. The system removes all cached content managed by Kentico. 2. Open the Properties -> General tab. Save the page. pages do NOT delete their output cache when you modify other pages or objects whose data is displayed on the page. The output cache provides default dependencies that clear the cache for pages: When a user modifies the given page's content. For example. and determines the expiration time of the page's output cache. Configuring full page output caching To use output caching for your website's pages: Allow output caching globally: 1. the server returns the response without requiring any processing from Kentico. You cannot disable output caching for parts of pages. 3. When clients request a page whose valid output is cached on the IIS level. When a visitor views a page. 3. When a visitor requests the page. the system provides several solutions that allow you to cache output even for pages with dynamic content: Set dependencies for the output cache (allows automatic clearing of the cache) Adjust how the system caches multiple versions of pages Use substitution macros to create dynamic content inside cached pages Disable full page output caching. 4. edit the properties of the root page. the server caches the output code in the application's memory. the HTML and client script that the server sends to browsers for rendering. . or have randomly generated content). As a result. Open the Settings application. Select the page in the content tree. Until the cache expires. the application can quickly serve requests without running the page code or communicating with SQL servers. We recommend using output caching for all possible pages. 3. Specify the number of Cache minutes. Open the Pages application. properties or page template Whenever a postback occurs on the page By default.

2. the system renders the page without processing the web part. To allow partial caching: 1. The partial cache stores the HTML output of individual web parts (components that make up the content of pages). refer to Setting cache dependencies. and displays the cached output instead. Save the page. 2. but still improves performance by caching at least portions of the page output. The next time a visitor opens the page. Caching portions of the page output If you cannot use full output caching on a page. The underlying pages need to have the Allow file system cache property set to Inherit (this is the default state). and then enable it for individual web part instances. 2. Save the settings. The output cache stores the content of the selected pages in both the application's memory and file system. The value must be greater than 0. Click OK. Go to Settings -> System -> Performance. For more information and examples. Note: If the page uses a shared page template. The page's output is removed from the cache. Until the cache expires. which provides more persistent storage. The value must be greater than 0. Add the Output cache dependencies web part anywhere on the page. and determines the expiration time of the web part's partial cache. 5. 4. Type a number of minutes into the Cache output in file system (minutes) setting. The system clears the page's output cache whenever an object specified by the dependencies is modified. Set the Allow file system cache property to Yes (in the Output cache section). 3. Open the Settings application. You need to allow partial caching globally for your website. To enable partial caching for web part instances: 1. the system runs the page's code and saves the output into the cache again. Partial caching allows the system to refresh pages on every request. Configure the web part instance (double-click). When processing page requests. 3. Save the settings. Websites lose all cached content if the application restarts. the system fully processes the page on the next request. the dependencies apply to all pages with the given template. Edit individual pages on the Properties -> General tab. Check the Enable partial caching setting. edit the properties of the root page. Open the Properties -> General tab. Web parts do not use partial caching by default. Click OK. Click Clear output cache in the Output cache section. Using persistent storage for the output cache By default. To allow storage of output cache in the file system: 1. consider enabling Partial caching for sections of the page. To enable file system output caching for all pages on your site. 3. 2. Edit the page containing the web part on the Design tab. Select the page in the content tree. 4. To enable persistent output caching for pages: 1. 3. Open the Pages application. 4. You can set up partial caching for any number of web parts on a single page.3. Deleting the output cache of pages To manually clear the output cache of a page: 1. When a visitor opens the page. the application stores the output cache of pages in the memory. 4. and caches the new output. Select the System -> Performance category. the system checks both types of output cache. 2. . and determines the expiration time of the output cache files. Open the Pages application. Define the dependencies in the web part's Cache dependencies property. With the cache cleared. and type a number of minutes into the Partial cache minutes property. 4. Open the Pages application. Expand the Performance category. the system saves the HTML output generated by the web part into the cache. 5. You can configure the system to save the output cache in the server's file system. 3.

Editable image) automatically clear their partial cache when the content of the parent page is updated. Check to disable output cache sharing between domain aliases of sites. browser Different types of web browsers. If you disable the username option. you can leverage standard ASP. To disable the default dependencies listed above. Whenever a postback occurs on the page containing the web part. . Select the System -> Performance category.Automatic clearing of partial cache By default. The system adds the selected variables and their values into the names of output cache keys. Editable web parts (Editable text. Currently. As a result. Tip: If you wish to use partial caching on pages that are not based on the portal engine. Click Save. Click Edit next to the Output cache variables setting. Open the Settings application. 4. The variables apply globally to the partial cache of all web parts. The output cache always creates separate cache items for pages according to the following variables: The page path (including the virtual directory and extension) The protocol in the request URL You can configure the conditions that determine when the system uses separate or shared output cache: 1. 2. p review or live site. viewmode The page view modes used by Kentico. or the device and browser used to view the page. deviceprofile Different device profiles detected for visitors. 3. lang Each language version of pages. uncheck Use default cache dependencies and enable the Preserve partial cache on postback property. Caching multiple output versions of pages Web pages often display different content based on variable parameters. language preferences. the output cache stores multiple versions of pages. Public users share the same output cache. domain Website domain names. The system uses the dependencies to automatically clear the partial cache when the related objects are modified. cookielevel Different cookie level preferences of visitors. the system deletes the partial cache of web part instances: When you modify the property configuration of the given web part instance. To compensate. the system only uses caching for the live site view mode. Tip: You can configure how the system shares partial output cache through the Partial cache variables setting. For example. You can set additional cache dependencies for web parts through the Partial cache dependencies property (in the Performance category).NET output caching for controls. the cache keys are unique for all combinations of the required conditions. Important: Leave the sitename variable checked unless your sites all have identical content on pages with the same path. the system may load the same content for all other users (depending on the remaining output cache variables). 5. edit. such as user permissions. the output cache does not distinguish between users — if a page's output is cached for one user. such as design. sitename _____________________ Every site in the system. the username variable ensures that the system stores a separate version of each page's output cache for every logged in user. The system then automatically serves the appropriate cache version to visitors. Enable or disable the following output cache variables: Cache key variable Ensures separate output cache for username Every logged in user.

OnResolveSubstitut ion event. Open your project in Visual Studio. When initializing custom modules — override the OnInit method of the module class. Example The following example demonstrates how to create a substitution macro that displays the current time: 1. Create a new class inside CMSModuleLoader that inherits from CMSLoaderAttribute. See the Caching multiple output versions of pages section for more information. write expressions in format: {~SubstitutionName~} Note: Substitution macros work even on pages that do not use output caching. 5. Choose one of the following options: During the initialization process of the application itself — use the CMSModuleLoader partial class in the App_Code folder. By default. 3. Create a class in the App_Code folder (or CMSApp_AppCode -> Old_App_Code on web application projects). Developers need to define the substitutions according to the requirements of your website. Tip: You do not need to create substitution macros for all types of dynamic content. which the system dynamically resolves even when loading the content from the output cache. implement a handler method that converts individual substitution expressions into the appropriate results.OnResolveSubstitut ion event. Edit the class and add the following references: using CMS. By default. . Extend the CMSModuleLoader partial class. Substitution macros allow you to add variables onto pages. 7. some pages have sections of content that need to be dynamic. language and browser type.Base.OutputFilter. You need to register the event handlers at the beginning of the application's life cycle. Override the Init method inside the attribute class and assign a handler method to the ResponseOutputFilter. However. using CMS. 2. To define substitutions. To insert output cache substitutions into page content. 6. the output cache stores multiple versions of pages based on variables such as the user name. The system serves the appropriate cache version to visitors according to these variables. Defining substitution macros The system resolves substitution macros by calling the methods registered as handlers for the ResponseOutputFilter. you can cache the output of pages. 4.Using output cache substitutions Output caching is a powerful tool for improving page performance. Add the attribute defined by the internal class before the definition of the CMSModuleLoader partial class. By using substitutions. the system does not provide any substitution macros. but still keep pieces of content that update according to the current time or other context information.

or anywhere within the output code. // Returns the current time as the result of the substitution e.Result = DateTime.Expression. /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">Event argument object representing the substitution expression that is being resolved</param> private void ResolveCustomOutputSubstitutions(object sender.ToLower()) { // Handles the {~TimeStamp~} substitution macro case "timestamp": // Flags the substitution expression as resolved e.Match = true. Save the class file. and resolves it into the current time.OnResolveSubstitution += ResolveCustomOutputSubstitutions. Output substitutions vs. /// </summary> public override void Init() { // Assigns a handler method to the event that the system triggers when resolving substitution macros ResponseOutputFilter. You can place the expression directly into the text content of pages. } /// <summary> /// Resolves output substitutions. The system now recognizes the {~TimeStamp~} expression. . The main difference is that the system resolves substitutions even when loading pages from the output cache.Now. SubstitutionEventArgs e) { // Checks that the substitution expression is not resolved yet if (!e.ToString(). break. Build the solution on web application installations. } } } } } 8. /// </summary> private class SubstitutionLoader : CMSLoaderAttribute { /// <summary> /// Called automatically when the application starts.Match) { // Branches according to the expression text of the substitution macro // You can define any number of substitution macros by adding further cases switch (e.[SubstitutionLoader] public partial class CMSModuleLoader { /// <summary> /// Attribute class that registers substitution handlers. Macro expressions The functionality of output substitutions is similar to Kentico macro expressions.

Client-side file caching Client-side caching duplicates the data of previously requested files directly within browser applications. so browsers revalidate files on each request: If the server contains a newer version of the file than the client cache. The system controls caching in client browsers (and intermediate network caches) by modifying the HTTP headers of file request responses. This configuration provides the best file performance. For files stored in the database. For files stored in the file system. even if the system loads the content from the output cache. Substitution . Browsers save files retrieved from the server into their client cache.displays the time when the page was loaded for the first time and saved into the output cache. 3. Client cache (minutes) = 0 Completely disables client caching of files (not recommended). Allow client cache revalidation disabled 4. Kentico stores the file's data in the application memory. and sets the expiration time to the specified number of minutes. If you place both the macro and the sample {~TimeSt amp~} substitution onto a page that uses output caching. because it allows browsers to access files without communicating with the web server. Cached files are always flagged as expired. Select the System -> Performance category. Save the settings. You can set up the following client caching scenarios: Client caching settings Client cache (minutes) > 0 ______________________________________ Result Enables client caching for files. the cache stores only the main file records. the cache holds the entire file.For example. This configuration is recommended. but may cause browsers to display outdated content (if cached files are modified before the expiration interval ends). the server returns a 304 Not Modified response.Now %} macro also displays the current time.updates the time whenever the visitor refreshes the page. Binary data is streamed directly from the file system. . The system provides two types of file caching mechanisms: Client-side Server-side File caching works for the CSS stylesheet objects used in Kentico. Edit the settings in the Client-side file caching category. The system allows browsers to cache files according to the settings. 2. Caching files and resources Files represent a significant part of the data that browsers load when rendering web pages. Open the Settings application. If the file is unchanged. which is much faster than fully reloading files. Client cache is the most efficient type of caching. and web resources such as CSS stylesheets or JavaScript code files. Until the cached files expire. To configure client-side file caching: 1. including binary data. you get the following results: Macro . The client and server only exchange HTTP header information. and the file stays in the client cache. the revalidation fails and the server returns the full file (standard 200 HTTP response). since it significantly improves file performance while ensuring that the cached files are always up-to-date. even if they are not stored as physical files. browsers load the file data from the cache without sending any requests to the server. Client cache (minutes) = 0 Allow client cache revalidation enabled Enables client caching for files. the {% DateTime. The system can then serve subsequent requests for the file without needing to access the database or file system. Server-side file caching When a client requests an image or other file. Common examples of files are images.

The cache automatically removes files if they are modified and cannot cause the website to display outdated content. Web parts with data sources . Type a number of minutes into the Cache content (minutes) setting. Save the settings. 2. 3. Edit the page containing the web part on the Design tab. Most non-custom data sources have default dependencies that automatically clear the content cache whenever the stored data is modified. The system caches the data loaded by the given web part instance. the system caches the structured data of all page components by default. Open the Pages application. If your website stores large files in the database. when displaying a page with a list of news articles. Setting a limit stops the file cache from using an excessive amount of memory. 4. To enable content caching for individual web part instances: 1. 3. and must be greater than 0. Type a number of minutes into the Cache minutes property (in the System settings category). Communication with storage spaces and processing of data are common weak points in the performance of pages. you can limit the maximum size of files allowed in the cache. You can ensure that components do not display outdated content by setting cach e dependencies. Configure the web part instance on the Design tab. 4. To disable content caching for specific web parts when content caching is enabled globally: 1. The web part instance reloads data from the data source without caching. The value determines how long the cache stores the web part's data. and then formats the data on the page. Files stay in the cache for the specified number of minutes. 2. 4. Content caching helps the system maximize the efficiency of data. Caching the data of page components Many pages contain components (web parts or controls) that load and display data from the Kentico database. Type 0 (zero) into the Cache minutes property. To enable content caching globally: 1. Select the System -> Performance category. Open the Settings application. Type a number of minutes into the Cache files (minutes) setting. Select the System -> Performance category. 2. 5. For example. The following types of web parts and controls support content caching: Dedicated data sources Repeaters and viewers with built-in data sources Navigation components Configuring content caching You can set up content caching on two levels: Globally for entire sites (all data components on the given site) For individual instances of web parts or controls We recommend caching all possible content. 6. 3. and must be greater than 0. Components then re-use the cached data on future requests. 3. the system retrieves text from the fields of news pages stored in the database. or other external sources. With content caching enabled globally. Open the Settings application. Type the allowed number of kilobytes into the Maximum file size to cache setting. Click OK to save the web part's properties. (Optional) Add dependencies via the Cache dependencies property. The value determines how long the content cache retains data. Click OK to save the web part's properties. Save the settings.Note: The system always caches files for at least one minute to prevent the application from overloading in case of DoS attacks. The content cache saves data loaded by page components into the application's memory. To change how long the server-side cache retains files: 1. Configure the web part instance (double-click). Setting dependencies for content cache Cache dependencies allow the system to automatically clear cached data when related objects are modified. 2.

not the loaded data. not just web parts that load structured data Not suitable for web parts whose output changes very frequently (for example lists with filtering) No default dependencies on the data loaded by web parts — you need to set custom partial cache dependencies to ensure that the content of web parts is up-to-date Note: Set up partial caching for the web part that actually renders the content on the page (this may not always be the same web part as the data source). This setup optimizes loading of content from the database (or other source) and avoids redundant keys in the cache. the web part reloads the data from the source the next time a visitor opens the page. By default. Tip: You can use macro expressions to create dynamic cache item names based on variables such as query string parameters. Configure the web part instance (double-click). With the cache cleared. you can share the cached content: 1. Open the Pages application. 4. custom query data sources only clear the content cache when the query itself changes. 3. Sharing the content cache between components The content cache stores the data loaded by page components (web parts or controls) under cache keys. 5. Click OK. If you have multiple web part instances that load exactly the same data. 2. When a visitor opens a page containing one of the web parts. or the code name of the language selected for the page. While the cached content is valid. web parts also support Partial output caching. If you leave the Use default cache dependencies box checked. For example. Sample scenario . Setting cache dependencies Cache dependencies allow the application to automatically clear cached data when related objects are modified. Add the dependencies into the Cache dependencies property (in the System settings category). or other context data. The system deletes the web part's content cache whenever the specified objects change. See Caching portions of the page output for more information. The partial cache stores the full HTML output code of web part instances. which causes the cache to delete all items that depend on the given dummy keys. 3. When an object is modified. the system loads the data and saves it into the cache under the specified key. Dummy keys are cache items without any data that represent objects or groups of objects. and you can also add your own custom dependencies for individual instances: 1. Partial caching has the following advantages and disadvantages when compared with content caching: Better efficiency — the partial cache allows the system to directly send the web part's HTML output to the browser. Edit the page containing the web part on the Design tab. The default name contains variables such as the web part ID. Configure one of the web parts on the Design tab. The system uses dummy cache keys to create dependencies between cached data and other objects. without loading data or processing the web part at all Usable by all web parts with visible output. 4. the system automatically clears the web part's content cache: Whenever the loaded data changes (depends on the web part) When you modify the property configuration of the given web part instance Default dependencies do NOT cover data loaded via external or custom data sources.provide default dependencies for the content cache. the system generates a unique cache key name for each component. see Setting cache dependencies. For more information and examples. Copy the key name into the Cache item name property of all web part instances that load the same data. other web parts to which you assigned the same Cache item name retrieve the data directly from the cache. Enter a custom key name into the Cache item name property (in the System settings category). Caching the page output of web parts In addition to content caching. the system "touches" the corresponding dummy keys. the name of the user viewing the page. 2. Open the Pages application.

. nodes|corporatesite|cms.sampletable| byid|2 Adding custom cache dependencies You can set custom cache dependencies for the following types of cache: Full output cache of pages (add the Output cache dependencies web part onto the page) Partial output cache of web parts or controls (Partial cache dependencies property) Content cache of web parts or controls (Cache dependencies property) Cached data in custom code Create the dependencies by typing the names of dummy cache keys into the appropriate Cache dependencies property. You need to clear the web part's partial output cache when the administrator's user account data is modified. Scenario: You have a web part displaying information about one specific user — the administrator (UserID is 53. Media files mediafile|<guid> mediafile|preview|<guid> mediafile|1ced44f3-f2fc. Each dummy key must be on a separate line when entering dependencies in the web part properties dialog.. When a visitor requests the Products page.A page with the /Products alias path contains a Repeater web part with content caching enabled. mediafile|preview|1ced44f3-f2fc. and the cache deletes the dependent data.e. You need to clear the web part's partial output cache whenever one of the user's data is modified. The system automatically clears the related cache when the specified dummy keys are touched (i. If a child page of the Products page is modified.. The repeater displays a list of products (pages) placed under the Products page... Forum attachments forumattachment|<guid> forumattachment|1ced44f3-f2fc... Page attachments cms. The cached data has a dependency on the node|corporate site|/products|childnodes dummy key.. . Metafiles metafile|<guid> metafile|1ced44f3-f2fc...user|byname|administrator cms. Examples Scenario: You have a web part displaying information about users...user|all cms. The following table shows which dummy cache keys are touched when objects are modified: Object type Touched dummy keys Sample dummy key values Pages (content tree nodes) node|<site name>|<alias path>|<culture> node|<site name>|<alias path> nodeid|<node id> nodeid|<linked node id> nodeguid|<node guid> nodes|<site name>|<page type code name>|all documentid|<document id> node|corporatesite|/home|en-us node|corporatesite|/home nodeid|12 nodeid|34 nodeguid|a58ed488-5545-48d0.....sampletable| all customtableitem.user|byguid|1ced44f3-f2fc.customtable. the dummy key is touched. when the corresponding objects are modified)..user|byid|53 cms.. UserGuid is 849711D0 -739D-412E-92B6-FE40EDCADC4A)..user|all dummy key into the web part's Partial cache dependencies property. Solution: Add the cms.attachment|all documentid|32 documentid|32|attachments attachment|1ced44f3-f2fc..... the repeater loads the list of products from the database. Page templates template|<id> template|12 Custom table data records customtableitem|<custom table code name>|all customtableitem|<custom table code name>|byid|<id> customtableitem. Avatars avatarfile|<guid> avatarfile|1ced44f3-f2fc.menuitem|all documentid|39 node|sitename|/|childnodes + for all ancestors of the modified page: node|<site name>|<alias path>|childnodes Objects (not pages) <object type name>|all <object type name>|byid|<id> <object type name>|byname|<code name> <object type name>|byguid|<guid> cms.attachment|all documentid|<attachment document id> documentid|<attachment document id>|attachments attachment|<guid> cms. The system touches this dummy key whenever the data of a user in the system changes. and stores the data in the content cache.customtable.. which the system automatically creates.

The web part loads the data from all CMS. you can see which Data items and Dummy keys (cache dependencies) are currently stored in the system's server-side cache. You need to clear the web part's partial output cache when any of the news pages is updated. click Clea ) next to a cache key opens a new window showing detailed information about the cached object: Key .user|byname|administrator cms.News pages on the website.the key under which the object is stored in the cache.user|byguid|849711D0-739D-412E-92B6-FE40EDCADC4A Scenario: You have a web part displaying a list of news articles.the type of the cached item. . The system removes the cache item if any of the dummy keys are touched (modified).Solution: Add any of the following dummy keys into the web part's Partial cache dependencies property: cms. Expiration . Clicking View ( ) next to the corresponding items. Object type . Dependencies . Debugging cache If you encounter unexpected caching behavior or any problems related to the cache. Viewing the stored cache items On the Cache items tab. To remove all items from the cache. Fields .date and time when the cache item will expire (i. Solution: Add the nodes|newssite|cms.news|all dummy key into the web part's Partial cache dependencies property.Kentico uses two priorities for cache items: High and NotRemovable (will not be deleted from the cache as the server frees system memory).the fields storing the actual data of the cached item (depend on the item's object type).e. you can use the system's debugging functionality to: Check the exact content of the application's cache Monitor caching operations for web requests You can access the system's debugging interface through the Debug application. will be removed from the cache).list of dummy keys on which the cache item depends.user|byid|53 cms. You can delete individual cache keys by clicking Delete ( r cache. The site's code name is NewsSite. Priority .

Note: The list of cache items does not display the partial output cache stored for page components.log file. cache access debug information is also displayed at the bottom of each page on the live site. . Display stack information If enabled. variables and related objects. including all properties. loading data from the cache). the cache access debug also covers requests for pages of the administration interface. If empty. Log cache access to file If enabled. the number of requests for which debug information is preserved and displayed. the value of the Default log length setting is used. Display cache access debug on live site If enabled. Requires cache access debugging to be enabled. you need to adjust the settings in Settings -> System -> Debug: Setting Description Enable cache access debug Enables cache access debugging and the Cache access tab in the Debug application.e. Tip: You can also enable cache access debugging through the "debug everything" settings in the All section of the Debug settings category. Requires cache access debugging to be enabled. not in the debug log written into the logcache. Cache access debug log length Sets the maximum length of the cache access debug log on the Ca che access tab of the debugging interface. the system tracks the code stack when debugging cache access and displays the information in the Context column. Enabling the cache access debug To use cache access debugging. click Debug ( ) next to the item in the list of cache keys. Debugging cache access The cache access debug allows you to view the cache operations that the system performs for individual web requests (adding items to the cache. Debugging cache keys allows you to browse the full system data of the given object. Debug cache access of UI pages If enabled. the system saves the cache access debug log into the l ogcache.If you need even more information about a cached object. This information is only available in the debugging UI and on the live site.log file in the ~\App_Data folder. i. This option does not require cache access debugging to be enabled.

list of dummy keys on which the cache item depends. click Clear cache. so the website will not display outdated information.Cache settings Global settings You can configure the following cache settings through the Settings application. the stack trace is displayed for all cache items. Kentico retrieves page information many times during the processing of a single page.date and time when the cache item will expire (i. Add) The name of the accessed Cache key The cache item's dependencies The object type and size of the cached Data The Context in which the cache item was accessed (API method) Click on the method to see the stack trace of the cache access If you enable the Show complete context option at the top of the interface. The table provides the following information for each cache item: The type of Access (Get.the fields storing the actual cached data (different for each object type) Reference .the key under which the object is stored in the cache Expiration . so always set this value to at least 10 minutes! When a page is modified. Open the Debug application. in the System -> Performance category: Server content caching Cache page info (minutes) Sets the number of minutes for which the system caches page information.the type of the cached item Fields .e. The table below each request contains the cache items that the system accessed during the request. Select the Cache access tab. To remove the actual data from the system's cache. The system removes the cache item if any of the dummy keys are touched (modified). You can see the URLs of web requests and the time when the system processed the requests.Kentico uses two priorities for cache items: High and NotRemovable (will not be deleted from the cache as the server frees system memory) Dependencies . .Monitoring cache access To view which cache operations the system performed for recent web requests: 1. 2. Object type . will be removed from the cache) Priority . This option caches page properties and metadata. the system automatically clears the corresponding part of the page info cache. Click Clear debug log to remove all records in the cache access debug. Clicking View ( ) next to a cache key opens a new window showing detailed information about the cached object: Key .

See also: Caching files and resources Allow client cache revalidation If enabled. the system optimizes access to uncached data so that concurrent threads only use a single data access operation and share the results. Revalidation allows the client cache to refresh unchanged files without loading the file data from the server. browsers always fully reload expired files. It is recommended to cache all possible content. The client and server only exchange HTTP header information.e. and web resources such as CSS stylesheets and JavaScript files. To completely disable client caching of files. the default dependencies automatically ensure that web parts reload the cached content whenever the data is modified. You can override this value for specific web part instances by setting their Cache minutes property. If disabled. Includes images. Using 0 as the value disables content caching for the given web part instance. set the value to 0 and disable client cache revalidation. Setting a limit stops the file cache from using an excessive amount of memory. Client file caching includes images. so file caching cannot cause the website to display outdated content. Revalidation can have the following results: If the server contains a newer version of the file than the client cache. Kentico automatically removes files from the cache if they are modified. The client cache keeps the file and refreshes the expiration time. Client-side file caching Client cache (minutes) _______________________________ Sets the number of minutes for which client browsers are allowed to cache files (i. The system always caches files for at least one minute to protect against brute force attacks. See also: Caching files and resources Maximum file size to cache Specifies the maximum file size in kilobytes that is allowed to be cached. If the file is unchanged. browsers perform revalidation when requesting files that have expired in the client cache. the length of the client cache expiration time). Output caching .Cache content (minutes) Sets the number of minutes for which web parts/controls with data sources cache their content (typically retrieved from the Kentico database). which is significantly faster than fully reloading files. Redirect files to disk If checked. For most non-custom data sources. You can use cach e dependencies to clear the cache on content changes. the revalidation fails and the server returns the full file (standard 200 HTTP response). and web resources such as CSS stylesheets and JavaScript files. This leads to better performance if the website is under a heavy load. without the drawback of not having the latest data available. See also: Caching the data of page components Use progressive caching If checked. To ensure that files are always up-to-date in the client cache. set the value to 0 and enable the Allow client cache revalidation sett ing. file requests are redirected to the corresponding physical file (if the requested file is stored in the file system). Server file caching Cache files (minutes) Sets the number of minutes for which the system caches images and other files on the server. the server returns a 304 Not Modified response.

See also: Caching portions of the page output . edit. cookielevel . If not set. Both the main website setting and page settings must be enabled to use output caching. If disabled. the output cache does not distinguish between users — if a page's output is cached for one user. configure the Output cache p roperties of individual pages in the Pages application on the Prope rties -> General tab.the website domain name (check to disable output cache sharing between different domain aliases of sites).the device profiles detected for visitors. Currently.different types of web browsers. The partial cache stores the HTML output of individual web part instances. such as d esign. configure the Allow file system cache property of individual pages in the Pages application on the Properties -> General tab. deviceprofile . preview or live site. output caching is disabled on the whole website.Enable output caching If checked. the system allows output caching. sitename .every logged in user (public users share the same output cache).each language version of pages. the username variable ensures that the system stores a separate version of each page's output cache for every logged in user.every site in the system (leave checked unless your sites all have identical content on pages with the same path). the system allows partial caching of web parts. only the standard caching mechanism (in memory) is used. For example. See also: Caching page output Cache output in file system (minutes) Specifies the number of minutes for which the system stores output cache in the file system. the system only uses caching for the live site view mode.the page view modes used by Kentico. To enable output caching in the file system for pages. the system may load the same content for all other users (depending on the remaining output cache variables). Click Edit to change the default settings. browser . The output cache always creates separate cache items based on the: Page path (including the virtual directory and extension) Protocol in the request URL Enable partial caching If checked. This provides persistent cache storage in case of application restarts. To enable output caching for pages. Output cache variables Determines under which conditions the system stores multiple versions of the output cache for pages. If not checked. domain . By default. web parts do not use partial caching and you need to enable it for individual instances using their Partial cache minutes property. the system checks both types of cache. partial caching is disabled on the whole website for all web parts. If unchecked. Output cache stores the full HTML source of pages. You can enable or disable separate output cache for: username . If you enter a value. viewmode .the cookie level preferences of visitors. lang .

the page view modes used by Kentico. Currently. This provides persistent caching in case of application restarts. You can manually remove the page from the output cache by clicking Clear output cache. the system automatically clears the output cache of the page if you update the page's content. If disabled. browser . the lang variable ensures that each web part instance has a separate version of the partial cache for every language. Administrators can enable output caching in Settings -> System -> Performance. If disabled. but is not suitable for pages with dynamic content. Click Edit to change the default settings. edit. the partial cache does not distinguish between languages — if a web part's output is cached for one language. You can enable or disable separate partial cache for: username .each language version of pages. the application only caches the page output in its memory. the system only uses caching for the live site view mode.Partial cache variables Determines under which conditions the system stores multiple versions of the partial cache for web parts. Page settings You can configure the following output cache settings for individual pages in the Pages application on the Properties -> General tab: Output cache Use output cache _______________________________ Indicates if the system caches the full HTML output of the page. If enabled. such as design. By default.every site in the system (leave checked unless your sites have identical content). Applies globally to the partial cache of all web parts. properties or page template. See also: Caching page output Cache minutes Determines how long the system keeps the output code of the page in the cache (if output caching is enabled).different types of web browsers. For example. lang . Web part settings Instances of web parts provide the following properties for configuring content caching and partial output caching: System settings . viewmode . sitename . You can inherit the output cache settings from the parent page. the system checks both types of cache. Important: Output caching must also be allowed in the website's settings. You can inherit the setting from the parent page. the system loads the same content for all languages (depending on the remaining partial cache variables). preview or live site. The file system cache is stored for the number of minutes specified in the Cache output in file system (minutes) setting in Settings -> System -> Performance. Output caching can greatly improve the performance of the page.every logged in user (public users always share the same partial cache). Allow file system cache Indicates if the system stores the page's output cache on the server's file system.

comments. If set to 0. If empty. Important: Partial caching must also be allowed in the website's settings. This includes white spaces. Note: Minified code is difficult to read (for humans) and is therefore unsuitable for debugging. the web part uses dependencies that include all possible object changes that could affect the content of the given web part. Using code minification and compression An important factor that influences the performance of a website is the size of code resources. When the specified cache items change. partial caching is not used for the web part. the web part does not use content caching. Minified resources behave in exactly the same way as the original. Partial caching is similar to to full-page caching. If you check Use default cache dependencies. Browsers can immediately handle minified resources without any additional steps. line break characters. If you enable this property. See also: Caching portions of the page output Partial cache dependencies Allows you to specify a list of cache keys on which the partial cache of the web part depends. this name is generated automatically based on the site. which are requested by client browsers when rendering pages. Cache keys can be shared between multiple web parts displaying the same content on different pages in order to avoid keeping redundant data in the memory. Cache dependencies Allows you to specify a list of cache keys on which the content cache of the web part depends. . The most significant among these are CSS stylesheets and JavaScript source files. but only for the code of the web part specifically. See also: Setting cache dependencies Performance Partial cache (minutes) Sets the number of minutes for which system caches the output HTML code of the web part. If you check Use default cache dependencies. Administrators can enable partial caching in Settings -> System -> Performance. Web part control ID and current user. the system clears the partial cache of the web part. Add one cache key per line. Preserve partial cache on postback By default. Add one cache key per line. which can in some cases reach sizes that considerably impact page load time. the partial cache of the given web part instance persists through postbacks. the system deletes the content cache of the web part. Kentico provides two types of builtin functionality that help optimize the performance of requests for CSS and JavaScript resources: Code minification Removes all unnecessary characters from the code that are not required by the browser to correctly process the resource. When the specified cache items change. If left empty or set to 0.Cache item name _______________________________ Sets the name of the cache key used for the content of the web part. the web part uses the value entered into the Settings -> System -> Performance -> Server content caching -> Cache content (minutes) setting. See also: Caching the data of page components Cache minutes Sets the number of minutes for which the content of the web part remains cached before the latest version is reloaded from the database. bookmarks etc. the web part uses dependencies that include all possible object changes that could affect the given web part. If not specified. page path. the system clears the partial cache of web parts whenever a postback occurs on the page.

Note: The reductions only apply to resources stored individually in the file system or database. Set the expiration time of the client cache through the Client cache (minutes) setting in Settings -> System -> Performance. You can change the number of minutes through the Cache files (minutes) setting in Settings -> System -> Performance. See Adding CSS stylesheets to page components. browsers only reload resources from the server if the cached data expires or the content of the resource becomes outdated.used to request static CSS resources from the file system. so the data is readily available even for clients without compression support. _layouts.ashx?_transformations=3511" type="text/css" rel="stylesheet"> stylesheetfile .used to request the internal stylesheets of the corresponding type of page component. Additionally. Requests in this URL format are always supported.14" type="text/css" rel="stylesheet"/> <link href="/Kentico/CMSPages/GetResource. To counter this issue.Resource compression Reduces the size of resources by encoding their data. If minification is enabled.css file must be entered into the parameter. All browsers officially supported by Kentico should be able to correctly decompress files. through the settings in the Resources category. it must first decompress the data. the system provides the transformed version of the resource from the cache. resources can be reduced to roughly 30% of their original size. If compression is also used.ashx?stylesheetname=CorporateSite" type="text/css" rel="stylesheet"> _transformations. the system automatically sends the unmodified resource instead. To apply compression.used to request static JavaScript resources from the file system. The duration of the server-side caching is always at least one minute. CSS and JavaScript requests generated by the system use this handler. but they do not perform minification or compression of resources. the system generates requests with a direct URL (for JavaScript files) or using the ~/CMSPages/GetCSS . Link example: <script src="/Kentico/CMSPages/GetResource. the system uses server-side caching for resource files: Minification/compression only occurs once when a resource is requested for the first time (the cache stores the result). Minification can decrease the size of a resource by approximately 20–40%. _devicelayouts. which manages resource requests according to the specified settings. The cache stores both compressed and uncompressed versions of resources. Reducing the size of requested resources saves bandwidth and improves the response time of your website. See also: Caching files and resources Requesting minified resources Compression and minification is automatically ensured by the ~/CMSPages/GetResource. Lnk example: <link href="/Kentico/CMSPages/GetResource. _templates. Enter 0 to completely disable the client caching. Link examples: <link href="/Kentico/CMSPages/GetResource. Inline code inserted into the HTML markup of pages is not affected.used to request a CSS stylesheet from the database. you can use clientside browser caching for resources (enabled by default): With client caching.ashx?_containers=1. On subsequent client requests. _containers .js" type="text/javascript"></script> Resource requests with minification disabled If minification is disabled.js file must be entered into the parameter. The relative path of the requested .css" type="text/css" rel="stylesheet"> scriptfile . Link example: <link href="/Kentico/CMSPages/GetResource. separated by semicolons (if multiple component stylesheets are requested). When a client browser receives a compressed resource.ashx?scriptfile=%7e%2fCMSScripts%2fmootools.ashx?stylesheetfile=/Kentico/App_Themes/Design/OnSiteEdit. depending on the code of the given object. In cases where the client cannot process compressed data. _webpartlayouts. The relative path of the requested . you must also enable minification for resources of the given type. . You can enable or disable code minification and compression globally for all sites in Settings -> System -> Performance. _webparts. The code name of the requested stylesheet must be entered as the value of the parameter.ashx handler. The object ID values of the given components must be entered as the value of the parameter.aspx system page (for CSS stylesheets). You can manually load resources in your code by using the following URL parameters with the handler: stylesheetname . The minification and compression process slightly increases the server CPU load and adds a short delay to resource requests.

The following image shows the structure of a web farm and how the synchronization works: If you change some settings or upload a file using server 192. Note: Output compression requires compliance from client browsers. the other servers do not know about it in a standard scenario.168. To learn how to add web farm servers into the system and configure them. the system automatically creates a new synchronization task in the database. 1. Check Enable output compression. This is used only if you store uploaded files on the disk or on both disk and in the database. 2. Synchronization of files uploaded to the site between all servers. see Web farm synchronization mechanisms.2. Browsers that do not support compression always download uncompressed page output. the other servers continue to run the site. However. Each server increases the number of requests that the web farm can serve. Setting up a web farm environment Web farms distribute computing among multiple web servers that all provide the same content. if you are using web farm synchronization. and notifies the other servers to process their task.Enabling compression of page output You can configure the system to compress the HTML output code of all pages rendered by Kentico. The setting applies globally for all sites in the system. Click Save. To learn more about how the synchronization works. You can also use web farms to achieve high availability — if one of the servers in the web farm stops working. 3. see Defining web farm servers. . which allows you to scale the performance of the website. Go to Settings -> System -> Performance. Native web farm support in Kentico provides the following features: Synchronization of changes made to the site settings on one of the servers to all other servers.1.

The server then notifies other servers in the web farm. The other web farm servers don't get involved in the process until they are notified about the changes.Using Kentico on a web farm without configuring the web farm support You can use Kentico on a web farm even without setting up the built-in synchronization mechanisms. The only limitation in such scenarios is that if you change the settings or page content on one of the servers. the system logs the changes into the database as web farm tasks. you need to add some custom code to your website according to the instructions in SSL accelerator support. each server fetches its tasks and processes them accordingly. you may encounter problems with redirection loops. 2. Adding web farm servers To add a server to the web farm: 1. you need to enter the internal URLs of all your servers into the system. Enable web farm functionality. <add key="CMSWebFarmUseDBUpdater" value="true" /> Defining web farm servers To use web farm synchronization. URL notifications Every Kentico instance contains a page that web farm servers can send requests to when generating web farm tasks. Open the Web farm application.a descriptive name for the server displayed in the administration interface. 3. Database notifications With database notifications. 3. The system provides two ways to notify servers about changes in the web farm. This is the default behavior in instances not running on Microsoft Azure. as this mechanism is used on Azure by default. Please note: The web farm support doesn't replace load-balancing or web farm management tools. which retrieve the web farm task data from the database and make appropriate changes in their file system or memory. Click New server. 2. Add license keys for your web farm servers. which indicates the time of the last change made on a server. Perform at least the following steps: 1. Fill in the following fields: Server display name . Add web farm servers. To enable this mechanism. add the following key to your web. When this happens. a column in the CMS_WebFarmServer database table is used. For this type of scenario. . especially if you do not store uploaded files in the file system. a routine runs in a separate thread which continuously polls the database to find out whether a time stamp changed. The column contains a time stamp. Web farm synchronization mechanisms When you make changes to content on a server. SSL in a web farm environment If you use an SSL offload device or accelerator as part of your web farm and your website is configured to require SSL for the administration interface or on specific pages. You don't need this key if your application runs on Microsoft Azure. the other servers may keep using the old version of the settings in their memory/cache until the web application is restarted or the cached content expires. On the application side.config file.

adding another website with fewer allowed web farm servers can cause "License web farm server count exceeded.config file on each server and add the CMSWebFarmServerName key into the appSettings section: <add key="CMSWebFarmServerName" value="servername"/> Where servername is the code name that the system created for the server (or the code name that you manually entered).com.1. Server root URL . . You also need to update the web.config file settings into the /confi guration/appSettings section of your web. for which you have licenses with the same number of web farm servers allowed.3 Enter separate license keys for example. such as http://192.2/Kentico. Adding licenses for domains with a different number of allowed web farm servers When you enable web farm functionality on a Kentico instance. Click Save to register the server. You can check the availability of the server by clicking Check server availability. if you use the web farm for domain name example. Expand the Versioning & Synchronization -> Web farm category. Click Save. you need to enable web farm synchronization in the settings: 1.com and access the servers internally through URLs like: http://192. 192. Repeat the process for every server in your web farm. If you have a website which can be run on multiple servers. Server enabled . Check the Enable web farm setting." errors.1. You can perform additional low-level settings for web farm synchronization by adding the keys listed in Web.1. Open the Settings application. we recommend that you use only those website domains.the URL of the root of the website on the server.3.168.1. Enabling web farm functionality After you define your web farm servers. 4. 2.168.168.2 and 192. Every server must contain only one such key with its own name.2 http://192. For example. Adding web farm license keys Enter an appropriate license key for the internal URLs of all your web farm servers. 4.1. You only need to add the licenses on one server and restart the other instances using the System application (click Restart application). 3.168.allows you to manually enable or disable web farm synchronization for the server.config file.3 in the Licenses application.168.

To fix existing macro expressions in the system after changing the hash salt. For example: <add key="CMSHashStringSalt" value="e68b9ad6-a461-4707-8e3e-ece73f03dd02" /> The best option is to set the hash salt value before you start creating content for your website. you need to re-sign the macros. set the value of the CMSWebFarmUpdateWithinRequest web. Edit ( ) the Synchronize web farm changes task. Use completely separate infrastructures (different servers and databases) for each website. See Working with macro signatures for more information. you need to configure all servers to use the same hash salt: Set the CMSHashStringSalt key in the appSettings section of the web. Configuring servers for synchronizing macros The system uses signatures to ensure the security of macro expressions. Macro signatures contain the user name of the macro's author and a hash of the given expression. 4. To change the synchronization interval. Set an appropriate task interval. which has a configurable execution interval: 1. Open the Scheduled tasks application. 2. Setting the server synchronization interval By default.These are the possible solutions for this problem: Obtain additional licenses for your websites so that they can be run on the same number of web farm servers. The hash function used to create the signatures appends a salt to the input. web farm servers are updated with changes made on other servers once per request.config file to the same value on all web farm servers. To ensure that macro expressions work correctly in a web farm environment. Synchronizing this frequently may be impractical for hightraffic websites. 5. Changing the salt causes all current hash values to become invalid.c onfig key to false: <add key="CMSWebFarmUpdateWithinRequest" value="false"/> and use the Synchronize web farm changes scheduled task instead. Select (global) in the Site selector at the top of the page. 3. .

This tab displays a list of currently active (waiting to be processed) anonymous synchronization tasks. You also need to create the task for each server in the web farm. or individual tasks via the Delete ( ) action. Enable the Generate servers dynamically setting. 1. 2. Return to the list of scheduled tasks. If a server doesn't have a server name defined in the web. Click Save. Open the Settings application. 3. Debug web farm operations of UI pages If enabled. the web farm debug includes operations performed via the administration interface. it uses its machine name. See also: Debugging web farms Creating web farm servers automatically An alternative way of defining web farm servers is letting the system create the servers automatically on application start. Click Run tasks to manually execute tasks. you can add the following key to the appSettings section of your web. 6.config file: <add key="CMSWebFarmGenerateServers" value="true"/> All servers with enabled web farm support add themselves into the list of servers when the application starts. Fill in the same properties as those of the Synchronize web farm changes task (the Task name must be different) Check Create tasks for all web farm servers below the Server name property.g.5. 2. Select the Task enabled check box. Click Save. 1. Tasks are logged as anonymous only if the application is NOT configured to run in a web farm. Windows services) to ensure that changes made by the external application are reflected in the web application cache. You can remove all listed tasks by clicking Clear task list.config. these tasks are logged as standard synchronization tasks on the Tasks tab. If it is configured to run in a web farm. A similar user interface can be found on the Anonymous tasks tab. Web farm debugging must also be enabled. Web farm debugging allows you to troubleshoot web-farm-related issues and find out if the synchronization works correctly. Clearing the list is not necessary if the web farm is working correctly — the system automatically removes successfully processed tasks. Prerequisite: You need to have web farm synchronization enabled on all the servers. 4. To create the tasks quickly: Note: All web farm servers that you wish to use need to be registered in the system before performing the following steps. 5. These tasks are logged by external applications (e. Select the Versioning & Synchronization -> Web farm category. open the Settings application and adjust the settings in the System -> Debug category: Note: Web farm debugging is only functional if at least one web farm server is defined. 3. Setting Description Enable web farm debug Enables web farm debugging and the Web farm tab in the interface of the Debug application. regardless of how the synchronization interval is currently configured. Click New task. you can check the Tasks tab of the Web farm application's interface. Click Save. Monitoring web farm synchronization tasks If synchronization doesn't work as expected. Debugging web farms The system provides a debugging tool that shows the synchronization activity of web farm servers. Your web farm now synchronizes according to the interval of the scheduled tasks. Alternatively. The tab provides information about all synchronization tasks that are currently active (waiting to be processed). . 4. Enabling the web farm debug To use web farm debugging.

Assign the indexes to your site and define their exact content. the value of the Default log length setting is used. the system tracks the code stack when debugging web farm tasks and displays the information in the Context column. you need to perform the following steps: 1.log file in the ~/App_Data folder. Tip: You can also enable web farm debugging through the "debug everything" settings in the All section of the Debug settings category.NET platform. not in the debug log written into the logwebfarm. click Clear debug log. Display stack information If enabled.Net (version 3. see Adding search functionality to . Enable smart search indexing in the system. Add smart search web parts onto the pages of your website. To learn more about the web parts. i. The log displays the following information for the current web farm server: Synchronization tasks created by the server for recent web requests Notifications sent to other web farm servers (NOTIFY Task type) Tasks processed as a result of notification requests from other servers in the web farm (DO: prefix in the Task type) For example.3) — a source code.e. The smart search is based on Lucene. class-per-class.log file. This option does not require web farm debugging to be enabled. 2. the system searches through the appropriate indexes. When a user sends a search request.0. API-per-API port of the Java Lucene search engine to C# and the . open the Debug application and select the Web farm tab. This information is only available in the debugging UI and on the live site. the debug log shows: The creation of a TOUCHCACHEITEM synchronization task (clears cached role objects) NOTIFY tasks for other servers in the web farm On the target web farm servers. The smart search uses indexes to store information about the website content. the number of requests for which the debug stores information. Setting up search on your website Kentico provides an index-based search engine (Smart search). which allows users to search through the content of websites and various types of data within the system. Viewing the web farm debug To access the web farm debug. If empty. when a web farm server handles a request that adds a new role object. Log web farm operations to file If enabled. which results in significantly better performance compared to linear SQL query search. the system saves the web farm debug log into the logw ebfarm. Create search indexes. To set up the smart search functionality on your website.Web farm debug log length Sets the maximum length of the web farm debug log. the debug shows the processing of the synchronization task: To remove all records previously logged in the web farm debug. 3.

config file: <add key="CMSProcessSearchTasksByScheduler" value="true" /> When you set this key to true: The system only logs the search indexing tasks into the database without running them. which updates the corresponding index page. Here you can: Look for information if you encounter problems with new content not being indexed correctly . When an object included in the index is created. for example using the Execute search tasks scheduled task (runs every 4 hours by default). the system automatically schedules an Indexing task. 4. forums and other Kentico objects are reflected in the index file as index pages. When executed. Check Enable smart search indexing. Enabling search indexing To enable Smart search indexing for all websites in the system: 1. The system indexes the page's content based on the search field settings defined for the given page type. This folder stores the search index files. resulting in significantly higher search performance compared to linear SQL search. Select the System -> Search category. Tip You can find a list of all indexing tasks that are waiting to be processed in Smart search -> Tasks. the system logs a new indexing task in the database. 5. Pages. removed or has one of its fields modified. 3. You cannot manually Rebuild indexes unless you also run the process that executes the indexing tasks. The Smart search either runs the indexing task immediately or processes it later using a scheduled task. Here you can: Look for information if you encounter problems with new content not being indexed correctly Delete ( ) tasks from the indexing queue to stop unnecessary or problematic indexing See also: Monitoring search indexing tasks Example The following model scenario explains the life cycle of a page in a search index file: 1. 3. Note: Your application must have the write permission for the ~/App_Data folder on the server's file system. Click Save. You need to process the tasks periodically. Tip You can find a list of all indexing tasks that are waiting to be processed in Smart search -> Tasks. 2. The index pages contain the same fields as the corresponding Kentico objects. based on the search settings of individual object types. A user creates a new page. The Index searcher searches through the index file and returns relevant results. The web part searches through the assigned indexes and returns results based on the found data. You can disable automatic running of indexing tasks upon creation by adding the CMSProcessSearchTasksByScheduler key to the /config uration/appSettings section of your application's web. pages and Using search filters.3. so the system cannot create and update indexes without the required permissions. Upon the page's creation. The data structure of the index pages is suitable for being searched. 2. Scheduling the search indexing process By default. See Disk permission problems to learn how to grant the write permission for the folder. 6. How the smart search works The system stores the content of smart search indexes in physical index files on the server's disk. 4. The index files are located in the ~/App_ Data/CMSModules/SmartSearch/<Index code name> folder within your web project directory. the smart search creates and executes indexing tasks immediately whenever content covered by a search index is created. Open the Settings application. the indexing task adds the new page to the appropriate search indexes. modified or deleted. the Index writer creates representations of objects in the index files. A user arrives on the website and sends a search request via a Smart search web part. Depending on these settings.

. Click Save to create the search index. the system looks through the appropriate indexes instead of the actual records in the database. Fill in the index properties. Open the Smart search application.determines what type of content the search index stores Analyzer type . you need to select the: Index type .determines how the index breaks text into searchable tokens 4. Click New index. However. you need to create search indexes for your website: 1. The following types of search indexes are available: Index type Description Pages Stores information about pages in the content tree Pages crawler Directly indexes the HTML output of pages. Before you can start searching content. 5. You can implement multi-site search functionality by assigning the index to more than one website. you can only use the index (through Smart search web parts) on the assigned sites. Indexes organize data in a way that is suitable for searching. Custom Allows you to use your own customcoded search index. General Stores information about system objects of a specified type. 2.Delete ( ) tasks from the indexing queue to stop unnecessary or problematic indexing See also: Monitoring search indexing tasks Creating search indexes Indexes are the core of the smart search functionality. Forums Stores information about the content of discussion forums. Stores any kind of data depending on the implementation. 3. They store information about the searchable content and define the scope of searches. the selection made on the Sites tab does not affect the index's content. Open the Sites tab and select the websites where you wish to use the index. Users Stores information about users in the system. The General tab of the index's editing interface opens. so the smart search retrieves results faster than linear searches. Custom tables Indexes records stored in custom tables. Most importantly. When a visitor submits a search request. Here you can edit the same properties that you configured when creating the index. On-line forms Indexes data that the website's visitors submit through forms. particularly for large volumes of data. Note: If the index includes global objects that are not site-specific.

you can select the cultures separately for each site. The Rebuild action deletes the current index file and indexes all specified content again. If you have a multi-site index. Sites or Cultures tabs. Stop words). You can enable the Optimize search indexes scheduled task to have the system automatically optimize all smart search indexes once per week. The available options depend on the type of the index: Defining page indexes Defining forum indexes Defining custom table indexes Defining on-line form indexes Defining user indexes Defining general indexes Creating custom smart search indexes 8. The system automatically updates search indexes to reflect all changes made to the indexed content. Go back to the General tab and Rebuild the index. The Search preview tab allows you to test the functionality of the index. The system automatically optimizes the index after a successful rebuild. Here you need to select which language versions of the website's pages are indexed. Switch to the Indexed content tab and define the content covered by the index. Clicking the Rebuild action does not always guarantee that the index starts rebuilding immediately. and adjustments of the search field settings for the indexed objects. You must assign at least one culture in order for the index to be functional. Reference . you can start using the index on your website. This includes modifications of the analyzer settings (Analy zer type.Search index properties You can configure the following options when creating new search indexes or editing existing indexes on the General tab: Index property Display name Description Name of the index displayed in the administration interface. 7. Over time. Once the system finishes building the index. these updates can make indexes less efficient. switch to the Cultures tab. The process may be delayed if another index is already being rebuilt or if the rebuilding tasks are configured to be handled by the scheduler. particularly in the case of large indexes. . To restore optimal search performance for an index. all options on the Indexed content. The Index info section displays information about the current status and parameters of the index. defragment the index by clicking Optimize. Use the rebuild action to apply changes made to the index's configuration.6. If you are creating a Pages or Pages crawler type index. Maintaining search indexes You can manage existing search indexes using the actions available on the General tab of the index editing interface.

Analyzer type ______________ Sets the type of analyzer that the index uses to tokenize text (divide text into searchable tokens). . Users . You need to specify the names of the assembly and class where the custom analyzer is implemented. Allows users to find words that have the same basic meaning as the search term. including the whole word. For example. Subset . etc. For example. Index type Determines what type of content the search index stores: Custom index . Forums . The fully qualified name of the file must be less than 260 characters long.. The analyzer processes both the indexed content and the search expressions entered by users. shortcuts. network. On-line forms . Warning: The system also uses the code name for the physical index file. the system returns results for items that have at least one token matching the search expression. Only works for English. Allows searching for all words that start with the search term.Code name Serves as a unique identifier for the index (used internally in web part property values or the API).divides text based on language grammar (uses stop words.divides text at non-letter characters (including numbers). Very efficient for English. You can leave the default (automa tic) option to have the system generate a code name based on the display name. General . kinetic. but different inflection (suffixes). General indexes allow you to search through any objects within the system. You can edit the content of the dictionaries or add new ones.indexes records in custom tables. Custom tables . Stop .indexes the content of the pages in the content tree Pages crawler . Stop words (such as 'and'. tester.indexes system objects of a specified type.indexes the data of users in the system.allows you to assign a customwritten analyzer.returns the entire text stream of indexed data fields as a single token. White space . Stop or White space analyzer.indexes the HTML output of the website's pages. See Creating custom smart search analyzers for more information. Custom . When running searches using the index. Pages . but may not produce satisfactory results with other languages. Useful for structured data fields like zip codes or IDs. searching for test matches words such as test. Starts with .creates tokens for all possible substrings in words. 'or') are excluded from the index content and the analyzer uses them to divide text into tokens. Internet. Simple / Stop words / White space with stemming . The application stores the dictionaries as text files in the ~\App_Data\C MSModules\SmartSearch\_StopWords folder. including the directory path. Standard .). See also: Configuring search assistance features Stop words Selects the stop word dictionary for Stop or Standard analyzers. tests. searching for net match es words such as net. . This provides a way to perform text tokenization according to your own requirements..creates tokens for all prefixes contained in words.divide text using the Simple.divides text at whitespace characters.indexes the content of forums. and then reduce the tokens to word stems. Keyword .divides text at non-letter characters (including numbers) and excludes all words in the selected Stop words dictionary.indexes data submitted by the website's visitors through forms. The following analyzers are available: Simple . Indexes with subset analyzers return results for all words that contain the search term.indexes any kind of data depending on the implementation. etc.

. it is recommended to set a reasonably small batch size. When indexing large objects (e. 3. Static text and similar) Page metadata Selected fields of individual page types (see Configuring search settings for page fields) Note: Pages indexes do NOT include the text of other pages or objects displayed through web parts (such as the content of News page displayed through a Repeater web part). Select the Indexed content tab. Switch to the Cultures tab and select which language versions of the website's pages are indexed. Open the Sites tab and assign the websites where you wish to use the index. you need to type the user name (including the Active Directory domain in format domain \username) and password. Defining page indexes You can use two types of search indexes for the pages of websites (i. See also: Configuring page crawler indexes To define which pages an index covers. Crawler settings When editing Pages crawler type indexes. for example: www. 2.domain. you can select the cultures separately for each site. Increasing the value reduces the amount of queries required for large numbers of records.Batch size Sets the maximum amount of records that the system retrieves in a single database query when rebuilding (or creating) the index. The optimal value depends on the type (size) of the indexed objects and on the resources available in your hosting environment.g. Domain Sets the domain that the crawler uses when indexing sites. On websites that use Windows authentication. Crawler indexes provide more accurate searches of page content than standard Pa ges indexes. Click Add allowed content or Add excluded content. You must assign at least one culture in order for the index to be functional. you can configure the user account and domain name that the crawler uses to read pages: Index property User ______________ Description Sets the user account that the crawler uses to index pages. the crawler automatically uses the main domain of the site where the indexed pages belong. This property allows you to optimize indexing performance. building and updating crawler indexes may require more time and resources. 4. you can set a custom domain for web farm servers th at do not have access to the main domain. Open the Smart search application. pages in the content tree): Index the following page data: Pages The content of text web parts placed on pages (Editable text. 5. Enter the domain name without the protocol. which may improve performance. If you have a multi-site index. the index uses the default administrator user account. pages). Pages crawler Directly parse the HTML output generated by pages. 6. For example. specify allowed or excluded content: 1. but also increases memory consumption.e. Reading pages under a user allows the crawler to: Load user-personalized content for the given user Avoid indexing of pages that the user is not allowed to access If empty. However. which allows the search to find any text located on pages.c om If empty. particularly in the case of large indexes and complex pages. Edit ( ) the index. The default value is 10.

Smartphone. the index stores the display names of Categories assigned to the specified pages.if checked. See Searching attachment files for more information.includes the content of ad-hoc forums placed on the specified pages (if there are any).includes blog comments posted for blog post pages. Specify pages using a combination of the following options: Path . an empty path field value is equal the /% expression.Laptop Excludes all pages of the CMS.News Indexes all pages of the CMS. .path expression identifying the pages that should be excluded.Laptop page types found under the /Products section. Include attachment content .Smartphone and CMS.allows you to limit which page types are excluded from the index.allows you to limit which page types are included in the index.News page type from the index. the index includes the text content of files attached to the specified pages.Laptop Indexes all pages of the CMS. Page types . You can specify the following options: Path . Child pages are not excluded. Examples Excluded content settings Result Path: /Partners Page types: empty Excludes the /Partners page from the index. if you allow /% and exclude / Specialpages/% at the same time. Include blog comments . Path: /Products/% Page types: CMS.Adding allowed content Allowed content defines which of the website's pages are included in the index. In this case.includes message boards placed on the specified pages.path expression identifying the pages that should be indexed. Include categories . For example. without the child pages placed under it.News Excludes all pages of the CMS. The following properties define types of additional content that you can include in Page search indexes. Path: empty Page types: CMS.Laptop page types found under the /Products section from the index.Smartphone.CMS. This allows users to find pages that belong to categories whose name matches the search expression.News page type on the entire site. the index will include all pages on the site except for the ones found under the /Special-pages node. an empty path field value is equal the /% expression. Page types .if checked. Path: empty Page types: CMS.Smartphone and CMS. Examples Allowed content settings Result Path: /% Page types: empty Indexes all pages on the site.CMS. The settings are not available for Pa ges crawler indexes: Include ad-hoc forums . Path: /Products/% Page types: CMS. Path: /Partners Page types: empty Only indexes the /Partners page. Adding excluded content Excluded content allows you to remove pages or entire website sections from the allowed content. In this case. Include message boards .

If disabled. The table in the bottom section of the tab determines how the smart search indexes the page type's fields (as defined on the Fields tab). Date field . You can set the following search options for individual fields: Content If checked. 2. To edit the field search settings for page types: 1. the system returns results according to the field search settings of individual page types. Tokenized Indicates if the content of the field is processed by the analyzer when indexing. crawler indexes are not affected by the field settings of page types. 4. Note: If you enter a Custom search name value. Pa ge types allow you to adjust how the system indexes specific fields. In Edit mode. We recommend indexing only necessary fields to keep your indexes as small (and fast) as possible. Image field . open the Properties -> Navigation tab. Configuring search settings for page fields Pages are often complex data structures with many different fields. Searchable If checked. Not all fields may be relevant to the search that you are implementing. Open the Search fields tab.the field whose value is used for the date and time displayed in search results. The general rule is to enable tokenization for Content fields and not for Searchable fields. 3. This allows the search to find results that match individual tokens (subsets) of the field's value. Enable the Exclude from search property.Excluding individual pages from all indexes You can also exclude specific pages from all smart search indexing: 1. In the top part of the tab. Click Save.the field that contains the image displayed next to search results. the content of the field is indexed and searchable in the standard way. The page type search settings are shared by all page indexes in the system. Pages crawler search indexes directly index the HTML output of pages. the search only returns items if the full value of the field exactly matches the search expression. As a result. 3. This option must also be enabled for the field to be usable in Search filters. Open the Page types application. Custom search name Relevant for Searchable fields.the field whose value is used for the content extract of search results. . Open the Pages application.select the page field whose value is used for the title of search results. the original field code name can't be used. 5. you need to Rebuild all indexes that cover pages of the given type. Select the given page in the content tree. configure how the system displays pages of the given type in search results: Title field . The specified value is used as a substitute for the field code name in <field code name>:<searched phrase> search expressions. After you Save changes of the field settings. Edit ( ) a page type. When running searches using page indexes. the content of the field can be searched using expressions in format: <field code name>:<searched phrase> See Smart search syntax for more information about field searches. 2. Content field .

The SKU fields are joined together with general page fields. Click Customize. 2. Configuring page crawler indexes Page crawler search indexes read the content of pages while logged in under a user account. 1. 4. You can configure the search settings for fields just like for page types. 6. such as fields that store the content of editable regions on pages (DocumentContent) or the content of text widgets (DocumentWebParts). Open the Classes tab. even those that are not products. You can configure the following properties for every page crawler index (on the General tab of the index editing interface): Index property Description . Open the Modules application. Select the Search tab.SKU (product) and general page fields To configure the field search settings for E-commerce SKUs (products): Warning: It is highly recommended to modify only the settings of custom SKU fields. Edit the SKU class. Changing the settings of the default fields may prevent the system from searching through SKUs correctly. Edit ( ) the E-commerce module. 3. Important: The search settings of general fields affect all pages. 5.

Reading pages under a user allows the crawler to: Load user-personalized content for the given user Avoid indexing of pages that the user is not allowed to access If empty. Domain Sets the domain that the crawler uses when indexing sites. set the CMSCrawlerAllowSiteAliasRedirect key to false in your application's web. you can customize how the crawlers process the HTML. By default.c om If empty. Style tags and all JavaScript Converts all whitespace formatting to simple spaces If you wish to index the content of any tags or exclude parts of the page output. add a new class to the App_Code folder of your web project (or CMS App_AppCode -> Old_App_Code on web application installations). Customizing how crawlers process page content (API) By default. you need to type the user name (including the Active Directory domain in format domain \username) and password. You need to implement your custom functionality in a handler of the OnHtmlToPlainText event of the CMS.Search. the crawler automatically uses the main domain of the site where the indexed pages belong. Note: Page crawlers only index the content of pages that are published on the live site. This event occurs whenever a page search crawler processes the HTML output of a page. the system converts the HTML output of pages to plain text before saving it to page crawler indexes: Strips all HTML tags Removes the Head tag. the index uses the default administrator user account. page crawlers also index pages that use redirection from the site's main domain name to a domain alias. On websites that use Windows authentication. To assign a method as the handler for the OnHTMLToPlainText event.User ______________ Sets the user account that the crawler uses to index pages. you can set a custom domain for web farm servers th at do not have access to the main domain. Enter the domain name without the protocol.domain. For example.SearchCrawler class. you can define the content of the class as shown below: .config file: <add key="CMSCrawlerAllowSiteAliasRedirect" value="false" /> The key applies to all page crawler indexes in the system. for example: www. To only allow indexing for pages that use the website's main domain. For example.

" ").using System. // Removes tab spaces outputResult = outputResult. /// </summary> private class DocumentCrawlerContentLoaderAttribute : CMSLoaderAttribute { /// <summary> /// Called automatically when the application starts.Replace("\n". string originalHtml) { string outputResult = originalHtml. using System. using CMS.HtmlDecode(outputResult).Search.Web.RegexHtmlToTextScript.HtmlToPlainTextHandler(SearchHelper_OnHtmlToPlainText).Replace(outputResult. } // Add your custom HTML processing actions and return the result as a string static string SearchHelper_OnHtmlToPlainText(string plainText.Replace("\t". " ").Replace(outputResult. " "). // Decodes HTML entities outputResult = HttpUtility.Base. // Removes JavaScript outputResult = HTMLHelper.RegexHtmlToTextTags.Helpers. } } } The OnHTMLToPlainText event provides the following string parameters to the handler: plainText . return outputResult.the raw page HTML code without any modifications Defining forum indexes . // Removes tags outputResult = HTMLHelper. [DocumentCrawlerContentLoader] public partial class CMSModuleLoader { /// <summary> /// Attribute class for assigning event handlers.the page output already stripped of all tags and converted to plain text originalHTML . " "). // Removes new line entities outputResult = outputResult. /// </summary> public override void Init() { // Assigns a handler for the OnHtmlToPlainText event SearchCrawler. using CMS.OnHtmlToPlainText += new SearchCrawler. using CMS.

separated by semicolons. Configuring search settings for custom table fields Each custom table has a different set of fields and stores different types of data. To include a forum in the index. The asterisk character (*) can be used as a wildcard for any number of characters. When adding a new custom table to the index or editing an existing one. You can also Edit ( Delete ( ) the way listed custom tables are indexed or ) them from the list. click Add custom table. you can manually enter the code names of forums into the Forums field. Adding excluded forums You can exclude individual forums if you have all forums allowed for an index. You need to define allowed or excluded forums. 2. The dialog lists the selected group's child forums. If you selected a site in the previous step. Where condition . Alternatively. Only websites assigned to the index on the Sites tab are available for selection. select the appropriate check boxes and click Select. You can configure exactly how the system searches through the fields of individual tables and how the data appears in the search results. Use the Forum group drop-down to select a forum group. To exclude a forum. Defining custom table indexes When editing custom table indexs on the Indexed content tab in the Smart search application. click Add excluded forums on the Indexed content tab. Use the Site name selector to choose the site whose forums you wish to index. Note: You need to Rebuild the index on the General tab in order for changes to take effect. The procedure is the same as when adding allowed forums. To add custom tables to the index. All forums on the selected site can be added to the index this way. For example. click Select next to the Forums field. 5. . 3. select which Forums the search index covers. We recommend indexing only necessary fields to keep your indexes as small (and fast) as possible. you have the following options: Custom table . Allows you to limit which records (rows) are included in the search index. Adding allowed forums 1. Click Add allowed forums. 4. all forums on all sites in the system will be indexed.selects which custom table is indexed.sets the WHERE clause of the queries that the system uses to load data from the custom table when building the index.When editing forum indexes on the Indexed content tab in the Smart search application. including group forums. entering *community* adds all forums that contain the string community in their code name to the index. If you select (all). you can see a list of custom tables included in the index.

the content of the field is indexed and searchable in the standard way. Indicates if the content of the field is processed by the analyzer when indexing. Select the Site that contains the required form (if the index is assigned to multiple websites). define which forms the index includes: 1.To edit the field search settings for custom tables: 1.the field whose value is used for the date and time displayed in search results. You can add any number of forms to a single on-line form index. This option must also be enabled for the field to be usable in Search filters. Allows you to limit which form records are included in the search index. Content field .the field whose value is used for the content extract of search results. Open the Custom tables application. Date field . Adding forms to indexes After you create an on-line form index in the Smart search application.the field that contains the image displayed next to search results. In the top part of the tab. After you Save changes of the field settings. d. Select the Search fields tab. 3. configure how the system displays records from the custom table in search results: Title field . Image field . Note: If you enter a Custom search name value. You can now assign the index to Smart search web parts and search through the data of forms. The table in the bottom section of the tab determines how the smart search indexes the custom table's fields (as defined on the Fields tab). . 2. b. the original field code name can't be used. Assign the index to one or more websites on the Sites tab of the index editing interface. If disabled. you need to Rebuild all indexes that include the given custom table. You can set the following options for individual fields: Content If checked. The specified value is used as a substitute for the field code name in <field code name>:<searched phrase> search expressions. a. the search only returns items if the full value of the field exactly matches the search expression. the system returns results according to the field search settings of individual tables. Click Save. Select the On-line form. (Optional) Set a Where condition for the queries that the system uses to load the form's data when building the index. c. When running searches using custom table indexes. Open the Indexed content tab and click Add on-line form. This allows the search to find results that match individual tokens (subsets) of the field's value. Edit ( ) a custom table. Switch to the General tab and Rebuild the index. the content of the field can be searched using expressions in format: <field code name>:<searched phrase> See Smart search syntax for more information about field searches. 3.select the custom table field whose value is used for the title of search results. The field search settings are shared by all custom table indexes in the system. 2. Tokenized The general rule is to enable tokenization for Content fields and not for Searchable fields. Searchable If checked. Defining on-line form indexes On-line form indexes allow you to search through the data that website visitors submit through forms. Custom search name Relevant for Searchable fields.

4.if enabled. Date field . hidden users will be indexed. Searchable If checked.the field that contains the image displayed next to search results.select the form field whose value is used for the title of search results. 2. Note: If you enter a Custom search name value. Configure how the smart search indexes the form's fields. . only enabled users will be indexed. If disabled.Configuring search settings for form fields Each form has a different set of fields and stores different types of data. 5. Rebuild all indexes that contain the given form. Enabled users only . only users from the sites assigned on the Sit es tab will be indexed. Open the Forms application. 6. Defining user indexes When editing user indexes on the Indexed content tab in the Smart search application. the system returns results according to the field search settings of individual forms. you can limit which users are indexed.the field whose value is used for the content extract of search results. the content of the field is indexed and searchable in the standard way.the field whose value is used for the date and time displayed in search results. The general rule is to enable tokenization for Content fields a nd not for Searchable fields. When running searches using on-line form indexes. Click Save. 8. If disabled. Custom search name Relevant for Searchable fields. Tokenized Indicates if the content of the field is processed by the analyzer when indexing. Make sure that the Search is enabled box is checked. The specified value is used as a substitute for the field code name in <field code name>:<searched phrase> search expressions. the content of the field can be searched using expressions in format: <field code name>:<searched phrase> See Smart search syntax for more information about field searches. Specify how the system displays the form's records in search results: Title field .if enabled. 1. Content field . Edit ( ) the form that you want to configure. the search only returns items if the full value of the field exactly matches the search expression. 3. The tab allows you to set the following limitations for user indexes: Include hidden users . the original field code name can't be used. You can set the following options for individual fields: Content If checked. This option must also be enabled for the field to be usable in Search filters. This allows the search to find results that match individual tokens (subsets) of the field's value. users from all sites will be indexed. Index users from all sites . Image field .if enabled. 7. We recommend indexing only necessary fields to keep your indexes as small (and fast) as possible. You can configure exactly how the system searches through the fields of individual forms and how the form data appears in the search results. Open the Search fields tab.

The general rule is to enable tokenization for Content fields and not for Searchable fields. The specified value is used as a substitute for the field code name in <field code name>:<searched phrase> search expressions. We recommend indexing only necessary fields to keep your indexes as small (and fast) as possible. Edit ( ) the Membership module. Date field . Users not in roles . If disabled.Settings classes. Where condition .select the field whose value is used for the title of search results. You can set the following options for individual fields: Content If checked. Open the Modules application. Configuring search settings for user fields You can configure exactly how the system searches through the data fields of user objects. 3. Content field . . Custom search name Relevant for Searchable fields.the field whose value is used for the content extract of search results. the original field code name can't be used. the content of the field is indexed and searchable in the standard way. Tokenized Indicates if the content of the field is processed by the analyzer when indexing. 5. and how the information appears in the search results. The table in the bottom section of the tab determines how the smart search indexes the user fields. Click Customize.if entered.sets the WHERE clause of the queries that the search runs against the View_CMS_User view when building the index. Allows you to create custom conditions for limiting which users are indexed. This option must also be enabled for the field to be usable in Search filters.the field whose value is used for the date and time displayed in search results. To edit the field search settings for users: 1. only users who are not in the entered roles will be indexed. Edit the User class. 2. Open the Classes tab. In the top part of the tab. After you Save changes of the field settings. only users from the entered roles will be indexed. the content of the field can be searched using expressions in format: <field code name>:<searched phrase> See Smart search syntax for more information about field searches. you need to Rebuild all user indexes. the search only returns items if the full value of the field exactly matches the search expression. 6. This allows the search to find results that match individual tokens (subsets) of the field's value. Note: You cannot change the image field for users. configure how the system displays users in search results: Title field . Note: If you enter a Custom search name value. The list contains fields from both the User and User . 4. Select the Search tab. Searchable If checked. The search results display Avatar images.if entered.Users in roles .

The table in the bottom section of the tab determines how the smart search indexes the object type's fields. such as web parts. the original field code name can't be used. the content of the field can be searched using expressions in format: <field code name>:<searched phrase> See Smart search syntax for more information about field searches. you need to configure which fields the index includes. If disabled. Allows you to limit which records are included in the index.The field search settings are shared by all user indexes in the system. Switch to the Search fields tab. Custom search name Relevant for Searchable fields. The general rule is to enable tokenization for Content fields and not for Searchable fields. When an object is created. This includes items you may recognize from the administration interface. After you select the object type. Searchable If checked. Image field . This option must also be enabled for the field to be usable in Search filters. specify the content on the Indexed content tab by defining the following properties: Object name . configure how the system displays objects of the given type in search results: Title field . sites etc. You can set the following options for individual fields: Content If checked. Note: If you enter a Custom search name value.the field that contains the image displayed next to search results. This allows the search to find results that match individual tokens (subsets) of the field's value. Tokenized Indicates if the content of the field is processed by the analyzer when indexing.the field whose value is used for the content extract of search results. Where condition . When editing general indexes in the Smart search application. page templates. In the top part of the tab. removed or has one of its fields modified. the search only returns items if the full value of the field exactly matches the search expression. The index stores information representing objects in the system of the specified type.sets a custom WHERE clause for the queries that retrieve data when building the index. the index automatically updates to reflect the changes. The specified value is used as a substitute for the field code name in <field code name>:<searched phrase> search expressions.the field whose value is used for the data and time displayed in search results. These fields correspond with the columns of the database table that stores objects of the given type.select the object field whose value is used for the title of search results. Content field . Date field . groups. the content of the field is indexed and searchable in the standard way. . Defining general indexes General indexes allow searching through any type of objects used within the system.sets the type of objects searched by the index.

General indexes and Sites The content of general indexes is not affected by the selection made on the Sites tab.the name of the specific object related to the indexing task Web farm server Task created . For example. Indexing tasks keep smart search indexes up-to-date according to changes made to the website content.if an error occurs while processing the indexing task.the action that the task will perform with the data of the search index (Update. open the Smart search application and select the Tasks tab. you can use the list of indexing tasks to investigate the issue. Delete. removed or has one of its fields modified An administrator Rebuilds or Optimizes a search index If you encounter problems with new content not being indexed correctly.the date and time when the system created the indexing task Result . the system executes indexing tasks immediately when they are created. The list displays the following information for each indexing task: Task type . If you wish to configure a general index to search only through objects assigned to a specific site. using the same Object name). You can disable automatic running of indexing tasks by adding the CMSProcessSearchTasksByScheduler key to the /configuration/appSettings section of your application's web.identifies the object related to the indexing task (through an ID or code name) Related object .e. Monitoring search indexing tasks To view a list of all search indexing tasks that are waiting to be processed. If you have multiple general indexes for one object type (i. This approach is only possible for site-bound object types. a general index with the Group Object name and GroupSiteID = 3 s et in its Where condition only indexes groups created under the site with a SiteID equal to 3. the system stops processing subsequent search tasks. Dealing with task errors If an indexing task results in an error. It only determines on which websites the index will be available for use (through smart search web parts). changing the search field settings for one index also affects the others.The configuration of search fields is global for objects of the given type. Rebuild.the index field used to find the correct data item inside the search index ( _id in most cases) Task value . The list of indexing tasks is usually empty unless there is a long-running rebuild task. you can view the error message details here To clear the indexing queue or stop unnecessary indexing. you can run any remaining search tasks by clicking Process tasks above the list.the type of object for which the task was created Search field .config file: . or the application is generating a very large number of indexing tasks. Delete ( ) individual tasks. By default. Process) Object type . Optimize. Once you resolve the error or delete ( ) the problematic task. The system automatically creates indexing tasks when: A page or object covered by a search index is created. we recommend using the Where condition property on the Indexed content tab. Click Set automatically to use the default search field configuration for the object type. Confirm changes by clicking Save.

You cannot manually Process tasks when the key is enabled. the system creates search indexing tasks. but does not run them. click the help icon in the top right corner of the web part properties window. For a complete list and explanations of the web part properties. Adding search functionality to pages Kentico provides a set of smart search web parts that you can use to build a search interface on the pages of your website. Smart search dialog with results The Smart search dialog with results is an all-in-one web part that: Allows users to search Displays the results The following properties are the most important for setting up the smart search: Property name Indexes Description Determines which index the search uses.<add key="CMSProcessSearchTasksByScheduler" value="true" /> With the key set to true. Only the most important web part properties are mentioned here. you need to regularly process the indexing tasks using the Execute search tasks scheduled task. . You can select multiple search indexes. In this case. You can find the smart search web parts in the Full-text search -> Smart search category.

but cannot search specific fields. If you enable the dialog's Show only search button property. i. You can configure the Smart search box to display results instantly while users type the search text.Transformation name Name of the transformation that displays the search results. the web part only displays the submit button without the search textbox and mode selector.SmartSearchResultsWithImages Search options Sets the level of syntax that is allowed in search expressions: Basic . There are two default transformations suitable for this purpose: CMS.all search options can be used. everything is processed as a part of the search expression. Full .Root. You can specify one or more search fields (separated by commas) according to which the results will be sorted. try specifying the type of the field.users are allowed to input special syntax. If you encounter the "Field <fieldname> does not appear to be indexed" error when using multiple indexes. Smart search box The Smart search box allows visitors to submit search requests. See: Smart search syntax Search condition Sets a condition that is added to any submitted search expressions. You need to place the dialog on a page together with the Smart search results web part.users can only enter text. Using separate web parts allows you to place the dialog and results into different locations on the page. you can add a search box to your website's main header. See Setting up predictive search for more information. For example. special symbols (+ -) and field conditions. The default order is ascending — you can reverse the order by adding the DESC keyword (e.Root. None . The web part handles search requests by redirecting users to a different page.SmartSearchResults CMS. You can add the textbox separately from the search button by connecting a Smart search filter web part in textbox mode.g. articleid DESC). The search box is useful for pages that have limited space and are not primarily dedicated to searching.e. Use the ##SCORE## macro to order results by their score (relevance). Smart search results The Smart search results web part displays the results of search requests sent from Smart search box or Smart search dialog web parts. The condition is built using the smart search syntax. for example: (date)documentcreatedwhen Smart search dialog The Smart search dialog allows visitors to submit search requests and select the Search mode. where the Smart search results or Smart search dialog with results web part displays the results. This functionality is intended for scenarios that utilize Smart search filters to specify all of the search parameters. including field searching. For example: +articleid:[(int)25 TO (int)150] Search results order Defines the order in which search results are displayed. The combined functionality of the two web parts is nearly identical to the Smart search dialog with results. To connect the search box or dialog to the search results: .

Check the Enable predictive search property.5 seconds. Search box . Seeing the results before submitting the search allows users to: Find out if the entered keywords are relevant Quickly navigate to results without going through a dedicated search page The predictive search functionality is implemented into the Smart search box web part. Setting up predictive search Predictive search displays results immediately while users type search expressions.Search dialog . The functionality of the main search is always determined by the indexes assigned to the Smart search results web part on the target search results page. The predictive search finds results using a set of assigned search indexes. See Using search filters for more information. Click OK. Assign one or more search indexes through the Indexes property (in the Predictive settings category). copy the Web part control ID of the search results web part into the dialog's Result webpart ID property. Smart search filter The Smart search filter web part allows users to set parameters that affect the scope of the search or the order of the displayed results. 3. Edit the page containing your Smart search box on the Design tab.enter the relative URL of the page containing the search results into the search box web part's Search results page URL property. 5. Enabling predictive search To turn on predictive search for a Smart search box: 1. Configure the Smart search box web part (double-click). You need to rebuild all search indexes that you plan to use for the predictive search after upgrading to Kentico version 8. When a user stops typing in the search box for 0. A list of the top results appears directly below the search box. You can configure the Smart search results using the properties described for the Smart search dialog with results. Users can open links to the relevant pages by selecting individual results of the predictive search. You can customize the appearance or behavior of the predictive search.place the dialog on the same page as the search results. . The search box now displays predictive results when users type search expressions. 4. 2. the web part runs a search request for the current text. Open the Pages application. 6. You can also use the search filter to add a separate search textbox to pages. Note The predictive search can use different indexes than the standard search.

configure the properties of the Smart search box web part: Min. results (Predictive settings category) . you can submit the search request and view the results page like with a standard search box. characters (Predictive settings category) . The groups represent the indexes where the search found matching results. and link to the selected item by pressing Enter Alternatively. By default. Max. the predictive search separates results into groups. users can move between the predictive search results using .sets the maximum number of search results that the predictive search displays. the results appear shortly after you stop typing.if enabled.sets the minimum number of characters that users need to type into the search box to trigger the predictive search.Using the predictive search When entering text into a search box with predictive search enabled. Customizing the predictive search To adjust the basic behavior of the predictive search. You can navigate directly to the pages linked by individual results of the predictive search: Click the results in the list OR Move between results using the up/down arrow keys. Enable arrow key selection (Predictive results category) .

if enabled. 7. Use the {0} forma tting expression to get the URL of the full search result page assigned to the search box. Open the Design tab and double-click the Smart search box web part. 3. It is recommended to disable grouping if your predictive search only uses one search index. edit: the website's main CSS stylesheet OR the component CSS of the Smart search box web part (the default styles are here) To change the names of the default CSS classes applied to the results. the system logs every predictive search request as an Internal search on-line marketing activity. the site's web analytics log all text submitted to the predictive search as part of the On-site search keywords statistic. The frequency of the search requests depends on the typing patterns of your website's visitors. 6. Result content and appearance Modify the design of the predictive search results through the properties in the Predictive results category of the Smart search box web part.the up and down arrow keys.specifies the name of the CSS class assigned to the block element that contains the predictive search results. Select the website root page in the content tree (Corporate Site). Click New next to the Search result transformation property (in the Predictive results category).Customizing the design of predictive search results The following example shows how to change the appearance of highlighted results in the predictive search on the sample Corporate site. keywords).displayed when the predictive search does not find any results. Track web analytics search keywords . Tracking predictive search requests You can enable or disable tracking for the predictive search through the properties in the Predictive tracking category of the Smart search box web part: Log internal search activity . The default groups separate the results into sections with captions that match the Display name of the related search index. No results content . Configuring the Smart search box web part 1. Check the Enable predictive search property. The URL automatically opens when users select one of the predictive search results using the up/down arrow keys and press Enter. 5. To disable the default grouping. To allow users to open links for selected search results.placed after the last search result if the maximum number of predictive results is reached. Note: Tracking of predictive search requests may generate a large volume of irrelevant data (activities. include one <a> element with a properly defined href attribute in the transformation code. The customization also inserts the name of the related search index directly into individual result items (instead of using categories). You can change the following special result items by entering custom HTML content: More results content . Open the Pages application for the sample Corporate site. Keywords often include incomplete words or fragments. Select one or more Indexes (in the Predictive settings category). and link to the selected result by pressing Enter. Selected result CSS class . Additionally. Create the following ASCX transformation: . Example . uncheck the Group results by index property of the Smart search box web part (in the Predictive results cat egory).specifies the name of the CSS class applied to the element containing the selected predictive search result. The content of individual results is determined by the transformation assigned in the Search result transformation property. To define CSS styles for the predictive search. set the following properties of the Smart search box web part (in the Predictive results category): Predictive results CSS class . Uncheck Group results by index (in the Predictive results category). 4. you can configure the predictive search just like standard smart search web parts: Set the Search mode Add conditions to the search (Search condition) Determine the order of the results (Search sort) Set page filtering options Predictive result groups Groups help organize the search results if the predictive search uses multiple indexes.if enabled. 2.

9. Click Save and close the dialog. Open the CSS tab. Add the following class definitions: . Comment out the following default classes: /* .selectedResult { text-decoration: underline. } */ 5. 4. Click Save. "/")) %> </a> <span style="font-size: 7pt"> <%# CMS.7.predictiveSearchResults a { text-decoration: none.SearchIndexInfoProvider. } . 2. Open the Web parts application.predictiveSearchResults .GetNotEmpty(Eval("Title"). } . text-decoration: none. } . Save & Close.GetSearchIndexInfo(Eval<string>("index")). <div class="customPredictiveResultItem"> <a href='<%# SearchResultUrl() %>'> <%# HTMLHelper. Result If you now try searching using the box in the header of the Corporate site. the results found in the assigned search indexes appear while .customPredictiveResultItem { line-height: 160%.selectedResult a { color: white. color: black. margin: 2px.customPredictiveResultItem a { display: block. text-decoration: none. background-color: #326CA6. Modifying the Smart search box CSS styles 1.customPredictiveResultItem.HTMLEncode(DataHelper. Select the Smart search box web part in the tree (Full-text search -> Smart search). 3.customPredictiveResultItem.Search. } .selectedResult { color: white.I ndexDisplayName %> </span> </div> 8. } 6.

including word order. Setting the search mode The search mode determines how the search handles expressions with multiple words. The following options are available: Any word . Only works for English by default. Selected predictive results are highlighted using a colored background instead of the original underline effect. Any word or synonyms . you can either: Assign a fixed Search mode for your Smart search box or Smart search dialog web parts Allow users to select the search mode for every search request (available for the Smart search dialog if the Show search mode pro perty is enabled) Enabling typo-tolerant search (fuzzy searching) You can configure the smart search to return results for words that are only approximate matches.finds items that contain at least one of the words in the search expression. Configuring search assistance features The smart search provides several features that can help users find relevant results. The system evaluates approximate matches based on Edit Distance (the number of required character substitutions. Each result shows the name of the related search index.works like Any word mode. insertions or deletions).typing. Typo-tolerant searching allows users to get correct results even if there are misspelled words in the search expression. .finds items that contain the exact search expression. For example. All words . but also finds items that contain synonyms of at least one word in the search expression. To set the search mode. See Configuring the synonym search for more information.finds only items that contain all of the words in the search expression (anywhere in the text). searching for code also matches words such as core or node. Exact phrase .

for example: <add key="CMSSearchSynonymsWeight" value="0. The synonym search works by expanding all words in the search expression into a list of synonyms. Use the src\contrib\WordNet\Syns2Index\Syns2Index. for example: Syns2Index wn_s. 4. The name of the zip file must match the culture code of the given language. You can use neutral culture codes to represent languages in general (such as fr) or the codes of specific countries/regions (such as fr-FR). The supported languages depend on the synonym index files that are present in your web project. Compress the synonym index files into a zip archive. Place the synonym index zip file into the ~\App_Data\CMSModules\SmartSearch\_Synonyms folder in your Kentico web project. To enable the typo-tolerant search: 1. 6. By default. 3. Add the CMSSearchSyno nymsWeight key into the appSettings section of your application's web.Net package. Setting up substring search and word stemming Substring search and word stemming are assistance features that allow users to find results for: .pl IndexOutput 5. Unzip the Lucene.Net-3. A larger number assigns higher relevance to synonyms. You can run the class by debugging in Visual Studio. You can use the following approach: 1.Note: The typo-tolerant search only works for search requests that use the Any word Search mode. For example.9. Download the Lucene. Typo-tolerant search may prevent advanced search syntax from working correctly (for example field search). If you set 1. when searching for the words "search assistance". Configure the web part that you use to get and display search results (Smart search dialog with results or Smart search results). The database must be in Prolog format. Configuring the synonym search Search requests that use the Any word or synonyms search mode allow users to find a wider set of results based on synonyms. the synonym search expands the expression to: "search explore hunt hunting look lookup research seek assis tance aid assist help" The system looks up the synonyms inside index files stored in the ~\App_Data\CMSModules\SmartSearch\_Synonyms folder. we recommend setting the Search options property of the search result web part to None. Obtain a WordNet synonym database for the required language. The search now finds words that are similar in spelling to the search terms. Enabling synonym search for non-English languages To extend the synonym search for languages other than English.config file. Specify the Prolog database file (. you need to create a Lucene search index containing the synonym data.cs class to generate the synonym index. 3.0. The search expands words into synonyms according to the website's culture (language).zip). Check Typo tolerant search in the Search settings category.Net Source (Apache-Lucene. Click OK. When using typo-tolerant search.3-RC2.8" /> The key's value must be a decimal number ranging from 0 to 1. the score of synonyms is equal to words in the original unexpanded search expression. 2. Kentico contains a synonym index for English based on the WordNet lexical database.pl extension) and the output directory for the index files as parameters. You can find a list of WordNet projects at http://globalwordnet. The default value is 0. or using the Visual Studio Command Prompt.org/. Setting the relevance of synonyms You can change the relevance (result score) that the search assigns to items found through the synonym search.src. 2.

For example. programming) Word stems when searching for inflected words (trusted. For example. and set the regular expression as the value. 4. network or kinetic. numbers. If you create your search indexes using stemming analyzers. you need to Rebuild your search indexes that use Sub set or Starts with analyzers.. for example: <add key="CMSSubsetAnalyzerWordRegex" value="(\w|@|\. To customize how the analyzers separate text into words: 1. but different inflection. The Subset and Starts with analyzers use the following steps to process text: 1. Create search tokens for the substrings inside the words (according to the analyzer type) By default. Word stemming Stemming is the removal of suffixes from words. Edit ( ) the index. search indexes with Subset or Starts with analyzers can now find expressions such as: $Var Note: After changing the value of the CMSSubsetAnalyzerWordRegex key. select the Analyzer type. underscores) at symbols (@) periods ( . The search classifies words in the search expression as a match if they share at least one token with the indexed content.config file.Words that contain the search terms Closely related words To enable word stemming or substring search. 3. Divide text into "words" 2. tester. including the whole word). users can find: Inflected words when searching for a stem (program -> programs.. tests.|\$)+" /> The sample expression above allows the dollar sign in addition to the default characters. This allows the analyzers to correctly create substring search tokens for text entities such as e-mail addresses and internet domain names. The analyzers process both the indexed content and the search expressions entered by users. Substring search If you create your search indexes using substring analyzers. Select one of the following analyzer types: Analyzer type Subset Description Indexes with subset analyzers return results for all words that contain the search term (the analyzer creates tokens for all possible substrings in words). ) Any other characters split the text into separate words. the words created in the first step may contain the following characters: word characters (upper and lower case letters. For example. the search returns results for items that contain the search terms inside larger words or text sequences. Click Save. trusting -> trust) Any words that share the same stem as the search terms (conditional -> conditions) . 2. 2. Every smart search index has its own analyzer. Open the Smart search application. you need to index content using the appropriate analyzers. the search matches words that have the same basic meaning. Interne t. Rebuild the index. searching for test matches words such as test. On the General tab. searching for net matches words such as net. To change the analyzer type of a search index: 1. 5. As a result. The smart search uses analyzers to divide text into searchable tokens. Add the CMSSubsetAnalyzerWordRegex key into the appSettings section of your application's web. Write a regular expression matching all characters that you want to allow inside words. Starts with Allows searching for all words that start with the search term (creates tokens for all prefixes contained in words.

The stemming analyzers process text in two steps: 1. 2. the search finds all items containing words that share the same stem. 3. xls. The smart search stemming analyzers are based on the Porter Stemming Algorithm. Click Save. If you leave the setting empty. For example. the analyzer also processes the search expression. Open the Settings applicaton. Enter a list of allowed file extensions without dots. The attachment search only works for files that are connected to pages through one of the following methods: Attachment files added to pages through fields with the Field type set to File or Page attachments in the page type definition Attachments uploaded in the Pages application on the Properties -> Attachments tab of pages Choosing which file types are searchable By default. 2.Stemming does not find matches for all words that share the same morphological root — only words that have an identical or very similar meaning. Reduce the tokens into their stem form. You can select three variations of stemming analyzers. When users search for text using an index with a stemming analyzer. the search works for all of the available file types. Fill in the Allowed attachment file types setting. Searching attachment files The smart search allows users to search through the content of files uploaded as page attachments. If you wish to search other file types. 4. ppt Encrypted PDF files You can limit which of the file types are searchable for individual websites: 1. Divide text into tokens (words) using a base analyzer. Note: The default stemming analyzers only work for English text. you need to: Implement a custom search text extractor OR Use the SQL attachment search . White space with stemming Divides text at whitespace characters. Select the System -> Search category. each with a different base analyzer: Analyzer type Base analyzer description Simple with stemming Divides text into tokens at non-letter characters. Stop words with stemming Uses a predefined collection of stop words to divide text. the words "flawed" and "flawless" do not have the same stem. As a result. Please keep in mind that word stemming does not work perfectly for all word combinations. the attachment search supports the following file types: txt csv pdf docx xlsx pptx xml html htm Note: The search does NOT work for: Legacy MS Office formats: doc. separated by semicolons.

When defining the search content on the Indexed content tab. If you apply a hotfix or upgrade that changes how the search indexes attachment files. the search does NOT include the following content by default: Comments The values of tag attributes You can enable indexing for such content by adding the following web. 2. The system only processes the file text directly for attachments that do not have any search content saved. Click Clear attachment search cache. To prevent the system from indexing files larger than a certain size. which updates the attachment content according to the new functionality. Open the Smart search application. When rebuilding page indexes. you need to clear the attachment search content: 1. the search loads the "cached" attachment text from the database. Indexing of XML content When indexing the content of XML files. tags. author name etc. 2. 5. Switch to the General tab and Rebuild the index. The indexed content always includes: File metadata (title.) Comments (for example in MS Office files) Limiting the maximum size of indexed files Indexing of very large files can be resource intensive and have a negative impact on your website's performance. 4. Configuring the attachment search You can adjust how the system indexes attachment files by adding keys to the appSettings section of your application's web.config keys: <add key="CMSSearchIndexXmlComments" value="true" /> <add key="CMSSearchIndexXmlAttributes" value="true" /> Enabling character encoding detection for text files By default. the system returns results for pages whose attachments match the search expression. You can then Rebuild your page indexes. the smart search processes the allowed pages. the search can read text files (txt and csv) that use the following character encoding: UTF-8 The default Windows encoding (the operating system's current ANSI code page) If you encounter problems when indexing text files with a different encoding type. When users perform a search using the index. 3. Click Save. Updating the search content of attachments (Upgrades and Hotfixes) Kentico stores the text content extracted from page attachments in the database. Open the System application. While building the page index. check Include attachment content for the index's allowed content.config file. 3. The search ignores page attachments whose size exceeds the value. add the CMSSearchMaxAttachmentSize key: <add key="CMSSearchMaxAttachmentSize" value="10000" /> They key sets the maximum allowed file size in kB. Create or edit a Page search index.Enabling indexing for page attachments The attachment search is a part of the functionality of standard Page indexes. extracts the text of any attachment files and includes it in the content of the index (along with the other page data). Select the Files -> Attachments tab. To set up the attachment search for your website: 1. you can enable automatic encoding detection: .

Use one of the following guides to configure your Kentico database for SQL search of attachment files: Manually configuring full-text search on MSSQL Server Enabling full-text search on MSSQL Server .Script Supported file types The standard full-text search engine delivered with Microsoft SQL Server can search the following file types: TXT HTML DOC XLS PPT If you want to search other types of text files. you can configure the full-text search through a script instead. PPT The SQL attachment search uses the standard Microsoft SQL Server full-text search engine. Your Kentico website must be configured for storing files in the database (Settings -> System -> Files -> Store files in database). CSV.<add key="CMSSearchDetectTextEncoding" value="true" /> The system then attempts to detect the encoding type for each file. Locate your Kentico database. use the attachment search fe ature of smart search page indexes. You can download or purchase IFilter libraries from third-party vendors. MS Office open xml formats). The full-text search is available for all editions of Microsoft SQL Server. The search is available for all supported versions of SQL Server: SQL Server 2008 SQL Server 2008 R2 SQL Server 2012 Prerequisites: Full-text search support must be installed on your SQL Server. Configuring SQL search for attachment files You can use the SQL search to find results in the content of page attachment files uploaded into the database. Only use the SQL search if you need to search file formats that are not supported. you need to install appropriate IFilter libraries. Important: To search common file types (TXT. such as the legacy MS Office formats: DOC. HTML/XML. 2. Note: Correct encoding detection is not guaranteed for all files. and use the correct option when reading the content during the indexing process. Unfold the Storage sub-folder. . Manually configuring full-text search on MSSQL Server Use the following steps to configure your Kentico database for full-text search in file attachments: 1. If you cannot use SQL Server Management Studio on your database server. PDF. Automatic detection also slightly increases the time required to index text files. Start Microsoft SQL Server Management Studio. XLS. right-click Full Text Catalogs and click New Full-Text Catalog. including the Express Edition with Advanced Services. 3.

Right-click the new full-text catalog and choose Properties. 5. Check the box next to the AttachmentBinary column b. Set the Data Type Column to AttachmentExtension . Assign the CMS_Attachment table to the catalog. 7. Type a Full-text catalog name and click OK. Set the Language for Word Breaker to English or another value c.4. In the Full-Text Catalog Properties dialog. a. click the Tables/Views tab. 6.

'AttachmentBinary'. 1 -.'start_full' You can now combine the SQL attachment search with smart search results or enable attachments for the SQL search.'AttachmentExtension' -.Allows IFilter library loading exec sp_fulltext_service 'verify_signature'. 0 exec sp_fulltext_service 'load_os_resources'. Click OK.Creates the Full Text Catalog exec sp_fulltext_catalog 'KenticoCMSCatalog'. you can configure your smart search result web parts to run SQL searches through the content of page attachments.Sets the data column of the CMS_Attachment table in the catalog exec sp_fulltext_column 'CMS_Attachment'.'create'.'add'.'create' -. Enable SQL attachment searching through the properties of the Smart search dialog with results or Smart search results web part: . Enabling full-text search on MSSQL Server .8.'PK_CMS_Attachment' -.NULL.Populates the catalog exec sp_fulltext_table 'CMS_Attachment'. You can now combine the SQL attachment search with smart search results or enable attachments for the SQL search.'KenticoCMSCatalog'.Adds the CMS_Attachment table to the catalog exec sp_fulltext_table 'CMS_Attachment'.Script If you cannot use SQL Server Management Studio to configure the full-text search. run the following script against your Kentico database: -. Combining the SQL attachment search with the Smart search Once you have the SQL server set up.

You can use the condition to: Specify which pages have their attachments searched Use the columns of the CMS_Attachment table to search only attachments of a specific type. The behavior of the smart search filter is primarily defined by the properties described below. for example: AttachmentExtens ion = '. or define the order of the search results. if you have a search results web part using a page index that is limited to the /News/% section of your website.AttachmentDocumentID WHERE (##WHERE##) AND (([AttachmentName] Like N'%'+ @Expression + N'%') OR ([AttachmentTitle] Like N'%'+ @Expression + N'%') OR ([AttachmentDescription] Like N'%'+ @Expression + N'%')) OR (FREETEXT(AttachmentBinary. enter an appropriate value into the WHERE condition property of the used web part. When users perform a search and the system finds a match in the attachment of a page.txt' ORDER BY expression ORDER BY expression that determines the order of pages retrieved by the attachment search in the results. To limit the attachment search scope. the web part runs an SQL attachment search for every search request and combines the results with the results provided by the assigned indexes. Attachments uploaded in the Pages application on the Properties -> Attachments tab of pages Enabling attachment search for the SQL search Perform the following steps if you wish to search attachments using the SQL search: 1.*.Property name Description Enable SQL attachment search If checked. @expression)) ORDER BY ##ORDERBY## The SQL search automatically includes the results from the attachment search. The attachment results are always interlaced with the other results provided by the specified smart search indexes. For example. WHERE condition WHERE condition used to limit the scope of the attachment search for the web part. 3. You can connect any number of filters to the Smart search dialog or Smart search dialog with results. . Select the Queries tab. so it is not affected by the settings and restrictions of the used search indexes. Property Search dialog web part ID Description Enter the Web part control ID of the Smart search dialog or Smart search dialog with results web part that you wish to connect to the filter. the given page is added to the search results. You can find information about the other properties by clicking the help link in the corner of the web part properties dialog. Open the Page types application. Edit the searchattachments query and uncomment the following part of the code: SELECT View_CMS_Tree_Joined. This behavior is by design and cannot be modified. you need to add the following WHE RE condition to ensure that the attachment search is also restricted to these pages: NodeAliasPath LIKE '/News/%' The search only returns pages if they are directly connected to the matching attachment through one of the following methods: Attachment files added to pages through fields with the Field type set to File or Page attachments in the page type definition. 4. Edit the Root page type.DocumentID = CMS_Attachment.NodeName AS SearchResultName FROM CMS_Attachment INNER JOIN View_CMS_Tree_Joined ON View_CMS_Tree_Joined. View_CMS_Tree_Joined. 2. Using search filters The Smart search filter web part allows users to limit the range of objects that will be searched (conditional filter). The attachment search is performed by the SQL server.

define one option per line in format: Index field name. In most cases. Conditional filters In the case of conditional filters.indicates that the conditions in all filtering options must not be fulfilled (adds the . Query name Allows you to create the filtering options dynamically using a query (instead of the Values property). the filter determines the order in which the search results are displayed (order by condition). You can find examples of search filters on the sample Corporate Site on the Examples -> Web parts -> Full-text search -> Smart search -> Smart search filter and Faceted search pages.<displayed text> The following is a sample query that loads all page types as conditional filtering options: SELECT TOP 1000 '+classname'. Possible choices are: Drop-down list Checkboxes Radio buttons Text box Filter auto postback Indicates whether the search results automatically refresh (via postback) whenever a user selects a different filtering option. The format of the filtering options depends on the type of the filter. ClassDisplayName FROM CMS_Class WHERE ClassIsDocumentType = 1 Filter clause Sets a clause that overrides the logical values specified for filtering options. Defining filtering options The most important part of configuring Smart search filter web parts is the definition of the filtering options offered to users.Filter mode Sets the user interface type of the filter. the query needs to load three columns in the following order: <index field name>. you will set the options through the Values property of the web part. If false. Not applicable when using the text box Filter mode.Displayed text You need to specify the logical meaning of each filtering option by adding the + or . The query must return the appropriate values depending on the type of the filter. Must . If you wish to use the Query name property to load the options dynamically. for a standard conditional filter. the filter limits the scope of the objects that are searched (where condition).no clause is added and the original logical values set for individual filtering options are used. Must not . See the Defining filtering options section below for details.symbol as a prefix: + The search only returns objects whose value in the field matches the value specified in the second part of the filtering option's definition.<value of the field>. For example. . Filter is conditional If true. Values Determines the available filtering options.Value of the field. ClassName. Enter the full code name of the query or Select a query.indicates that the conditions in all filtering options must be fulfilled (adds the + symbol).symbol). Conditions are inverted compared to the Must option. Possible choices are: None . the rules described below also apply to the results retrieved by the query.

Leave the Block fieldonly search property disabled. the data fields used in the option definitions must be set as Searchable in the smart search field configuration of the given object type. For example.Results related to products -(issecurednode:(true) OR requiresssl:((int)1)).e. In this case. Filtering without search text (Faceted search) You can implement a faceted search based exclusively on filters.Past week +_content..cms.. Tip: To create a text box filter that behaves like a regular search box. You can also use text box filters to determine the order of the search results. the Filter is conditional property is disabled)... the + and . Make sure that the Search text required property is disabled. without the need to enter and submit search text..(int)53. To achieve this result. 2.smartphone.All +classname.- The search excludes all results whose value in the field matches the value specified in the second part of the filtering option's definition.Text When entering integer or double type fields as filter options. each one on a new line. Users can then enter the name of the field used for ordering into the text box. In order for the filter to work correctly. you can insert the value using the {0} expression: (Field1{0} OR Field2{0}.Results related to products +(documenttags{0} OR _content{0}). disable the filter web part's Filter is conditional pr operty and leave the Values property empty. Use the following syntax to create OR conditions that are fulfilled if the text box value matches at least one of multiple fields: (Field1{0} OR Field2{0}) For example: +(DocumentTags{0} OR _content{0}) The {0} expression represents the value that users type into the text box filter.Text If you wish to use the same value for all fields in the condition clause. define options in the following format: Index field name. You can also create filtering options for the fields that are marked as Content by using _content as the field name. Faceted search allows users to get search results simply by selecting filtering options. visitors can enter the names of page tags into the text box and perform a standard search.Creation date SKUPrice DESC. The search internally converts the expression to Field:(value) i n the resulting condition. Configure the properties of the web part that you use to display search results (Smart search results or Smart search dialog with results) according to the following instructions: 1.Value.product.AddDays(-7))%} TO {%ToSearchDateTime(CurrentDateTime)%}].Smartphones +_created. To create filtering options that check the values of multiple index fields. you need to specify the type of the value: +DocumentCreatedByUserID.[{%ToSearchDateTime(CurrentDateTime. so the Values property instead determines which index fields the system searches when a user enters an expression into the text box.Score documentcreatedwhen.. Such conditions are fulfilled if the value is found in any of the content fields.. or only those that do not. use the following syntax: (Field1:(Value1) OR Field2:(Value2)).Displayed text The order is determined according to the values in the specified field. unless you wish to force users to use a filtering option that works with standard . You can specify multiple fields.symbols determine whether the search returns results that contain the text box value in the given field. The filter modifies the retrieved results to contain only pages that are marked by the specified tags. if a text box filter has +DocumentTags in the Values definition. Like with standard conditional filters. use +_content as the only field name.product.Price descending Text box filter mode Text box filters do not offer any selection options.Exclude secured pages Search result order filters When creating filters that change the order of the results (i.Administrator Examples: . This scenario is not recommended for use by regular visitors on the live site. Examples: ##SCORE##.

If you know that you are searching in integer or do uble fields. This allows users to find records simply by entering an exact field value: DocumentNodeID:(int)17 . For additional convenience. Basic . content fields (i. except for field searching.html To allow the advanced syntax. Note: The system does not process advanced query syntax for search requests that use the Any word or synonyms Search mode. The + symbol indicates that only results which fulfill the field condition should be returned. Unless the web part used to display the search results has the Block field-only search property enabled.the search processes all search query syntax. and the system enters the error into the application's Event log.returns the page with a nodeID equal to 17. enable the Show parsing errors property of the given smart search results web part. it is also possible to perform direct field searches without any standard content keywords. a parsing error occurs if a user enters the query syntax incorrectly. SKUDepartmentID:(int)4 .apache.returns the news page titled New features. Full . By default. the system searches the index fields marked as Content. If there is no field name specified before a value in the search expression (such as the word network in the example above). you need to specify the type of the field: NewsID:(int)22 SKUPrice:(double)255. You can choose one of the following levels of supported syntax: None . The system only processes field searches correctly if the search dialog web part has its Search mode set to Any words. 3. we recommended creating Search filters. If you wish to allow users to limit the scope of searches through conditions on the live site. Field search Field searching allows users to define additional conditions in search expressions. Enable Search on each page load (ensures that the web part automatically displays results whenever the page is loaded. 4.org/core/old_versioned_docs/versions/3_0_3/queryparsersyntax.the search does not recognize any Lucene query syntax. syntax errors cause the search to show the standard "No results" message. Search syntax errors If you allow advanced search expressions through the Search options property. released in the year 2008 or 2009. All conditions must start with either the + or .symbol.the search recognizes all query syntax.e. the values specified are processed as strings by default. For example: +network +NewsReleaseDate:[20080101 TO 20091231] When searching for this expression using a page index. enable the Filter auto postback property for your Smart search filter web parts (instantly refreshes the search results after users change the filtering options). configure the Search options property of the Smart search dialog with results or Smart search results we b part. only results that do not contain the specified value in the given field are retrieved. Field search requirements Field search only works for fields set as Searchable in the field configuration of the searched object type. but is not convenient for regular website visitors. If you wish to view syntax errors in place of the results directly on the live site. including field searching.symbol has the opposite meaning. Smart search syntax Users can submit advanced search expressions using the Lucene query parser syntax. filtering options that have _content as their field name). even without input from a search dialog). the smart search returns only news pages containing the word network. The system processes all text entered by users as a part of the search expression.returns all products that belong to the department that has 4 as its ID.0 DocumentNodeID:[(int)1 TO (int)100] Searching date and time fields . Tip: Using field search queries provides a great deal of flexibility. The .2. Searching numeric fields When performing field searches. You can find detailed information at: http://lucene. NewsTitle:"New features" .

you can display the MIME type font icon in your search results using the following transformation code: <i class="<%# Eval("imageClass") %>"></i> In the code of ASCX transformations.returns the URL of the page containing the details of the search result. etc. For example: {% ToSearchDateTime(CurrentDateTime) %} {% ToSearchDateTime(CurrentDateTime. Higher values indicate higher relevance. index The code name of the search index where the given result was found. image Mapped to the field selected as the Image field on the Search fields tab for the given object type.UserCreated. Eva l("title"). The optional parameter indicates if the returned URL is absolute. For example: DocumentCreatedWhen:200812230101 DocumentCreatedWhen:[200902020101 TO 200906020101] If you need to specify date and time values through macros. For example. content Mapped to the field selected as the Content field on the Search fields tab for the given object type. created Mapped to the field selected as the Date field on the Search fields tab for the given object type. the search dataset always contains the following fields that are automatically mapped to the corresponding object fields: Search result field Description score Expresses the relevance of the search result item as a numeric value.File pages). Field search with Stop and Simple analyzers Indexes created by Stop and Simple analyzers cannot be searched using the standard field search format.Use the following syntax to search in DateTime fields: <field name>:yyyymmddhhmm.Root.AddHours(12)) %} {% ToSearchDateTime(CurrentUser. No matter how the fields are named in the found objects. imageClass Available for page search results. CurrentDateTime) %} The ToSearchDateTime method's second optional parameter sets a default DateTime value returned if the first parameter is null. but you can use a workaround with a range query containing identical boundaries: newsid:[(int)22 TO (int)22] Displaying search results using transformations You can use the following default transformations to display search results using the Smart search dialog with results and Smart search results web parts: CMS. title Mapped to the field selected as the Title field on the Search fields tab for the given object type. The imageClass field contains the name of the CSS class that defines the font icon representing the MIME type of the given page. The system generates the class based on the URL extension of the page (automatic for CMS.SmartSearchResults CMS. you can get the values from the dataset by using the Eval("<field name>") function: Eval("score"). You can also use the following methods in your transformations: SearchResultUrl(bool absolute) . This is by design. Search result URLs for general index results .SmartSearchResultsWithImages The system returns search results in a search dataset. call the ToSearchDateTime method to convert the values to the suitable format.Root.

GetSearchedContent(string content) . Allows you to access both the general fields of the given objects type (page. Searching according to page permissions You can set the smart search to filter out results for pages that users are not allowed to access: 1. for example: /news/% You can enter multiple values separated by semicolons (. Check Exclude from search.parses the searched content as XML if required. and removes dynamic controls and macro expressions.returns the value of the specified field for the current search result. Open the Pages application. With the Check permissions property enabled. etc. SQL search box. Select the page containing the web part you use to get and display search results (Smart search dialog with results or Smart search results). GetSearchImageUrl(string noImageUrl. You can enter multiple page types separated by semicolons (. int maxSideSize) . The searchpages query of the Root page type searches fields that are shared by all pages.) and any other fields included in the search index. Adding the SQL search onto your website To integrate the SQL search into website pages. custom table etc. Click OK.wraps the text entered in the first parameter into the tags specified by the other two parameters. since the indexed objects are not pages and there is no default page to display the object details. string startTag. enter a path expression. Click Save. SQL search The SQL search is an obsolete search engine for pages in the content tree of websites. enter the alias path.NET code). 5. use the web parts in the Full-text search category (SQL search dialog. Modifying the search result format If you wish to change the format of the SQL search results: 1. Excluding pages from the search To exclude pages from the SQL search.). you need to configure the system as described in Configuring SQL search for attachment files. Open the Page types application. Open the Properties -> Navigation tab.article. The system continues supporting the SQL search for the following reasons: Backward compatibility with older versions Searching uncommon and legacy file types uploaded as page attachments This search engine uses standard SQL queries to search for expressions: The system automatically generates search queries for the data of individual page types. 4. Enable Check permissions in the Page filter category. . 2. Open the Pages application.). To search attachments. 2. 2. create a new query named searchtree in Page types -> Edit page type -> Queries. To directly exclude individual pages from the SQL search: 1.returns the URL of the current search result image.enter page type code names. 5. for example: /news/news1 To exclude entire website sections. 3. the search results display pages according to the read permissions of individual users. 3.allows you to exclude entire website sections from the SQL search To exclude a single page.) or the CMSSearchDialog and CMSSearchResults server controls (in your ASP. Select the page in the content tree. GetSearchValue(string columnName) . SearchHighlight(string text. string endTag) . for example cms.The SearchResultUrl method does not return valid URLs for search results produced by general indexes. The first parameter specifies the URL returned if no image is found. We highly recommend using the index-based smart search instead. the second one specifies the maximum side size to which the method resizes the image. To override the search query for a page type. The searchattachments query of the Root page type searches files uploaded as page attachments. 4. Switch to the Design tab and configure the web part (double-click). You need to write and use a custo m transformation method to generate the correct URL of a custom page displaying the appropriate information. open the Settings application and select the System -> Search category: Exclude page types from SQL search . Exclude pages from SQL search .

The application stops running when the process is recycled without being started again (after a long period of website inactivity). You cannot manually create system tasks. Two types of tasks are available: Global . To achieve reliable task execution without using the Windows scheduling service. Developing custom search providers If you need to integrate a custom search engine or make additional modifications to the search results returned by the SQL search engine. For example. Configuring scheduled task execution This page explains how to configure execution of scheduled tasks. Adjust the settings in the Scheduler section. you need to ensure that your website is always running. Select the Transformations tab. Click Save. 4. .NET process. You can find more details in Creating custom SQL search providers. System tasks internally provide functionality for various Kentico features. Only available for users with the Global administrator privilege level. Select the System category. Adjust the SearchResults transformation.affect the entire system (global features and objects). Scheduling tasks The Scheduled tasks application allows you to configure how the system executes automatic tasks. Edit ( ) the Root page type. Choose the (global) option in the Site selector. 3. we recommend using the Windows scheduling service. 3. 4. Many Kentico features leverage scheduled tasks. 2. so tasks cannot be executed if the web application is not running. you can develop your own search provider. Managing scheduled tasks To work with individual scheduled tasks. The System tasks tab provides an overview of temporary tasks created dynamically by the system. Scheduled tasks can be executed: By the Kentico web application itself By a dedicated external Windows service You can have both approaches enabled and execute some tasks directly in Kentico and other tasks via the external Windows service.tasks that affect content related to the selected Site. Site-related . If you want to run the scheduling reliably. Scheduling reliability Task execution by the Kentico application runs within the ASP. you can prepare a utility or service that requests the home of your website on a regular basis. open the Scheduled tasks application. Open the Settings application.2. Configuring scheduled task settings To configure scheduled task settings: 1. Scheduled tasks can be useful when you need to perform operations at a specific time or regularly over a certain time period.

Set the task's scheduling options (Period. regardless of website activity. all scheduled tasks are executed by the Kentico application. Between. a value of 30 means that the application checks tasks every 30 seconds. Select the System category. Open the Scheduled tasks application. 2. In this case. Enabling the Windows scheduler service Prerequisites You need to have the Kentico Scheduler Windows service installed and running. Execution of scheduled tasks by the Kentico application has two modes. Click Save. 4. Request-based scheduler mode This is the default mode. add the CMSUseAutomaticScheduler key into the /configuration/appSettings section of your web. Edit ( ) the scheduled task. 3. Setting the task execution time There are two levels of settings that determine when the system executes tasks: Task interval . 0 disables the execution of tasks by the application. Task interval To configure the interval that determines when individual scheduled tasks are ready to be executed: 1.30 seconds define the interval between checks. Type a number of seconds into the Application scheduler interval setting. Configuring execution by the Windows service Executing tasks using the external Windows service is recommended for resourceconsuming tasks. 0 disables the execution of tasks by the application. the Application scheduler interval sets the minimum time between the checks: For example. 2. The tasks that do not have the option available in the editing interface must be processed by the application itself. Note Only some of the default scheduled tasks support this option.Configuring execution by the Kentico application By default. Click Save. a value of 60 means that the application checks after 60 seconds even if multiple page requests occur per minute.determines the time interval after which the application checks if any tasks are ready to be executed.config file: <add key="CMSUseAutomaticScheduler" value="true" /> In this case.the properties of individual scheduled tasks determine when tasks are ready for execution. 4. because the execution does not affect the performance of the Kentico application. the Application scheduler interval sets the precise interval between the checks: Values between 1 . For example. Tasks are NOT executed if there are no page requests. Days). This means that tasks are only executed when user activity on your website generates requests. Application scheduler interval To configure how frequently the application checks if there are any tasks ready to be executed: 1. Application scheduler interval . Start time. Open the Settings application. To enable this mode. Every. . The application performs checks at the end of each standard page request. Automatic scheduler mode You can configure the scheduler to process tasks regularly according to an automatic internal timer. 3.

The Service scheduler interval sets the precise interval between the checks: Values between 1 . 3. 3. enable the Use external service option for individual tasks. Every. Click Save. Executing scheduled tasks using the Windows service can optimize the performance of your application. Open the Settings application.1. You can use the service to execute tasks externally instead of the application itself (typically for resource-consuming tasks). 4. Task interval To configure the interval that determines when individual scheduled tasks are ready to be executed: 1. Click Install. Start time. that the service checks tasks every 30 seconds. Therefore. For example. Tasks with the Use external service option disabled will be executed by the Kentico application itself. Installing the Scheduler Windows service Kentico provides a dedicated Windows service for executing scheduled tasks. Installing the Scheduler Windows service using Kentico Service Manager The easiest way to install the Scheduler Windows service is to use the Kentico Service Manager utility: 1. 2. 2.determines the time interval after which the service checks if any tasks are ready to be executed. If the Use external service setting in the Settings application is disabled. Setting the task execution time There are two levels of settings that determine when the Windows scheduler service executes tasks: Task interval . Open the Settings application. not by the application itself. In the Scheduled tasks application. Choose the Kentico instance where you want to install the service (select the CMS folder).config application keys reference. Open the Scheduled tasks application. Service scheduler interval To configure how frequently the Windows scheduler service checks if there are any tasks ready to be executed: 1.the properties of individual scheduled tasks determine when tasks are ready for execution. Service scheduler interval . Edit ( ) the scheduled task. you cannot execute such tasks using the Windows service. Select the System category. Select the System category. This setting only applies to tasks that are configured to be executed by the Windows service. 3. 3. 0 disables the execution of tasks by the external service. Additional low-level settings Additional low-level scheduled task settings can be done by adding the keys listed in the Scheduler settings section of the Web. 4. Set the task's scheduling options (Period. Between. The context is not available when tasks are executed outside the application. . You can also launch the KSM utility from Kentico Installation Manager using the Services button. Days).30 seconds define the interval between checks. Launch the Kentico Service Manager utility from the Kentico program files group in the Windows Start menu. Click Save. 2. Enable the Use external service setting. 4. Resolving context macros when executing tasks by the Windows service Tasks that are executed by the Windows service cannot resolve macros dependent on application context (for example {% ApplicationPath %}). 2. 4. a value 30 means. even tasks with the Use external service option enabled are processed by the Kentico application itself. Type a number of seconds into the Service scheduler interval setting. Select the Kentico Scheduler service.

30319\). Execute InstallUtil. You can uninstall the service at any time by clicking Uninstall in the Kentico Service Manager utility.NET Framework: 1.exe file in the Bin folder inside the application (typically c:\inetpub\wwwroot\Kentico\CMS\bin\ SchedulerService.g. /i If this parameter is used. Navigate to the . Open the Services management console (type services.0. Click Start to start the service after it is installed. which is a native part of the .exe" /LogToConsole=true /i The following table describes the used parameters: /webpath Path to the CMS folder of the Kentico instance for which you want to install the service.NET folder containing InstallUtil.exe (e.exe /webpath="C:\inetpub\wwwroot\Kentico\CMS" "c:\inetpub\wwwroot\Kentico\CMS\bin\SchedulerService.msc into the Start menu search box). Click the Start Service button on the top toolbar. Installing the Scheduler Windows service from the command line To install the Windows service from the command line.config key value>) service in the list.exe). you need to use Installer Tool (InstallUtil. which is now running and ready to be used. 5. 4.exe from the Windows command line with the following parameters: InstallUtil.NET\Framework64\v4. c:\Windows\Microsoft. 6. the Installer Tool performs installation of the Windows service.exe). Select the Kentico Scheduler (<CMSApplicationName web.5. You have installed the Kentico Scheduler service. second parameter Path to the SchedulerService. Open the Windows command line (type cmd in the Start menu search box) 2. . /LogToConsole Optional parameter that determines whether the installation progress is logged to the console. 3.

Assembly name . Reference . for example in the API. Period Start time Every Between Days Set the time interval between the execution of the task. You can leave the (automatic) option to have the system generate an appropriate code name based on the display name. Choose the (custom classes) option for tasks implemented in the App_Code folder. c:\Windows\Microsoft.Uninstalling the Scheduler Windows service from the command line 1.0. The precise execution time depends on the scheduling settings and other factors.specifies the exact class (including any namespaces) that defines the functionality of the scheduled task. Edit ( ) the task. 2. only that the task is considered ready for execution. Class .NET\Framework64\v4.NET folder containing InstallUtil. the Scheduler Windows service for the Kentico instance specified by the /webpath parameter is uninstalled. Navigate to the .g. To configure tasks: 1.exe from the Windows command line with the following parameters: InstallUtil /webpath="C:\inetpub\wwwroot\Kentico\CMS" "c:\inetpub\wwwroot\Kentico\CMS\bin\SchedulerService. 3.scheduled task properties The following table explains the properties of scheduled tasks. Task provider Selects the class that implements the scheduled task. Property Description Task display name Sets a name for the task that appears in the administration interface. Task name Serves as a unique identifier for the scheduled task. The interval settings do not ensure that the system executes the task at the exact time.specifies the name of the assembly where the task is implemented. Open the Scheduled tasks application. You can access the field from the code of the task. See also: Configuring scheduled task execution Task data Additional data provided to the task's class. The Task data allows you to modify the task's functionality without having to edit the code implementation.exe" /LogToConsole=true /u After executing this command. 2. Open the Windows command line (type cmd in the Start menu search box).30319\). and use the value as a parameter. .exe (e. Execute InstallUtil.

which allows you to build conditions using macro rules. Run task in separate thread Indicates if the scheduler executes the task in a separate thread to improve application performance. In most cases. The tasks that do not have the option available in the editing interfaces must be processed by the application itself. This can be useful if you wish to manage a task in a single location instead of creating a separate one for every site. Setting up the default SMTP server . Task enabled Indicates if the system executes the task. You can write any condition according to your specific requirements. Only some of the default scheduled tasks support this option. To add a new task for all web farm servers currently registered in the system. Server name Sets the name of the web farm server where the task is executed. etc. The task automatically runs within the context of the corresponding site.) in the code of tasks that are executed in a separate thread. If enabled. Delete task after last run Indicates if the system deletes the task after its final run (applicable if the task is set to run only once). Executions Shows how many times the task has been executed. Use external service If enabled. the scheduler executes the task repeatedly as a sitespecific task. and you can leave the (default) option — the context of a public user is used.g. user. You cannot define the task in the App_Code folder if you wish to use the external service. the user context does not affect the functionality of the task. Configuring SMTP servers Kentico includes many features that utilize email messages as part of their functionality. to check permissions). such as: Automatic notifications Newsletters Various types of confirmation messages Content subscriptions To allow the application to send out e-mails. select the Create tasks for all web farm servers chec k box below the field. Run individually for each site ________________________ Only available for global tasks. For details about available macro options and syntax. you can use this property to choose which user is provided. you need to register and configure at least one SMTP server in the administration interface. Click Edit to open the macro condition editor. Use context of user If the scheduled task needs to access data from the user context in its code (e.Task condition Allows you to enter an additional macro condition that must be fulfilled in order for the scheduler to execute the task. The scheduler always executes the task within the context of the selected user. This field is applicable only if your application is running in a Web farm environment. even tasks with this option enabled are processed by the application itself. you must add a new assembly to your project and then define the task class there. It is not possible to access context data (information about the current page. once for each running site in the system. You can reset this counter back to 0 by clicking Reset. refer to the Macro expressions chapter. the task is processed by the Installing the Scheduler Windows service instead of the web application. If the Use external service setting in Settings -> System is disabled. To run a custom task externally.

Fill in the following settings: SMTP server . Select an option in the Site selector: Choose a specific site to register a server dedicated to a single website.opens the server's configuration interface Delete Enable / Disable . The system uses the primary server as the default option when sending emails. The server must be configured for SSL in order for this to work. including the port number (if it is not 25). Open the Settings application. type the password here. Navigate to the System -> E-mails category.To register the main SMTP server: 1.enables or disables the server within the context of Kentico . SMTP server password .if the server requires authentication. You can manage existing servers through the following actions: Edit . Choose (global) to register a designated global server — the server processes emails from all sites in the system. and also handles mails that are not related to any specific website. 4. 2. 3. Click Save. Use SSL . SMTP server user . E-mails use the extra servers whenever the default server is busy. type the user name here. 5. Enter localhost to use a server provided by your local machine. In addition to the default server. Having multiple SMTP servers allows the system to send out a greater volume of email traffic. you can add any number of servers in the SMTP servers application.enter the domain name or IP address of the server. Configuring additional SMTP servers Kentico EMS required You must have the Kentico EMS license to register multiple SMTP servers.if the server requires authentication.enable to use an SSL secured connection to the SMTP server.

Pickup directory . from where they are processed by the SMTP server.use this option if you expect high e-mail traffic on your servers (the method is faster and safer then the Network method). See the Configuring e-mail processing section below for more information about server priority. but may be more difficult to configure. The e-mails are copied to a folder on the disk (defined by the Pickup directory option). This allows advanced email processing and automatic resending of mails that are lost due to errors.e-mails are sent directly to the SMTP server defined by the server name and credentials.To register new servers. This is the default setting for the default SMTP server defined in Settings -> System -> E-mails. See Configure SMTP E-mail (IIS 7) for more information. You also need to install the SMTP server feature into your IIS and configure it properly. SMTP servers can either be global or limited to one or more specific websites. Note that you have to grant the IIS_IUSRS group write permissions for the chosen folder. the system temporarily stores all outgoing emails in the database instead of sending them directly to the SMTP servers. Configuring e-mail processing You can configure how the system delivers e-mails to the SMTP servers through the settings in Settings -> System -> E-mails. If there are multiple sites running under your application. The system periodically processes the e-mail queue (every minute by default) and asynchronously distributes the stored emails to the SMTP . Refer to Sending e-mails to learn more about the e-mail queue. Note that you have to ensure that the NETWORK SERVICE group has write permissions for the defined pickup folder. you can choose the delivery method for e-mails: Network . Microsoft Azure supports only the Network method. you can assign servers to individual websites on the Sites tab. You may also select the server's Priority. Pickup directory from IIS . click New SMTP server. Choose this method if you are already using Microsoft SMTP servers on Windows Server operating systems.similar to the Pickup directory. you can fill in the same options as described for the default server. If Enable email queue is checked. Using the email queue is highly recommended when sending out large amounts of emails over a short amount of time. When creating new SMTP servers or editing existing ones on the General tab. In addition.

The server with the highest priority for each website is the default SMTP server configured in Settings -> System -> Emails. Reference . The value of the batch size affects the number and frequency of database queries. Helpful if you need to test the functionality. 3. When a server receives an email. A disabled server is skipped when outgoing emails check for available servers. e-mails are first assigned to High priority servers. Enter localhost if you wish to use the server provided by your local machine. include it in the name. As a result. Using a smaller batch size increases the frequency of database queries and may reduce the database performance. A predefined amount of emails is loaded from the queue as a batch. To enable e-mail debugging.log file. then Normal and finally Low).logs all sent e-mails to the ~/AppData/logemails. Batch size The maximum number of emails which is loaded from the database in a single batch is determined by the value of the Batch size setting. The system only logs e-mails into the event log. This process is repeated until all emails in the queue are mailed out. 4. the server is flagged as busy until the sending is complete. The Event code column contains the recipient's address. If the connection to the server should use a different port than 25. CMSDebugEmails . The system randomly generates Sending failed for <recipient's e-mail address> errors to simulate sending errors. Other servers are ordered according to the value of their Priority property (i. then Normal and finally Low. The batch size affects all sites in the system. open the Event log application.config file: <add key="CMSLogEmails" value="true"/> <add key="CMSDebugEmails" value="true"/> CMSLogEmails . To view the event log. The default SMTP server always has the highest priority. but do not want the e-mails to actually reach the recipients. servers with a higher priority receive a greater email load. Debugging e-mails Debugging can help resolve problems with e-mails sent by Kentico. add the following keys to the configuration/appSettings section of your project's web. The log contains each e-mail's recipient and subject.SMTP server properties When you define a new SMTP server or edit an existing one in the SMTP servers application. the email checks for any available server with the High priority. If this server is busy or undefined. 2. Testing SMTP servers To confirm that your SMTP servers are configured correctly and available. Enabled Advanced Can be used to manually disable or enable the server (within the context of Kentico). . If you set the batch size too large. General Server name Specifies the domain name or IP address of the SMTP server. you can specify the following properties. Priority When an email (or batch of emails) needs to be sent out. the system will have to process a lot of database data at one time. The system loads a new batch from the queue and continues assigning individual e-mails to available servers. the system checks the SMTP servers in the order of their priority and uses the first one that is available. The e-mails are logged as Information type events. The system goes through the e-mails one by one and assigns them to servers according to their priority and availability.disables sending of e-mails to the actual recipients.servers: 1. you can send testing e-mails in the System application on the Email tab.e. so it is only available if the (global) option is selected in the Site selector on the top left of the settings page.

Network Username If the SMTP server requires authentication. but cannot see the addresses of other recipients in the mail). you can enter the password here. Delivery method . There are two types of e-mail templates: Global . you can enter the user name here.the e-mail is sent directly to the SMTP server defined by the server name and credentials. the following properties are available: Property Description Display name The name of the template displayed in the administration interface.the e-mails are copied to a folder (defined by the Pickup directory option) on the disk. for example workflow notifications.Pickup directory Pickup directory Specifies a folder on the disk. Choose the (global) option in the Site selector. Use SSL Indicates if the SMTP connection to the server should be secured by SSL. Delivery method . See more information in this article: Configure SMTP E-mail (IIS 7). When editing e-mail templates. . Editing templates allows you to alter the emails sent by the system to match the required design and/or language. The system only contains global templates by default. The content of such e-mails is determined by templates according to the type of the given e-mail. Pickup directory from IIS .Delivery method The delivery method for e-mails sent from the system: Network . Cc E-mail addresses of copy recipients. Password If the SMTP server requires authentication. except that the folder and SMPT server must be defined through IIS. Code name Serves as a unique identifier of the e-mail template (for example in the API). open the E-mail templates application.allow you to override the global templates for specific websites. Site-specific .only users with the Global administrator privilege level can manage global e-mail templates. you have to ensure that the NETWORK SERVICE group has write permissions for the defined pickup folder. The server must be configured to use SSL in order for this to work. Bcc E-mail addresses of blind copy recipients (receive a copy of the e-mail. from where they are processed by the SMTP server. From E-mail address used as the sender (From) address of the e-mail. The IIS_IUSRS group must be granted write permissions for this folder. Many Kentico features send e-mails based on predefined templates that are included in the default installation. E-mail type Identifies the type of functionality to which the template is related. To edit the templates. Pickup directory . This can be used to categorize and filter e-mail templates. You have to first install the SMTP server feature into your IIS and configure it properly. Managing e-mail templates Kentico sends automatic system e-mails for various purposes. where e-mails will be stored until the SMTP server processes them.similar to the Pickup directory m ethod. You need to select the appropriate Site and create a new template with a Code name that matches the corresponding global template. Moreover.

Subject

Subject of the e-mail.

HTML version

Defines the content that is used for the template when sending
e-mails in HTML format.
You can select the preferred format using the Settings -> System
-> Emails -> Email format setting.

Plain text version

Plain text version of the e-mail template.

Example of the HTML version of a template:

<html>
<head>
</head>
<body style="font-size: 12px; font-family: arial">
<p>
This is an automatic notification sent by Kentico. The following page is waiting
for your approval. Please sign in to the Kentico administration interface and
approve it.
</p>
<p>
<strong>Page:</strong> <a href="{%DocumentEditUrl%}">{%documentname%}</a> {%
ifEmpty(DocumentPreviewUrl, "", "(<a href=\"" + DocumentPreviewUrl="" +
"\">preview</a>)")|(encode)false %}
<br />
<strong>Last approved by:</strong> {%approvedby%}
<br />
<strong>Last approved when:</strong> {%approvedwhen%}
<br />
<strong>Original step:</strong> {%originalstepname%}
<br />
<strong>Current step:</strong> {%currentstepname%}
<br />
<strong>Comment:</strong>
<br />
{%comment%}
</p>
</body>
</html>

Most templates contain macro expressions (such as {% currentstepname %}), which the system resolves dynamically when sending the
e-mails. The use of macros is necessary to ensure that individual e-mails contain information relevant to the situation that caused the e-mail
to be sent. You can add macros into fields by clicking Insert macro (

) or write the required expressions manually.

If you wish to display data loaded via a macro in a specific format, you can apply transformations. See Using transformations in macro
expressions for more information.
You can attach files to an e-mail template through the Attachments button in the header of the template editing page. The
attachments are included when the system sends out e-mails based on the given template. Clicking the button opens a dialog
where you can manage the attachments.

Working with widget dashboards
Widget dashboards are sections of the Kentico administration interface that individual users can customize. Typically, users personalize their
dashboards to contain frequently used tools or sources of information. The dashboard then serves as an overview that users can easily
access without navigation through the administration interface.
Important: Widget dashboards are a completely separate feature from the system's main application dashboard. Every widget
dashboard is either a standalone application, or a page within another application.

The content and structure of widget dashboards is based on page templates. The template designates:
The parts of the dashboard that are always present and cannot be changed by users
Customizable areas (zones) and their default content
Users place content onto dashboards using widgets. The widget content is distinct for every user. Most dashboards also have unique content
for each site.
By default, the system provides the following widget dashboard applications and pages:
My desk
System overview (content shared for all sites)
Store overview
Store reports -> Dashboard
Marketing overview
Web analytics -> Dashboard
If required, you can create your own widget dashboard applications or pages anywhere in the administration interface (see Adding widget
dashboards to the interface).

Managing widget dashboard content
Important: Widget dashboards are a completely separate feature from the system's main application dashboard. Every widget
dashboard is either a standalone application, or a page within another application.

Using widgets on dashboards
If you have access to a widget dashboard application or page, you can personalize the content by manipulating widgets in the available
zones:
Click Add new widget to add new widget instances
Click Reset widgets to return all zones and their widget content to the default state

Individual widgets are enclosed in containers with a header and a set of action buttons. To manage the widgets on the dashboard, use the

appropriate actions.

Configure widget ( ) - allows you to edit the widget's properties. Every widget has its own set of properties. The Widget title prop
erty is present for all types of widgets — the property sets the text displayed in the header of the widget on the dashboard page.
Minimize widget ( ) - hides the content of the widget so that only the header is visible. Click Maximize widget (
full content of the widget.
Remove widget (

) to restore the

) - deletes the widget from the dashboard.

Use drag-and-drop to change the location of widgets. To pick up a widget, hover over its header, hold down the mouse button and drag the
widget to the desired position. This works both for modifying the order of widgets within a zone and moving widgets to a different zone.

Setting the layout and default content of widget dashboards
The overall design and initial content of a dashboard is determined by its page template. You can manage dashboard templates in the Page
templates application. The templates of the default dashboards are in the Dashboard pages category.
Note: Dashboard templates must have the Template type property set to Dashboard page on the General tab.
Set up the actual content of the template on the Design tab:
You can define two types of zones on dashboard templates:
Web part zones - the content can only be managed here on the Design tab of the page template. The added web parts fun
ction as fixed content on the dashboard page itself. The Widget zone type property of these zones must be set to None.
Dashboard widget zones - widgets added here on the Design tab serve as the default content of the zone. Individual users
can change and configure the widget content of the zone for their own personalized version of the dashboard. The Widget
zone type property of these zones must be set to Dashboard.
To alter the placement, size and amount of zones on the template, edit the code of the page layout on the Layout tab.
Add the Widget actions web part into the fixed content of every dashboard template. The web part allows users to:
Add new widgets
Reset the zones of the dashboard to their default widget content
You need to configure the properties of the Widget actions web part according to the following:
Widget zone type: Dashboard
Widget zone ID: Specify the dashboard zone to which the web part adds new widgets (enter the ID of the desired zone).
Once created, users can drag widgets to other zone as required.

On the Sites tab, you can assign the template to individual websites. The site bindings do NOT determine where you can create dashboards
based on the template. They only ensure that the system exports/imports the template along with the assigned sites.
To learn how to assign a page template to a specific dashboard page, see Adding widget dashboards to the interface.

Allowing widgets on dashboards
To make a widget usable as a dashboard component:
1.
2.
3.
4.

Open the Widgets application.
Select the widget in the catalog tree.
Open the Security tab.
Select This widget can be used in dashboard zones in the Allowed for column.
Note: The user type security settings of the widget apply on dashboards. Select whether the widget is usable by all Authenticated
users, Global administrators only or members of Authorized roles.

If a widget is also allowed for other types of zones, for example user zones on the live site, you can make properties available only when
configuring widget instances on dashboards:
1. Open the Properties tab.
2. Check Display field only on dashboards for individual properties.
3. Click Save to confirm the change for each property.

Adding widget dashboards to the interface
If the default widget dashboards in the administration interface do not meet your requirements, you can create your own dashboard
applications or pages.
Important: Widget dashboards are a completely separate feature from the system's main application dashboard. Every widget
dashboard is either a standalone application, or a page within another application.
The following example demonstrates how to add a custom dashboard application to the Social & Community category. You can apply the
same principles when creating widget dashboards in other locations.

Creating the dashboard page template
First, create a page template for the dashboard:
1. Open the Page templates application.
2. Select the Dashboard pages category in the tree.
3. Click New template and enter the following values:
Template display name: Community dashboard
Template code name: CommDashboard
4. Click Save.
5. Select Dashboard page as the Template type.
6. Click Save.
Adjust the layout of the page template:
1. Switch to the Layout tab.
2. Copy the following sample code into the layout to define web part/widget zones for the template:

<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">
<div class="DashboardActions PageTitleHeader">
<cms:CMSWebPartZone ID="zoneTop" runat="server" />
</div>
</td>
</tr>
<tr>
<td colspan="2">
<cms:CMSWebPartZone ID="DashboardTop" runat="server" />
</td>
</tr>
<tr valign="top">
<td style="width:50%">
<cms:CMSWebPartZone ID="DashboardLeft" runat="server" />
</td>
<td style="width:50%">
<cms:CMSWebPartZone ID="DashboardRight" runat="server" />
</td>
</tr>
</table>

3. Click Save.
4. Switch to the Design tab.
5.
6.
7.
8.

Expand the menu (
) of the DashboardTop zone and click Configure.
Switch the Widget zone type property from None to Dashboard.
Click Save & Close.
Repeat the steps 5 – 7 for the DashboardLeft and DashboardRight zones.

Add web parts and widgets to the zones:
1. Add the Widget actions web part into the ZoneTop zone.
2. Configure the following properties of the Widget actions web part:
Widget zone type: Dashboard
Widget zone ID: Leave empty (Designates the zone where new widgets should be created when users click the Add widget
button. By default, the web part uses the first available zone (DashboardTop in this case), but you can specify the ID of any
other dashboard zone.)
3. Leave the remaining properties in their default state and click OK.
4. Add the Static text web part to the same zone and set the following properties:
Text: This is a custom dashboard page
Display as: Header level 2
5. Click OK.
6. Expand the menu (
) of the DashboardTop zone and click Add new widget.
7. For example, choose the Community -> My messages widget.
8. Confirm the dialogs without making changes and leave the other two dashboard zones empty.
This sets the default content of the dashboard that individual users can later configure and expand.

Adding the dashboard UI element
To create a new widget dashboard application, you need to add a UI element to the system:

6. When creating links to dashboard pages.aspx?dashboardName=Comm&templateName=CommDashboard&{has h} Sets the URL of the page with the content of the UI element. Open the Modules application.1. This example uses the template created in the previous steps. Select the CMS -> Administration -> Social & Community element in the tree. templateName . Open your website in Visual Studio. Click Save. 2. you can set a macro condition in the Content permissions fiel d to define security requirements for access to the application. The content of a dashboard is unique for every user. Rightclick the folder and select Add -> Web form. Creating the dashboard page source file Now you need to develop the . . Note that the Module code name is cms. You will create the source file used in the URL above later in the example. you need to understand and correctly specify the query string parameters: dashboardName . 3. 5. Edit ( ) the Custom module. The system creates the new UI element. Create a New folder under the root called CMSGlobalFiles (if it doesn't already exist). Name the web form CommDashboard. 4.aspx file of the dashboard page in your web project: 1.specifies the code name of the page template that the dashboard is based on.sets a name for the dashboard to ensure uniqueness in cases where multiple dashboards use the same page template. Click New element ( ). Enter the following values: Display name: Community overview Code name: CommDashboardElement Module: Custom Caption: Community overview Element icon type: Class Element icon CSS class: icon-app-content-dashboard Type: URL Target URL: ~/CMSGlobalFiles/CommDashboard.customsystemmodule on the General tab.the system automatically generates a hash code for the element 7. hash . 4. The type of the assigned template must be Dashboard page. Switch to the User interface tab. If two or more dashboards share a page template and the dashboardName parameters in the URLs used to access the page have the same value. When adding applications to the interface of an actual live website. 2. 3. changes made to one of the dashboards also affect the other dashboards (for the given user and site).

org/1999/xhtml" <%=XmlNamespace%>> <head id="Head1" runat="server" enableviewstate="false"> <title id="Title1" runat="server">Dashboard</title> <asp:Literal runat="server" ID="ltlTags" EnableViewState="false" /> <style type="text/css"> body { margin: 0px.UIControls.Core.SiteProvider. 5. Modify the class to contain the following code: . Switch to the web form's code behind and add the following references to the beginning of the code: using CMS. page template and contextrelated data such as the current site and user. font-family: Arial. 6.w3. Modify the page code to match the following: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CommDashboard. This is the file specified in the Target URL of the previously created UI element. It processes the query string parameters from the URL used to access the page and displays the corresponding dashboard according to the specified dashboard name. 7. The location ensures that the system exports the file with any site that includes global folders in the export package. using CMS.cs" Theme="Default" EnableEventValidation="false" Inherits="CMSGlobalFiles_CommDashboard" %> <%@ Register Src="~/CMSModules/Widgets/Controls/Dashboard.aspx.4. font-size: small. height: 100%. } </style> </head> <body class="<%=BodyClass%>"> <form id="form1" runat="server"> <cms:Dashboard ID="ucDashboard" runat="server" ShortID="d" /> </form> </body> </html> The Dashboard user control handles the entire functionality of the dashboard. Set the CMSGlobalFiles_CommDashboard class to inherit from DashboardPage. using CMS. padding: 0px.ascx" TagName="Dashboard" TagPrefix="cms" %> <%=DocType%> <html xmlns="http://www. 8.

ucDashboard.OnPreInit(e). ucDashboard. } protected void Page_Load(object sender. // Ensures that the dashboard has unique content for each site ucDashboard.CUSTOMSYSTEM. Build the CMSApp project.ResourceName = "cms.ltlTags.DashboardSiteName = SiteContext. The page displays a fully functional dashboard based on the created page template. // Must be equal to the code name of the corresponding UI element ucDashboard.SetupDashboard(). ucDashboard.TagsLiteral = this.ElementName = "CommDashboardElement". If your installation is a web application.CurrentSiteName. Save both files. // Must be equal to the code name of the module containing the corresponding UI element ucDashboard. Result Users can now access the Community overview application either through the application list or the application dashboard (if you add the application to the roles of users). Note that the values of the ResourceName and ElementName properties must be set according to the module and code name of the UI element created in previous steps of this example. "CommDashboardElement")] public partial class CMSGlobalFiles_CommDashboard : DashboardPage { protected override void OnPreInit(EventArgs e) { base. EventArgs e) { // Security access checks for the current user } } The handler of the PreInit event sets the properties of the Dashboard user control calls and its SetupDashboard() metho d. .PortalPageInstance = this as PortalPage.customsystemmodule".[UIElement(ModuleName. 9.

See the Applying output filters section for details.aspx to: /mypage1/mypage2. and you do not need any of the filtering features. the filter changes ~/mypage1/mypage2. If the output code of your pages is already valid by default. The filter only modifies URLs inside src and href attributes.Using output filters Output filters modify the HTML code that the system renders for pages on the live site. dialogs and buttons work correctly on pages managed by Kentico.aspx (if the application is running in the root) or /VirtualDirectory/mypage1/mypage2. Output filter types The following types of output filtering are available: Filter type Description Form filter The form filter fixes issue with non-working postbacks on pages that use URL rewriting. The filters make changes to the code before sending it to the browsers of visitors. Output filters do not affect the pages of the Kentico administration interface. and may slow down the website.aspx (when using a virtual directory). we recommend disabling the output filter for your website. It ensures that forms. For example. URL resolving filter Resolves relative URLs so that they contain the root URL of the website. . Note: Applying output filters adds steps to the processing of pages.

XHTML filter

Fixes XHTML incompatibilities. Specifically, the filtering
functionality can ensure the following things:
Valid tag attributes - the attributes of HTML tags are
generated in valid XHTML format.
JavaScript tags - the type and language attributes are
included in all <script> tags.
Enforcing lower case - all HTML tags and attributes are
generated in lower case.
Fixing self closing tags - all HTML elements without closing
tags are properly closed. For example <br> is replaced by <br
/>.
Indentation - the HTML code of pages is organized into a
properly indented, easier to read format.
You can also enable fixing of XHTML errors for content entered
and saved in the system's WYSIWYG editors. This can be
configured globally by adding the CMSWYSIWYGFixXHTML key
into the /configuration/appSettings section of your application's web
.config file:

<add key="CMSWYSIWYGFixXHTML"
value="true" />

HTML 5 filter

The output filter provides a way to replace tag attributes that are
obsolete in HTML5. Such attributes are removed and the system
instead assigns CSS classes named in format <attribute
name>_<attribute value>. You need to define these classes in the
CSS stylesheet used by the website's pages.
The affected attributes are:
cellpadding
cellspacing
width
height
border
align
valign
For example:

<table cellpadding="2"
cellspacing="4">

is replaced by:

<table class="cellpadding_2
cellspacing_4">

Converting Tables to Div tags

You can use the output filter to automatically convert <table> elem
ents and their child <tr> and <td> tags to <div> elements with
appropriate CSS classes assigned (named according to the
replaced tag). You need to define these classes in the CSS
stylesheet used by the website's pages.
For example:

<table>
<tr><td>A</td><td>B</td></tr>
</table>

is replaced by:

<div class="table">
<div class="tr">
<div class="td">A</div>
<div class="td">B</div>
</div>
</div>

Tip: You can enable or disable table conversion for
specific blocks of HTML code by marking them with class
="_divs" or class="_nodivs" attributes. The filter then
allows you to convert only tables designated by the _divs
class, or all tables except for those marked with _nodivs.
See the descriptions of the output filter settings below.

Applying output filters to your website
By default, the system applies the output filters to all pages. If you do not wish to use the filters for specific sections of the website (for
example due to performance reasons), you can disable them through the Settings application in the System -> Output filter category.
Individual Excluded URLs fields are available for particular filter types.
You can disable output filters for all pages that start with a specific URL path by entering this path into the corresponding field
(without the ~ character and extension).
Multiple URL paths may be added, separated by semicolons (;).
Note: The settings only exclude specific URLs, not entire pages. For example, if you exclude the /Home URL path, but then access
the Home page through a different URL or alias (such as the website root configured to display the Home page), output filtering will
still be enabled.
Examples:
/ - disables the filter for the entire website.
/Products - disables filtering for the Products page under the website root and all other pages whose URL path starts with /Products
(e.g. child pages).
/Services;/News - excludes all pages whose URL path starts with /Services or /News.
/Company. - by adding the period character (".") after the URL path, you can exclude only one specific page, but not its child pages
(this does not work with extensionless URLs).
The following table describes all website settings available in the Output filter category:
General
Excluded output form filter URLs

Specifies the URLs of the pages that the system excludes from the
Form output filter.

Excluded resolve filter URLs

Specifies the URLs of the pages that the system excludes from the
URL resolving output filter.

XHTML filter
Excluded XHTML filter URLs

Specifies the URLs of the pages that the system excludes from all
functionality provided by the XHTML output filter.

Excluded XHTML attributes filter URLs

Specifies the URLs of the pages that the system excludes from the
Tag attribute XHTML filter.

Excluded XHTML JavaScript filter URLs

Specifies the URLs of the pages that the system excludes from the
JavaScript tag XHTML filter.

Excluded XHTML lower case filter URLs

Specifies the URLs of the pages that the system excludes from the
Lower case XHTML filter.

Excluded XHTML self close filter URLs

Specifies the URLs of the pages that the system excludes from the
Self closing tag XHTML filter.

Excluded HTML5 filter URLs

Specifies the URLs of the pages that the system excludes from the
HTML5 output filter.

Indent output HTML

Indicates if the system processes the HTML output of all pages into
a properly indented, easier to read format. The indentation applies
to all where the XHTML output filter is enabled.

Convert TABLE tags to DIV tags

Determines which tables the output filter converts to <div> element
s. Table conversion can be:
Disabled completely
Enabled for all tables except for those marked by the _nodivs
CSS class
Only enabled for tables designated through the _divs class

Enabling output filters for specific web parts
You can enable the output filters separately for the code generated by web parts. This allows you to filter the output of specific instances of
web parts, even if their page is excluded from the output filter via the website settings.
Note: The system always uses output filtering for web parts on pages that are not excluded through the website settings.
To access the output filter settings of web parts:
1.
2.
3.
4.

Open the Pages application.
Edit a page on the Design tab.
Configure (double-click) the web part.
Enable the Filter output HTML of web part property in the Output filter section.
This section of properties is available for all web parts.

5. Adjust the remaining properties in the Output filter section.
The configuration options correspond with the available types of output filters.

Configuring time zones
The Time zones application enables you to configure time zones for the physical location of your server, for particular websites and even for
particular users. This can be useful if your site has an international audience and you want the date and time displayed on your site to be
correct for users from across the world.
Before you can use this application, you must enable it by selecting the Enable time zones check-box in Settings -> System. See Settings System for additional options.
Time zones are currently supported in:
Pages, My desk, Events applications
Web parts of the Blogs, Forums, Message boards, Messaging and Smart search applications

Usage examples
A typical example of use is displaying the time of forum posts when you have a global community – while the server may be located in New
York (GMT -5:00), visitors coming from Paris (GMT +1:00) may see their new posts were added at 8am, while they would expect to see 2pm
according to their current time.
Another example is a website of a global company that runs on a server in New York, but contains content for a French office. In this case,
French visitors may wonder why the current time displayed by the server is 8am while it’s 2pm in Paris. That’s when you use the built-in
support for multiple time zones.

Time zones web parts
Web parts of the Blogs, Forums, Message boards, Messaging and Smart Search applications have the Time zones section in their web part
properties, where you can set the applied time zone. The section contains the following two properties:
Time zone

Specifies the type of time zone that the web part uses for its
content. The following types are available:
Inherit - inherits the time zone settings from the Page
placeholder web part that displays the page template
containing the web part (only applies to nested pages).
Server - uses the server time zone settings.
Web site - uses the website time zone settings.
User - uses the time zone settings of individual users.
Custom - uses the time zone selected in the Custom time
zone property.

Custom time zone

Assigns a custom time zone specifically for the content of the web
part. The web part uses the selected time zone regardless of the
time zone settings of the website or user viewing the page.

In the case of the Calendar and Event calendar web parts, these web part properties take no effect. Instead, you have to ensure the
displaying of the correct time zone in the used transformation, as described in Displaying correct time in your code.

Setting time zones for users
Each user can have their own time zone settings. Where applicable, these time zone settings are used instead of the website's default time
zone. A user's time zone can be set in the administration interface on the Users -> edit user -> Settings tab. On the tab, you can select a
time zone using the Time zone drop-down list.
Users can also select their time zone on the live site, if you place the My Account or My Profile web part on one of your pages. If they have
access to the administration interface, they can select their time zones in the My profile application using the Time zone drop-down list.

Managing time zones
You can manage time zones in the Time zones application, where you can see a list of defined time zones.

Creating a new time zone
In the following example, you will learn how to create a new time zone:
1. Open the Time zones application.
2. Click New time zone.
3. Fill in the details of the new time zone.
See Configuring daylight saving time below.
4. Click OK.
You have just created the time zone. Now if you switch back to the time zones list, you should see the new time zone present among the
records.

Time zone properties
When defining a new time zone or editing an existing one, you can set the following properties:
Time zone name

Display name of the time zone.

Code name

Code name of the time zone.

GMT difference

Difference in hours between the time zone and Greenwich Mean
Time.

Use daylight saving time

If checked, daylight saving time (DST) will be used for this time
zone. Values set in the DST start rule and DST end rule properties
will be used to define the DST interval.

DST starts at

Based on values set in DST start rule, this field will display the
exact time when the time advance will occur.

DST ends at

Based on values set in DST end rule, this field will display the
exact time when the time advance will be rolled back.

a. The amount of time advance and dates of change vary from country to country. Set the DST end rule as specified in the previous step. >= Day of the week and day number can be selected. You can set the daylight saving time separately for each of the time zones when creating a new time zone or when editing an existing one: 1. Object versioning is about automatically creating versions of objects (CSS stylesheets. the time advance will occur on the 15th of the selected month. the time advance will occur on the first Monday of the selected month. Configuring daylight saving time When creating a time zone or modifying an existing one. you can exactly define when the time advance should be carried out. Click OK to save the settings. 4. the time advance will occur on the last Monday before the 15th day of the selected month. If you select Monday and 15. . web part containers. Set Value as 0. For more information about DST. This allows you to compare versions or roll back objects to a previous version. <= Day of the week and day number can be selected. Condition Condition specifying the day that the change occurs on. day number or a combination of both. = Day number can be selected. etc. you can select day of the week.). If you are looking for versioning of content (pages). Use this value (usually 1) for the DST start rule and 0 for the DST end rule. select the month in which the change will be carried out using the Month drop-down list.wikipedia. LAST Day of the week can be selected. e-mail templates. 2. you may need to specify the daylight saving time (DST). Set the time when the change will occur on the specified date using the Time field.DST start rule & DST end rule Using these sets of properties. 3. Supported object types . Day Two fields – day of the week and day number – can be used based on the selected condition. This is a convention of setting clocks so that afternoons have more daylight and mornings have less of it. If you select Monday. refer to the Configuring and using page versioning chapter. Set the time difference between the standard time and DST in the Value field. see this article: http://en. Month Month in which the time advance occurs. Time Exact time of the time advance. Select the Use daylight saving time check-box. d. This value represents the difference from standard time in hours. If you select Monday and 15. the system creates and stores separate versions of objects when they are edited and saved.org/wiki/Daylight_saving_time. First. it is usually a one hour advance at the beginning of spring and the advance is rolled back in autumn. Based on the selected option. c. If you select Monday. If you select 15. Set the DST start rule for the current time zone. however. the time advance will occur on the last Monday of the selected month. b. FIRST Day of the week can be selected. the time advance will occur on the first Monday after the 15th day of the selected month. Working with object versioning When using object versioning. Value Number of hours that will be added to the current time when the time advance occurs. Specify on which day of the selected month the change will be carried out using the Condition drop-down list and the two D ay drop-down lists.

g. Settings Even though object versioning is enabled and functional by default. 4. ** Only custom queries and web part layouts are versioned — system queries and default web part layouts are not versioned. Open the Settings application. where you can view and manage the edited object's versions. . 1. you can find the exact location within the Kentico administration interface where you can edit objects of the given type.In the following table. If versioning is enabled for a particular object type. In the Editing interface column. you can find all object types that support object versioning. etc. Configure the available settings. when editing a site. the Versions tab appears in the interface. Select the Versioning & synchronization -> Object versioning category. we recommend configuring the related settings for your system. department. Object type Editing interface Alternative forms Forms -> edit a form -> Alternative forms -> edit an alternative form Page types -> edit a page type -> Alternative forms -> edit an alternative form Custom tables -> edit a custom table -> Alternative forms -> edit an alternative form CSS stylesheets Pages -> Properties -> General -> click Edit CSS stylesheets -> edit a stylesheet other interfaces containing the stylesheet selector (e.) Custom table definitions Custom tables -> edit a table Page type definitions Page types -> edit a page type E-mail templates E-mail templates -> edit a template Form definitions Forms -> edit a form Media files Media libraries -> edit a library -> select a file Newsletter issues Newsletters -> edit a newsletter -> Issues -> edit an issue Newsletter templates Newsletters -> Templates -> edit a template Page layouts * Page layouts -> edit a layout Page templates Page templates -> select a template Pages -> Design -> Open the page template menu ( hover over Edit template -> Template versions other interfaces that allow editing of page templates ) -> Queries ** Page types -> edit a page type -> Queries -> edit a query Custom tables -> edit a table -> Queries -> edit edit a query web part properties dialogs of web parts that have query properties Report graphs Reporting -> select a report -> General -> select a graph and click Edit Report tables Reporting -> select a report -> General -> select a table and click Edit Report values Reporting -> select a report -> General -> select a value and click Edit Report definitions Reporting -> select a report Transformations Page types -> edit a page type -> Transformations -> edit a transformation Custom tables -> edit a table -> Transformations -> edit a transformation web part properties dialogs of web parts that have transformation properties Web part containers Web part containers -> edit a container Web part layouts ** Web parts -> select a web part -> Layout -> edit a layout Pages -> Design -> Configure a web part -> Layout * Only shared page layouts are versioned — custom layouts are versioned as part of the data of the parent page template. 2. 3.

deletes all listed versions of the object. the latest version is promoted to a major version and the new version follows the new major numbering (i. If the time interval has not passed yet since the last save. queries). and click Template versions.returns the object to the given version. if there are any (for example alternative forms. Delete . the data is saved into the last version.3. -> Rollback with children . If the interval has passed. Here you can see and manage the versions that the system creates for the edited object. there are no versions on the tab initially. Rollback version . transformations.if the object has child objects. Click Save. you can manage the versions of the page template and page layout. you can access the shared layout's versions by hovering over Edit layout. the version at the top may not match the current status of the object.e. two versions are created: 1. When an object is edited and saved.deletes the version from the object's history. you can use this action to perform the rollback including the child objects.1).1 with the currently saved data. . .. If you disable object versioning when existing versions already exist for the object.4. If you create a new object. Using object versioning If object versioning is enabled. If you edit and save after the number of hours configured in the Promote to major version if older than (hours) setting. and clicking Shared layout versions. Make current version major . Destroy history . it is promoted to 3... the system checks the interval configured in the Save to last version if younger than (minutes) setting. If you edit an existing object that had been created before object versioning was enabled.0). To manage the page template's versions.1 version. See Viewing and comparing version data.opens a new window where you can compare the object's data between different versions. Managing page template and layout versions in Design mode When editing pages in the Pages application on the Design tab. the system automatically creates the initial 0. Managing versions on the Versions tab You can perform a number of actions when editing objects on the Versions tab.0 and the new one is numbered 3.. For templates that use shared page layouts. The rollback does NOT include the object's child objects. Expand the menu ( ) in the green page template header. The following Actions are available for each version: View version . the Versions tab is displayed in the editing interface of objects that support versioning. if the latest version is 2.3 is promoted to 3. latest 2. How versions are created and numbered The system creates and numbers object versions according to the following rules: The current version is always the one at the top of the list. When you edit the object and save the modifications.1).. The current version can also be promoted to a major version manually by clicking Make current version major above the Object history listing.. saving creates a new minor version (the version number is incremented by 0. hover over Edit template.0 with the original data and 1.manually promotes the current object version to a new major version (for example.

The options depend on the type of the object: Global objects without site bindings: Restore without site bindings .moves the object from the recycle bin back into the system (in the corresponding application). Standard users of the Kentico administration interface can only work with objects that they deleted Users with the Global administrator privilege level can manage objects removed by any user The following actions are available for each deleted object: View . Managing objects in the recycle bin To access deleted objects. use the selection boxes and selectors below the list. the dialog displays all data related to the given object. open the Recycle bin application and select the Objects tab. Restore to current site . . where you can view the data stored in the object's fields for the given version. Set Delete objects to recycle bin to either Versioned objects only. or All objects. Viewing and comparing version data If you click View version ( ) when managing an object's versions. Objects recycle bin You can configure the system to remove deleted objects to a recycle bin instead of deleting them permanently: 1. You can also compare the data with other versions.performs the standard restore action.. Restore . Click Save.restores the object and assigns it to the current website (the one that is using the domain in the current URL). Global objects with site bindings: Restore without site bindings . To perform operations for multiple deleted objects.permanently removes the object (cannot be restored).Clicking either of the items opens a dialog. a dialog opens..restores the object.performs the standard restore action. Open the Settings application. The following options are available: Compare to . Site objects (objects whose definition contains the SiteID column): Restore without site bindings .) to access additional options. 4. Restore to current site .opens a new window with the data of the deleted object. including child objects. 3.select the version that you want to compare with the viewed version.performs the standard restore action. Delete . Select the Versioning & synchronization -> Object versioning category. where you can manage the corresponding object versions (see Managing versions on the Versions tab for details).restores the object and assigns it to the current website (the one that is using the domain in the current URL).if checked. 2. Restore to current site . Display all data . Deleted objects that match the setting are now moved to the recycle bin. Click Other actions (. but does not assign it to any website.

Modules -> Edit module -> Classes -> Edit class -> Alternative forms Using the Custom registration form web part Alternative forms have no dedicated application in the administration interface.Creating alternative forms Alternative forms allow you to create different versions of existing forms. Additional topics: Code names of automatically used alternative forms . depending on the object type. only the Alternative forms tab available when editing one of the listed objects. Administration interface to replace the default forms for creating and editing entries using the Automatic ally used alternative forms.explains the usage of alternative forms as filters for displaying large numbers of records. which can be assigned to alternative forms. In the Pages application to replace the default forms for adding or editing pages (after clicking New or on the page's Form tab). The system uses such forms automatically for certain actions (typically creation of new items or editing of existing ones). Page types -> Edit page type -> Alternative forms Creating alternative forms for page types System objects Both on the live site and in the administration interface.you can choose to display an alternative form using the On-line form web part. The alternative forms can then be used instead of the default form in the system's administration interface or on the live site.provides a list of special code names.using for example the Contribution s list web part (see the Us er contributions chapter for more details). You can create multiple alternative forms for a single object and use each of them in a different situation. Object types for which you can create alternative forms Object Usage UI for creating alternative forms Example Forms Live site . . Displaying filters using alternative forms . Custom tables -> Edit custom table -> Alternative forms Creating alternative editing forms for custom tables Page types _______________ Live site . Forms -> Edit form -> Alternative forms Creating alternative forms for on-line forms Custom tables Administration interface to replace the default forms for creating and editing data entries.

system classes Displaying filters using alternative forms By creating an alternative form named filter for a form or a custom table. page types. In this case. you must also add the new fields to the form layout.Alternative form properties When creating new alternative forms or when editing existing alternative forms. Note: If the form uses a custom layout.g. Page types update Form used when editing an existing item. Forms. Code name A unique name that serves as an identifier for the alternative form. For example.config file: <add key="CMSDefaultListingFilterLimit" value="5" /> Filtering is possible based on all fields that store the following types of values: Text Boolean (Yes/No) Integer numbers Long integer numbers Decimal numbers Date & time The required fields need to be displayed in the alternative form and an appropriate form control must be assigned to each field. Make new fields hidden Enabling this property ensures that any new fields added to the main form are not visible in the alternative form by default (the system adds the fields to the alternative form with the Display attribute in the editing form flag set as false). system classes newculture Form used when creating a new culture version of a page. page types. Code names of automatically used alternative forms If you create an alternative form and give it one of the reserved code names listed below. The following table shows the reserved code names and the actions for which the particular forms are used: Alternative form code name Usage Supported by filter Filter displayed above a list of items. Custom tables. Forms. You can change this value by adding the following key into the a ppSettings section of your web. you can set the following properties: Display name The name shown to users in the administration interface. the form is used when pages of the type are created in the Pages application. A filter form control is available for each data type: Text filter Boolean filter Number filter Date & time filter . e. Forms. when selecting alternative forms. you can create filter used when a large number of records is displayed in: Forms -> Edit a form -> Recorded data Custom table data -> Edit a custom table Custom tables -> Edit a custom table -> Data The number of records required for the filter to be displayed is 25 by default. Custom tables insert Form used when creating a new item. it will not automatically display new fields even if this property is disabled. See Di splaying filters using alternative forms for more details. Custom tables. if you create an alternative form for a page type and give it the insert code name. the system automatically uses the alternative form when performing the corresponding action.

6. Configuring the filter fields After you create the form. Result Once you have the filter created. You can just inspect its setting instead of going through the example. The same procedure can be used for any other form or a custom table. the Contact Us form already has a pre-defined filter alternative form. Select the Make new fields hidden check box. In the default installation. 5. The first three are system fields and they are not needed in the filter. Click Delete ( ) so that you can go through the rest of this example and create your own filter from scratch. Click Save. You can try filtering based on various parameters. Adding the filter form 1. This ensures that these fields are also included in the filter. Click Save. 7. 5. In the Field appearance section. 2. you should see all fields defined for the form. Enter the Display name: Filter. Repeat the steps 3 and 4 for the LastName and Email fields. The code name is filled in automatically based on the display name. 3. Click Create new form. Open the Forms application. Edit ( ) the Contact Us form. so you can leave them as they are. return to the form's editing interface and select the Recorded data tab. There should already be a pre-defined filter form.FirstName. set the Form control to Text filter. In the listbox on the left. 4. 6. you need to modify the fields: 1. . 4. Switch to the Fields tab.Contact us form filter The following example demonstrate how to create a filter for the Contact Us form on the sample Corporate Site. Disable the Phone number and Message fields by unchecking the Display attribute in the editing form option and clicking Save i n both fields. 2. Switch to the Alternative forms tab. 3.Example . Select the fourth field .

(Optional) Install the Health monitoring Windows services 3. you can use external applications.config key to lower the filter limit accordingly. it is important to explain the following key in the appSettings section of the instance's web. Monitoring of some of the values requires database access. Therefore to see the filter. you can install a dedicated Windows service and let it handle monitoring of these values instead of the application. It does not perform the actual monitoring. To optimize performance in this case. you either need to create the required number of records.config file: . To start using health monitoring: 1. The feature only stores monitored values about the system in Windows performance counters.The default number of 25 records has to be present in the list in order for the filter to be displayed. Health monitoring Health monitoring enables website administrators to monitor and record load and performance of Kentico instances. For this purpose. or use the CMSDefaultListingFilterLimit web . Use an external application to monitor values (for example. Enable Health monitoring in Kentico 4. for example the built-in Performance monitor in Microsoft Windows. the Performance monitor) Application name web.config key Before getting to the counters. Register performance counters in Windows 2.

In general. It contains multiinstance counters. Performance counters definition XML In ~\CMS\App_Data\CMSModules\HealthMonitoring. the value is reversed in the category names so that website name is stated first and the IIS path after it." Type="NumberOfItems32" Enabled="True" OnlyGlobal="True" /> <Counter Key="pendingrequestspersecond" Name="Pending requests/sec" Description="The number of pending requests per second. In this case.config file automatically during installation.contains general counters monitoring the Kentico instance as a whole. you can find the counters. if the IIS path is Default Web Site/CMS. Kentico . the whole folder structure under ~\CMS\App_Data\CMSModules\ is also searched for other files with the .config key explained in the previous section. which means each of the counters can be added to the list of monitored counters just once.perfo rmancecountertype.the type of the counter. The value must be less than 60 characters long." Type="NumberOfItems32" Enabled="True" OnlyGlobal="True" PerSecond="True" /> . This should provide better orientation in the category list in Performance Monitor. the value is used to identify performance counters to which the monitored values about the instance are written.com/en-us/library/system. These counters are used only if the Enable site counters option is enabled in Settings -> System -> Health monitoring. all types are listed and explained at: http://msdn. . It contains singleinstance counters.xpc exte nsion when counters are registered.e. values from these instances may be written to the same counters. it is possible that multiple instances running on a single server may have identical values of the key (if the instances are installed into folders with the same names).. Type . If a counter is present in this category as well as in the Sites category.contains site specific counters monitoring particular websites running in the Kentico instance.Sites (<CMSApplicationName>) . i. In case of IIS installation.General (<CMSApplicationName>) . </Counters> Each counter element has the following attributes: Key . When performance counters are registered in Windows. the value of the key is used by Kentico Windows services to identify Kentico instances. For example. you need to ensure that the keys have different values. this file is accessed to get the list of counters to be registered. It contains definitions of both General and Site counters. the counters are registered as well. The other files can contain definitions of additional performance counters and when found.aspx Enabled . Registering performance counters There are three ways to register performance counters for a Kentico instance in Windows. the name of the target web project root folder is used. the path to the instance in IIS is used as the key's value.xpc file.indicates if the counter is included in the General category (true) or in both General and Sites categories (false).indicates if the counter is enabled.diagnostics. For IIS installations. This is a file in XML format which contains definitions of default performance counters for the respective instance of Kentico. Name .. In case of a Visual Studio web server installation.name of the counter displayed in Performance Monitor or another monitoring tool. you would have CMS/Default Web Site in the name of the category.xpc file: <?xml version="1. In case of Visual Studio web server installation. each of the counters can be added to the list of monitored counters multiple times — once for each website running in the instance.counter key used for identification.0" encoding="utf-8"?> <Counters> <Counter Key="allocatedmemory" Name="Allocated memory in MB" Description="The size of allocated memory in megabytes. Apart from this default file. OnlyGlobal . Otherwise. Performance counter categories Kentico performance counters are stored in two categories: Kentico . its value in this category is a sum of values of all site instances of the counter in the Sites category. The <CMSApplicationName> part of the category names is the value of the CMSApplicationName web.<add key="CMSApplicationName" value="Default Web Site/CMS" /> This key is added to the web. Specifically for Health monitoring. The following code is an extract from the counters.microsoft.

exe /webpath=<disk path to web project root> /createcounters To remove already existing performance counters.exe /webpath=<disk path to web project root> /deletecounters Registering performance counters in Windows registry Registration of performance counters is technically performed by adding specific keys to Windows registry. . select the Register performance counters for Health Monitoring check box. In the registry. Installing these services can optimize the monitoring performance.exe file with the following parameters: HealthMonitoringService.Registering counters during the installation In the Components step of the custom installer. execute the HealthMonitoringService. Navigate to the CMS\Bin folder of your Kentico project folder (typically C:\inetpub\wwwroot\Kentico\CMS\bin) 2.exe file from the Windows command line with the following parameters: HealthMonitoringService. Enable the Install Windows services for Scheduler and Health Monitoring option to install the Kentico Scheduler and Kentico Health Monitor services. The keys represent individual registered counter categories and have the same names as the respective registered counter categories. Registering and removing counters manually using the Windows service To register performance counters manually: 1. Execute the HealthMonitoringService. these keys are located in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services. The installer automatically registers the performance counters for the given instance of Kentico.

. 4. 3.exe). which is now running and ready to be used.exe" /LogToConsole=true /i The following table describes the used parameters: /webpath Path to the CMS folder of the Kentico instance for which you want to install the service. Execute InstallUtil. You have installed the Kentico Health Monitor service. Click Install. 5. Installing the Health monitoring Windows service using Kentico Service Manager The easiest way to install the Health monitoring Windows service is to use the Kentico Service Manager utility: 1. using the Windows service for their monitoring instead of the application itself can provide better performance. 3. Launch the Kentico Service Manager utility from the Kentico program files group in the Windows Start menu.0.NET folder containing InstallUtil. which unregisters the counters.exe (e.exe from the Windows command line with the following parameters: InstallUtil /webpath="C:\inetpub\wwwroot\Kentico\CMS" "c:\inetpub\wwwroot\Kentico\CMS\bin\HealthMonitoringService. 2.NET\Framework64\v4. You can also launch the KSM utility from Kentico Installation Manager using the Services button. As these three counters require database access to get their values. Click Start to start the service after it is installed. Installing the Health monitoring Windows service using the command line To install the Windows service from the command line. c:\Windows\Microsoft. You can uninstall the service at any time by clicking Uninstall in the Kentico Service Manager utility. This service is also useful for writing values to the Scheduled tasks in queue.When you delete the registry keys.30319\). Open the Windows command line (type cmd in the Start menu search box). which is a native part of the . E-mails in queue and Error e-mails in queue performance counters. Select the Kentico Health Monitor service.g.NET Framework: 1. Navigate to the . 2. Installing the Health monitoring Windows service Kentico provides a dedicated Windows service for Health monitoring purposes called Kentico Health Monitor. you also remove the respective counter categories. You can use this service to additionally register performance counters. you need to use Installer Tool (InstallUtil. Choose the Kentico instance where you want to install the service (select the CMS folder).

g. If disabled. 4. 6.NET folder containing InstallUtil.second parameter Path to the HealthMonitoringService. You can also adjust additional settings related to performance counters: Setting Description Enable health monitoring Indicates if monitored values are written to both General and Site performance counters related to this instance of Kentico. Select the Kentico Health Monitoring (<CMSApplicationName web.exe file in the Bin folder inside the application (typically c:\inetpub\wwwroot\Kentico\CM S\bin\HealthMonitoringService.NET\Framework64\v4.0. Navigate to the . In this periodic interval. /LogToConsole Optional parameter that determines whether the installation progress is logged to the console. c:\Windows\Microsoft.exe (e. select the System -> Health monitoring category.exe from Windows command line with the following parameters: InstallUtil /webpath="C:\inetpub\wwwroot\Kentico\CMS" "c:\inetpub\wwwroot\Kentico\CMS\bin\HealthMonitoringService. the Installer Tool performs installation of the Windows service. Execute InstallUtil. Open the Services management console (type services. you need to enable Health monitoring in the Kentico settings: In the Settings application. the Health monitoring Windows service for the Kentico instance specified by the /webpath parameter is uninstalled. . and check the Enable health monitoring setting. Open the Windows command line (type cmd in the Start menu search box). /i If this parameter is used.config key value>) service. no values are written to any of these performance counters.msc into the Start menu search box).exe). Click the Start Service button on the top toolbar.exe" /LogToConsole=true /u After executing this command. Application monitoring interval Time interval (in seconds). 5.30319\). 2. the application reads monitored values and writes them to performance counters. Uninstalling the Health monitoring Windows service using the command line 1. Enabling health monitoring Once you have Kentico performance counters registered in Windows. 3.

To monitor values of Kentico counters using the Performance monitor: 1. 3. 2. Service monitoring interval Time interval (in seconds). If you are using the Health Monitoring Windows service and change this value. you can start monitoring values written to the counters. Click the Add. which is a native part of Windows. only the default % Processor Time counter is monitored initially. .Use external service Indicates if the external Windows service is used to read and write monitored values to the Scheduled tasks in queue. values are written to general counters only. In this periodic interval. Select Monitoring Tools -> Performance monitor in the navigation tree. Enable site counters Indicates if values are written to site specific performance counters. the external Windows service reads monitored values and writes them to performance counters. These counters require database access to get their values. You can use several applications for this purpose. so using the external service may optimize your application's performance. As you can see. but this page describes how to use the Performance monitor. E-mails in queue and Error e-mails in queue performance counters. If disabled. The system launches the Performance monitor. Monitoring using the Performance monitor When you have registered the performance counters for your instance of Kentico in Windows and you have enabled Health monitoring settings in the Kentico administration interface. it is necessary to restart the Windows service in order for the new value to be used. Type perfmon in Windows Start menu search box and press Enter.

choose <Local computer>. Click OK. Click Add >>. From the Select counters from computer list.4. 9. Select the Kentico . 7. Select Kentico .Sites (<IIS path>/<IIS website>). Added counters will be added to the Added counters list on the right. 8. 6. You can switch between different ways how monitored values are displayed using the Graph type dropdown list.General (<IIS path>/<IIS website>). Click Add >>. Back in the monitoring UI you can now see that the Performance monitor displays the values in counters in the graph. you will see a list of all counter categories currently registered in Windows. In the section below. . 5. The values reflect the real activity of the Kentico instance.

Application File downloads/sec Global and Sites The number of files downloaded per second. Log in to the Kentico administration interface.xpc file and registered in Windows by default: Counter name Category Description Values written by Allocated memory in MB Global The size of memory allocated by the application in Megabytes. Application or Windows service* Error e-mails in queue Global and Sites The number of e-mails in the E-mail queue whose sending failed. Application E-mails in queue Global and Sites The number of e-mails in the E-mail queue. 2.Clearing counter values 1. Application Cache removed items/sec Global The number of items removed from cache per second. Open the System application. click Clear performance counters. 3. Application Non-page requests/sec Global The number of non-page requests per second. On the General tab. Application Cache expired items/sec Global The number of expired cache items per second.default performance counters The following table lists the default counters that are pre-defined in the counters. This action clears values stored in all counters registered for the current Kentico instance. Application or Windows service* Errors Global The number of errors in event log since last application restart. Application Cache underused items/sec Global The number of underused cache items per second. Application Content page views/sec Global and Sites The number of content pages viewed per second. Application . Reference .

On-line users – total Global and Sites The total number of on-line users. 4. By default. Application Pending requests/sec Global The number of pending page requests per second. IIS must be configured to handle . use one of the following web parts: Cookie law consent Simple cookie law consent Both web parts are implemented by the ~/CMSWebParts/General/CookieLaw. Switch to the Design tab.gov. Application Important: For values to be written to this counter.txt page requests per second. 3. Available cookie consent web parts To display a text message and buttons asking visitors for consent to store cookies in their browsers. Kentico cookies are separated into several cookie levels according to their importance in the system. Application Scheduled tasks running Global The number of running scheduled tasks. Application Warnings Global The number of warnings in event log since the last application restart. Application Robots. ---------------- Quickly including cookie consent on your website 1. You can find more information at http://www. Application Scheduled tasks in queue Global The number of scheduled tasks in the queue. The "simple" variant is only a preconfigured version of the same web part. Open the Pages application. Application * The Windows service is used to write values to these counters only if it is installed and if the Use external service option is enabled in S ettings -> System -> Health monitoring.ascx control. Add the Simple cookie law consent web part onto the page. Cookie law consent This web part offers three cookie levels to choose from: . Application Pages not found/sec Global and Sites The number of not found pages (404 error) per second. so you need to update your site's CSS stylesheet to get the required look and feel. which requires websites to ask visitors for consent to use cookies. Kentico provides functionality that helps you comply with the law. Application or Windows service* System page views/sec Global The number of system pages viewed per second.uk/. Select the page where you want to display the consent message.txt views/sec Global and Sites The number of robots. See Custom and extensionless URLs. Application Running threads Global The number of running threads. Adding cookie law consent to web pages The Cookie law is in effect in some European countries. Application On-line users – anonymous Global and Sites The number of anonymous on-line users.ico. Running SQL queries Global The number of running SQL queries.txt ext ensions. the web parts are not styled. 2. Application On-line users – authenticated Global and Sites The number of authenticated on-line users. You can also define custom counters to monitor other system values. There are three main levels designed to comply with the law regulations.

This should give you enough options to configure the web part. This includes authentication. votes in polls etc. (Use the system settings) option sets the default user cookie level to the settings defined for the web. The numbers associated with each cookie level are integer constants. Live site Once you place the web part into your website. Visitor (200) All cookies that are not assigned to an explicit level (which also includes your custom cookies if you use any) are considered to be cookies identifying the visitor. user tracking cookies. The levels "None" and "All" have an absolute value of 1000 to provide enough space for future updates or custom levels. Three states with their own settings are defined depending on the selected level: When the current level is below the compared level (Below level behavior settings). actions to switch to the remaining levels are offered. For simplicity. Simple cookie law consent This is a preconfigured version of the previous web part. Editor. System. you might not see the message after switching to the live site. that allows all cookies. including the cookie that stores the cookie level selected for users. and once allowed. and CookieLevel cookie which remembers the cookie level selected by the user. etc. It defines a level to which the user's current cookie level is compared. From the site visitor's perspective this means "Allow all cookies now and in the future". shopping cart. Editor (100) Cookies which are needed for the administration interface to work correctly. which are not really needed. hide the web part. no matter what their level is. When the current level exactly matches the compared level (Exact level behavior settings). For example used to track the selected view mode. The Default user cookie level property sets the enforced cookie level before the user makes a choice. request allowing. This makes sense only if you want to disable absolutely every cookie by default. The following are the default levels available in the cookie API (CMS. this means "Allow only cookies that I may need. Cookie levels Kentico classifies cookies into several levels according to their purpose. The preset behavior is: Disable cookies by default. Visitor. which represent the choices offered to visitors when asking for consent to use cookies: Simplified cookie level Corresponding API level Description . but do not track me". You may customize the text messages. Essential. To check whether your configuration of the cookie web part is correct. remember tabs and sliders. which allow you to further customize the levels or add custom levels.Helpers. All (1000) This is a system level. The Preview cookie level property allows you to simulate the user cookie level in Edit and Preview mode. All as specified on the Cookie levels page). there are 3 main levels.CookieLevel class): Cookie level Description None (-1000) Absolutely no cookies are allowed. Or try the website in a different browser or computer. available actions as well as button texts. The Compare current cookie level to property is a basis for other settings in the web part. In terms of the end user and the Cookie law. From the visitor's perspective. but are useful for the site owner if using EMS. The levels allow you to set cookie levels for users. System (-100) This level allows the session cookie (due to security on postback). log out of the administration interface and clear all cookies in your browser. The reason is that all users who access the Kentico administration interface have cookies enabled by default and the cookies are already stored in the browser you are working with.config CMSDefaultCookieLevel key (available values are None. Essential (0) Cookies which are required for all website functionality needed by site visitors. When the current level is above the compared level (Above level behavior setings). this means "Cookies are not allowed". i.e.No cookies Only essential cookies All cookies On each level.

These three levels are also used in the provided cookie web parts. and lists the level of each cookie: Cookie name Level Description CMSCookieLevel System Specifies which cookies are allowed by the visitor. Webauthtoken Essential Live ID authentication cookie. but no tracking cookies. cookies are automatically enabled to provide full editing functionality. Design. Only essential cookies Essential Enables all cookies required for website functionality. All cookies All Enables all cookies used on the website. CMSPreferredCulture Essential Stores the visitor's preferred content culture . DisplayContentInUIElementDesignMode Editor Remembers the user's setting of the Web part content check box on the Design tab of UI elements.Kentico cookies The following table describes the cookies used in Kentico. CMSVotedPolls Essential Keeps a list of polls where the user voted to prevent repeated votes. so there is no need for cookie consent. CMSViewMode Editor Stores the user's current view mode (Edit. ASP.NET_SessionId System Keeps the user session ID for security reasons. Reference . CMSUserWords Editor User's custom word dictionary kept by the spell checker. CMSForumPostAnswer Essential Keeps a list of Question-Answer forum post s in which the user user voted for an answer to prevent repeated votes. CMSCurrentTheme Essential Stores the name of the current visual theme to provide proper design to the dialog windows. Preview. etc. Automatic cookie consent for administrators and editors If a user logs in to the administration interface. CMSRatedDocuments Essential Keeps a list of pages that the user rated to prevent repeated votes.No cookies System Enables the minimum cookies required for the website to work. FormState Editor Form state flag to allow restoration of failed requests. .). CMSShowDesktopVersion Essential Indicates that the visitor has switched to the desktop (default) version of the website from a specific device profile. and remembers whether the user allows cookies or not.ASPXFORMSAUTH Essential Stores the user's encrypted authentication ticket when using forms authentication. We expect that loggging in to the administration interface identifies a user as staff. . DisplayContentInDesignMode Editor Remembers the user's setting of the Web part content checkbox on the Design tab (for example in the Pages application). CMSPreferredUICulture Editor Stores the preferred UI culture of the user. CMSMobileRedirected Essential Indicates if the visitor has been redirected to the mobile version of the website by the Mobile device redirection web part.

CMSMacroDesignerTab

Editor

Remembers the last active tab of the Edit
macro condition dialog.

CMSSplitMode

Editor

Remembers the state of the language
version split-view mode when editing
multilingual websites.

CMSPreviewState

Editor

Stores the user's latest page design
preview preferences.

CMSPropertyTab

Editor

Remembers the last active tab of the
Properties section in the Pages application.

CMSViewTab

Editor

Remembers the last active tab of the View
section in the Preview mode of the Pages
application.

CMSValidationTab

Editor

Remembers the last active tab of the
Validation section in the Preview mode of
the Pages application.

CMSEdVariantSliderPositions<templateid>

Editor

Remembers the position of the variant
slider when defining variants for MVT or Co
ntent personalization.

CMSWebPartToolbarCategory

Editor

Stores the selected web part category on
the web part toolbar.

CMSWebPartToolbarMinimized

Editor

Remembers if the user minimized the web
part toolbar on the Design tab.

CMSCurrentDeviceProfileName

Editor

Stores the selected device profile when
editing pages.

CMSCurrentDeviceProfileRotate

Editor

Remembers whether the device preview
uses the landscape or portrait view.

CMSUniGraph

Editor

Stores the user's Snap to grid preference in
the advanced workflow and marketing
automation designer.

CMSSessionToken

Editor

Stores the token used by the web service
that provides the advanced workflow and m
arketing automation designer.

ABSelectorState<ABtestname>

Editor

Stores the state of the selectors on AB test
overview page.

VisitorStatus

Visitor

Indicates if the visitor is new or returning.
Used for tracking the visitors statistic in We
b analytics.

Campaign

Visitor

Stores the web analytics Campaign assign
ed to the visitor.

TrackedCampaigns

Visitor

Stores all the web analytics Campaigns,
which should be tracked within a JavaScript
snippet.

UrlReferrer

Visitor

Stores the URL referrer from which the user
arrives on the website.

CurrentContact

Visitor

Stores the GUID of the contact related to
the current site visitor. Used to track
activities on the website.

CMSAB<ABtestname>

Visitor

Used to track conversions for the test and
maintain consistent page content for the
visitor.Stores the name of the page variant
assigned to the visitor, the list of performed
conversions and information whether visitor
is included in A/B testing specified by an A/
B test.

CMSMVT<mvtestname>

Visitor

Stores the combination of variants assigned
to the visitor by an MVT test. Used to track
conversions for the test and maintain
consistent page content for the visitor.

CMSNoTestMVT<templateid>

Visitor

Stores the currently selected MVT
combination for editors in the administration
interface.

CMSShoppingCart

Visitor

Stores a reference to the user's active
shopping cart.

CMSBodyClass

Visitor

Body element class to provide accessibility
standards.

CMSEd<GUID>Current

Visitor

Stores the current step of Wizard layout we
b parts.

ChatLoggedInToken

Visitor

Stores the login state for the Chat applicati
on (indicates if the user is in the online
state).

ChatSupportLoggedInToken

Visitor

Indicates if the user is logged in to the
support chat.

<Window name>_<Group ID>_roomID

Visitor

Stores bindings between groups of chat
web parts and chat rooms (for a specific
window or tab).

chat_autoinitchat_displayed_<GUID>

Visitor

Remembers if the Automatically initiated
chat web part was shown to the user
(prevents multiple chat initiation
messages).

chat_kick_roomid_<room ID>

Visitor

Indicates that the user was kicked from the
specified chat room (and is not allowed to
return).

StrandsSBS_*

Visitor

Used by the Strands Recommender solely
for its own purposes. The cookies are
managed on the Strands side.

CMSStrandsTrackEvent_*

Visitor

Stores persistent HTTP context after a
page is reloaded. Used for tracking of
shopping cart events.

__openid_selector_*

Visitor

Stores OpenId user identification for
authentication purposes.

Third party

Cookie level

Notes

Social media

All (by default)

Social media integration web parts use the
corresponding social media's cookies.

Third party cookies

If social media web parts are not displayed
on your pages, lower the default social
media cookie level using this web.config
key.

Example Settings social
media cookie
level to "Visitor"
<add
key="CMSSocialMediaC
ookieLevel"
value="200" />

CKEditor

All

jQuery UI Layout

All

Step carousel viewer

All

51D

All

Used when the system is configured for 51
degrees.mobi mobile device detection.

Banning IP addresses
The Banned IPs functionality is useful when you want to prevent users with certain IP addresses from accessing or using your website in a
certain way. This typically happens when a user posts offensive material on a website (e.g. on a forum), harasses site members or behaves
in some other unwanted way.
IP banning can also be used to restrict access to your websites from certain areas of the world. These bans can be set either for individual
websites or globally for all websites in the system.

Enabling Banned IPs
To enable this functionality, select the Enable banned IPs check-box in Settings -> Security & Membership -> Protection.
Users attempting to perform an action from an IP address that is banned will get a page with a message displayed in their browsers (the
HTTP response code of the page will be 403.6). The default banned IPs redirect page can be found at ~/CMSMessages/BannedIP.aspx. You
can create your own page and set its URL using the Redirect banned IPs to URL setting.

Banning IP addresses
1. Open the Banned IPs application
2. Click New banned IP.
3. Enter the required details:
New banned IP settings...
IP Address

IP address to be banned.
The asterisk ( * ) wildcard can be used as a substitute for
any number in the IP address, substituting for all values from
0 to 255.
Example: 192.168.1.*

Ban type

Type of the ban. The following types are available:
Access to the website - users cannot access the site
from the entered address at all.
Login - users cannot log in from the entered address.
Registration - users cannot register from the entered
address.
All user actions - users can enter the site from this IP,
but they are not allowed to register or log in, and they
are not allowed to add any content to the site (e.g., blog
comments, board messages, etc.).

Enabled

If unchecked, the ban takes no effect.

Ban Reason

Text description of why the IP was banned.

Ban IP address

If selected, this IP address will be banned.

Allow IP address for this site if the IP address is banned
globally

If selected, this IP address will be allowed for the selected
site even if it is banned globally.

Allow site to override the ban

If checked, this ban can be overridden by bans set for
particular sites; can be set only for global bans.

4. Click Save.
Now if you go back to the list of banned IPs, you should see the newly created record present in the list.

Finding users' IP addresses
If you wish to find the IP address of a user responsible for a certain event:
1. Open the Event log application
2. Find the event you are interested in.
The IP address of the user who caused the event has its own column in the displayed table.
For example, if you want to find a user who often uses Bad words, enter BADWORD into the Event code field of the event log filter and
make sure Contains is selected. This displays a list of all Bad word violations and all relevant information including user names and their IP
addresses.
To find the IP address used by a specific user when they last logged on:
1. Open the Users application.
2. Edit the user whose IP address you wish to find.
You can find it on the General tab in the Last logon information field.
This can be useful if you get multiple abuse reports about some users and want to quickly find their IP address.

Configuring countries
The Countries application allows you to configure a list of countries, which is used in various places throughout the system. The countries
defined in this list are offered in forms, where the Country selector form control is used (for example in Contact management). Also, the list is
used for defining countries from which the customers can order products in an on-line store.

Creating new countries
Click New country to define a new country. The following properties are available when creating or editing a country object:
Country display name

The name of the country displayed to the users of your website.

Country code name

The string identifier of the country object used by developers in the
code. Unless there is a reason to set a particular value, you can
leave the default (automatic) option, and the system generates an
appropriate code name.

Country 2-letter code

Can be used to enter the country's two-letter country code.

Country 3-letter code

Can be used to enter the country's three-letter country code.

Working with system reports
The Reporting application allows you to create internal reports to watch the activity in the Kentico system and on websites, such as
recently created pages, expired pages, website visits, user registration etc.
The application gathers data from the database by using SQL queries and displays the results in highly customizable reports including tables
and graphs.

Creating reports
To watch the activity in the system and on websites, you need to create reports. Then you can add components to the report to display the
collected data, such as graphs, tables and values.
1.
2.
3.
4.
5.

Open the Reporting application.
Select a category in the tree.
Click New report.
Type in the Report display name.
Click Save.
The General tab of the report editing interface opens.
General tab properties
Report display name

Sets the name of the report displayed in the
administration interface.

Report code name

A unique name that serves as an identifier of the report,
for example in the API or URLs.

Report category

Shows the category under which the report belongs. You
can move the report to a different category by selecting
one from the drop-down.

1. 2. follow the instructions given in Working with resource strings. You can override this value for individual components by editing their details. CSV or XML format. To retrieve and display information from the Kentico database. . You can check the Inherit box to load the value from the Default report connection string setting configured in Settings -> Security & Membership. The (default) option represents the CMS ConnectionString added by the application's initial database installer. Define the Layout of the report using the WYSIWYG editor. Subscribing to specific components is only possible if both settings are enabled. 6. Define the properties of the new table: Report table properties Default Display name The name of the table shown in the user interface. macro expressions are supported in the report layout. Creating tables in reports Tables allow you to retrieve data from the Kentico database using an SQL query.Connection string Sets the database connection string used by the report's components (graphs. In the Reporting application. which opens a menu with possible export actions. You can view the output of the report on the View tab. The system retrieves the list of connection strings from the <connectionStrings> section of the application's web. add the following objects into the report's layout: Tables Graphs HTML graphs Values Additionally. You can use reporting connection strings for the following scenarios: Retrieving data from a Separated on-line marketing database Restricting the database-level permissions of reporting queries via a connection string with a limited database user Allow public users to see this report Indicates if the report should be visible by public users if it is published on the website using a reporting web part. tables or values). Localizing strings in reports If you need to create a single report in multiple languages. users who view the table are able to export the displayed data to external files using the Microsoft Excel (XLSX). 3. users with the Subscribe permission for the R eporting module are allowed to subscribe to the report a nd its components (graphs. tables and values) when loading data. Enable subscription If enabled. edit a report on the General tab. This setting is also available when configuring the details of individual components.config file. Enable export If enabled. Only users who have the Set connection string permis sion for the Reporting module are allowed to change this property's value. Code name Name used in your code. The data export feature may be accessed by rightclicking the table in the report. Click New in the Tables section below the layout editor.

Skin Skin ID ID of the . 7. it is also necessary to have the Enable subscription box checked on the General tab of the given report. 6. Select the defined table from the list in the Tables section.config file.NET skin (stored in the . The paging can be configured by the two properties below. Only users who have the Set connection string permission for the Reporting module are allowed to change this value. No record text Text to be displayed if the query doesn't return any data. The (default) option represents the CMSConnectionString ad ded by the application's initial database installer. Paging mode Type of paging controls displayed below the table. Place the cursor in the layout editor where you want to put the table. The system loads the list of connection strings from the <con nectionStrings> section of the application's web.displays page numbers leading to the corresponding pages Previous-next-first-last buttons . users will be able to subscribe to the currently edited report table. Tables are entered into the report layout editor as an expression in the following format: %%control:ReportTable?<report code name>. Click Save. last. Is stored procedure Indicates if the query is a stored procedure or not. .Enable subscription If enabled. The following options are available: Previous-next buttons . You can check the Inherit box to load the Connection string value set for the parent report. To allow subscriptions. 5. Page size Number of table rows per page.skin files in ~/AppThemes/ <theme name>) which will be used for the table. Query Query Here you can add the SQL query used to retrieve data to be displayed by the table. Paging Enable paging If enabled. Click Insert. Connection string Sets the database connection string used by the table's query. Click Save & Close. previous and next page Page numbers-first-last buttons .displays buttons leading to the first.displays page numbers leading to the corresponding pages and buttons leading to the first and last page 4.displays buttons leading to the previous and next page Page numbers .<table code name>%%. paging will be enabled when the report table is displayed. 8.

users will be able to subscribe to the currently edited report graph. Enable subscription If enabled. you can use the following syntax in the query: SELECT PageTemplateDisplayName AS [Template Name]. Table column names The table column names use the same names as the column names from the returned data set.. it is also necessary to have the Enable subscription box checked on the General tab of the given report. 1. which opens a context menu with possible export actions. . The data export feature may be accessed by rightclicking the graph in the report. 3. edit a report on the General tab. 2. Creating graphs in reports Graphs allow you to retrieve data from the Kentico database and display it in various types of visual formats. . you can use the View_CMS_Tree_Joined table that returns published versions of all pages. If you need to use user friendly names. For information about pages. Code name Code name of the graph. the other columns are used for values. Is stored procedure Indicates if the specified query is a stored procedure. Define the properties of the new graph: Report graph properties: Default Display name Display name of the graph shown in the user interface. Enable export If enabled. users who view the graph are able to export the displayed data to external files using the Microsoft Excel (XLSX). In the Reporting application.. To allow subscriptions. CSV or XML format. Click New in the Graphs section below the layout editor. Query Query Database query that extracts the data that will be displayed in the graph. It must return at least two columns: first one for categories.Writing queries for tables The queries you write for tables are standard SQL queries that pull data from the Kentico database.

accepts only one column for values. accepts multiple values and displays them next to each other. Chart type Graph type The following graph types are available: Bar chart .config file.line graph. Pie chart .bar graph. Only users who have the Set connection string permission for the Reporting module are allowed to change this value.Connection string Sets the database connection string used by the graph's query. . accepts multiple values and displays them on top of each other.bar graph.pie graph. accepts multiple values and displays them as separate lines. You can check the Inherit box to load the Connection string value set for the parent report. Line chart . No record text Text to be displayed if the query doesn't return any data. The (default) option represents the CMSConnectionString ad ded by the application's initial database installer. Bar stacked chart . The system loads the list of connection strings from the <con nectionStrings> section of the application's web.

uses straight lines to connect values SpLine .uses cylinders Bar stacked chart: Bar .uses rectangular column bars Cylinder .uses cylinders Area .uses smooth curved lines .Drawing style The following chart styles are available: Bar chart: Bar .uses a circular chart with a blank center Line chart: Line .uses a standard circular chart divided into sectors Doughnut .uses rectangular bars Cylinder .uses a line chart with the space under the lines filled with the respective color Pie Chart: Pie .

Only available for Bar charts displayed in 3D. Doughnut radius Determines the width of Doughnut style Pie charts. Title position Determines the position of the chart title. Title Title Title of the chart. Legend inside If enabled. 100% stacked If enabled. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. Border style Determines the style of the legend border. Accepts values from -180 to 180. This ensures that pie charts remain legible. Border color Determines the border color of the legend. charts are displayed in 3D. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. Drawing design Determines the aesthetic design of Pie charts. Orientation Determines if bars are displayed horizontally or vertically.Overlay If enabled. Position Determines the position of the legend in the chart. Only available if Show as 3D is enabled. Rotate X Rotates the chart around its X axis. Rotate Y Rotates the chart around its Y axis. Show as 3D If enabled. Collect pie slices Items that represent a smaller percentage of the Pie chart th an the value entered here will be added together and displayed as a single item labeled Others. Only available if Show as 3D is enabled. the legend is displayed inside the chart area. Not available for Pie charts. charts with multiple values display them behind each other with the lower values in the front. Show Grid Shows a thin dotted line grid in the graph chart. Border size Determines the size of the legend border. Accepts values from -90 to 90. Only available for Bar stacked charts. Label style Determines the style of 'pie piece' descriptions for Pie charts . Title font Determines font properties of the chart title. . Legend Background color Determines the background color of the legend. values are displayed as a percentage of their category's column. Only available for Pie charts with the Doughnut drawing style. Title color Determines the color of the chart title. Larger numbers decrease the size of the center. even if there are many items with very small values. Only available for Bar and Bar stacked charts with the Bar drawing style. Width Determines the width of the chart image. Height Determines the height of the chart image. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used.

Accepts values from -90 to 90. Setting this parameter to 90 causes upright descriptions. Only used by Line charts and Bar Stacked charts with the Area drawing style. It also cannot be used for Pie charts.hh:mm} would specify a date and time format like: 2010 . any custom formatting can be defined using expressions enclosed in curly brackets. For example. Examples: {Item #} . X axis angle Determines the declination angle of X axis descriptions. otherwise they are connected in the order they have in the returned dataset. X axis interval Sets the interval between X axis descriptions. X-axis X axis title Title of the horizontal axis in the chart. Ite m 2 etc. values are connected in the order they appear in on the X axis. X axis format Can be used to specify the format of item descriptions on the X axis that are in numerical or datetime format. Y-axis Y axis title Title of the vertical axis in the chart. Use X axis sorting If enabled. Numeric formatting: Numbers can be formatted using . Legend title Sets the text caption of the legend.19 . i. {0. In addition. and the legend value description would automatically contain the name of the currently displayed campaign.e. {%CampaignName%} could be entered into this field.Fixed legend Allows a custom description to be set for the value in the legend that will be used instead of the name of the source column. Title color Determines the color of the X axis title.numeric X axis descriptions will be displayed with precision of two decimal places.X axis descriptions will be displayed as Item 1. {yyyy MM .dd .12:30 Title font Determines font properties of the X axis title.08 . Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. Position Determines the position of the X axis title. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. Title color Determines the color of the Y axis title. Axis label font Determines font properties of X axis descriptions. This field is only usable for charts that display one type of series. if the report has a parameter named Campaign Name that allows users to display the statistics of a selected marketing campaign.NET Standard date and time format specifiers without quotes. Date and time formatting: The format can be set using singleletter .NET Custom numeric format strings enclosed in curly brackets. It is possible to enter static text or use a macro that resolves into the currently selected value of a report parameter in format {%<parameter name>%}. each item has a single value. For example. .00} .

X axis settings are used for the Title font. Series Primary background color Determines the primary color of series items in the chart. . Not available for Line charts. Accepts values from -90 to 90. Not available for Li ne charts. Not available for Line charts. values are displayed above series items. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. Display item value If enabled. Border size Determines the border size for series items in the chart. Axis label font Determines font properties of Y axis descriptions. Border style Determines the border style for series items in the chart. Not available for Li ne charts. Not used when displayed in 3D. Title font Determines font properties of the Y axis title. The same formatting options can be used as in the X axis format field described above. Border color Determines the border color for series items in the chart. Gradient Gradient of the colors of the series items in the chart. Positi on and Axis label font properties. Y axis format Can be used to specify the format of value descriptions on the Y axis that are in numerical or date-time format. Transitions from Primary to Secondary background colors .Y axis angle Determines the declination angle of Y axis descriptions. Position Determines the position of the Y axis title. Setting this parameter to 90 causes upright descriptions. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. Not available for Line charts. Use X axis settings If enabled. Secondary background color Determines the secondary color of series items in the chart. Not available for Line charts.

Item value format Sets the format of the text displaying the values of series items in the chart. #VALY . the type of the value. the displayed format can be modified by adding the following parameters after the keyword: {P} . 3 and 9. . For example #VALY{F2} displays Y axis values with a floating point and a precision of 2 decimal places.e. such as for example: #VALX . Line color Determines the line color used in Line charts.displays the current value of the Y axis. This overrides the Display item value pro perty. {C} . this is the default parameter. please be aware that this does not convert the value.displays the current value of the X axis. {E} . The number of digits after the decimal point can be specified within the curly brackets. starting from 0. it is necessary to set the Chart Area -> Scale max property to at least 100 to ensure that all types of data are displayed correctly. #INDEX . Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. If the current value is numerical. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used.displays a number determined by the order of the series item on the X axis. they would be converted to 25 and 75 respectively. graphs with multiple types of series (several values per item) will convert item values into a percentage out of the sum of all values for that item. {F} .displays the number as a percentage. Line size Determines the line size used in Line charts. Item link Causes the series items in the chart to serve as links to the specified URL when clicked. #SER . For example. Secondary background color Determines the secondary background color of the chart area. When using this setting. This field supports both Kentico macro expressions and standard MS chart keywords as described in the Item value format pr operty. Symbols Determines the symbols used for values in Line charts. Not available for Pie charts. Item tooltip Determines the content and format of the tooltip that is displayed when hovering over a series item in the chart. Chart area Primary background color Determines the primary background color of the chart area. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used.displays the current X axis label. Standard MS chart keywords can be placed into this field.displays the name of the current series.displays the number in exponential format.displays the number as a monetary amount in the currency of the current language culture. Line style Determines the style used in Line charts. Values as percent If checked. if an item has two values. Not used when displayed in 3D. specified in the browser. since these already display one type of value as a percentage. #AXISLABEL .displays the number with a floating point. The same macro expressions and keywords as described in the Item tooltip property can be used here as well. i. it only influences the format.

8. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. Click Insert. 5. Not used by Pie charts. Not used by Pie charts. the vertical axis is reversed. Gradient Gradient of the plot area background colors. Not used by Pie charts. Graphs are entered into the report layout editor as an expression in the following format: %%control:ReportGraph?<report code name>. Border size Determines the size of the chart area border. Border style Determines the style of the plot area border. Scale min Sets the minimum Y axis value that is required for an X axis category to be displayed. Transitions from Primary to Secondary background colors. Border style Determines the style of the chart area border. Reverse Y axis If enabled. Plot area 4. . Border size Determines the size of the plot area border. Click Save & Close. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. Not used by Pie charts. Secondary background color Determines the secondary background color of the plot area. Place the cursor in the layout editor where you want to put the graph. Transitions from Primary to Secondary background colors. Primary background color Determines the primary background color of the plot area. Ten powers If large values are present in the chart. 7. 6.<graph code name>%%. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. Select the defined graph from the list in the Graphs section. Accepts standard HTML color names and hexadecimal color codes or the color selector can be used. Scale max Sets the maximum value that is displayed on the Y axis. they are divided by appropriate ten powers and the division ratio is displayed with the y-axis title.Gradient Gradient of the chart area background colors. Border color Determines the border color of the chart area. Click Save. Border skin style Determines the skin of the chart area border. Border color Determines the border color of the plot area.

CSV or XML format. HTML graphs always use a horizontal bar layout. Like other reporting tools. If you specify more than two columns. users who view the graph are able to export the displayed data to external files using the Microsoft Excel (XLSX). edit a report on the General tab.Writing queries for pie charts The queries for pie chart graphs must return two columns: the item categories and their values. which opens a context menu with possible export actions. Writing queries for line charts The queries for line chart graphs must return at least two columns: the item categories and their values. The queries must return at least two columns: the first column is used for items and the others for their values. which can easily be extended to display any number of items. the additional columns will be displayed as separate lines. To create a HTML graph: 1. HTML graphs retrieve the data to be displayed using queries. it is recommended to use standard graphs. unlike an image with a predefined size. Writing queries for bar graphs The queries for bar chart graphs must return at least two columns: the item categories and their values. As a result. The graph automatically calculates the displayed size of the given category. with the newest items at the top of the graph. data is displayed in descending order. i. In the Reporting application. on top of each other (Bar stacked charts) or they will divide one column by percentage (Bar stacked charts w ith the 100% stacked setting enabled). Creating HTML graphs in reports In addition to the image-based graphs. the additional columns will be displayed side-by-side (Bar charts). the values of these additional columns are displayed below each other as differently colored bars. Graphs of this type are composed purely out of HTML code (table and DIV elements). 3. If you specify more than two columns. In most cases where scaling is not an issue.e. in front of each other (Bar charts with the Overla y setting enabled). Code name Code name of the graph. By default. Enable export If enabled. since they offer more customization options and graphical flexibility. The data export feature may be accessed by rightclicking the graph in the report. 2. . data can be visually represented in HTML graphs. Define the properties of the new HTML graph: HTML graph properties Default: Display name Display name of the graph shown in the user interface. Click New in the HTML graphs section below the layout editor. they can be dynamically scaled according to the amount of data that needs to be displayed. If more than two columns are specified.

Query: Query Database query that extracts the data that will be displayed in the graph. it is also necessary to have the Enable subscription box checked on the Gen eral tab of the given report. Connection string Sets the database connection string used by the graph's query. Title: Title Sets the title of the graph.numeric X axis descriptions will be displayed with precision of two decimal places. users will be able to subscribe to the currently edited HTML graph. Examples: Item # . Date and time formatting: The format can be set using singleletter Standard date and time format specifiers without quotes. {0.00} . The system loads the list of connection strings from the <connectionStrings> secti on of the application's web.NET Custom numeric format strings.MM . yyyy . In addition. Display legend Indicates if the legend should be displayed. any custom formatting can be defined.08 . For example.dd hh:mm would specify a date and time format like: 2010 . Legend: Legend title Sets the text caption of the legend. Only users who have the Set connection string permission for the Reporting mo dule are allowed to change this value.19 . No record text Text to be displayed if the query doesn't return any data.Enable subscription If enabled. the other columns are used for values. To allow subscriptions.12:30 . Is stored procedure Indicates if the specified query is a stored procedure. You can check the Inherit box to load the Connection string value set for the parent report.X axis descriptions will be displayed as Item 1. The (default) option represents the CMSCo nnectionString added by the application's initial database installer. Numeric formatting: Numbers can be formatted using .config file. Item 2 etc. Series: Item name format Can be used to specify the format of item descriptions on the X axis that are in numerical or datetime format. It must return at least two columns: first one for categories.

This field supports all types of Kentico macro expressions. . which can be used to display a single scalar value returned by a query in a specified string format. Click Save & Close.e. Examples: {%ser%} = {%yval%} .displays the item's percentage value rounded to one decimal place (e. The macro expressions described in the Item value format property can also be used in this field. 6.<graph code name>%%. If there are multiple types of Y axis values. In the Reporting application.resolves into the X axis value of the current item. Click New in the Values section below the layout editor. users will be able to subscribe to the currently edited report value. {%yval%} . i. Item link Causes the series items in the graph to serve as links to the specified URL when clicked. {%xval%} . {%pval|(todouble)0.displays the name of the series and its value (e. Define the properties of the new value: Report value properties Default Display name The name of the item in the list Code name Name used in your code Enable subscription If enabled. Query Query Here you can add the SQL query used to retrieve data to be displayed by the value. it is recommended to avoid publishing reports containing HTML graphs on your website (you can find more information about this process in Displaying reports on websites). The macro expressions described in the Item value format property can also be used in this field. The following macros should be used most frequently: {%ser%} . HTML graphs are entered into the report layout editor as an expression in the following format: %%control:ReportHtmlGrap h?<report code name>. Is stored procedure Indicates if the query is a stored procedure or not. {%pval%} .resolves into the Y axis value of the current item. 2.resolves into the name of the current item's series.g. the type of the value. 4. To allow subscriptions. HTML graphs are only displayed correctly in the administration interface. HTML graphs on the live site Because of the way they are constructed. Click Save.g. 5.Item value format Sets the format of the text displaying the values of series items on the Y axis of the graph. Select the defined HTML graph from the list in the HTML graphs section. Therefore. Creating values in reports A value is an object that you can place into the layout of a report. 7. 3. 1. 8. The necessary styles will not be applied on the live site.1%). edit a report on the General tab. Click Insert.resolves into the percentage that the value of the current item represents out of the sum of all values in the graph. it is also necessary to have the Enable subscription box checked on the General tab of the given report. Visit s = 287). Place the cursor in the layout editor where you want to put the HTML graph.0|(format){0:0. Item tooltip Determines the content and format of the tooltip that is displayed when hovering over a series item in the graph. 5. they are all included in the total sum.0}%}% .

<value code name>%%. Only users who have the Set connection string permission for the Reporting module are allowed to change this value. The system creates a new report category. graph and a value. Click . Select the defined value from the drop-down list in the Values section. Click Save. To create parameters for reports: 1. 2. next to the New report button and select New category. You can check the Inherit box to load the Connection string value set for the parent report. Values are entered into the report layout editor as an expression in the following format: %%control:ReportValue?<report code name>. Define the properties of the parameter (using the field editor). Open the Reporting application. Click Save & Close. 2. Switch to the Parameters tab. 6. See Example . We recommend keeping reports that monitor related actions in one category. 3. Click New field.displays the value as a floating point number with one digit displayed after the decimal point 4. 4. 5. 7. You can manage the categories in the Reporting application. The system loads the list of connection strings from the <con nectionStrings> section of the application's web. Creating new categories 1. Click Insert. Type a code name or leave it as (automatic). For example: {0} .creating a simple report for an example on how to create a report with a table. Type a name of the new category into the Category display name field.config file. Select the report in the tree. Open the Reporting application. . 4.NET expressions. Creating report categories All reports are organized into categories in a hierarchical tree. Click Save. 5. 3. 8. Select the root of the reporting tree (the All reports category by default). Format Formatting string You can format the displayed value using standard . Place the cursor in the layout editor where you want to put the value. Writing queries for scalar value The queries for scalar values may return any number of columns and rows.displays the value {0:F1} . The (default) option represents the CMSConnectionString ad ded by the application's initial database installer..Connection string Sets the database connection string used by the value's query. but the only value that will be displayed is the value in the first column of the first row of the result set. 6.. Defining report parameters Reports and their data can be filtered using parameters. 5.

@CMSContextCurrentUserID @CMSContextCurrentUserName @CMSContextCurrentUserDisplayName @CMSContextCurrentSiteID @CMSContextCurrentSiteName @CMSContextCurrentSiteDisplayName @CMSContextCurrentDomain @CMSContextCurrentTime @CMSContextCurrentURL @CMSContextCurrentNodeID @CMSContextCurrentCulture @CMSContextCurrentDocumentID @CMSContextCurrentAliasPath @CMSContextCurrentDocumentName @CMSContextCurrentDocumentNamePath For example. Add the parameter to the queries of the report objects (table. graph or value). you can place the following macro expression in the report text: {%parametername %} . you can use parameters that provide information about the current context when the report is viewed. current site. 7. etc. see the Defining report parameters section of Example . Click Save.g. All parameters that you define can be used in the query using the @<parametername> expression (e. you can use a query like this: SELECT DocumentNamePath AS [Document path] FROM View_CMS_Tree_Joined WHERE DocumentPublishTo < @CMSContextCurrentTime AND NodeSiteID = @CMSContextCurrentSiteID Displaying parameter values in the report using macros If you need to display the parameter values in the report.6. such as current user.simple report. 8. if you want to display a list of all expired documents of the current website. Switch to the General tab. DocumentCreated ByUserID = @UserIDParameter). For an example of using parameters in reports. Context parameters In your queries..

the second one specifies the chart. Click Save. table or value. refer to the Exporting data from the user interface chapter. 4. users can export the data displayed in the report's charts and tables to other formats (Excel.. See Subscribing to reports for more information. table or value from the report. 6. Enable export . For more details on the data export feature.exports data to a CSV file. select a report. Display filter . However. use one of the other web parts from the Reporting category: Report chart Report table Report value You must specify the exact chart/table/value in the respective property of the web part. The system archives the entire report into the system history. Switch to the View tab.exports the data displayed by the given object to an XLSX spreadsheet. The first list is used to select the report. In addition to this property. these settings are ignored. 2. Note that data export is not allowed if it is not enabled for the given graph or table (on the General tab of the main reporting interface. Storing data from reports You can save the currently displayed data of a report for printing or for a later reference: 1. Add the Report web part. subscription also needs to be enabled for the given report (on the General tab of the main reporting interface) and the specific graph. Export to CSV .select the required report.if enabled. Define the report properties: Report name . Enable subscription . You can view the saved reports on the Saved reports tab.indicates whether authenticated users are allowed to subscribe to the components (graphs. the report appears just like on the View tab in the Reporting application. you can use the Report web part. Other web parts If you only wish to display a certain graph. These web parts are also available as widgets. Rightclick on a graph or table in the given report and choose one of the offered options: Export to Excel . you can display their values by using the Set parameters button. 3. depending on the configuration of the given reporting object. . you can also export the data displayed in a report into external files using various formats. Export to XML .indicates if a parameter filter should be displayed on the page (if the report has parameters specified).For example: List of pages expired on or before {%CMSContextCurrentTime%} displays: List of pages expired on or before 2/12/2013 12:06:49 PM You can use this syntax for both custom report parameters and context parameters. the saved reports are NOT affected. To add a report to your website: 1. since the parameters are configurable on the live site using the filter. select a graph/table from the list and click . Note: The data export function may be disabled for some tables and graphs. Displaying reports on websites If you want to display a report on the website or include it on a custom page in the Kentico administration interface. To export report data: 1. Open the View tab. table or value. 2. Exporting report data to files Additionally. 5. If you view the page on the live site.exports data to an XML file. If the selected report has parameters defined. if the Disp lay filter property is enabled. In the Reporting application. Open the Pages application. 3.. 2. -> Edit). If the data displayed in the report changes. Click OK. Select the page in the content tree and switch to the Design tab. CSV or XML). tables or values) in the displayed report.

By default. For reports published on the website's pages. the address of the current user is loaded. 2. Report subscription settings The following settings are available for report subscriptions: Subscription settings Send to Sets the e-mail address to which the subscription e-mails will be sent. This way. users can easily keep track of the data provided by the report simply by checking their e-mail. Select the Subscribe to option in the menu. Subscribing to reports To subscribe to an entire report. If both these settings are enabled. they can use the subscription feature. In any section of the administration interface that provides reports (such as Web analytics). it is possible to subscribe to specific components. Subscribers will regularly receive e-mails with the uptodate status of the given report. Right-click the appropriate component in the report. . tables or values).Subscribing to reports If users are interested in the content of a specific report or want to follow the progress of its data. subscription is only available for users who belong to a role that has the Subscribe or Modify permission for the Reporting mod ule. Right-click a chosen component in the report (you cannot subscribe to the whole report). Another Enable subscription setting is available when configuring the details of individual components (graphs. To subscribe to individual components of the report (graphs. but it is possible to specify a different one. without having to access the website or its administration interface. subscription also needs to be allowed through the Enable subscription property of the web part or widget used to display the given report. Requirements There are several levels of settings for enabling report subscriptions: On the General tab of the report editing interface in the Reporting application. This can be done: On a report's View tab in the Reporting application. 2. the Enable subscription checkbox applies to the entire report. To subscribe to a report displayed on the live site: 1. Select the Subscribe to option in the menu. Additionally. click the Subscribe action in the header of the page. tables or values): 1.

Subject Allows you to enter the subject that will be used for the subscription e-mails. Only parameters that are configured to be visible when viewing the report can be edited (i. You can write any condition according to your specific requirements. Site administrators can manage subscriptions of a chosen report in the Reporting application (edit the report on the Subscriptions t ab). where the user can confirm that they wish to unsubscribe from the given report.aspx system page. Subscription item Determines whether the subscription e-mails should include the full content of the report or only a specific graph. subscription e-mails will only be sent if the report contains data at the given time (the subscriber will not receive empty reports).g. table or value component. selected using From an d To parameters (e. The appropriate subscription to be removed is automatically identified using parameters passed in the query string of the link's URL. and manually Unsubscribe ( ) as needed. For example: SiteObjects. you can define how often and when exactly the report subscription emails should be sent. even if the target e-mail address belongs to someone else. Only chosen period . which may be used to specify the appropriate values. most web analytics and online marketing reports in the system). You can use the Data from last field below to specify exactly how many hours.ABTests. The link leads to the ~/CMSModules/Reporting/CMSPages/Unsubscribe.ABTestEnabled This sample condition ensures that the subscription is active only while a specific A/B test (with code name HomePageTest) is enabled. days. weeks. Instead.the reports in the subscription e-mails will always include all possible data with an unlimited time span.HomePageTest. Condition May be used to enter an additional macro condition that must be fulfilled in order for the subscription emails to be sent. Unsubscribing Users can cancel their subscription to a report in the following ways: By clicking on the unsubscription link included in every e-mail (when using the default email template). Subscription parameters If the given report has parameters. this section allows you to set the values that should be used in the reports sent to the subscriber. All report subscriptions created by the current user are listed here. Time range This setting is only available for reports that offer the possibility of displaying data from a specific time range. These two parameters are not displayed in the subscription parameters section. Time range parameters Some reports offer the possibility of displaying data from a specific time span selected through parameters.e. Enabled E-mails will only be sent for subscriptions that are enabled. Sending interval Through the interval settings. You can choose from the following options: All available data . subscriptions to reports that contain them provide the Time range and Data from last settings.the reports will only contain the latest data based on the date and time when they were sent. those that have the Display attribute in the editing form checkbox enabled on the Parameters tab of the given report). Send only if data found If checked. . Users with access to the administration interface can view their report subscriptions in the My profile application on the Subscriptio ns tab. months or years of data should be included. This functionality is ensured by two parameters with Column names set to FromDate and ToDate respectively on the Parameters tab.

Managing report subscriptions When editing a report in the Reporting application. Enabled . but with several additional options: Subscription item selector .if the currently edited report has parameters. You can edit only those parameters that are configured to be visible when viewing the report (i.e.For live site users. the system automatically sends a notification e-mail to the given address.can be used to choose whether the subscription e-mails should include the full content of the report or only a specific graph. this section provides a way to enter the values that should be used for the reports sent to the subscriber.uncheck to disable individual subscriptions. the Unsubscribe option can be provided by the My account web part (as long as the web part's Display my subscriptions and Display report subscriptions properties are enabled). Creating or editing subscriptions here offers the standard subscription dialog. . After unsubscribing through any of the described ways. Subscription parameters section . those that have the Displa y attribute in the editing form flag enabled on the Parameters tab). table or value component. you can view and manage all of its subscriptions on the Subscriptions tab.

and uses a reporting parameter: Creating a report category 1.used to add the CSS styles that are required to properly display report content in the e-mail. To learn how this can be done. Reports in plain text If your system is configured to send e-mails in plain text format. this task goes through all enabled reporting subscriptions and checks their settings. it returns an empty string. Instead.Subscription template . next to the New report button and select New category.Unsubscription confirmation . Reporting . If you wish to customize the e-mails in some way. {% ItemName %} . {% DefaultSubscriptionCSS %} . Example . It is also possible to access the following related objects and their properties (e. you can edit the templates in the Email templates application. When executed. table or value) of the given item.used for the automatic notification e-mails sent to the recipient when a new subscription is created. 4. Click Save. which may be used to specify the appropriate values. Important! To be able to send e-mails. 3. E-mail templates The content of the reporting e-mails sent to subscribers is based on e-mail templates. You can leave the code name as (automatic).g.Subscription confirmation . This should always be included in the <head>/<style> element in the HTML version of the subscription template. Click . This functionality is ensured by two parameters with Column names set to F romDate and ToDate respectively on the Parameters tab. the system needs to be connected to a working SMTP server. this macro resolves into the name and type (graph.ReportInfo object representing the report to which the user is subscribed. You can change this configuration in the Scheduled tasks application. However. see the Configuring SMTP servers topic. the system executes the task every minute. after editing ( ) the appropriate subscription. 2. You can use the following macros in report subscription email templates: {% SubscriptionBody %} .defines the content of the main subscription e-mails used to send the report status. 5. most web analytics and online marketing reports in the system). The following templates are available: Reporting .Every authenticated user may also configure these options for their own report subscriptions in My profile -> Subscriptions or on a page containing the My account web part.ReportSubscriptionInfo object of the subscription for which the e-mail is being sent. 6.this macro is resolved into the content of the subscribed report or component. graph and value. In the case of full report subscriptions. {% UnsubscriptionLink %} . {% ReportSubscription %} .creating a simple report This example demonstrates how to create a report that displays a table. if you wish to use report subscriptions. In this case. Scheduling subscription mailout To ensure that the report subscription e-mails are sent correctly and at the appropriate time. {% Report. the content of report subscription e-mails will be limited. Time range parameters Some reports offer the possibility of displaying data from a specific time span selected through parameters (e. By default. subscriptions to reports that contain them provide the Time range and Data from last settings. the system sends out an e-mail with the current content of the given report. These two parameters are not displayed in the Subscription parameters section. .generates a link that can be used to cancel the given subscription. Select the root of the reporting tree (the All reports category by default). the task must always be enabled and scheduled frequently. If the time interval requirements and condition of a subscription are fulfilled. the system uses a global scheduled task called Report subscription sender. image based graphs are included as attachments and the data from tables is sent in an a CSV file. You can choose the preferred e-mail format using the E-mail format setting in Settings -> System -> Emails.used for the notifications that users receive after unsubscribing (or when the subscription is removed by an administrator). Open the Reporting application.. HTML graphs are not represented at all.for subscriptions to individual reporting components.ReportDisplayName %} ): {% Report %} . Reporting . Type User reports as the Category display name..g.

3. 5. The General tab of the report editing interface opens. Enter the following values: Display name: Pages by Page Template Query: . Now you can edit the layout of the report and insert tables. click New report. 2. Type Pages by page template as the Report display name. On the report's General tab.Creating a new report 1. Type Pages by page template into the Layout text area. Click Save. In the Reporting application. 2. 6. Click Save. click New in the Tables section below the layout editor. Select the text and use the editor to set the Format to Heading 1. Creating a new table 1. graphs and values. 4.

Creating a new graph 1. 2. Click Insert. DocumentNamePath AS [Page] FROM View_CMS_Tree_Joined LEFT JOIN CMS_PageTemplate ON CMS_PageTemplate. Is stored procedure: no SkinID: ReportGridAnalytics Enable paging: yes (checked) Page size: 10 Page mode: Page numbers Click Save & Close. Switch back to the report's General tab. Switch to the View tab to see the report table. 4. Enter the following values: Display name: Favorite Page Templates Query: . 7. Click New in the Graphs section below the layout editor.PagesByPageTemplate%% into the text area. 5. 6.SELECT PageTemplateDisplayName AS [Template Name]. Select the table from the list in the Tables section. The system adds a string like %%control:ReportTable?PagesByPageTemplate. 3. Place the cursor in the layout editor on a new line under the heading.PageTemplateID = View_CMS_Tree_Joined. Click Save.DocumentPageTemplateID WHERE PageTemplateDisplayName IS NOT NULL AND PageTemplateIsReusable = 1 ORDER BY PageTemplateDisplayName 3.

Select the new value from the list in the Values section.SELECT TOP 5 PageTemplateDisplayName AS [Template Name]. COUNT(PageTemplateDisplayName) AS [Usage] FROM View_CMS_Tree_Joined LEFT JOIN CMS_PageTemplate ON CMS_PageTemplate.MostFavoritePageTemplates%% into the text area. you can see the report graph. 2. 6. Place the cursor in the layout editor under the graph. Select the graph from the list in the Graphs section. 3. Click Save & Close. 7. 6. Place the cursor in the layout editor on a new line under the table.DocumentPageTemplateID WHERE PageTemplateDisplayName IS NOT NULL AND PageTemplateIsReusable = 1 GROUP BY PageTemplateDisplayName ORDER BY COUNT(PageTemplateDisplayName) DESC Graph type: Pie chart Drawing style: Pie Title: Favorite page templates Series -> Display item value: Disabled (not checked) 4. Click Insert. 5. Click New in the Values section below the layout editor. If you now switch to the View tab. 8. Click Insert. Creating new values 1. Click Save & Close. Enter the following values: Display name: Number of pages with page template Query: SELECT COUNT(DocumentID) FROM View_CMS_Tree_Joined WHERE DocumentPageTemplateID IS NOT NULL Is stored procedure: no Formatting string: Pages with template: {0} 4. The system adds a string like %%control:ReportGraph?PagesByPageTemplate. Click Save to save the changes. 5. Switch back to the report's General tab. 7.PageTemplateID = View_CMS_Tree_Joined. .

PageTemplateID = View_CMS_Tree_Joined. modify only the table query. Now switch to the View tab. next to the New button and select Edit.DocumentPageTemplateID WHERE PageTemplateDisplayName IS NOT NULL AND DocumentCreatedByUserID = @UserID ORDER BY PageTemplateDisplayName This adds the parameter to the WHERE condition of the query. Switch to the Parameters tab. 3. Click Save. Click Save.NumberOfPagesWithPageTemplate%% into the text area.. 8. Click . For the purposes of this example.. Modify the table SQL query like this: SELECT PageTemplateDisplayName AS [Template Name]. Reporting security You can configure access to reporting features in the Permissions application. Click New field and enter the following values: Field name: UserID Field type: Integer number Default value: 53 Field caption: Created by user Form control: User selector 3. you can see the text of the value. Click Save & Close. Choose the permission matrix for Module -> Reporting and assign the available permissions to the appropriate user roles. 2. DocumentNamePath AS [Page] FROM View_CMS_Tree_Joined LEFT JOIN CMS_PageTemplate ON CMS_PageTemplate. If you switch to the View tab. . The system adds a string like %%control:ReportValue?PagesByPageTemplate. Select Pages by page template in the Table list. 5. Defining report parameters 1. You can see that the report has a filter: The table now only displays template names of pages that were created by the user specified in the filter. Switch to the General tab. 1. Now you need to add the parameter to your queries. All parameters that you define can be used in the query using the @<ParameterFieldName> expression. 4. 2.7.

Making reports available on the live site 1. 2. Add a new connection string into the <configuration><connectionStrings> section. This permission is needed to create new reports. Open the Reporting application. 1. Enable the Allow public users to see this report property. Enter authentication information (the user id and password) for the appropriate database user account. Save reports Allows users to save reports into the report archive. tables and values). This also grants permission to subscribe to reports.config file. 4. Destroy Allows users to delete the version history of reporting objects. since it allows users to run queries against the website's database. tables or values) are always hidden from public users Specifying connection strings for reports You can restrict the database-level permissions of the SQL queries used for reporting by registering custom connection strings and assigning them to reports. but it can be a security risk. . Subscription also needs to be allowed for individual reports through their properties. modify and delete reports. Edit your application's web. 3. Unauthenticated (public) users cannot subscribe to reports. Modify Allows users to create. Subscribe Allows users to subscribe to reports and their components. 4. Click Save. the report and all of its components (graphs. 2. Edit SQL queries Allows editing of the queries used to retrieve data for reporting components (graphs.Permission Description Read Allows users to view existing reports. The report uses the specified connection string to access the database when loading data. The system now allows you to display the given report on the live site to non-authenticated (public) users. 3. Set connection string Allows users to change the connection string property of reports and their components. Select the report in the tree and switch to the General tab. If the property is disabled. Prepare a user account for your Kentico database with the required security configuration.

For more information on the technology. Connection string names The setting loads the list of connection strings from the web. tables and values). 2. You can also override the connection string value for individual reporting components (graphs.Connection Timeout=240. select the Windows Communication Foundation HTTP Activation check box. 4. The system assigns the specified connection string to newly created reports. Select the Security & Membership category.<add name="CMSReadOnlyConnectionString" connectionString="Persist Security Info=False. . Choose the Default report connection string (in the Reporting section).com/en-us/netframework/aa663324.microsoft. By default. The system now uses the assigned connection string when executing the queries of reports.database=DBName. Open the Settings application.Current Language=English.NET 3. Assigning a connection string to a specific report 1. Only users who have the Set connection string permission for the Reporting module are allowed to change the connection strings of individual reports.0 and any higher version. you still need to install the WCF HTTP Activation feature yourself: 1. Open the Reporting application. visit http://msdn. 2.server=ServerName. However. You have to configure WCF to use the following features: Advanced workflow designer Marketing automation process designer Chat application WCF overview WCF is a component of the . 6. Configuring Windows Communication Foundation This page describes the installation and configuration process of Windows Communication Foundation (WCF). This limits the functionality of the queries according to the database permissions of the user account specified in the connection string. Installing WCF WCF is automatically installed with .user id=DBUser. all existing reports also inherit the connection string value from this setting. Edit any reports for which you wish to set a non-default connection string. Click on Turn Windows features on or off.NET Framework 3. 3.NET Framework that provides a programming model for building service-oriented multi-platform applications that communicate across the web. Navigate to Settings -> Control Panel -> Programs -> Programs and Features.password=password. 3. 7. On the General tab. uncheck the Inherit box below the Connection string property and select a different option.config and displays their name attribute values. Under the Microsoft ." /> 5.5 node. The (default) option represents the CMSConnectionString added by the application's initial database installation. Open the Start menu in Windows.

You configure each service separately. Open the web.config file according to the following table: Application Web. Click OK to start the installation. The system installs WCF on your computer. If you've installed WCF on a machine that had ASP.NET IIS Registration Tool (aspnet_regiis.config files. Use the ASP. To use the services with SSL enabled. . you must point the service endpoints to secure HTTPS bindings. 1. the service endpoints point to HTTP bindings.NET into IIS.NET already installed. application-specific. re-register ASP. Locate the application-specific web.serviceMod el/services section.5.exe -i Configuring WCF services to use SSL WCF services in Kentico applications are defined as service endpoints. The endpoint is defined in the configuration/system.exe) with the -i parameter.config location Chat /CMSModules/Chat Marketing automation /CMSModules/Automation Workflow /CMSModules/Workflows 2. By default. Service endpoints and bindings are defined in local. web.config file and uncomment the secure endpoint code. aspnet_regiis.

including HTML.commented HTTPS (secure) endpoint for Workflow <!--<endpoint name="Secure" address="" behaviorConfiguration="WorkflowDesignerEndpointBehavior" binding="webHttpBinding" bindingConfiguration="WorkflowDesignerSecureBinding" contract="CMS. Highlighting ensures that text elements are displayed in different colors depending on the syntax of the given language.aspx page. In the root folder of your project. which handles administration interface requests. Download the attached archive and place the archive's contents inside the folder. Add the following key into the appSettings section: <add key="CMSAdministrationPath" value="NewAdministrationPath"/> 3.WebServices. XML and C#. Backward compatibility Prior to version 8. comment out (or delete) the non-secure endpoint code.config file in the root folder of your project. Syntax highlighting improves the readability of code and makes it easier to spot and avoid mistakes. Configuring the code editor The interface of Kentico contains areas where users can enter code that defines the appearance or behavior of websites. All languages commonly used for web development are supported. 4. for example. . The code fields use an editor that provides syntax highlighting and other features to help website developers write and maintain sections of code. Kentico used /cmsdesk and /cmssitemanager paths to access the administration interface. ASPX markup. Open the web. (Optional) If you don't want the service to use the non-secure HTTP. you want to prevent random visitors viewing the logon page. Build the solution. CSS. Example .IWorkflowDesignerService" /> The system now communicates with the services defined in the services section using the specified endpoints. Configuring the administration interface URL Users access the Kentico administration interface via the /admin URL path. You can change the URL path to a different string if. you can access the administration interface by requesting the ~/Admin/CMSAdministrati on. The administration interface is now accessible via <your_website_url>/NewAdministrationPath. SQL. Each language has its own set of highlighting rules for code formatting.WebServices. Regardless of the current URL path.IWorkflowDesignerService" />--> 3. The code in these files redirects requests made to your new URL path to the ~/Admin/CMSAdministration.Example .HTTP (non-secure) endpoint for Workflow <endpoint name="Public" address="" behaviorConfiguration="AutomationDesignerEndpointBehavior" binding="webHttpBinding" contract="CMS.aspx page. 5. 1. Do not change the primary path back to /cmsdesk or /cmssitemanager. 2. JavaScript. create a folder with the same name as the URL path that you chose. The original /admin path returns error 404 – page not found.

so you can use the Undo action multiple times. Show hide/bookmarks .enables or disables the bookmark panel on the side of the editor.toggles the editor between its normal size and an expanded editor covering the entire window (frame). restoring it to its previous state. You can disable the editor if it is causing performance issues or other problems.removes the last change made to the code in the editor. Edit the cms.config file: Web.reverses one previously made Undo action. Search . Insert macro .opens a resizable dialog where the code can be edited without syntax highlighting or any other advanced functionality. Customizing the syntax highlighting You can modify how the code editor applies colors and other styles to various syntax tokens of individual languages: 1. Replace . Redo (CTRL+Y) .enables or disables the panel that displays line numbers. Only available for CSS code by default. Toggle fit-to-window mode . Edit source . Disabling the advanced code editor globally You can adjust the behavior of all code editors in the administration interface by adding the following keys into the /configuration/appSettings section of your project's web.allows you to add Kentico macro expressions in to the code. the editor also provides other types of functionality: Show/hide line numbers . The editor stores the history of changes. The panel on the right is an alphabetical list of bookmarks that allows users to jump to marked sections in the code. The default value is true. By default. for example /* #<bookmark name># */ for CSS.opens a dialog that allows users to search the code in the editor for a word or phrase.In addition to syntax highlighting.opens a dialog that allows users to find a word or phrase and replace it with the entered text. Undo (CTRL+Z) . Open the ~/CMSAdminControls/CodeMirror/theme folder in your web project 2. Sample value <add key="CMSEnableSyntax Highlighting" value="false" /> . the bookmarks panel is only displayed when editing CSS stylesheets.config key Description CMSEnableSyntaxHighlighting Globally enables or disables the code editor and syntax highlighting support for all code fields in the user interface.sets the indentation of all code in the editor according to the conventions of the given language. You can insert bookmarks using code blocks (regions) following the syntax of the currently edited language. Indent all .css stylesheet.

Replace <Language> in the key name with the name of the language that you wish to disable. <add key="CMSEnableSyntax Highlighting. The following language options are available: Text HTML CSS JavaScript XML CSharp SQL HTMLMixed ASPNET CMSSharp All languages are enabled by default.CMSEnableSyntaxHighlighting.<Language > Allows you to disable the code editor and syntax highlighting support for fields that display code in a specific language.CSS" value="false" /> .