Beruflich Dokumente
Kultur Dokumente
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
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
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.
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.
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.
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
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.
Object versioning
Configure the system to
keep track of changes
made to objects and
learn how to work with
the object recycle bin.
Alternative forms
Create alternative
versions of various
types of editing and
input forms in the
system.
Managing sites
You can run any number of sites within a single instance of Kentico. Each site runs on its own domain name and stores content in a separate
content tree. The websites share the same web project (code base) and database.
Creating sites
See Installing new sites.
CSS stylesheets
Page templates
Web part containers
Page relationship types
Polls
For example, after creating a new site, you can assign users from other sites in the system:
1.
2.
3.
4.
Deleting sites
You can delete sites from the system in the Sites application.
1. Click Delete ( ) next to the site that you want to delete.
The Site deletion confirmation dialog opens.
2. Enable or disable the following options:
Delete page attachment physical files - if checked, the deletion process removes files attached to the site's pages from
the file system (stored in the <web project>\<site name>\files folder).
Delete meta files physical files - if checked, the deletion process removes the site's meta files (stored in the <web
project>\<site name>\metafiles folder).
Delete media files physical files - if checked, the deletion process removes physical files stored in the site's media
libraries (<web project>\<site name>\media folder).
3. Click Yes.
The system displays a log showing the progress of the deletion.
4. When the process finishes, click OK.
The list in the Sites application no longer includes the deleted site.
~/CMSScripts/Custom/
~/App_Code/Controllers/
~/Controllers/Global/
~/Views/Global/
Import site folders - if checked, 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.
8.
6. Click Save.
The system now automatically redirects all users to the site's main domain. For example, if your site's main domain is domain.com and you
have domain.co.uk as a domain alias, users who access https://domain.co.uk/example.aspx are redirected to https://domain.com/example.a
spx.
4. Click OK.
The site appears under the Sites node.
5. Right-click the site and select Edit bindings.
6. Click Add.
7. Enter the domain name of your second website as the Host name and click OK.
8. Add two more bindings for both sites without the www prefix.
Your new IIS web site is now configured to handle all incoming requests for domains mysite.com and mysite2.com. You may need to ask
your network administrator to redirect the domain in the DNS records to your website. When you open http://www.mysite.com and http://www
.mysite2.com (or your own domain names) in a browser, you should see two different websites.
Testing domains
If you do not own the domains, you can test the configuration by modifying the server's C:\WINDOWS\system32\drivers\etc\host
s file.
For this example, add the following lines to the end of the file:
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
mysite.com
www.mysite.com
mysite2.com
www.mysite2.com
Note: These are client settings, so the website will only work when accessed from a browser on the server machine.
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.
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.
<add key="/mykenticoweb/web1:CMSSearchIndexPath"
value="App_Data\CMSModules\SmartSearch\Web1\" />
<add key="/mykenticoweb/web2:CMSSearchIndexPath"
value="App_Data\CMSModules\SmartSearch\Web2\" />
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.
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.
Resetting settings
To reset settings to their default values:
1.
2.
3.
4.
5.
All settings in the given category now have the default value defined in the Default value property of the corresponding keys.
using CMS.DataEngine;
using CMS.SiteProvider;
...
string value = SettingsKeyInfoProvider.GetStringValue(SiteContext.CurrentSiteName +
".CMSDefaultAliasPath");
{% 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.
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
Page title prefix used for all pages. Replaces the {% prefix %}
macro in the page title format.
Control element
Related pages
Multilingual websites
Creating custom error handling pages
Enable wireframing
On-site editing
Enable On-site editing
When enabled along with on-site editing, the Edit page button is
displayed in the corner of pages on the live site for users who are
authorized as editors. Clicking the button opens the onsite editing
interface.
If you do not wish to use this button, users can alternatively access
on-site editing mode through links provided by the Edit page link or
Admin actions web part, or by manually going to the following URL:
http://<domain>/<virtual directory>/cmsedit
Mobile development
Content management UI
Check page permissions
If enabled, 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).
In case that a user doesn't have the Read permissions for any
page at all, a message is displayed instead of the content tree,
saying that they are not authorized to modify any page. If a user
has the Read permission for a child page but not for its parent, the
child page is not displayed as well.
E-mail address of the workflow e-mails sender. You can also use
the Someone<some@something.com> format.
Use check-in/check-out
Settings - Media
In this dialog, you can make settings related to the Media libraries module. The following settings are available:
General
Use permanent URLs
Max subfolders
Security
Media file allowed extensions
Storage
Media libraries folder
Folder where media library files are stored. You can use:
physical disk path - e.g. c:\myfiles\mysite
virtual path - ~/UploadedFiles
UNC path - \\server\folder
If no value is entered, the default location is: ~/<site code
name>/media
HTML5 support
Render HTML5 media tags
Settings - Blogs
The Blogs settings category allows adjusting the following settings:
General
If checked, specified blog posts are pinged after the new blog post
is saved. Clear this setting if you are creating your site on the
production server to avoid creating trackbacks to your production
server.
Subscriptions
Blog unsubscription URL
Related pages
Configuring blogs
Summary length
If enabled, all blog post attachments which are not used in post text
or have not been uploaded via WLW (i.e. have been uploaded via
Kentico user interface) will be deleted when an existing blog post is
modified and then published from WLW.
Related pages
Blogs
Configuring blogs
Encoding to use
Sets the character encoding type for the XLIFF pages used to
transfer translation data in and out of the system. For example: utf8
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.
If empty, the ~/App_Data/Translations/Export/ folder is used.
Sets the path of the folder from which the system imports zip
packages containing completed translations.
If empty, the ~/App_Data/Translations/Import/ folder is used.
E-mail sender
Microsoft Translator
Client secret
Enter the Client secret received when registering the application for
the Microsoft Translator on the Azure DataMarket.
Client ID
Google Translator
API Key
Translations.com
Project Director URL
The URL of your project that you received when setting up the
service at Translations.com.
Sets the user name under which the application accesses the
Translations.com service.
Related pages
Configuring content for translation
Excluded URLs
Specifies a list of URLs that are excluded from the URL rewriting
engine. By excluding the URLs of physical pages stored inside the
web project directory, 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.
To disable URL rewriting for pages, enter the matching URL paths:
Use URL paths without the website's domain name or virtual
directory.
The paths must always start with a forward slash (/), without
the virtual path designator (~).
Entering a value excludes all URLs that start with the given
path, including sub-directories and all possible extensions.
You can enter multiple URLs separated by semicolons (;).
Sample values:
/Custom.aspx - excludes the ~/Custom.aspx page stored
directly under the website's root.
/Custom - excludes all pages whose URL path starts with /Cu
stom, for example: ~/Custom.aspx, ~/Custom2.aspx, ~/Custo
m/Page.htm
/Custom;/Static - excludes all pages whose URL path starts
with /Custom or /Static.
Page URLs
Default URL path prefix
Defines a default URL path prefix that will be used for all URLs of
the content pages. This prefix is rewritten to urlpathprefix query
string parameter.
Sets the URL where the website's Google (XML) sitemap can be
accessed. The entered value is added to the website's domain to
form the final URL. The internal path to the page responsible for
generating the sitemap can be specified through the Google
sitemap path setting.
Robots.txt path
Specifies the path of the page used to provide the website's robots.
txt file. This page should contain a Custom response web part
configured to generate the required robots.txt content.
Regardless of the selected page's location in the content tree, its
output is returned whenever the <website domain>/robots.txt URL
is requested.
If enabled, the system places the ViewState field at the end of the
output code generated for pages. This helps search engine
crawlers process more page content.
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.
If necessary, users can override the default value and set a
different replacement page path.
SEO - URLs
Use URLs with trailing slash
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 main URL of a page is determined either by
its alias path, or custom URL path if one is specified.
Note: You can override this setting for individual page aliases
through their Alias redirection property.
If enabled, the system ensures that all page URLs use the current
main extension. The main extension is the first one specified in the
Friendly URL extension setting. Any URLs with a different
extension are automatically redirected to a corresponding URL with
the main extension.
Determines how the rewriter handles the www domain prefix in the
website's URLs. You can leave the domain as it was entered or
have it rewritten to either always or never include the www prefix.
Note: That this setting does not apply for IP addresses and
toplevel domains.
Default page
SEO - Cultures
Force domain culture
Related pages
Search engine optimization
Configuring page URLs
Configuring URLs for multilingual websites
Managing robots.txt
If enabled, user names will only have to be unique for each site,
not globally, meaning that it will be possible to create users with
names that are already taken on another site in the system.
When a user registers on the live site or is edited/created on a
specific site (i.e. in the Users application), the unique identifier
(GUID) of the given site will internally be added as a prefix to that
user's name.
Do not enable this setting if you wish to have accounts shared
across multiple sites.
Warning: Use this setting only if you have your system's user/site
organization planned according to the functionality described
above. 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.
Registrations
Reserved user names
When users register but do not activate their account, their account
will be deleted after the entered number of days.
On-line users
Monitor on-line users
Content
Specifies the URL of the page where users can sign in on the
website in order to access its secured areas.
Note: This page is different from the one used to log into the
administration interface.
Administration
Use SSL for administration interface
UI personalization
Enable UI personalization
Reporting
Default report connection string
Related pages
Security model overview
Settings - Passwords
Passwords
Send password e-mails from
Sets the e-mail address from which password recovery e-mails will
be sent.
Password format
Selects the format used to store the passwords of users. They may
either be saved in plain text or as the result of a security hash
function. The recommended option that provides the best security
is SHA2 with salt.
If you change the password format, please keep in mind that this
only affects how future passwords are stored and existing
passwords will remain unchanged. It is necessary to set all
passwords again so that they are stored in the new format. For this
reason, it is recommended to set the appropriate format directly
after the installation, before you create user accounts or allow
users to start registering.
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. If you forget the global
administrator password, you can manually insert an empty value to
reset it.
Password reset
Reset password requires email approval
Sets the URL of the page where users can change their password
after they submit a password recovery request. The Reset
password web part must be placed on the specified page to
ensure that users can set a new password.
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 empty, the ~/CMSModules/Membership/CMSPages/ResetPas
sword.aspx default page is used.
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). After the specified amount of hours,
the link in the password recovery email will expire and become
invalid.
Password expiration
Enable password expiration
Password policy
Use password policy
Minimal length
Regular expression
Related pages
Security model overview
Securing user accounts and passwords
Password strength policy and its enforcement
Settings - Protection
General
Display account lock information message
Enable Autocomplete
Bad words
Check bad words
Default replacement text which will be used during bad word check.
Banned IPs
Enable banned IPs
Flood protection
Enable flood protection
CAPTCHA settings
Control to use
Private key for the domain you want to use reCAPTCHA on. You
can obtain the necessary API keys at http://www.google.com/recap
tcha.
Public key for the domain you want to use reCAPTCHA on. You
can obtain the necessary API keys at http://www.google.com/recap
tcha.
Path to custom page for unlocking user account (if not set, system
page
~/CMSModules/Membership/CMSPages/UnlockUserAccount.aspx
will be used).
Screen lock
Enable screen lock
Enables or disables screen lock feature, which locks the part of the
browser with the Kentico administration interface.
Time (in minutes) that has to pass before the screen is locked. This
value has to be greater than 0 and lower than session timeout.
Settings - Authentication
On this tab, you can adjust settings related to the Multi-factor authentication.
The multi-factor authentication settings have global effect. They cannot be configured for individual sites.
Multi-factor authentication
Enable multi-factor authentication
Settings - OpenID
On this tab, you can adjust settings related to OpenID authentication.
General
Enable OpenID
URL of the page where the OpenID required data web part resides.
If entered, then when a new OpenID user logs in to the site, their
user account is not created automatically, but they are redirected to
this page and required to enter some additional data (or merge with
an existing account) using the web part.
Application ID
Application secret
URL of a page containing the Required LiveID user data web part.
If entered, new Live ID users who log into the site will not have
their user account created immediately, 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.
Related pages
Configuring Windows Live ID authentication
General
Enable WIF authentication
Security realm
Enter a URI that identifies your website or application. You can use
your website's domain name (and virtual directory if applicable) in
most cases.
The value must be exactly the same as in the relying party config
uration of your identity provider, including letter case, any trailing
slashes and the protocol (http or https).
Certificate validator
_________________________
Sets the validation mode used for the X.509 certificate specified in
the Trusted certificate thumbprint setting.
Chain trust - accepts certificates whose chain of trust leads to
a trusted certification authority. The certificate must be
installed on the server hosting Kentico in the Local Computer
-> Trusted People certificate store.
Peer trust - accepts self-issued certificates. The certificate
must be installed on the server hosting Kentico in the Local
Computer -> Personal certificate store.
Peer or chain trust - accepts self-issued certificates, or
certificates with a chain that leads to a trusted certification
authority.
None - no validation of the certificate is done and the system
accepts any certificate with the given thumbprint.
See Working with Certificates.
Settings - System
General
Default user ID
DB object schema
Sets the database schema that is used for newly created database
tables (e.g. for custom page types). The only values that make
sense are either dbo or the current database user. If not specified,
the current database user is the owner of the tables.
A default prefix added to all object code names in the system. The
prefix is added upon object creation.
Event log
Event log size
Log to database
Log to filesystem
Log to trace
E-mails
No-reply e-mail address
E-mail notifications about errors logged in the event log will be sent
to the specified addresses. It is possible to enter multiple
addresses separated by semicolons.
Scheduler
Application scheduler interval
Determines how often the application checks if there are any tasks
ready to be executed (in seconds).
By default, the scheduler is configured to check tasks only on page
requests. You can set the minimum time between the checks to
any interval. If it is configured to check automatically, you can set
an interval of 1 to 30 seconds.
Setting 0 stops the scheduling of tasks.
Time zones
Enable time zones
User interface
Hide unavailable user interface
Settings - Performance
General
Enable output compression
Sets the number of minutes for which the system caches page
information (basic page properties and metadata). Kentico
retrieves page information many times during the processing of a
single page, so always set this value to at least 10 minutes.
When a page is modified, the system automatically clears the
corresponding part of the page info cache. This type of caching
cannot cause the website to display outdated information.
Sets the number of minutes for which web parts/controls with data
sources cache their content (typically retrieved from the Kentico
database).
You can override this value for specific web part instances by
setting their Cache minutes property. Using 0 as the value
disables content caching for the given web part instance.
It is recommended to cache all possible content. You can use cach
e dependencies to clear the cache on content changes. For most
non-custom data sources, the default dependencies automatically
ensure that web parts reload the cached content whenever the
data is modified.
Sets the number of minutes for which the system caches images
and other files on the server. Includes images, and web resources
such as CSS stylesheets and JavaScript files.
The system always caches files for at least one minute to protect
against brute force attacks. Kentico automatically removes files
from the cache if they are modified, so file caching cannot cause
the website to display outdated content.
Sets the number of minutes for which client browsers are allowed
to cache files (i.e. the length of the client cache expiration time).
Client file caching includes images, and web resources such as
CSS stylesheets and JavaScript files.
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.
To completely disable client caching of files, set the value to 0 and
disable client cache revalidation.
Output caching
Enable output caching
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.
If not set, the system only saves the output cache in the application
memory. If you enter a value, the system checks both types of
output cache.
To enable output caching in the file system for pages, configure the
Allow file system cache property of individual pages in the Pages
application on the Properties -> General tab.
Related pages
Optimizing website performance
Configuring caching
Using code minification and compression
Designing websites using CSS
Settings - E-mails
General
E-mail encoding
Sets the character encoding used for e-mails sent by the system.
By default, UTF-8 is used. It is recommended to leave the default
encoding unless you encounter issues with extended characters in
your e-mails.
E-mail format
Format used for e-mail messages. You can choose between HTML
and Plain text. If Both is selected and an e-mail template has both
formats defined, HTML will be used for the e-mail text and plain
text will be included as an attachment.
E-mail processing
Enable e-mails
Batch size
Sent e-mails will be stored by the e-mail queue for the number of
days specified here. Such emails may be viewed in the E-mail
queue application on the Sent e-mails tab.
If set to 0, e-mails will not be archived.
The SMTP server specified here will be used as the default option
when sending emails. Depending on the value selected in the Site
dropdown list, the server will either be dedicated to a single
website, or will be designated as a global server (i.e. it will accept
emails from all sites in the system and also handle mails that are
not related to any specific website).
This field must contain the domain name or IP address of the
server. If the connection to the server should use a different port
than 25, please include it in the name. Enter localhost if you wish to
use the server provided by your local machine.
You can define additional servers that will be used if this one is
busy in the SMTP servers application.
If the server requires authentication, you can enter the user name
here.
Use SSL
Settings - Files
Storage
Store files in file system
Generate thumbnails
Files folder
The folder on the disk where page attachments and metafiles are
stored. You can use:
physical disk path: e.g. c:\myfiles\
virtual path: ~/UploadedFiles
UNC path: \\server\folder
If you do not specify any value, the files are stored in folder ~/<site
code name>/files.
Folder where files uploaded via Forms are stored. You can use:
physical disk path: e.g. c:\myfiles\mysite
virtual path: ~/UploadedFiles
UNC path: \\server\folder
If no value is entered, the files are stored in ~/<site code
name>/BizFormFiles.
Security
Upload extensions
Specifies which extensions are allowed for uploaded files. You can
restrict the types of uploaded files by entering a limited list of
extensions separated by semicolons, for example: gif;jpg;doc;pdf
This allows you to block users from uploading potentially
dangerous files, such as ASPX scripts. If no value is specified,
uploading will be allowed for all file types.
If checked, only files that are in the Published workflow step can
be accessed from the live site when a workflow is applied to the
page.
Image resizing
Automatic image resize on upload (width, height, max side size)
Watermark
Watermark image
Watermark position
General
Enable health monitoring
May be used to disable the Form output filter for specific URL
paths, which fixes the issue with nonworking postbacks on pages
that use URL rewriting. It ensures that forms, dialogs and buttons
will work correctly on pages managed by Kentico.
Allows you to disable the URL resolving output filter, which adjusts
relative URLs so that they reflect the root URL of the website.
For example, ~/mypage1/mypage2.aspx would be changed to /my
page1/mypage2.aspx (if the application is running in the root) or /Vi
rtualDirectory/mypage1/mypage2.aspx (when using a virtual
directory).
Only URLs inside src and href attributes are changed.
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.
Specifies the URL paths of the pages that should be excluded from
the Tag attribute XHTML filter, which ensures that all attributes of
HTML tags are generated in valid XHTML format.
Specifies the URL paths of the pages that should be excluded from
the JavaScript tag XHTML filter, which ensures that the type and la
nguage attributes are included in all <script> tags.
Specifies the URL paths of the pages that should be excluded from
the Lower case XHTML filter, which ensures that all HTML tags
and attributes are generated in lower case.
Specifies the URL paths of the pages that should be excluded from
the Self closing tag XHTML filter, which ensures that all HTML
elements without closing tags are properly closed, e.g. <br> will be
replaced by <br />.
Specifies the URL paths of the pages that should be excluded from
the HTML5 output filter.
This filter replaces 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>.
These classes need to be defined 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">
would be replaced by:
<table class="cellpadding_2 cellspacing_4">
Determines which <table> elements (and their child <tr> and <td> t
ags) should be converted to <div> elements by the output filter.
The system automatically assigns CSS classes to the replacement
Div tags according to the name of the original tag. The classes
need to be defined in the CSS stylesheet used by the website's
pages.
This behavior can either be disabled completely, enabled for all
tables except for those marked by the _nodivs CSS class, or only
enabled for the tables designated through the _divs class.
Settings - Search
On this page you can configure settings related to the search engine on your websites.
Search
Exclude page types from SQL search
Specifies the page types that the system does NOT search when
using SQL search. You can specify multiple page types separated
by semicolons (;).
Specifies site sections that the system does NOT search when
using SQL search.
Use path expressions to identify site sections or individual pages.
You can enter multiple paths separated by semicolons (;).
Settings - Debug
On this page, you can configure settings of the system's debugging tools. The following categories of settings are available:
General
All
Cache access
SQL queries
IO
Page ViewState
Output
Security
Macros
Analytics
Requests
Web farm
Event handlers
General
Setting
Description
Disable debugging
Debug Import/Export
If disabled, the system does not log debug information for the
pages of the Import/Export interface. For performance reasons, it is
recommended to leave this option disabled unless you need to
debug the Import/Export process.
Debug resources
Debug scheduler
All
Setting
Debug everything everywhere
Description
Enables:
All debug types
Debugging of user interface pages for all debugs
Live site debugging (for all debugs)
Enables all debugs and the corresponding tabs in the Debug appli
cation.
Sets the default maximum length of the debug log in the Debug ap
plication. The default log length is used by debug types that do not
have their own log length set.
If enabled, 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.
Enables logging of all possible operations into .log files in the ~/Ap
p_Data/ folder (including the Event log and E-mail sending log).
Cache access
Setting
Description
Enables cache access debugging and the Cache access tab in the
Debug application.
Sets the maximum length of the cache access debug log on the De
bug -> Cache access tab, i.e. the number of requests for which
debug information is preserved and displayed on the tab. If empty,
value of the Default log length setting (or the CMSDebugEveryth
ingLogLength key) is used.
SQL queries
Setting
Description
Enables SQL query debugging and the SQL queries tab in the De
bug application.
Sets the maximum length of the SQL query debug log on the Debu
g -> SQL queries tab, i.e. the number of requests for which debug
information is preserved and displayed on the tab. If empty, value
of the Default log length setting (or the CMSDebugEverythingLo
gLength key) is used.
If enabled, the system tracks the code stack when debugging SQL
queries and displays the information in the Context column.
This information is only available in the debugging UI and on the
live site, not in the debug log written into the logsql.log file.
If enabled, SQL query debug log is saved into the logsql.log file in
the ~\App_Data folder. This option does not require SQL query
debugging to be enabled.
IO
Setting
Description
Sets the maximum length of the IO operation debug log on the Deb
ug -> IO tab, i.e. the number of requests for which debug
information is preserved and displayed on the tab. If empty, value
of the Default log length setting (or the CMSDebugEverythingLo
gLength key) is used.
Page ViewState
Setting
Description
Sets the maximum length of the ViewState debug log on the Debu
g -> ViewState tab, i.e. the number of requests for which debug
information is preserved and displayed on the tab. If empty, value
of the Default log length setting (or the CMSDebugEverythingLo
gLength key) is used.
Output
Setting
Description
Enables page output debugging and the Output tab in the Debug
application.
Sets the maximum length of the output debug log on the Debug ->
Output tab, i.e. the number of requests for which debug
information is preserved and displayed on the tab. If empty, value
of the Default log length setting (or the CMSDebugEverythingLo
gLength key) is used.
Security
Setting
Description
Sets the maximum length of the security debug log on the Debug
-> Security tab, i.e. the number of requests for which debug
information is preserved and displayed on the tab. If empty, value
of the Default log length setting (or the CMSDebugEverythingLo
gLength key) is used.
Macros
Setting
Description
Enables macro debugging and the Macros tab in the Debug applic
ation.
Sets the maximum length of the macro debug log, i.e. the number
of requests for which the macro debug stores information. If empty,
the value of the Default log length setting (or the CMSDebugEver
ythingLogLength key) is used.
If enabled, the system saves the macro debug log into the logmacr
os.log file in the ~\App_Data folder. Macro debugging must also be
enabled.
Analytics
Setting
Description
Enables web analytics debugging and the Analytics tab in the Deb
ug application.
Sets the maximum length of the web analytics debug log on the De
bug -> Analytics tab, i.e. the number of requests for which debug
information is preserved and displayed on the tab. If empty, value
of the Default log length setting (or the CMSDebugEverythingLo
gLength key) is used.
If enabled, the system tracks the code stack when debugging web
analytics and displays the information in the Context column.
This information is only available in the debugging UI and on the
live site, not in the debug log written into the loganalytics.log file.
Requests
Setting
Description
Sets the maximum length of the request debug log on the Debug
-> Requests tab, i.e. the number of requests for which debug
information is preserved and displayed on the tab. If empty, value
of the Default log length setting (or the CMSDebugEverythingLo
gLength key) is used.
Web farm
Setting
Description
Enables request debugging and the Web farm tab in the Debug ap
plication.
Sets the maximum length of the web farm debug log on the Debug
-> Requests tab, i.e. the number of requests for which debug
information is preserved and displayed on the tab. If empty, value
of the Default log length setting (or the CMSDebugEverythingLo
gLength key) is used.
If enabled, the system tracks the code stack when debugging web
farm operations and displays the information in the Context colum
n.
This information is only available in the debugging UI and on the
live site, not in the debug log written into the logwebfarm.log file.
If enabled, web farm debug log is saved into the logwebfarm.log fil
e in the ~\App_Data folder. This option does not require web farm
debugging to be enabled.
Event handlers
Setting
Description
Sets the maximum length of the event handlers debug log on the D
ebug -> Event handlers tab, i.e. the number of requests for which
debug information is preserved and displayed on the tab. If empty,
value of the Default log length setting (or the CMSDebugEveryth
ingLogLength key) is used.
If enabled, the system tracks the code stack when debugging event
handlers and displays the information in the Context column.
This information is only available in the debugging UI and on the
live site, not in the debug log written into the logwebfarm.log file.
Optimization
Enable A/B testing
Content personalization
Enable content personalization
Settings - Activities
General
Log activities
The system can track file downloads as Page visit activities for files
stored as CMS.File pages in the content tree of a website. This
setting specifies which types of files the tracking includes.
Enter the allowed file types as a list of extensions separated by
semicolons, for example: pdf;docx;png
If left empty, the system tracks all file types.
Page
Page visits
Landing page
Membership
User registration
User login
Joining a group
Leaving a group
E-commerce
Customer registration
Purchase
Purchased product
Newsletter
Subscription
Unsubscrption
E-mail opening
Clickthrough tracking
Search
Search
External search
Subscriptions
Blog post subscription
Forum posts
User contributions
Creation of a new page
Chat
Requesting support
Other
On-line form submission
Content rating
Poll voting
Abuse report
Event booking
Custom activities
If there are users with the same e-mail address across multiple
websites, the system creates a global contact for all site contacts
associated with the given user.
Indicates which contact the system uses as the primary contact for
site visitors who have multiple global contacts assigned. The
following options are available:
Last modified - the contact that was most recently modified.
First created - the oldest contact.
Create a new contact - the system creates a new contact and
merges the other global contacts into it.
Note: The system always automatically merges contacts that are associated with the same user account.
Settings - Geolocation
In this category, you can configure the mapping of the Geolocation fields to Kentico contact fields. Use the drop-down lists to select the target
fields into which the system maps the information.
The Area code, Metro code, DMA code, Latitude and Longitude fields don't have equivalent fields in Kentico. To create new fields to map
into:
1.
2.
3.
4.
The following settings are available. Mind the type restrictions when assigning target fields or creating custom fields for holding geolocation
data.
General
Enable IP geolocating contacts
Suffix
Geodata mapping
Country
State
City
Postal code
Area code
Metro code
DMA code
Latitude
Longitude
General
Delete inactive contacts
Delete condition
Last activity older than (days)
Can be used to clear out old contacts. All contacts that are older
than the specified number of days are removed.
For example, setting the value to 365 means that the task removes
all contacts created more than a year ago.
Can be used to remove contacts that were not edited recently (e.g.
had their contact address changed). Contacts whose latest
modification is older than the specified number of days are deleted.
For example, entering 31 means that the task removes all contacts
which were not modified within the last month.
Determines whether the task should delete all contacts that were
merged into another contact associated with the given site.
A merged contact is one that was combined into another contact,
not the contact which is the actual result of a merge operation.
Determines whether the task should delete all contacts that were
merged into a global contact.
A merged contact is one that was combined into another contact,
not the contact which is the actual result of a merge operation.
Contact is anonymous
Settings - Newsletters
General
Newsletter unsubscription page URL
Sets the URL of the page where users can unsubscribe from a new
sletter. The Newsletter unsubscription web part must be placed on
the specified page to ensure the required functionality.
The value of this setting is inherited by individual newsletters if their
Unsubscription page URL property is not set. If empty, the ~/CM
SPages/Unsubscribe.aspx default page is used.
Sets the URL of the page where users can confirm their
subscription to a newsletter with double opt-in enabled. The Subsc
ription approval web part must be placed on the specified page to
ensure the required functionality.
The value of this setting is inherited by individual newsletters if their
Approval page URL property is not set. If empty, the ~/CMSModu
les/Newsletters/CMSPages/SubscriptionApproval.aspx default
page is used.
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 a user does not activate their subscription
within the specified number of hours, the link in their confirmation
email will expire and become invalid.
The same time limit is also applied to unsubscription requests
submitted through the Unsubscription request web part.
Bounced e-mails
Monitor bounced e-mails
Sets the address to which bounced e-mails are sent when the
delivery of a newsletter issue to a subscriber fails. If set, this
address is used in the From field of newsletter issue e-mails.
POP3 settings
Server name
Sets the address of the mail server where the bounced e-mails are
stored. POP3 is used to check the server and monitor bounced
e-mails.
Server port
Specifies the number of the port used to connect to the mail server.
User name
Sets the user name used for authentication against the mail server.
Password
Sets the password used for authentication against the mail server.
Use SSL
Authentication method
General
Enable web analytics
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. The
value of the parameter stores the code name of the given
campaign.
Track conversions
Indicates if the web analytics track how many times the website's
pages were viewed by visitors. Only pages that are served by
Kentico are included in the statistics.
Indicates if the web analytics track which pages are the first ones
viewed by visitors when they start their browsing session on the
website.
If enabled, the web analytics log the final pages that were visited
by users when their browsing session ended.
If enabled, the web analytics track the average time that users
spend on pages.
Visitors
Track browser types
Indicates if the web analytics track the browser types and versions
used by the website's visitors.
Track visits
Track countries
Excluded
Sets which file types should not be tracked as part of the File
downloads statistics. The file types are specified using a list of
extensions separated by semicolons (;), for example: .jpg;.gif
Note: it is necessary to include the period in the extension name.
Excluded URLs
Excluded IP addresses
Traffic sources
Track search engines
Indicates if the web analytics log the keywords that were entered
into search engines in order to find the website.
If enabled, the web analytics log when the website's pages are
accessed directly through a URL entered into the browser.
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.
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.
Settings - E-commerce
Here you can configure the Kentico E-commerce Solution settings.
Products UI
Display tree of product sections
Products properties
Specifies the number of days for which the recently added products
are marked as New products in your on-line store. The system
counts the days based on the products' In store from property.
Here you can enter the default product image URL (virtual path).
The system uses this image if no image is specified for a given
product.
For each product, indicates if the system updates the product price,
visible in the product listing, automatically with the price of the
cheapest product variant.
Taxes
Default country
Unregistered customers
Register customer after first checkout
Invoice
Invoice number pattern
Shipping
Weight formatting string
Indicates the format used for displaying product weight. Enter the {
0} expression to insert the weight into the formatting string.
Pages
My account URL
Wishlist URL
E-mails
Send e-commerce e-mails from
Here you can specify an e-mail address (e.g. the merchant's e-mail
address) to which e-commerce notification e-mails are sent.
Conversion tracking
Registration conversion name
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), or if only the respective site-specific objects are used (OFF).
Check boxes in the Use global settings for section indicate for the selected site if the respective global settings are used (ON), or
if the respective site-specific settings are used (OFF).
Settings - Authorize.NET
Here you can configure settings related to the Authorize.NET payment gateway.
General
API login
Transaction key
Here you can enter a transaction key obtained from the merchant
interface.
Settings - PayPal
Here you can configure settings related to the PayPal payment gateway.
General
Business
Here you can specify a URL to which the system redirects the
customer's browser if the payment is cancelled; for example a URL
on your site displaying your custom Payment cancelled page. By
default, i.e. if no such URL is defined, the system redirects the
browser to the corresponding PayPal page.
Notify URL
Return URL
Settings - Community
Groups
Group template path
Alias path of the page that will be used, together with the pages
stored under it, as a template for newly created groups, e.g. /Group
s/Template.
The value of this setting is used by the Group registration web
part if its Template source alias path property is empty.
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. This
page should contain the Group security message web part, e.g. /Gr
oups/{GroupName}/Access.
Group invitation
Invitation acceptation path
Alias path of the page containing the Group invitation web part; this
is a special web part handling requests for joining a group when a
user clicks the joining link in group invitation e-mail, e.g. /Special-p
ages/Invitation-acceptation.
When some user receives a group invitation e-mail, the link for
joining the group included in the e-mail will be active for the
number of days entered here. After the specified duration, the link
will no longer be functional. If 0 is entered, the link will be functional
permanently.
Members
Member management path
Enable friends
Activity points
Enable user activity points
Sets the number of activity points that users receive for adding a
blog post.
Number of activity points that users receive for adding a blog post
comment.
Content management
Use parent community group for new pages
Settings - Forums
On this page you can adjust the settings related to forums.
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.
This setting should contain the relative URL of the page where the
website's forums are located, for example:
~/Community/Forum.aspx
Forum groups and individual forums can either inherit this value
from the settings or use their own. Having a correct base URL is
important for generating valid links in forum-related e-mails.
Allows you to specify a list of file extensions that will be allowed for
forum post attachments. The extensions should be entered without
dots and separated by semicolons. If blank, all extensions are
allowed.
Subscriptions
Forum unsubscription URL
Sets the URL of the page that unsubscribes users from receiving
notifications about new forum posts. The Forum unsubscription
web part must be placed on the page in order for the
unsubscriptions to work.
The value of this setting can be inherited by forum groups and
through them by particular child forums. If left empty, the ~/CMSPa
ges/Unsubscribe.aspx default page is used.
Subscriptions
Board unsubscription URL
URL of the site on that the Message board unsubscription web part
is placed. This web part handles requests for unsubscription from
notifications about new message board messages.
See Managing message boards
Settings - Messaging
Users can be notified about new messages received using the notification e-mails. 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 - Avatars
On this page, you can adjust settings related to avatars.
General
Enable pre-defined avatars
Avatar type
Gravatar rating
User avatars
Avatar max side size
Avatar height
If the Avatar max side size setting is set to 0, avatar images will
be resized to this height.
Avatar width
If the Avatar max side size setting is set to 0, avatar images will
be resized to this width.
Group avatars
Group avatar max side size
If the Group avatar max side size setting is set to 0, images will
be resized to this height.
If the Group avatar max side size setting is set to 0, images will
be resized to this width.
Settings - Chat
On this page, you can adjust settings related to chat.
General
Guest prefix
Text that will be appended with a number and used as the user
name for anonymous users.
Support chat
Enable support chat
Timeout settings
Room ping interval (seconds)
Defines how often room related web parts will update their content
(messages, users in the room, etc.). The ping interval is the time in
seconds between two requests to the server. If you are
experiencing performance issues with chat, consider setting this
number to a higher value.
Defines how often global chat web parts will update their content
(on-line users, available rooms and notifications). The ping interval
is the time in seconds between requests for new data to the server.
If you are experiencing performance issues with chat, consider
setting this number to a higher value.
Defines how long a kicked users will not be able to join the room
they were kicked from.
Defines how long chat users can be inactive, i.e., not send any
request to the server, before the system logs them out. This can
happen if the users' Internet connections are down or they closed
the chat window.
Log out support engineer when inactive for more than (seconds)
Defines how long a support people can be inactive, i.e., not send
any request to the server, before the system logs them out. This
can happen if the users' Internet connections are down or they
closed the chat window.
Release room taken by support when not pinging for more than
(seconds)
Messages, rooms and chat users will be deleted after the number
of days specified in this setting. Records will be deleted according
to these rules:
All messages written earlier than the time specified will be
deleted.
All rooms will be deleted, which don't have any messages in
them, no one has access to them and were created earlier
than the time specified.
All users will be deleted, who are anonymous, have not written
any message and haven't been on-line for the specified time.
Default paths
When this setting has a value, users will be redirected to the given
path after they enter chat. Specified web part setting will override
this global setting.
When this setting has a value, users will be redirected to the given
path after they leave chat. Specified web part setting will override
this global setting.
When this setting has a value, users will be redirected to the given
path after they join a chat room. Specified web part setting will
override this global setting.
When this setting has a value, users will be redirected to the given
path after they leave a chat room. Specified web part setting will
override this global setting.
Flood protection
Enable flood protection
Pages in group
If enabled, the Search on-line users web part will be used when
inviting a user to a room. Otherwise, the On-line users web part will
be used. This setting can be overridden by a web part setting.
Default transformations
Room user transformation name
Room transformation
Notification transformation
Error transformation
Related pages
Writing transformations for chat
Settings - Facebook
This section contains settings related to Facebook features integrated into Kentico, which include Facebook authentication and posting to
Facebook.
We recommend that you configure these settings for individual sites separately. 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.
Facebook app
App ID
App secret
Enable if you want your website users to log in with their Facebook
account. See Facebook authentication for more information.
When a new user logs in using Facebook, the system assigns the
user to the roles entered here.
Allows you to load information from the user's Facebook profile and
store it with the user's record in Kentico. This feature only works
when users log in using their Facebook accounts.
Never disables this feature. User information that has been
already downloaded stays in the system.
When they log in for the first time downloads the user
information only once, when they log in for the first time.
Every time they log in updates the user information every
time they log in.
Settings - Google+
On this tab, you can adjust settings related to Google+ services. These settings are currently needed only for one web part: Google+
activity feed.
General
Client ID
Client secret
Access token
To obtain these keys, create an account at https://accounts.google.com, create a new API project at https://cloud.google.com/console and
authorize it on the APIs & auth -> Credentials tab.
Settings - LinkedIn
On this tab, you can adjust settings related to LinkedIn authentication. This feature enables live site users to register and log on to your
website using their LinkedIn logon credentials.
General
API key
Application secret
Access token
Authentication
Enable LinkedIn authentication
URL of the page where the LinkedIn required data web part
resides. If entered and a new LinkedIn user logs in to the site for
the first time, their user account is not created automatically, but
they are redirected to this page and required to enter some
additional data (or merge with an existing account) using the web
part.
To obtain these keys, create an account at https://www.linkedin.com/ and create a new application at https://www.linkedin.com/secure/develo
per.
Required fields: The Access token field is used mainly for certain web parts (it is not required for LinkedIn authentication).
Your Bitly account username. Note that if you signed into bitly
using Facebook or Twitter, your actual login may be different from
the displayed name.
API key
Providing the API key for goo.gl service is not necessary, but it is highly recommended. To obtain it:
1.
2.
3.
4.
Alias path of a page that will be used, together with the pages
stored under it, as a template for newly created departments.
Settings - Events
In this section, you can configure settings related to events.
General
Sender's e-mail
Sender's name
E-mail subject
Settings - Projects
In this section, you can configure settings related to the Projects application:
General
Task detail page
Settings - Staging
On this page you can adjust settings related to the Content staging functionality.
Client (source only)
Log content changes
Specifies whether the object change tasks are generated, check for
source server.
Specifies whether the export tasks are logged when the object is
deleted (incremental update support).
X509 Certificates
Client key ID
Server key ID
Team development
Use check-in/check-out for objects
Version history
Automation process
CSS stylesheets
E-mail templates
Form definitions
Media files
Newsletter issues
Newsletter templates
Page layouts
Page templates
Queries
Report graphs
Report tables
Report values
Report definitions
Transformations
UI element
Workflows
Specifies custom web farm updater class (given class must inherit
from IWebFarmUpdater interface).
In this category, you can enable or disable web farm synchronization of a particular object.
Settings - Integration
This category contains settings related to integration with external applications and services.
In this section you can configure the default logon credentials used to access the SharePoint server. If you configure a Username and Pass
word here, it will be used by default if you leave the Username and Password fields blank in the properties of SharePoint web parts.
If you enable the Use Windows Authentication option, the current user's windows domain credentials will be used to access the SharePoint
server.
You must specify the address of the SharePoint server itself in the properties of SharePoint web parts.
Important: The settings configured here are automatically used for authentication by the GetSharePointFile.aspx page and since the URL to
access the page can be entered manually, 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.
Settings - REST
On this tab, you can adjust settings related to Kentico REST service. The following settings can be adjusted:
General
Service enabled
Authentication type
If enabled, the REST service only allows GET requests for pages
(pages cannot be modified).
If enabled, the REST service only allows GET requests for objects
(objects cannot be modified).
Default encoding
Sets the character encoding that the REST service uses for
requests that do not contain a supported Accept-Charset header.
Settings - WebDAV
On this tab, you can enable WebDAV integration and configure which file types should be editable using WebDAV.
WebDAV is only functional if Kentico is configured to use Windows authentication, otherwise this settings have no effect.
General
Enable WebDAV support
Enables or disables WebDAV editing in both the Edit mode and the
Browse mode.
Settings - Data.com
The settings in this category allow you to configure data field mappings between:
Kentico and Data.com contacts
Kentico accounts and Data.com company profiles
To modify the default field mappings, click Edit at the bottom of the Contact or Company sections.
Related pages
Data.com integration
Mapping Data.com fields
Contact management
Settings - Salesforce.com
On this tab, you can configure the Salesforce integration module which replicates Kentico contacts to Salesforce leads based on their scores.
General
Organization access
Batch size
Score
Allows you to select the score that determines which contacts are
replicated. The system only replicates contacts that reach a certain
value in the given score (specified via the Minimum number of
points for replication setting).
If you do not choose a score (None), the system replicates all
contacts.
Note: The replication process is always performed separately for
each website, so you can only select a score for individual sites,
not globally.
Lead description
{% Contact.ContactLastName %} from
{% CurrentSite.SiteName %}
For example, to use the Business phone value instead of the last
name, enter the following expression:
{% Contact.ContactBusinessPhone %}
from {% CurrentSite.SiteName %}
Settings - 51Degrees.mobi
On this tab, you can enhance the functionality of Device profiles by adding a Premium 51Degrees.mobi Data license key or uploading a
Premium data .xml file. The Premium data version contains additional devices, e.g., game consoles, eBook readers, tablets and smart
phones. It also contains additional properties in comparison with the Lite data version, which is included in Kentico by default.
General
License settings
Insert your Premium Data license key into the text box and click Ac
tivate.
You can also upload a Premium data file using the Choose file an
d Upload button instead.
Validation token
Catalog feed
Catalog layout
Path
The path from which items are generated into the Strands catalog
feed.
Product types
The page types from which items are generated into the Strands
catalog feed. Leave empty to include all page types.
WHERE condition
Password
Managing files
Kentico allows you to upload files (such as GIF, JPG, SWF, PDF, XLS, DOC, etc.) to the Kentico database or file system and manage them
as any other content.
CMS.File pages
These files are uploaded by content editors as new CMS.File pages into the content tree. You will typically use this type for files that are used
as part of unstructured pages, such as page links or images inserted into editable regions of pages. It is advisable to have files stored within
folders (CMS.Folder page type). You can also use the File import module when uploading multiple files. The Document library module allows
convenient management of CMS.File pages on the live site.
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). You
can have an unlimited number of files attached to a page. You can find a detailed description of the whole concept and examples of typical
usage in Attaching files to pages.
Media libraries
The Media libraries application allows you to store large amounts of files, while large file sizes are supported. The application and its typical
usage is described in Media libraries.
Unmanaged files
These files are part of the website theme. They should be stored in the <web project>\app_themes\<theme>\images folder on the disk. They
usually include images and Flash animations used throughout the site. These files are not managed by the system.
Storing files
Page attachments and CMS.File pages can be physically stored in the file system, in the database, or in both. 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.
Folder where files uploaded via forms are stored. You can use:
physical disk path: e.g. c:\myfiles\mysite
virtual path: ~/UploadedFiles
UNC path: \\server\folder
If no value is entered, the files are stored in the ~/<site code
name>/BizFormFiles/ folder.
Security
Upload extensions
Specifies which extensions are allowed for uploaded files. You can
restrict the types of uploaded files by entering a limited list of
extensions separated by semicolons, for example: gif;jpg;doc;pdf
This allows you to block users from uploading potentially
dangerous files, such as ASPX scripts. If no value is specified,
uploading will be allowed for all file types.
Files stored in media libraries are always stored in the file system. The default location is ~/<site code name>/media, while the location of the
folder can be customized in Settings -> Content -> Media -> Media libraries folder, as described in Configuring media libraries.
Importing files
The File import application allows you to import large amounts of files into the system. The files imported using this application are stored in
the content tree as CMS.File (or CMS.Folder) pages. This eliminates the need to create pages and upload files in the content tree manually
one-by-one.
You can import files from the two following sources:
From your computer - use this option to import files from anywhere on your disk. Note that this option allows you to perform import
on a file-to-file basis only. This means that you have to structure the files into folders manually.
From a server disk - use this option to import files located on the server disk. Note that this options allows you to import files
including their whole folder structure.
The use of this application should be allowed only to site administrators, as the File import application doesn't check certain
security settings from Settings -> System -> Files, such as allowed file extensions. The File import security subsection
demonstrates how you can set permissions for this application.
The File import application isn't the only way how you can upload files to the system. See Working with files for further details.
5. Click on Upload.
The system imports the files.
If you now open the Pages application and locate the alias path that you specified in the previous step, you can see that the files have been
uploaded.
Uploading files
You can upload files in Kentico either one by one or as multiple files. This can be useful if you need to upload a greater number of files at
once, or if you need to perform the task quickly. Uploading multiple files at once is available for:
Media files - files in media libraries (e.g. Media libraries -> Edit (
Meta files - files related to specified objects (e.g. e-mail template attachments in E-mail templates -> Edit (
General).
Page attachments - files attached to pages (e.g. Pages -> select page -> Properties -> Attachments).
How it works
1. Select one or more files from a given location.
2. The files are downloaded as temporary files to a repository (CMS\App_Data\CMSTemp\MultiFileUploader). To upload the files
successfully, users need to avoid causing a post back on the page containing the upload form field.
3. When the upload is finished, the temporary files become the requested files:
If a post back occurs while uploading multiple files or another error occurs, the temporary files remain in the temporary repository.
The system provides the Delete old temporary upload files scheduled task (configurable in the Scheduled tasks application),
which deletes these temporary files, by default older than 24h. You can change this setting by changing the value of the CMSDelet
eTemporaryUploadFilesOlderThan key (you need to manually add the key into the web.config file of the current web project
folder).
Max side size - if one of the image's sides is larger than this value, the image is resized so that its larger side's dimension
matches the entered value. Aspect ratio is preserved and the width and height settings are not applied.
Test tab
On the Test tab, you can perform a test that verifies the system's access to the file system. The test consists of the following steps:
1. Creation of a testing folder and file
2. Modification of the testing file
3. Deletion of the testing folder and file
Click Test files to perform the test.
Attachments tab
On the Attachments tab, you can find a list of page attachments stored by the system. Based on selection in the Site drop-down list, you
can either select a site and view all page attachments on the site, or choose (all) to view all page attachments on all websites in the system.
If there are more than 25 page attachments (or a different number set by means of the CMSDefaultListingFilterLimit web.config key), a filter
is displayed above the grid. Using the filter, you can filter displayed attachments by their name, extension, size or depending on if they are
stored in the database.
Depending on the Store files in file system and Store files in database settings in Settings -> System -> Files, the system allows you to
perform for the page attachments management actions.
Use the two drop-down lists below the grid. In the first drop-down list, you can select:
Selected files - performs the action for files selected using the check-boxes in the grid.
All files - performs the action for all listed files.
Then you can select the required action from the second drop-down list and click OK.
Copy to database - copies the attachment to the database. 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.
Delete from database - deletes the attachment from 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.
Copy to file system - copies the attachment to the file system. This action is only displayed if the attachment 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.
Delete from file system - deletes the attachment from the file system. 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.
Metafiles tab
On the Metafiles tab, you can find a list of metafiles stored by the system. Based on selection in the Site drop-down list, you can select:
(all) - displays all metafiles stored by the system.
(global) - displays metafiles of global, i.e. not site-related objects.
<website> - displays metafiles of site-related objects belonging to the selected site.
Using the Object type drop-down list, you can further limit which metafiles will be displayed. By selecting (all), you get all metafiles that
match the selection in the drop-down list above. The other options in the drop-down are particular object types, while choosing one displays
only metafiles of these objects 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.config key), a filter is
displayed above the grid. Using the filter, you can filter displayed metafiles by their name, extension, size or depending on if they are stored
in the database.
In the Actions column in the grid, action icons are displayed depending on the Store files in file system and Store files in database settin
gs in Settings -> System -> Files. The displayed actions are the following.
Depending on the Store files in file system and Store files in database settings in Settings -> System -> Files, the system allows you to
perform for the metafiles management actions:
Use the two drop-down lists below the grid. In the first drop-down list, you can select:
Selected files - performs the action for files selected using the check-boxes in the grid.
All files - performs the action for all listed files.
Then you can select the required action from the second drop-down list and click OK.
Copy to database - copies the metafile to 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.
Delete from database - deletes the metafile from the database. 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 file system or to be stored both in the file
system and in the database.
Copy to file system - copies the metafile to the file system. 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.
Delete from file system - deletes the metafile from the file system. 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.
After pages are processed by the rewriting engine, the system optionally applies output filters that perform additional changes in
the rendered HTML code.
URL processing
The steps below explain how the system handles a request for the following URL: http://www.example.com/products/kentico-cms.aspx
1. Look up the website based on the domain name
The system checks the domain name in the URL and finds a matching site, either via the main site domain name or domain aliases. If
none of the currently running websites match the domain name, the ~/cmsmessages/invalidwebsite.aspx page is displayed. If the
requested domain name contains a port number that is not found, the domain is checked without the port number.
If a page cannot be found under the given URL or alias path, the system tries to find a page with a Page alias set to /products/kentico-c
ms.
See also: Setting page aliases
4. Handle errors
If the steps described above fail to find a matching page for the requested URL, the system does not process the request. The web
server returns a 404 HTTP status code and displays the Page not found error page configured for the website.
/Custom;/Static - excludes all pages whose URL path starts with /Custom or /Static.
Warning: Be careful not to exclude the URLs used by the regular pages in the website's content tree. With URL rewriting disabled
for a URL, the system always tries to load a matching physical page, which leads to a page not found error in most cases.
Alternatively, you can enter a regular expression into the Allowed URL characters setting to precisely specify which characters are allowed
in URLs.
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.config file. For example:
You can either use the key to allow some of the default forbidden characters, or add new ones. 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.
The system automatically replaces or removes forbidden characters. You can specify the character that is used to replace forbidden
characters through the Forbidden characters replacement setting in Settings -> URLs and SEO. By default, 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. If
you wish to have each forbidden character replaced individually, add the following key to your web.config:
This preference may also be set specifically for the Page URL Path property of pages (and no other URLs) via the key below:
Excluded URLs
Specifies a list of URLs that are excluded from the URL rewriting
engine. See Excluding URLs from the rewriting engine for more
information.
Page URLs
Default URL path prefix
Defines a default URL path prefix used for all URLs of content
pages. Internally, this prefix is rewritten to the urlpathprefix query
string parameter.
Indicates if the system creates new page aliases when a user sets
a new page URL path or extension for a page.
Other settings (related to SEO) may also affect the format of URLs. To learn about these, refer to the Search engine optimization chapter.
Description
You can choose several different URL types for the alias path:
Standard URL or wildcard - the alias URL is handled by
the standard Kentico rewriting engine. Wildcard URLs can
be used here, as described in Wildcard URLs.
Route - the alias URL is processed as an ASP.NET Route
pattern.
MVC - requests to the alias URL are handled as requests
for an MVC page. See Developing sites using the MVC
framework for more information.
The selection determines how the system processes the value
of the Path or pattern property.
Path or pattern
Enter a URL path for the page alias according to the selected
Path type.
For example, if you enter /Mediagallery as the value, you can
then access the page under the following URL: <domain>/Medi
agallery.aspx
Default controller
(MVC only)
Default action
(MVC only)
Specifies the MVC action that the controller performs when the
page is accessed through the alias URL.
Alias redirection
Culture
URL extensions
Track campaign
The system assigns visitors who access the page through the
alias to the selected web analytics Campaign.
For example, you can create a special alias for a page and
then use the alias URL in links contained in marketing
materials, such as banners, e-mails etc. 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.
This field is optional.
6. Click Save.
If you now switch back to the page's Properties -> URLs tab, the new alias appears in the Page aliases section. You can add any number
of aliases.
Wildcard URLs
Wildcard URLs provide a way to load content dynamically depending on the page URL.
You can find an example on the sample Community starter site. The Members -> Profile page uses wildcard URLs to display user profiles
a single page displays profiles of various site users.
How is it achieved? Log in to the administration interface and open the Pages application. Select the Members -> Profile page in the content
tree and switch to the Properties -> URLs tab. You can see /Members/{UserName} in the Page URL path field. The {UserName} part of
the URL is the actual wildcard.
If you type <domain>/Members/David.aspx into your browser, the Members -> Profile page opens. The system converts the wildcard part
of the URL (David) into a query string parameter, so that the internal URL actually looks like <domain>/Members/Profile.aspx?username=
David. The name of the parameter is taken from the name of the wildcard, and the value is the matching part of the entered URL. 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.
Note: This procedure only works for IIS 7 sites that use an Application Pool with Managed Pipeline Mode set to Integrated.
1. Edit your application's web.config file.
2. Find the <modules> element inside the system.webServer section directly under the web.config root (i.e. not under a specific <loca
tion> element).
3. Set the runAllManagedModulesForAllRequests attribute to true for the opening <modules> tag:
<system.webServer>
...
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule"/>
<remove name="XHtmlModule"/>
<remove name="CMSApplicationModule"/>
<remove name="UrlRoutingModule-4.0"/>
...
</modules>
...
</system.webServer>
With this modification in your web.config, configure the extensions in the Kentico administration interface. You can also perform additional
configuration as described below.
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.
You can also add the following key to the AppSettings section of the web.config file, which ensures that URLs remain the same even after
postback.
If you are using trailing slashes (enabled through the Use URLs with trailing slash setting in Settings -> URLs and SEO), you can use the
following extra key to have only extensionless URLs ending with the trailing slash. URLs ending with an extension are rendered without the
slash when the key is used.
2. Select your website from the tree and open the Error pages section.
3. Right-click the 404 error and select Edit Feature Settings.
If you receive a Lock violation message when configuring the following step, proceed to Troubleshooting custom and
extensionless URL configuration.
Click OK.
Right-click the 404 error again and select Edit.
Select Execute a URL on this site and enter the same URL that you entered in step 4. Click OK.
Go back to step 3 and repeat the same procedure for the 405 error.
Click OK in all dialogs to save the changes. It's not necessary to restart the application.
6. Click OK.
Now when you go to the live website, the system renders all URLs in menus and listings with the specified extension. You may need to
manually update static links that were created with the default .aspx extension.
2.
3.
4.
5.
6.
Click Apply to save the changes. From now, the Lock violation errors shouldnt appear.
<page GUID> is the globally unique identifier of the page. You can find a page's GUID value in Pages -> Properties -> General ->
Node GUID.
The <page name> value may contain any text it is not used by the system, but allows you to specify the exact URL (e.g. for the
purposes of search engine optimization). By default, the system uses the page's name.
Permanent links keep working even if you move the target page to another location.
For example:
http://www.example.com/getdoc/016fad52-0d69-46d5-80dc-daec9173c0c7/Products.aspx
is the permanent equivalent of:
http://www.example.com/company/products.aspx
For example:
http://www.example.com/getdoc/8FG7-84E394-FABD-5678/our-services/fr-fr.aspx
Displays the given page in French (if the page is translated). It is an equivalent of:
http://www.example.com/company/our-services.aspx?lang=fr-fr
Linking attachments
If you need to create a permanent link to a file uploaded as a page attachment, you use a URL in the following format:
<domain>/getattachment/<file GUID>/<filename><extension>
The <file GUID> is not the same as the page GUID. It is the GUID of the file in the CMS_Attachment database table. To find the
GUID of an attachment, click the attachment in Pages -> Properties -> Attachments and view the URL.
The <file name> value can contain any text.
For example:
http://www.example.com/getattachment/763c8921-be94-4610-99b4-25e8d3be5b08/logo.aspx
GetFile.aspx parameters
The system uses the GetFile.aspx page to retrieve uploaded files from the database. The page is called whenever you use /getdoc,
/getattachment or a direct URL based on the alias path of a CMS.File page.
GetFile URLs accept the following query string parameters:
Parameter name
Description
Sample value
guid
nodeguid
versionhistoryid
width
100
height
400
maxsidesize
500
disposition
inline
or
attachment
Resizing of images
If your website has the Resize images according to device profile setting enabled in Settings -> Content -> Content
management, the system may override the width, height and maxsidesize parameters used in GetFile URLs of image files.
When a user views the website on a device that matches a device profile, images automatically reduce their maximum side size to
the larger of the dimensions set for the given profile.
To configure the dimensions of device profiles:
1. Open the Device profiles application.
2. Edit ( ) a profile.
3. Set the Preview width and Preview height properties.
4. Click Save.
If you wish to disable device profile resizing for an image, add the resizemode=1 parameter to the GetFile URL.
OnBeforeGetSafeUrlPath - occurs whenever a potentially unsafe text value is added to a part of a URL, e.g. when the page alias
field is saved (or filled automatically based on the page's name). This event can be used to customize the final format of URL paths.
For example, 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.
OnBeforeRemoveDiacritics - occurs whenever the system removes diacritics from text. This is one of the default steps performed
when creating safe URLs, 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 events are members of the URLHelper and TextHelper classes respectively, which can be found under the CMS.Helpers namespace.
The handlers for these events have the source text included as a string parameter passed by reference, so any changes that you
make in the code are reflected in the result.
Both handlers have a boolean return value that indicates whether the default functionality should also be performed after the handler
is executed. For this reason, it is highly recommended to set the return value to true for all but the most extensive customizations.
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.
Disabling the default system functionality may prevent parts of your website from working correctly, particularly in the case of
handlers for the OnBeforeGetSafeUrlPath event.
Example
The following example demonstrates how to define handlers for the forbidden character events:
1. Open your Kentico web project in Visual Studio.
2. 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.
3. Edit the class and add the following references:
using CMS.Base;
using CMS.Helpers;
4. Delete the default class declaration and its content. Instead, add the following code:
[URLFormatHandlerLoader]
public partial class CMSModuleLoader
{
/// <summary>
/// Custom attribute class.
/// </summary>
private class URLFormatHandlerLoaderAttribute : CMSLoaderAttribute
{
/// <summary>
/// Called automatically when the application starts.
/// </summary>
public override void Init()
{
// Assigns a handler to the OnBeforeGetSafeURLPath event
URLHelper.OnBeforeGetSafeUrlPath += Custom_OnBeforeGetSafeUrlPath;
// Assigns a handler to the OnBeforeRemoveDiacritics event
TextHelper.OnBeforeRemoveDiacritics += Custom_OnBeforeRemoveDiacritics;
}
}
}
This extends the CMSModuleLoader partial class and defines a new attribute. The override the Init method of the CMSLoaderAttri
bute attribute class allows you to assign custom handlers for events.
5. Add the definition of the Custom_OnBeforeGetSafeUrlPath handler into the private class:
This code replaces all ampersand (&) characters with the word and. For example, a page named Products & Services has
its default page alias generated as Products-and-Services, which is then used in the page's URL. This example is only
meant as a simple demonstration. In realworld scenarios, the handler can be much more complex, for example when
mapping the character set of an international language to appropriate ASCII characters or words.
The siteName parameter of the handler contains the code name of the site under which the event occurred. This can be
useful if you need to access the forbidden character settings of the given site in your custom code.
This ensures that the system uses custom replacements for German special characters rather than simply stripping the
diacritics and leaving the base character.
7. Save the file. Build your project if it was installed as a web application.
The system applies the changes when creating new URLs and when removing diacritics from text.
Note: The customization does not automatically change the aliases and URL paths of existing pages until the current value is
changed or saved.
generating pages with valid, standards compliant output code, and page URLs in a search engine friendly format.
Tracking search engine traffic
You can use web analytics to review the results of your website's SEO. 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
Description
The page title is displayed to users in the header of their browser
(or tab) when the page is viewed. Many search engines use this
title for the page in their search result lists.
The system adds the content of the field into the <title> element in
the HEAD section of the page's output.
Page description
A brief description of the page and its purpose. The description can
be used for SEO purposes and when performing searches on the
website.
The system adds the content of the property as a description meta
element in the HEAD section of the page's output. Some search
engines index this tag.
SEO settings
You can configure most of the SEO functionality of your website through the Settings application in the URLs and SEO category. The
settings here are divided into three main sections.
Description
These two settings set up the URL of the website's Google (XML)
sitemap and the path of the source page. The sitemap allows you
Robots.txt path
Specifies the path of the page that generates the website's robots.
txt file.
See also: Managing robots.txt
If enabled, the system places the ViewState field at the end of the
output code generated for pages. This helps search engine
crawlers process more page content.
Once you confirm the deletion, the system automatically adds page aliases to the replacement page. These aliases ensure that the website
serves up the replacement page whenever a visitor requests the URLs of the deleted page. When combined with permanent 301 redirection,
the replacement aliases also properly inform search engine crawlers about the change in your website's structure.
SEO - URLs
The settings in this section allow you to configure URL rewriting that focuses on avoiding issues with duplicate content, i.e. having the same
content available under multiple URLs. Such problems can have a negative effect on search ranking, so it is recommended to set up a
unified URL format.
Setting
Use URLs with trailing slash
Description
Specifies how the rewriter handles trailing slashes in URLs.
Possible options:
Leave the URL as is
Always use URLs with a trailing slash
Always use URLs without a trailing slash
Enabling this setting ensures that pages always have only one
valid URL and other aliases are redirected to this main URL. The
main URL of a page is determined either by its alias path, or
custom URL path if one is specified.
Note: You can override this setting for individual pages aliases
through their Alias redirection property.
For more information about page URLs, see Setting page aliases.
If enabled, the system ensures that all page URLs use the current
main extension. The main URL extension is the first one specified
in the Friendly URL extension setting. Any URLs with a different
extension are automatically redirected to a corresponding URL with
the main extension.
Determines how the rewriter handles the www domain prefix in the
website's URLs. You can leave the domain as it was entered or
have it rewritten to either always or never include the www prefix.
Note: This setting does not apply for IP addresses and toplevel
domains.
Default page
SEO - Cultures
The options in this section are important when performing search engine optimization of multilingual websites. The following settings allow
you to set up unique URLs for different language versions of pages in a search engine friendly format.
Setting
Force domain culture
Description
If checked, the system generates the domain name in page URLs
based on the current content culture. Whenever a user switches to
a different language on the website, the URL is redirected to the
corresponding domain name.
You can assign cultures to domains by editing (
Sites application:
Set the culture of the website's main domain through the Visit
or culture property on the General tab.
To define domain names for other languages, create Domain
aliases with an appropriately set Visitor culture.
Note: You cannot use this option in combination with language
prefixes.
Use language prefix for URLs
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. Sitemaps help search
engines correctly index the content of websites and can have a significant effect on the resulting search ranking.
A sitemap is an XML file that lists the URLs of a website's pages along with additional metadata. 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.
For detailed information about the Sitemap protocol, see http://www.sitemaps.org/.
1.
2.
3.
4.
For example, the default value googlesitemap.xml means that web crawlers can access the sitemap through the following URL:
<website domain>/googlesitemap.xml
Using the .xml extension
If you want to have your sitemap available under a URL with the .xml extension, you need to configure your application to handle
all types of request extensions:
1. Edit your application's web.config file.
2. Find the system.webServer section directly under the web.config root (i.e. not under a specific <location> element).
3. Add the following attribute to the <modules> element:
<modules runAllManagedModulesForAllRequests="true">
Troubleshooting:
If you encounter problems with pages missing in your sitemap, try checking for the following:
Manually excluded pages - specific pages may be excluded through their sitemap properties (Show in sitemap or Exclude from
search).
Incorrect content filtering - review the content filtering properties of your Google Sitemap web part.
If the Page types property is empty, the sitemap only loads CMS.MenuItem pages. Add the page types that you wish to
have in the sitemap. You can use the asterisk (*) wildcard to specify all page types.
Broken page hierarchy - sections of the website may be excluded due to parent pages missing in the sitemap. To load all pages
regardless of the parentchild hierarchy in the content tree, disable the Hide children for hidden parent property of the Google
Sitemap web part.
Sitemap priority
If you enter the URL of the sitemap into your browser, you can review the generated XML output. The system automatically creates the
required XML structure.
3.
4. Enter the path of your sitemap index page into the website's Google sitemap path setting.
This ensures that crawlers process the sitemap index first.
The sitemap index points search engine crawlers to the other sitemaps, which then provide the lists of page URLs in the usual way.
<url>
<%# GetSitemapItem("loc") %>
<%# GetSitemapItem("lastmod") %>
<%# GetSitemapItem("changefreq") %>
<%# GetSitemapItem("priority") %>
</url>
The GetSitemapItem transformation method generates XML tags according to the sitemap protocol. The method's parameter specifies the
type of the tag, and the value is dynamically loaded from the data of the transformed pages.
In the final XML output, the web part automatically encloses the transformed items within either a <urlset> or <sitemapindex> element
depending on the selected Sitemap mode.
Description
http://domain.com/googlesite
map.xml
http://domain.fr/googlesitem
ap.xml
http://domain/en-us/googlesi
temap.xml
http://domain/fr-fr/googlesi
temap.xml
URL language parameters
http://domain/googlesitemap.
xml?lang=en-us
http://domain/googlesitemap.
xml?lang=fr-fr
The sitemap automatically lists the pages from the language version of the website specified by the full sitemap URL.
Important
To ensure that the sitemap dynamically presents pages for the language determined by the sitemap URL, you need to leave the C
ulture code property of your Google Sitemap web part with an empty value.
Managing robots.txt
You can give instructions to web crawlers and other robots using the Robots Exclusion Protocol, i.e. a robots.txt file. The primary purpose of
robots.txt files is to exclude certain pages from search engine indexing. Like with Sitemaps, the provided instructions are only considered as
recommendations and may be ignored by some robots.
5. Open the Settings application and select the URLs and SEO category.
6. Enter the path of your robots.txt page into the Robots.txt path setting.
You can specify a different value for each site by using the Site selector above the settings tree.
The output of the specified page is always available under the standard <website domain>/robots.txt URL, regardless of the page's location
in the content tree. Compliant web crawlers read the instructions from this URL before processing other pages on the website.
Enabling the .txt extension
To ensure that the <domain>/robots.txt URL is available, you need to configure your application to handle all request extensions:
1. Edit your application's web.config file.
2. Find the system.webServer section directly under the web.config root (i.e. not under a specific <location> element).
3. Add the following attribute to the <modules> element:
<modules runAllManagedModulesForAllRequests="true">
The system automatically adds the following meta tag to the <head> section in the HTML output of such pages:
This instructs web crawlers not to index the page and to ignore any links in the content.
Note: You may need to take additional steps to ensure that cached pages do not display outdated content.
Standard page data sources load all columns if you leave the Colu
mns property empty. The full list includes the columns of the View
_CMS_Tree_Joined database view, and the coupled data columns
of individual page types.
By setting the Columns property, you specify exactly which of the
columns the data source retrieves.
Note: The system always loads the following columns used to
identify pages:
DocumentCulture, NodeID, NodeLinkedNodeID,
SiteName, ClassName, NodeLevel, NodeOrder,
NodeParentID
Navigation
To learn how Kentico stores pages in the database, refer to Page database structure.
Disabling view state reduces processing overhead and the size of the page output that clients need to download. As a result, page load time
improves (depending on the size of the view state).
Note: Test your web parts carefully after disabling view state. Web parts may not work correctly without view state in some
scenarios.
Expand source
Expand source
<div class="listDetail">
<h1>
{% HTMLEncode(NewsTitle) %}
</h1>
<div class="teaser">
{% GetImage(NewsTeaser, "", 230, 230, 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, perform the following steps:
1. Open the Pages application.
2. Configure the Repeater web part on the Design tab.
3. Set the following Columns (in the Content filter category):
NewsReleaseDate, NewsTeaser, NewsTitle, NewsSummary, NewsText, NodeOwner, NodeAlias, DocumentURLPath, 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.
5.
6.
7.
Configuring caching
Cache is a storage space that duplicates previously requested data, and allows faster access to the data in the future. Correctly using
caching can significantly improve the performance of your website.
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, 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, and utilize the application's memory to store data. The system
saves data into the cache in the form of cache keys. Cache keys have unique names that exactly identify the cached content. Each key
stores the cached data itself (depending on the type of the cache), as well as other information such as the expiration time or dependencies.
Cache types
Kentico provides the following types of caching:
Output cache (full page) - caches the full HTML output of pages.
Partial output cache - caches the HTML output of individual page components (web parts).
File cache - stores files and resources, such as images, CSS stylesheets or JavaScript files. Supports both server and client-side
caching.
Content cache - stores structured data loaded by web parts and controls (for data sources, repeaters, etc.).
Page info cache - stores basic information about pages.
Custom code cache - allows developers to cache data used in custom code.
You can also configure IIS Output caching for your web application. IIS Output caching is completely separate from the caching
mechanisms in Kentico. When clients request a page whose valid output is cached on the IIS level, the server returns the response
without requiring any processing from the Kentico application.
The following diagram shows the order in which the cache types are checked when handling requests (from top to bottom). If the required
content is found in one of the cache layers, the system stops processing the request and sends the response without executing the page
code or accessing the database. 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.
When a user requests a page, the basic information stays in the cache for the specified number of minutes, or until someone modifies the
related page.
Tip: You can view the cache keys that store page info through the cache debugging interface. The names of page info cache keys
begin with pageinfo or pageinfobyurl.
3. Add the Output cache dependencies web part anywhere on the page.
4. Define the dependencies in the web part's Cache dependencies property. For more information and examples, refer to Setting
cache dependencies.
5. Click OK.
The system clears the page's output cache whenever an object specified by the dependencies is modified. With the cache cleared, the
system fully processes the page on the next request, and caches the new output.
Note: If the page uses a shared page template, the dependencies apply to all pages with the given template.
The output cache stores the content of the selected pages in both the application's memory and file system. When processing page requests,
the system checks both types of output cache.
The page's output is removed from the cache. The next time a visitor opens the page, the system runs the page's code and saves the output
into the cache again.
Tip: If you wish to use partial caching on pages that are not based on the portal engine, you can leverage standard ASP.NET
output caching for controls.
username
sitename
_____________________
lang
browser
cookielevel
deviceprofile
domain
viewmode
5. Click Save.
The system adds the selected variables and their values into the names of output cache keys. As a result, the cache keys are unique for all
combinations of the required conditions.
For example, the username variable ensures that the system stores a separate version of each page's output cache for every logged in user.
If you disable the username option, the output cache does not distinguish between users if a page's output is cached for one user, the
system may load the same content for all other users (depending on the remaining output cache variables).
Tip: You can configure how the system shares partial output cache through the Partial cache variables setting. The variables
apply globally to the partial cache of all web parts.
Tip: You do not need to create substitution macros for all types of dynamic content. By default, the output cache stores multiple
versions of pages based on variables such as the user name, language and browser type. The system serves the appropriate
cache version to visitors according to these variables.
See the Caching multiple output versions of pages section for more information.
The following example demonstrates how to create a substitution macro that displays the current time:
1. Open your project in Visual Studio.
2. Create a class in the App_Code folder (or CMSApp_AppCode -> Old_App_Code on web application projects).
3. Edit the class and add the following references:
using CMS.Base;
using CMS.OutputFilter;
4.
5.
6.
7.
[SubstitutionLoader]
public partial class CMSModuleLoader
{
/// <summary>
/// Attribute class that registers substitution handlers.
/// </summary>
private class SubstitutionLoader : CMSLoaderAttribute
{
/// <summary>
/// Called automatically when the application starts.
/// </summary>
public override void Init()
{
// Assigns a handler method to the event that the system triggers when
resolving substitution macros
ResponseOutputFilter.OnResolveSubstitution +=
ResolveCustomOutputSubstitutions;
}
/// <summary>
/// Resolves output substitutions.
/// </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,
SubstitutionEventArgs e)
{
// Checks that the substitution expression is not resolved yet
if (!e.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.Expression.ToLower())
{
// Handles the {~TimeStamp~} substitution macro
case "timestamp":
// Flags the substitution expression as resolved
e.Match = true;
// Returns the current time as the result of the substitution
e.Result = DateTime.Now.ToString();
break;
}
}
}
}
}
8. Save the class file. Build the solution on web application installations.
The system now recognizes the {~TimeStamp~} expression, and resolves it into the current time. You can place the expression directly into
the text content of pages, or anywhere within the output code.
Output substitutions vs. Macro expressions
The functionality of output substitutions is similar to Kentico macro expressions. The main difference is that the system resolves
substitutions even when loading pages from the output cache.
For example, the {% DateTime.Now %} macro also displays the current time. If you place both the macro and the sample {~TimeSt
amp~} substitution onto a page that uses output caching, you get the following results:
Macro - displays the time when the page was loaded for the first time and saved into the output cache.
Substitution - updates the time whenever the visitor refreshes the page, even if the system loads the content from the
output cache.
Result
Enables client caching for files, and sets the expiration time to
the specified number of minutes. Browsers save files retrieved
from the server into their client cache. Until the cached files
expire, browsers load the file data from the cache without
sending any requests to the server.
This configuration provides the best file performance, but may
cause browsers to display outdated content (if cached files are
modified before the expiration interval ends).
Note: The system always caches files for at least one minute to prevent the application from overloading in case of DoS attacks.
The cache automatically removes files if they are modified and cannot cause the website to display outdated content.
To change how long the server-side cache retains files:
1.
2.
3.
4.
provide default dependencies for the content cache, and you can also add your own custom dependencies for individual instances:
1.
2.
3.
4.
5. Click OK.
The system deletes the web part's content cache whenever the specified objects change. With the cache cleared, the web part reloads the
data from the source the next time a visitor opens the page.
When a visitor opens a page containing one of the web parts, the system loads the data and saves it into the cache under the specified key.
While the cached content is valid, other web parts to which you assigned the same Cache item name retrieve the data directly from the
cache. This setup optimizes loading of content from the database (or other source) and avoids redundant keys in the cache.
Tip: You can use macro expressions to create dynamic cache item names based on variables such as query string parameters, or
other context data.
A page with the /Products alias path contains a Repeater web part with content caching enabled. The repeater displays a list of
products (pages) placed under the Products page. When a visitor requests the Products page, the repeater loads the list of
products from the database, and stores the data in the content cache. The cached data has a dependency on the node|corporate
site|/products|childnodes dummy key, which the system automatically creates. If a child page of the Products page is modified,
the dummy key is touched, and the cache deletes the dependent data.
The following table shows which dummy cache keys are touched when objects are modified:
Object type
Pages
(content tree nodes)
node|corporatesite|/home|en-us
node|corporatesite|/home
nodeid|12
nodeid|34
nodeguid|a58ed488-5545-48d0- ...
nodes|corporatesite|cms.menuitem|all
documentid|39
node|sitename|/|childnodes
cms.user|all
cms.user|byid|53
cms.user|byname|administrator
cms.user|byguid|1ced44f3-f2fc- ...
Metafiles
metafile|<guid>
metafile|1ced44f3-f2fc- ...
Page attachments
cms.attachment|all
documentid|<attachment document id>
documentid|<attachment document
id>|attachments
attachment|<guid>
cms.attachment|all
documentid|32
documentid|32|attachments
attachment|1ced44f3-f2fc- ...
Forum attachments
forumattachment|<guid>
forumattachment|1ced44f3-f2fc- ...
Avatars
avatarfile|<guid>
avatarfile|1ced44f3-f2fc- ...
Media files
mediafile|<guid>
mediafile|preview|<guid>
mediafile|1ced44f3-f2fc- ...
mediafile|preview|1ced44f3-f2fc- ...
Page templates
template|<id>
template|12
customtableitem.customtable.sampletable|
all
customtableitem.customtable.sampletable|
byid|2
Examples
Scenario: You have a web part displaying information about users. You need to clear the web part's partial output cache whenever one
of the user's data is modified.
Solution: Add the cms.user|all dummy key into the web part's Partial cache dependencies property. The system touches this dummy
key whenever the data of a user in the system changes.
Scenario: You have a web part displaying information about one specific user the administrator (UserID is 53, UserGuid is 849711D0
-739D-412E-92B6-FE40EDCADC4A). You need to clear the web part's partial output cache when the administrator's user account data
is modified.
Solution: Add any of the following dummy keys into the web part's Partial cache dependencies property:
cms.user|byid|53
cms.user|byname|administrator
cms.user|byguid|849711D0-739D-412E-92B6-FE40EDCADC4A
Scenario: You have a web part displaying a list of news articles. The web part loads the data from all CMS.News pages on the website.
The site's code name is NewsSite. You need to clear the web part's partial output cache when any of the news pages is updated.
Solution: Add the nodes|newssite|cms.news|all dummy key into the web part's Partial cache dependencies property.
Debugging cache
If you encounter unexpected caching behavior or any problems related to the cache, 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.
) next to the corresponding items. To remove all items from the cache, click Clea
) next to a cache key opens a new window showing detailed information about the cached object:
Key - the key under which the object is stored in the cache.
Expiration - date and time when the cache item will expire (i.e. will be removed from the cache).
Priority - Kentico uses two priorities for cache items: High and NotRemovable (will not be deleted from the cache as the server frees
system memory).
Dependencies - list of dummy keys on which the cache item depends. The system removes the cache item if any of the dummy
keys are touched (modified).
Object type - the type of the cached item.
Fields - the fields storing the actual data of the cached item (depend on the item's object type).
If you need even more information about a cached object, click Debug ( ) next to the item in the list of cache keys. Debugging cache keys
allows you to browse the full system data of the given object, including all properties, variables and related objects.
Note: The list of cache items does not display the partial output cache stored for page components.
Description
Enables cache access debugging and the Cache access tab in the
Debug application.
If enabled, the cache access debug also covers requests for pages
of the administration interface. Requires cache access debugging
to be enabled.
Sets the maximum length of the cache access debug log on the Ca
che access tab of the debugging interface, i.e. the number of
requests for which debug information is preserved and displayed.
If empty, the value of the Default log length setting is used.
If enabled, the system saves the cache access debug log into the l
ogcache.log file in the ~\App_Data folder. This option does not
require cache access debugging to be enabled.
Tip: You can also enable cache access debugging through the "debug everything" settings in the All section of the Debug settings
category.
Clicking View (
) next to a cache key opens a new window showing detailed information about the cached object:
Key - the key under which the object is stored in the cache
Expiration - date and time when the cache item will expire (i.e. will be removed from the cache)
Priority - Kentico uses two priorities for cache items: High and NotRemovable (will not be deleted from the cache as the server frees
system memory)
Dependencies - list of dummy keys on which the cache item depends. The system removes the cache item if any of the dummy
keys are touched (modified).
Object type - the type of the cached item
Fields - the fields storing the actual cached data (different for each object type)
Sets the number of minutes for which the system caches page
information. This option caches page properties and metadata.
Kentico retrieves page information many times during the
processing of a single page, so always set this value to at least 10
minutes!
When a page is modified, the system automatically clears the
corresponding part of the page info cache, so the website will not
display outdated information.
Sets the number of minutes for which web parts/controls with data
sources cache their content (typically retrieved from the Kentico
database).
You can override this value for specific web part instances by
setting their Cache minutes property. Using 0 as the value
disables content caching for the given web part instance.
It is recommended to cache all possible content. You can use cach
e dependencies to clear the cache on content changes. For most
non-custom data sources, the default dependencies automatically
ensure that web parts reload the cached content whenever the
data is modified.
See also: Caching the data of page components
Sets the number of minutes for which the system caches images
and other files on the server. Includes images, and web resources
such as CSS stylesheets and JavaScript files.
The system always caches files for at least one minute to protect
against brute force attacks. Kentico automatically removes files
from the cache if they are modified, so file caching cannot cause
the website to display outdated content.
See also: Caching files and resources
Sets the number of minutes for which client browsers are allowed
to cache files (i.e. the length of the client cache expiration time).
Client file caching includes images, and web resources such as
CSS stylesheets and JavaScript files.
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.
To completely disable client caching of files, set the value to 0 and
disable client cache revalidation.
See also: Caching files and resources
Output caching
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.
If not set, only the standard caching mechanism (in memory) is
used. If you enter a value, the system checks both types of cache.
To enable output caching in the file system for pages, configure the
Allow file system cache property of individual pages in the Pages
application on the Properties -> General tab.
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.
Output caching can greatly improve the performance of the page,
but is not suitable for pages with dynamic content.
You can inherit the output cache settings from the parent page.
Important: Output caching must also be allowed in the website's
settings. Administrators can enable output caching in Settings ->
System -> Performance.
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).
By default, the system automatically clears the output cache of the
page if you update the page's content, properties or page template.
You can manually remove the page from the output cache by
clicking Clear output cache.
Sets the name of the cache key used for the content of the web
part. If not specified, this name is generated automatically based
on the site, page path, Web part control ID and current user.
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.
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.
If empty, the web part uses the value entered into the Settings ->
System -> Performance -> Server content caching -> Cache
content (minutes) setting.
If set to 0, the web part does not use content caching.
Cache dependencies
Performance
Partial cache (minutes)
Sets the number of minutes for which system caches the output
HTML code of the web part. Partial caching is similar to to full-page
caching, but only for the code of the web part specifically.
If left empty or set to 0, partial caching is not used for the web part.
Important: Partial caching must also be allowed in the website's
settings. Administrators can enable partial caching in Settings ->
System -> Performance.
See also: Caching portions of the page output
Removes all unnecessary characters from the code that are not
required by the browser to correctly process the resource. This
includes white spaces, line break characters, comments,
bookmarks etc.
Minified resources behave in exactly the same way as the original.
Browsers can immediately handle minified resources without any
additional steps.
Note: Minified code is difficult to read (for humans) and is therefore
unsuitable for debugging.
Resource compression
You can enable or disable code minification and compression globally for all sites in Settings -> System -> Performance, through the
settings in the Resources category.
Reducing the size of requested resources saves bandwidth and improves the response time of your website. Minification can decrease the
size of a resource by approximately 2040%, depending on the code of the given object. If compression is also used, resources can be
reduced to roughly 30% of their original size.
Note: The reductions only apply to resources stored individually in the file system or database. Inline code inserted into the HTML
markup of pages is not affected.
The minification and compression process slightly increases the server CPU load and adds a short delay to resource requests. To counter
this issue, 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).
On subsequent client requests, the system provides the transformed version of the resource from the cache.
The cache stores both compressed and uncompressed versions of resources, so the data is readily available even for clients without
compression support.
The duration of the server-side caching is always at least one minute. You can change the number of minutes through the Cache
files (minutes) setting in Settings -> System -> Performance.
Additionally, you can use clientside browser caching for resources (enabled by default):
With client caching, browsers only reload resources from the server if the cached data expires or the content of the resource
becomes outdated.
Set the expiration time of the client cache through the Client cache (minutes) setting in Settings -> System -> Performance. Enter
0 to completely disable the client caching.
See also: Caching files and resources
If you change some settings or upload a file using server 192.168.1.2, the other servers do not know about it in a standard scenario.
However, if you are using web farm synchronization, the system automatically creates a new synchronization task in the database, and
notifies the other servers to process their task. To learn more about how the synchronization works, see Web farm synchronization
mechanisms.
To learn how to add web farm servers into the system and configure them, see Defining web farm servers.
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, especially if you do not store
uploaded files in the file system. The only limitation in such scenarios is that if you change the settings or page content on one of
the servers, 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.
Please note: The web farm support doesn't replace load-balancing or web farm management tools.
URL notifications
Every Kentico instance contains a page that web farm servers can send requests to when generating web farm tasks. The other web farm
servers don't get involved in the process until they are notified about the changes. When this happens, each server fetches its tasks and
processes them accordingly.
This is the default behavior in instances not running on Microsoft Azure.
Database notifications
With database notifications, a column in the CMS_WebFarmServer database table is used. The column contains a time stamp, which
indicates the time of the last change made on a server. On the application side, a routine runs in a separate thread which continuously polls
the database to find out whether a time stamp changed.
To enable this mechanism, add the following key to your web.config file. You don't need this key if your application runs on Microsoft Azure,
as this mechanism is used on Azure by default.
3.
Server root URL - the URL of the root of the website on the server, such as http://192.168.1.2/Kentico. You can check the
availability of the server by clicking Check server availability.
Server enabled - allows you to manually enable or disable web farm synchronization for the server.
4. Click Save to register the server.
Repeat the process for every server in your web farm.
You also need to update the web.config file on each server and add the CMSWebFarmServerName key into the appSettings section:
Where servername is the code name that the system created for the server (or the code name that you manually entered). Every server
must contain only one such key with its own name.
You can perform additional low-level settings for web farm synchronization by adding the keys listed in Web.config file settings into the /confi
guration/appSettings section of your web.config file.
Adding licenses for domains with a different number of allowed web farm servers
When you enable web farm functionality on a Kentico instance, we recommend that you use only those website domains, for which you have
licenses with the same number of web farm servers allowed. If you have a website which can be run on multiple servers, adding another
website with fewer allowed web farm servers can cause "License web farm server count exceeded." errors.
The best option is to set the hash salt value before you start creating content for your website. Changing the salt causes all current hash
values to become invalid. To fix existing macro expressions in the system after changing the hash salt, you need to re-sign the macros. See
Working with macro signatures for more information.
and use the Synchronize web farm changes scheduled task instead, which has a configurable execution interval:
1. Open the Scheduled tasks application.
2. Select (global) in the Site selector at the top of the page.
3. Edit ( ) the Synchronize web farm changes task.
4. Set an appropriate task interval.
5.
Your web farm now synchronizes according to the interval of the scheduled tasks.
Alternatively, you can add the following key to the appSettings section of your web.config file:
All servers with enabled web farm support add themselves into the list of servers when the application starts. If a server doesn't have a
server name defined in the web.config, it uses its machine name.
Setting
Description
Enables web farm debugging and the Web farm tab in the
interface of the Debug application.
Sets the maximum length of the web farm debug log, i.e. the
number of requests for which the debug stores information. If
empty, the value of the Default log length setting is used.
If enabled, the system tracks the code stack when debugging web
farm tasks and displays the information in the Context column.
This information is only available in the debugging UI and on the
live site, not in the debug log written into the logwebfarm.log file.
If enabled, the system saves the web farm debug log into the logw
ebfarm.log file in the ~/App_Data folder. This option does not
require web farm debugging to be enabled.
Tip: You can also enable web farm debugging through the "debug everything" settings in the All section of the Debug settings
category.
On the target web farm servers, the debug shows the processing of the synchronization task:
To remove all records previously logged in the web farm debug, click Clear debug log.
3.
pages and Using search filters.
Example
The following model scenario explains the life cycle of a page in a search index file:
1.
2.
3.
4.
Delete (
Description
Pages
Pages crawler
Forums
Custom tables
On-line forms
Users
General
Custom
Allows you to use your own customcoded search index. Stores any
kind of data depending on the implementation.
Before you can start searching content, you need to create search indexes for your website:
1. Open the Smart search application.
2. Click New index.
3. Fill in the index properties. Most importantly, you need to select the:
Index type - determines what type of content the search index stores
Analyzer type - determines how the index breaks text into searchable tokens
6. If you are creating a Pages or Pages crawler type index, switch to the Cultures tab. Here you need to select which language
versions of the website's pages are indexed.
You must assign at least one culture in order for the index to be functional.
If you have a multi-site index, you can select the cultures separately for each site.
7. Switch to the Indexed content tab and define the content covered by the index. 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. Go back to the General tab and Rebuild the index.
The Index info section displays information about the current status and parameters of the index.
Once the system finishes building the index, you can start using the index on your website.
The Search preview tab allows you to test the functionality of the index.
Description
Name of the index displayed in the administration interface.
Code name
Index type
Analyzer type
______________
Sets the type of analyzer that the index uses to tokenize text
(divide text into searchable tokens). The analyzer processes both
the indexed content and the search expressions entered by users.
When running searches using the index, the system returns results
for items that have at least one token matching the search
expression.
The following analyzers are available:
Simple - divides text at non-letter characters (including
numbers).
Stop - divides text at non-letter characters (including numbers)
and excludes all words in the selected Stop words dictionary.
White space - divides text at whitespace characters.
Standard - divides text based on language grammar (uses
stop words, shortcuts, ...). Very efficient for English, but may
not produce satisfactory results with other languages.
Keyword - returns the entire text stream of indexed data fields
as a single token. Useful for structured data fields like zip
codes or IDs.
Custom - allows you to assign a customwritten analyzer. This
provides a way to perform text tokenization according to your
own requirements. You need to specify the names of the
assembly and class where the custom analyzer is
implemented. See Creating custom smart search analyzers for
more information.
Subset - creates tokens for all possible substrings in words.
Indexes with subset analyzers return results for all words that
contain the search term. For example, searching for net match
es words such as net, Internet, network, kinetic, etc.
Starts with - creates tokens for all prefixes contained in
words, including the whole word. Allows searching for all
words that start with the search term. For example, searching
for test matches words such as test, tests, tester, etc.
Simple / Stop words / White space with stemming - divide
text using the Simple, Stop or White space analyzer, and then
reduce the tokens to word stems. Allows users to find words
that have the same basic meaning as the search term, but
different inflection (suffixes). Only works for English.
See also: Configuring search assistance features
Stop words
Batch size
Crawler settings
When editing Pages crawler type indexes, 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.
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, the index uses the default administrator user account.
On websites that use Windows authentication, you need to type the
user name (including the Active Directory domain in format domain
\username) and password.
Domain
Sets the domain that the crawler uses when indexing sites. Enter
the domain name without the protocol, for example: www.domain.c
om
If empty, the crawler automatically uses the main domain of the site
where the indexed pages belong.
For example, you can set a custom domain for web farm servers th
at do not have access to the main domain.
Pages
Result
Path: /%
Page types: empty
Path: /Partners
Page types: empty
Only indexes the /Partners page, without the child pages placed
under it.
Path: empty
Page types: CMS.News
Indexes all pages of the CMS.News page type on the entire site.
Path: /Products/%
Page types: CMS.Smartphone;CMS.Laptop
Result
Path: /Partners
Page types: empty
Excludes the /Partners page from the index. Child pages are not
excluded.
Path: empty
Page types: CMS.News
Excludes all pages of the CMS.News page type from the index.
Path: /Products/%
Page types: CMS.Smartphone;CMS.Laptop
Searchable
Tokenized
After you Save changes of the field settings, you need to Rebuild all indexes that cover pages of the given type.
When running searches using page indexes, the system returns results according to the field search settings of individual page types. The
page type search settings are shared by all page indexes in the system.
You can configure the search settings for fields just like for page types. The SKU fields are joined together with general page fields, such as
fields that store the content of editable regions on pages (DocumentContent) or the content of text widgets (DocumentWebParts).
Important: The search settings of general fields affect all pages, even those that are not products.
Description
User
______________
Sets the user account that the crawler uses to index pages.
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, the index uses the default administrator user account.
On websites that use Windows authentication, you need to type the
user name (including the Active Directory domain in format domain
\username) and password.
Domain
Sets the domain that the crawler uses when indexing sites. Enter
the domain name without the protocol, for example: www.domain.c
om
If empty, the crawler automatically uses the main domain of the site
where the indexed pages belong.
For example, you can set a custom domain for web farm servers th
at do not have access to the main domain.
Note: Page crawlers only index the content of pages that are published on the live site.
By default, page crawlers also index pages that use redirection from the site's main domain name to a domain alias. To only allow indexing
for pages that use the website's main domain, set the CMSCrawlerAllowSiteAliasRedirect key to false in your application's web.config file:
using System;
using System.Web;
using CMS.Base;
using CMS.Search;
using CMS.Helpers;
[DocumentCrawlerContentLoader]
public partial class CMSModuleLoader
{
/// <summary>
/// Attribute class for assigning event handlers.
/// </summary>
private class DocumentCrawlerContentLoaderAttribute : CMSLoaderAttribute
{
/// <summary>
/// Called automatically when the application starts.
/// </summary>
public override void Init()
{
// Assigns a handler for the OnHtmlToPlainText event
SearchCrawler.OnHtmlToPlainText += new
SearchCrawler.HtmlToPlainTextHandler(SearchHelper_OnHtmlToPlainText);
}
// Add your custom HTML processing actions and return the result as a
string
static string SearchHelper_OnHtmlToPlainText(string plainText, string
originalHtml)
{
string outputResult = originalHtml;
// Removes new line entities
outputResult = outputResult.Replace("\n", " ");
// Removes tab spaces
outputResult = outputResult.Replace("\t", " ");
// Removes JavaScript
outputResult = HTMLHelper.RegexHtmlToTextScript.Replace(outputResult, "
");
// Removes tags
outputResult = HTMLHelper.RegexHtmlToTextTags.Replace(outputResult, "
");
// Decodes HTML entities
outputResult = HttpUtility.HtmlDecode(outputResult);
return outputResult;
}
}
}
The OnHTMLToPlainText event provides the following string parameters to the handler:
plainText - the page output already stripped of all tags and converted to plain text
originalHTML - the raw page HTML code without any modifications
When editing forum indexes on the Indexed content tab in the Smart search application, select which Forums the search index covers. You
need to define allowed or excluded forums.
Alternatively, you can manually enter the code names of forums into the Forums field, separated by semicolons. All forums on the
selected site can be added to the index this way, including group forums. The asterisk character (*) can be used as a wildcard for
any number of characters. For example, entering *community* adds all forums that contain the string community in their code
name to the index.
When adding a new custom table to the index or editing an existing one, you have the following options:
Custom table - selects which custom table is indexed.
Where condition - sets the WHERE clause of the queries that the system uses to load data from the custom table when building the
index. Allows you to limit which records (rows) are included in the search index.
Note: You need to Rebuild the index on the General tab in order for changes to take effect.
Searchable
Tokenized
After you Save changes of the field settings, you need to Rebuild all indexes that include the given custom table.
When running searches using custom table indexes, the system returns results according to the field search settings of individual tables. The
field search settings are shared by all custom table indexes in the system.
6. Configure how the smart search indexes the form's fields. You can set the following options for individual fields:
Content
Searchable
Tokenized
7. Click Save.
8. Rebuild all indexes that contain the given form.
When running searches using on-line form indexes, the system returns results according to the field search settings of individual forms.
Users in roles - if entered, only users from the entered roles will be indexed.
Users not in roles - if entered, only users who are not in the entered roles will be indexed.
Where condition - 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.
In the top part of the tab, configure how the system displays users in search results:
Title field - select the field whose value is used for the title of search results.
Content field - the field whose value is used for the content extract of search results.
Date field - the field whose value is used for the date and time displayed in search results.
Note: You cannot change the image field for users. The search results display Avatar images.
The table in the bottom section of the tab determines how the smart search indexes the user fields. The list contains fields from both the User
and User - Settings classes. You can set the following options for individual fields:
Content
Searchable
Tokenized
After you Save changes of the field settings, you need to Rebuild all user indexes.
The field search settings are shared by all user indexes in the system.
After you select the object type, you need to configure which fields the index includes. Switch to the Search fields tab.
In the top part of the tab, configure how the system displays objects of the given type in search results:
Title field - select the object field whose value is used for the title of search results.
Content field - the field whose value is used for the content extract of search results.
Image field - the field that contains the image displayed next to search results.
Date field - the field whose value is used for the data and time displayed in search results.
The table in the bottom section of the tab determines how the smart search indexes the object type's fields. These fields correspond with the
columns of the database table that stores objects of the given type. You can set the following options for individual fields:
Content
Searchable
Tokenized
The configuration of search fields is global for objects of the given type. If you have multiple general indexes for one object type (i.e. using
the same Object name), changing the search field settings for one index also affects the others.
Click Set automatically to use the default search field configuration for the object type. Confirm changes by clicking Save.
General indexes and Sites
The content of general indexes is not affected by the selection made on the Sites tab. It only determines on which websites the
index will be available for use (through smart search web parts).
If you wish to configure a general index to search only through objects assigned to a specific site, we recommend using the Where
condition property on the Indexed content tab. For example, 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. This approach is only possible for
site-bound object types.
) individual tasks.
With the key set to true, the system creates search indexing tasks, but does not run them. In this case, you need to regularly process the
indexing tasks using the Execute search tasks scheduled task. You cannot manually Process tasks when the key is enabled.
The following properties are the most important for setting up the smart search:
Property name
Indexes
Description
Determines which index the search uses. You can select multiple
search indexes.
Transformation name
Search options
Search condition
If you enable the dialog's Show only search button property, the web part only displays the submit button without the search textbox and
mode selector. This functionality is intended for scenarios that utilize Smart search filters to specify all of the search parameters. You can add
the textbox separately from the search button by connecting a Smart search filter web part in textbox mode.
Search dialog - place the dialog on the same page as the search results, copy the Web part control ID of the search results web
part into the dialog's Result webpart ID property.
Search box - enter the relative URL of the page containing the search results into the search box web part's Search results page
URL property.
You can configure the Smart search results using the properties described for the Smart search dialog with results.
6. Click OK.
The search box now displays predictive results when users type search expressions. You can customize the appearance or behavior of the
predictive search.
the up and down arrow keys, and link to the selected result by pressing Enter.
Additionally, 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. The default groups separate the results into sections
with captions that match the Display name of the related search index.
To disable the default grouping, uncheck the Group results by index property of the Smart search box web part (in the Predictive results cat
egory). It is recommended to disable grouping if your predictive search only uses one search index.
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 content of individual results is determined by the transformation assigned in the Search result transformation property. To allow users
to open links for selected search results, include one <a> element with a properly defined href attribute in the transformation code. The URL
automatically opens when users select one of the predictive search results using the up/down arrow keys and press Enter.
You can change the following special result items by entering custom HTML content:
More results content - placed after the last search result if the maximum number of predictive results is reached. Use the {0} forma
tting expression to get the URL of the full search result page assigned to the search box.
No results content - displayed when the predictive search does not find any results.
To define CSS styles for the predictive search, 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, set the following properties of the Smart search box web
part (in the Predictive results category):
Predictive results CSS class - specifies the name of the CSS class assigned to the block element that contains the
predictive search results.
Selected result CSS class - specifies the name of the CSS class applied to the element containing the selected
predictive search result.
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 - if enabled, the system logs every predictive search request as an Internal search on-line marketing
activity.
Track web analytics search keywords - if enabled, the site's web analytics log all text submitted to the predictive search as part of
the On-site search keywords statistic.
Note: Tracking of predictive search requests may generate a large volume of irrelevant data (activities, keywords). The frequency
of the search requests depends on the typing patterns of your website's visitors. Keywords often include incomplete words or
fragments.
1.
2.
3.
4.
5.
6.
7.
7.
<div class="customPredictiveResultItem">
<a href='<%# SearchResultUrl() %>'>
<%# HTMLHelper.HTMLEncode(DataHelper.GetNotEmpty(Eval("Title"), "/")) %>
</a>
<span style="font-size: 7pt">
<%#
CMS.Search.SearchIndexInfoProvider.GetSearchIndexInfo(Eval<string>("index")).I
ndexDisplayName %>
</span>
</div>
1.
2.
3.
4.
/*
.predictiveSearchResults .selectedResult {
text-decoration: underline;
}
.predictiveSearchResults a {
text-decoration: none;
}
*/
.customPredictiveResultItem {
line-height: 160%;
margin: 2px;
}
.customPredictiveResultItem a {
display: block;
color: black;
text-decoration: none;
}
.customPredictiveResultItem.selectedResult {
color: white;
background-color: #326CA6;
}
.customPredictiveResultItem.selectedResult a {
color: white;
text-decoration: none;
}
6. Click Save.
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
typing.
Each result shows the name of the related search index.
Selected predictive results are highlighted using a colored background instead of the original underline effect.
Note:
The typo-tolerant search only works for search requests that use the Any word Search mode.
Typo-tolerant search may prevent advanced search syntax from working correctly (for example field search). When using
typo-tolerant search, we recommend setting the Search options property of the search result web part to None.
To enable the typo-tolerant search:
1. Configure the web part that you use to get and display search results (Smart search dialog with results or Smart search results).
2. Check Typo tolerant search in the Search settings category.
3. Click OK.
The search now finds words that are similar in spelling to the search terms.
The key's value must be a decimal number ranging from 0 to 1. A larger number assigns higher relevance to synonyms. If you set 1, the
score of synonyms is equal to words in the original unexpanded search expression. The default value is 0.9.
Substring search
If you create your search indexes using substring analyzers, the search returns results for items that contain the search terms inside larger
words or text sequences. 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).
For example, searching for net matches words such as net, Interne
t, network or kinetic.
Starts with
Allows searching for all words that start with the search term
(creates tokens for all prefixes contained in words, including the
whole word).
For example, searching for test matches words such as test, tests,
tester...
The Subset and Starts with analyzers use the following steps to process text:
1. Divide text into "words"
2. Create search tokens for the substrings inside the words (according to the analyzer type)
By default, the words created in the first step may contain the following characters:
word characters (upper and lower case letters, numbers, underscores)
at symbols (@)
periods ( . )
Any other characters split the text into separate words. This allows the analyzers to correctly create substring search tokens for text entities
such as e-mail addresses and internet domain names.
To customize how the analyzers separate text into words:
1. Write a regular expression matching all characters that you want to allow inside words.
2. Add the CMSSubsetAnalyzerWordRegex key into the appSettings section of your application's web.config file, and set the regular
expression as the value, for example:
The sample expression above allows the dollar sign in addition to the default characters. As a result, search indexes with Subset or Starts
with analyzers can now find expressions such as: $Var
Note: After changing the value of the CMSSubsetAnalyzerWordRegex key, you need to Rebuild your search indexes that use Sub
set or Starts with analyzers.
Word stemming
Stemming is the removal of suffixes from words. If you create your search indexes using stemming analyzers, the search matches words that
have the same basic meaning, but different inflection. For example, users can find:
Inflected words when searching for a stem (program -> programs, programming)
Word stems when searching for inflected words (trusted, trusting -> trust)
Any words that share the same stem as the search terms (conditional -> conditions)
Stemming does not find matches for all words that share the same morphological root only words that have an identical or very
similar meaning. For example, the words "flawed" and "flawless" do not have the same stem. Please keep in mind that word
stemming does not work perfectly for all word combinations.
The smart search stemming analyzers are based on the Porter Stemming Algorithm.
The stemming analyzers process text in two steps:
1. Divide text into tokens (words) using a base analyzer.
2. Reduce the tokens into their stem form.
You can select three variations of stemming analyzers, each with a different base analyzer:
Analyzer type
When users search for text using an index with a stemming analyzer, the analyzer also processes the search expression. As a result, the
search finds all items containing words that share the same stem.
Note: The default stemming analyzers only work for English text.
While building the page index, the smart search processes the allowed pages, extracts the text of any attachment files and includes it in the
content of the index (along with the other page data). When users perform a search using the index, the system returns results for pages
whose attachments match the search expression.
Updating the search content of attachments (Upgrades and Hotfixes)
Kentico stores the text content extracted from page attachments in the database. When rebuilding page indexes, the search loads
the "cached" attachment text from the database. The system only processes the file text directly for attachments that do not have
any search content saved.
If you apply a hotfix or upgrade that changes how the search indexes attachment files, you need to clear the attachment search
content:
1. Open the System application.
2. Select the Files -> Attachments tab.
3. Click Clear attachment search cache.
You can then Rebuild your page indexes, which updates the attachment content according to the new functionality.
They key sets the maximum allowed file size in kB. The search ignores page attachments whose size exceeds the value.
The system then attempts to detect the encoding type for each file, and use the correct option when reading the content during the indexing
process.
Note: Correct encoding detection is not guaranteed for all files. Automatic detection also slightly increases the time required to
index text files.
8. Click OK.
You can now combine the SQL attachment search with smart search results or enable attachments for the SQL search.
You can now combine the SQL attachment search with smart search results or enable attachments for the SQL search.
Property name
Description
If checked, the web part runs an SQL attachment search for every
search request and combines the results with the results provided
by the assigned indexes.
WHERE condition
ORDER BY expression
When users perform a search and the system finds a match in the attachment of a page, the given page is added to the search results. The
attachment results are always interlaced with the other results provided by the specified smart search indexes. This behavior is by design
and cannot be modified.
The attachment search is performed by the SQL server, so it is not affected by the settings and restrictions of the used search indexes. To
limit the attachment search scope, enter an appropriate value into the WHERE condition property of the used web part. For example, if you
have a search results web part using a page index that is limited to the /News/% section of your website, 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.
Attachments uploaded in the Pages application on the Properties -> Attachments tab of pages
The SQL search automatically includes the results from the attachment search.
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.
Filter mode
Sets the user interface type of the filter. Possible choices are:
Drop-down list
Checkboxes
Radio buttons
Text box
Values
Query name
Filter clause
Sets a clause that overrides the logical values specified for filtering
options. Possible choices are:
None - no clause is added and the original logical values set
for individual filtering options are used.
Must - indicates that the conditions in all filtering options must
be fulfilled (adds the + symbol).
Must not - indicates that the conditions in all filtering options
must not be fulfilled (adds the - symbol). Conditions are
inverted compared to the Must option.
Filter is conditional
If true, the filter limits the scope of the objects that are searched
(where condition). If false, 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.
Conditional filters
In the case of conditional filters, define one option per line in format:
Index field name;Value of the field;Displayed text
You need to specify the logical meaning of each filtering option by adding the + or - 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.
The search excludes all results whose value in the field matches
the value specified in the second part of the filtering option's
definition.
To create filtering options that check the values of multiple index fields, use the following syntax: (Field1:(Value1) OR Field2:(Value2));;Text
If you wish to use the same value for all fields in the condition clause, you can insert the value using the {0} expression: (Field1{0} OR
Field2{0};Value;Text
When entering integer or double type fields as filter options, you need to specify the type of the value:
+DocumentCreatedByUserID;(int)53;Administrator
Examples:
;;All
+classname;cms.smartphone;Smartphones
+_created;[{%ToSearchDateTime(CurrentDateTime.AddDays(-7))%} TO {%ToSearchDateTime(CurrentDateTime)%}];Past week
+_content;product;Results related to products
+(documenttags{0} OR _content{0});product;Results related to products
-(issecurednode:(true) OR requiresssl:((int)1));;Exclude secured pages
2.
content fields (i.e. filtering options that have _content as their field name).
3. Enable Search on each page load (ensures that the web part automatically displays results whenever the page is loaded, even
without input from a search dialog).
4. For additional convenience, enable the Filter auto postback property for your Smart search filter web parts (instantly refreshes the
search results after users change the filtering options).
Field search
Field searching allows users to define additional conditions in search expressions. All conditions must start with either the + or - symbol. The
+ symbol indicates that only results which fulfill the field condition should be returned. The - symbol has the opposite meaning, only results
that do not contain the specified value in the given field are retrieved.
For example:
+network +NewsReleaseDate:[20080101 TO 20091231]
When searching for this expression using a page index, the smart search returns only news pages containing the word network, released in
the year 2008 or 2009.
Field search requirements
Field search only works for fields set as Searchable in the field configuration of the searched object type. If there is no
field name specified before a value in the search expression (such as the word network in the example above), the system
searches the index fields marked as Content.
The system only processes field searches correctly if the search dialog web part has its Search mode set to Any words.
Unless the web part used to display the search results has the Block field-only search property enabled, it is also possible to perform direct
field searches without any standard content keywords. This allows users to find records simply by entering an exact field value:
DocumentNodeID:(int)17 - returns the page with a nodeID equal to 17.
NewsTitle:"New features" - returns the news page titled New features.
SKUDepartmentID:(int)4 - returns all products that belong to the department that has 4 as its ID.
Tip: Using field search queries provides a great deal of flexibility, but is not convenient for regular website visitors. If you wish to
allow users to limit the scope of searches through conditions on the live site, we recommended creating Search filters.
Description
score
title
Mapped to the field selected as the Title field on the Search fields
tab for the given object type.
content
created
image
index
The code name of the search index where the given result was
found.
imageClass
In the code of ASCX transformations, you can get the values from the dataset by using the Eval("<field name>") function: Eval("score"), Eva
l("title"), etc.
You can also use the following methods in your transformations:
SearchResultUrl(bool absolute) - returns the URL of the page containing the details of the search result. The optional parameter
indicates if the returned URL is absolute.
Search result URLs for general index results
The SearchResultUrl method does not return valid URLs for search results produced by general indexes, since the
indexed objects are not pages and there is no default page to display the object details. You need to write and use a custo
m transformation method to generate the correct URL of a custom page displaying the appropriate information.
SearchHighlight(string text, string startTag, string endTag) - wraps the text entered in the first parameter into the tags specified
by the other two parameters.
GetSearchImageUrl(string noImageUrl, int maxSideSize) - returns the URL of the current search result image. The first
parameter specifies the URL returned if no image is found, the second one specifies the maximum side size to which the method
resizes the image.
GetSearchValue(string columnName) - returns the value of the specified field for the current search result. Allows you to access
both the general fields of the given objects type (page, custom table etc.) and any other fields included in the search index.
GetSearchedContent(string content) - parses the searched content as XML if required, and removes dynamic controls and macro
expressions.
SQL search
The SQL search is an obsolete search engine for pages in the content tree of websites.
We highly recommend using the index-based smart search instead.
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. To override the search query for a page
type, create a new query named searchtree in Page types -> Edit page type -> Queries.
The searchpages query of the Root page type searches fields that are shared by all pages.
The searchattachments query of the Root page type searches files uploaded as page attachments. To search attachments, you
need to configure the system as described in Configuring SQL search for attachment files.
Scheduling tasks
The Scheduled tasks application allows you to configure how the system executes automatic tasks. Scheduled tasks can be useful when
you need to perform operations at a specific time or regularly over a certain time period. Many Kentico features leverage scheduled tasks.
The System tasks tab provides an overview of temporary tasks created dynamically by the system. System tasks internally
provide functionality for various Kentico features. You cannot manually create system tasks.
Task interval
To configure the interval that determines when individual scheduled tasks are ready to be executed:
1. Open the Scheduled tasks application.
2. Edit ( ) the scheduled task.
3. Set the task's scheduling options (Period, Start time, Every, Between, Days).
4. Click Save.
In this case, the Application scheduler interval sets the precise interval between the checks:
Values between 1 - 30 seconds define the interval between checks. For example, a value of 30 means that the application checks
tasks every 30 seconds.
0 disables the execution of tasks by the application.
Note
Only some of the default scheduled tasks support this option. The tasks that do not have the option available in the editing
interface must be processed by the application itself.
1.
2.
3.
4.
Task interval
To configure the interval that determines when individual scheduled tasks are ready to be executed:
1. Open the Scheduled tasks application.
2. Edit ( ) the scheduled task.
3. Set the task's scheduling options (Period, Start time, Every, Between, Days).
4. Click Save.
The Service scheduler interval sets the precise interval between the checks:
Values between 1 - 30 seconds define the interval between checks.
For example, a value 30 means, that the service checks tasks every 30 seconds.
0 disables the execution of tasks by the external service.
InstallUtil.exe /webpath="C:\inetpub\wwwroot\Kentico\CMS"
"c:\inetpub\wwwroot\Kentico\CMS\bin\SchedulerService.exe" /LogToConsole=true
/i
Path to the CMS folder of the Kentico instance for which you
want to install the service.
second parameter
/LogToConsole
/i
4. Open the Services management console (type services.msc into the Start menu search box).
5. Select the Kentico Scheduler (<CMSApplicationName web.config key value>) service in the list.
6. Click the Start Service button on the top toolbar.
InstallUtil /webpath="C:\inetpub\wwwroot\Kentico\CMS"
"c:\inetpub\wwwroot\Kentico\CMS\bin\SchedulerService.exe" /LogToConsole=true
/u
After executing this command, the Scheduler Windows service for the Kentico instance specified by the /webpath parameter is uninstalled.
) the task.
Property
Description
Task name
Task provider
Period
Start time
Every
Between
Days
Set the time interval between the execution of the task. The interval
settings do not ensure that the system executes the task at the
exact time, only that the task is considered ready for execution.
The precise execution time depends on the scheduling settings
and other factors.
See also: Configuring scheduled task execution
Task data
Additional data provided to the task's class. You can access the
field from the code of the task, and use the value as a parameter.
The Task data allows you to modify the task's functionality without
having to edit the code implementation.
Task condition
Task enabled
Indicates if the system deletes the task after its final run (applicable
if the task is set to run only once).
Server name
Sets the name of the web farm server where the task is executed.
This field is applicable only if your application is running in a Web
farm environment.
To add a new task for all web farm servers currently registered in
the system, select the Create tasks for all web farm servers chec
k box below the field.
If the scheduled task needs to access data from the user context in
its code (e.g. to check permissions), you can use this property to
choose which user is provided. The scheduler always executes the
task within the context of the selected user.
In most cases, the user context does not affect the functionality of
the task, and you can leave the (default) option the context of a
public user is used.
Executions
Shows how many times the task has been executed. You can reset
this counter back to 0 by clicking Reset.
If there are multiple sites running under your application, you can assign servers to individual websites on the Sites tab. SMTP servers can
either be global or limited to one or more specific websites.
servers:
1. A predefined amount of emails is loaded from the queue as a batch.
2. The system goes through the e-mails one by one and assigns them to servers according to their priority and availability.
The default SMTP server always has the highest priority.
Other servers are ordered according to the value of their Priority property (i.e. e-mails are first assigned to High priority
servers, then Normal and finally Low).
3. When a server receives an email, the server is flagged as busy until the sending is complete.
4. The system loads a new batch from the queue and continues assigning individual e-mails to available servers.
This process is repeated until all emails in the queue are mailed out.
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 batch size affects all sites in the system, so it is only available if the (global) option is selected in the Site selector on the top left of the
settings page.
The value of the batch size affects the number and frequency of database queries. If you set the batch size too large, the system will have
to process a lot of database data at one time. Using a smaller batch size increases the frequency of database queries and may reduce the
database performance.
Debugging e-mails
Debugging can help resolve problems with e-mails sent by Kentico.
To enable e-mail debugging, add the following keys to the configuration/appSettings section of your project's web.config file:
CMSLogEmails - logs all sent e-mails to the ~/AppData/logemails.log file. The log contains each e-mail's recipient and subject.
CMSDebugEmails - disables sending of e-mails to the actual recipients. The system only logs e-mails into the event log. Helpful if
you need to test the functionality, but do not want the e-mails to actually reach the recipients.
To view the event log, open the Event log application.
The e-mails are logged as Information type events.
The Event code column contains the recipient's address.
The system randomly generates Sending failed for <recipient's e-mail address> errors to simulate sending errors.
Priority
Enabled
Advanced
Delivery method
If the SMTP server requires authentication, you can enter the user
name here.
Password
Use SSL
Specifies a folder on the disk, where e-mails will be stored until the
SMTP server processes them.
The IIS_IUSRS group must be granted write permissions for this
folder.
Description
Display name
Code name
E-mail type
From
Cc
Bcc
Subject
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.
<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 (
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.
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).
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
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.
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.
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.
3. Click Save.
4. Switch to the Design tab.
5.
6.
7.
8.
4.
This is the file specified in the Target URL of the previously created UI element. The location ensures that the system
exports the file with any site that includes global folders in the export package.
5. Modify the page code to match the following:
The Dashboard user control handles the entire functionality of the dashboard. 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, page template and contextrelated data such as the current site and user.
6. Switch to the web form's code behind and add the following references to the beginning of the code:
using CMS.Core;
using CMS.UIControls;
using CMS.SiteProvider;
[UIElement(ModuleName.CUSTOMSYSTEM, "CommDashboardElement")]
public partial class CMSGlobalFiles_CommDashboard : DashboardPage
{
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
// Must be equal to the code name of the module containing the corresponding
UI element
ucDashboard.ResourceName = "cms.customsystemmodule";
// Must be equal to the code name of the corresponding UI element
ucDashboard.ElementName = "CommDashboardElement";
ucDashboard.PortalPageInstance = this as PortalPage;
ucDashboard.TagsLiteral = this.ltlTags;
// Ensures that the dashboard has unique content for each site
ucDashboard.DashboardSiteName = SiteContext.CurrentSiteName;
ucDashboard.SetupDashboard();
}
protected void Page_Load(object sender, 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. 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.
9. Save both files. If your installation is a web application, Build the CMSApp project.
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).
The page displays a fully functional dashboard based on the created page template.
Description
Form filter
Resolves relative URLs so that they contain the root URL of the
website. For example, the filter changes ~/mypage1/mypage2.aspx
to:
/mypage1/mypage2.aspx (if the application is running in the
root)
or
/VirtualDirectory/mypage1/mypage2.aspx (when using a virtual
directory).
The filter only modifies URLs inside src and href attributes.
XHTML filter
<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">
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>
Specifies the URLs of the pages that the system excludes from the
Form output filter.
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.
Specifies the URLs of the pages that the system excludes from the
Tag attribute XHTML filter.
Specifies the URLs of the pages that the system excludes from the
JavaScript tag XHTML filter.
Specifies the URLs of the pages that the system excludes from the
Lower case XHTML filter.
Specifies the URLs of the pages that the system excludes from the
Self closing tag XHTML filter.
Specifies the URLs of the pages that the system excludes from the
HTML5 output filter.
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.
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 its 2pm in Paris. Thats when you use the built-in
support for multiple time zones.
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.
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.
Code name
GMT difference
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.
Using these sets of properties, you can exactly define when the
time advance should be carried out.
Month
Condition
Condition specifying the day that the change occurs on. Based on
the selected option, you can select day of the week, day number or
a combination of both.
Day
Two fields day of the week and day number can be used based
on the selected condition.
Time
Value
Number of hours that will be added to the current time when the
time advance occurs.
LAST
>=
<=
.
c. Set the time when the change will occur on the specified date using the Time field.
d. Set the time difference between the standard time and DST in the Value field.
This value represents the difference from standard time in hours.
Use this value (usually 1) for the DST start rule and 0 for the DST end rule.
3. Set the DST end rule as specified in the previous step. Set Value as 0.
4. Click OK to save the settings.
In the following table, you can find all object types that support object versioning. In the Editing interface column, you can find the exact
location within the Kentico administration interface where you can edit objects of the given type. If versioning is enabled for a particular object
type, the Versions tab appears in the interface, where you can view and manage the edited object's versions.
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
E-mail templates
Form definitions
Media files
Newsletter issues
Newsletter templates
Page layouts *
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
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 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.
** Only custom queries and web part layouts are versioned system queries and default web part layouts are not versioned.
Settings
Even though object versioning is enabled and functional by default, we recommend configuring the related settings for your system.
1. Open the Settings application.
2. Select the Versioning & synchronization -> Object versioning category.
3. Configure the available settings.
4.
4. Click Save.
To manage the page template's versions, hover over Edit template... and click Template versions.
For templates that use shared page layouts, you can access the shared layout's versions by hovering over Edit layout... and clicking Shared
layout versions.
Clicking either of the items opens a dialog, where you can manage the corresponding object versions (see Managing versions on the
Versions tab for details).
Deleted objects that match the setting are now moved to the recycle bin.
Usage
Example
Forms
Custom tables
Page types
_______________
System objects
Alternative forms have no dedicated application in the administration interface, only the Alternative forms tab available when editing one of
the listed objects.
Additional topics:
Code names of automatically used alternative forms - provides a list of special code names, which can be assigned to alternative
forms. The system uses such forms automatically for certain actions (typically creation of new items or editing of existing ones).
Displaying filters using alternative forms - explains the usage of alternative forms as filters for displaying large numbers of records.
Code name
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).
Note: If the form uses a custom layout, it will not automatically
display new fields even if this property is disabled. In this case, you
must also add the new fields to the form layout.
Usage
Supported by
filter
insert
newculture
Page types
update
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. A filter form
control is available for each data type:
Text filter
Boolean filter
Number filter
Date & time filter
4.
5.
6.
7.
There should already be a pre-defined filter form. Click Delete ( ) so that you can go through the rest of this example and
create your own filter from scratch.
Click Create new form.
Enter the Display name: Filter. The code name is filled in automatically based on the display name.
Select the Make new fields hidden check box.
Click Save.
4. Click Save.
5. Repeat the steps 3 and 4 for the LastName and Email fields. This ensures that these fields are also included in the filter.
6. Disable the Phone number and Message fields by unchecking the Display attribute in the editing form option and clicking Save i
n both fields.
Result
Once you have the filter created, return to the form's editing interface and select the Recorded data tab. You can try filtering based on
various parameters.
The default number of 25 records has to be present in the list in order for the filter to be displayed.
Therefore to see the filter, you either need to create the required number of records, or use the CMSDefaultListingFilterLimit web
.config key to lower the filter limit accordingly.
Health monitoring
Health monitoring enables website administrators to monitor and record load and performance of Kentico instances. The feature only stores
monitored values about the system in Windows performance counters. It does not perform the actual monitoring. For this purpose, you can
use external applications, for example the built-in Performance monitor in Microsoft Windows.
Monitoring of some of the values requires database access. To optimize performance in this case, you can install a dedicated Windows
service and let it handle monitoring of these values instead of the application.
This key is added to the web.config file automatically during installation. In case of IIS installation, the path to the instance in IIS is used as
the key's value. In case of a Visual Studio web server installation, the name of the target web project root folder is used. The value must be
less than 60 characters long. In general, the value of the key is used by Kentico Windows services to identify Kentico instances. Specifically
for Health monitoring, the value is used to identify performance counters to which the monitored values about the instance are written.
In case of Visual Studio web server installation, 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). In this case, you need to ensure that the keys
have different values. Otherwise, values from these instances may be written to the same counters.
Enable the Install Windows services for Scheduler and Health Monitoring option to install the Kentico Scheduler and Kentico Health
Monitor services. Installing these services can optimize the monitoring performance.
To remove already existing performance counters, execute the HealthMonitoringService.exe file with the following parameters:
When you delete the registry keys, you also remove the respective counter categories, which unregisters the counters.
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. Launch the Kentico Service Manager utility from the Kentico program files group in the Windows Start menu.
You can also launch the KSM utility from Kentico Installation Manager using the Services button.
2. Choose the Kentico instance where you want to install the service (select the CMS folder).
3. Select the Kentico Health Monitor service.
4. Click Install.
Installing the Health monitoring Windows service using the command line
To install the Windows service from the command line, you need to use Installer Tool (InstallUtil.exe), which is a native part of the .NET
Framework:
1. Open the Windows command line (type cmd in the Start menu search box).
2. Navigate to the .NET folder containing InstallUtil.exe (e.g. c:\Windows\Microsoft.NET\Framework64\v4.0.30319\).
3. Execute InstallUtil.exe from the Windows command line with the following parameters:
InstallUtil /webpath="C:\inetpub\wwwroot\Kentico\CMS"
"c:\inetpub\wwwroot\Kentico\CMS\bin\HealthMonitoringService.exe"
/LogToConsole=true /i
Path to the CMS folder of the Kentico instance for which you
want to install the service.
second parameter
/LogToConsole
/i
4. Open the Services management console (type services.msc into the Start menu search box).
5. Select the Kentico Health Monitoring (<CMSApplicationName web.config key value>) service.
6. Click the Start Service button on the top toolbar.
Uninstalling the Health monitoring Windows service using the command line
1. Open the Windows command line (type cmd in the Start menu search box).
2. Navigate to the .NET folder containing InstallUtil.exe (e.g. c:\Windows\Microsoft.NET\Framework64\v4.0.30319\).
3. Execute InstallUtil.exe from Windows command line with the following parameters:
InstallUtil /webpath="C:\inetpub\wwwroot\Kentico\CMS"
"c:\inetpub\wwwroot\Kentico\CMS\bin\HealthMonitoringService.exe"
/LogToConsole=true /u
After executing this command, the Health monitoring Windows service for the Kentico instance specified by the /webpath parameter is
uninstalled.
Description
4. From the Select counters from computer list, choose <Local computer>.
In the section below, you will see a list of all counter categories currently registered in Windows.
5.
6.
7.
8.
Added counters will be added to the Added counters list on the right.
9. Click OK.
Back in the monitoring UI you can now see that the Performance monitor displays the values in counters in the graph. The values reflect the
real activity of the Kentico instance. You can switch between different ways how monitored values are displayed using the Graph type dropdown list.
Category
Description
Values written by
Allocated memory in MB
Global
Application
Global
Application
Global
Application
Global
Application
Application
E-mails in queue
Application or Windows
service*
Application or Windows
service*
Errors
Global
Application
File downloads/sec
Application
Non-page requests/sec
Global
Application
Application
Application
Application
Application
Pending requests/sec
Global
Application
Robots.txt views/sec
Application
Global
Application
Running threads
Global
Application
Global
Application
Global
Application or Windows
service*
Global
Application
Warnings
Global
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.
You can also define custom counters to monitor other system values.
Kentico cookies are separated into several cookie levels according to their importance in the system. There are three main levels designed to
comply with the law regulations.
No cookies
Only essential cookies
All cookies
On each level, actions to switch to the remaining levels are offered. You may customize the text messages, available actions as well as
button texts.
The Default user cookie level property sets the enforced cookie level before the user makes a choice.
(Use the system settings) option sets the default user cookie level to the settings defined for the web.config CMSDefaultCookieLevel
key (available values are None, System, Essential, Editor, Visitor, All as specified on the Cookie levels page).
The Compare current cookie level to property is a basis for other settings in the web part. It defines a level to which the user's current
cookie level is compared. 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).
When the current level exactly matches the compared level (Exact level behavior settings).
When the current level is above the compared level (Above level behavior setings).
This should give you enough options to configure the web part.
The Preview cookie level property allows you to simulate the user cookie level in Edit and Preview mode.
Cookie levels
Kentico classifies cookies into several levels according to their purpose. The levels allow you to set cookie levels for users. The following are
the default levels available in the cookie API (CMS.Helpers.CookieLevel class):
Cookie level
Description
None (-1000)
System (-100)
Essential (0)
Editor (100)
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, i.e. user tracking cookies, which are
not really needed, but are useful for the site owner if using EMS.
All (1000)
This is a system level, that allows all cookies, no matter what their
level is. From the site visitor's perspective this means "Allow all
cookies now and in the future".
The numbers associated with each cookie level are integer constants, which allow you to further customize the levels or add custom levels.
The levels "None" and "All" have an absolute value of 1000 to provide enough space for future updates or custom levels.
For simplicity, there are 3 main levels, which represent the choices offered to visitors when asking for consent to use cookies:
Simplified cookie level
Description
No cookies
System
Essential
All cookies
All
These three levels are also used in the provided cookie web parts.
Automatic cookie consent for administrators and editors
If a user logs in to the administration interface, cookies are automatically enabled to provide full editing functionality. We expect
that loggging in to the administration interface identifies a user as staff, so there is no need for cookie consent.
Level
Description
CMSCookieLevel
System
ASP.NET_SessionId
System
CMSPreferredCulture
Essential
CMSMobileRedirected
Essential
CMSCurrentTheme
Essential
Webauthtoken
Essential
CMSForumPostAnswer
Essential
CMSVotedPolls
Essential
CMSRatedDocuments
Essential
CMSShowDesktopVersion
Essential
.ASPXFORMSAUTH
Essential
FormState
Editor
CMSPreferredUICulture
Editor
CMSViewMode
Editor
CMSUserWords
Editor
DisplayContentInDesignMode
Editor
DisplayContentInUIElementDesignMode
Editor
CMSMacroDesignerTab
Editor
CMSSplitMode
Editor
CMSPreviewState
Editor
CMSPropertyTab
Editor
CMSViewTab
Editor
CMSValidationTab
Editor
CMSEdVariantSliderPositions<templateid>
Editor
CMSWebPartToolbarCategory
Editor
CMSWebPartToolbarMinimized
Editor
CMSCurrentDeviceProfileName
Editor
CMSCurrentDeviceProfileRotate
Editor
CMSUniGraph
Editor
CMSSessionToken
Editor
ABSelectorState<ABtestname>
Editor
VisitorStatus
Visitor
Campaign
Visitor
TrackedCampaigns
Visitor
UrlReferrer
Visitor
CurrentContact
Visitor
CMSAB<ABtestname>
Visitor
CMSMVT<mvtestname>
Visitor
CMSNoTestMVT<templateid>
Visitor
CMSShoppingCart
Visitor
CMSBodyClass
Visitor
CMSEd<GUID>Current
Visitor
ChatLoggedInToken
Visitor
ChatSupportLoggedInToken
Visitor
Visitor
chat_autoinitchat_displayed_<GUID>
Visitor
chat_kick_roomid_<room ID>
Visitor
StrandsSBS_*
Visitor
CMSStrandsTrackEvent_*
Visitor
__openid_selector_*
Visitor
Third party
Cookie level
Notes
Social media
CKEditor
All
jQuery UI Layout
All
All
51D
All
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.
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
Enabled
Ban Reason
Ban IP address
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.
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 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.
Report category
Connection string
Enable subscription
6. Define the Layout of the report using the WYSIWYG editor. To retrieve and display information from the Kentico database, add the
following objects into the report's layout:
Tables
Graphs
HTML graphs
Values
Additionally, macro expressions are supported in the report layout.
You can view the output of the report on the View tab.
Localizing strings in reports
If you need to create a single report in multiple languages, follow the instructions given in Working with resource strings.
Code name
Enable export
If enabled, users who view the table are able to export the
displayed data to external files using the Microsoft Excel
(XLSX), CSV or XML format. The data export feature may be
accessed by rightclicking the table in the report, which opens
a menu with possible export actions.
Enable subscription
Query
Query
Here you can add the SQL query used to retrieve data to be
displayed by the table.
Is stored procedure
Connection string
No record text
Skin
Skin ID
Paging
Enable paging
Page size
Paging mode
4.
5.
6.
7.
8. Click Save.
Code name
Enable export
If enabled, users who view the graph are able to export the
displayed data to external files using the Microsoft Excel
(XLSX), CSV or XML format. The data export feature may be
accessed by rightclicking the graph in the report, which
opens a context menu with possible export actions.
Enable subscription
Query
Query
Is stored procedure
Connection string
No record text
Chart type
Graph type
Drawing style
Area - uses a line chart with the space under the lines
filled with the respective color
Pie Chart:
Pie - uses a standard circular chart divided into sectors
Line chart:
Line - uses straight lines to connect values
Overlay
100% stacked
Orientation
Drawing design
Label style
Doughnut radius
Show as 3D
Rotate X
Rotates the chart around its X axis. Accepts values from -90
to 90. Only available if Show as 3D is enabled.
Rotate Y
Width
Height
Show Grid
Shows a thin dotted line grid in the graph chart, Not available
for Pie charts.
Title
Title
Title font
Title color
Title position
Legend
Background color
Border color
Border size
Border style
Position
Legend inside
Fixed legend
Legend title
X-axis
X axis title
Title color
X axis angle
X axis format
Title font
Position
X axis interval
Y-axis
Y axis title
Title color
Y axis angle
Y axis format
If enabled, X axis settings are used for the Title font, Positi
on and Axis label font properties.
Title font
Position
Series
Primary background color
Gradient
Border color
Determines the border color for series items in the chart. Not
available for Line charts.
Border size
Determines the border size for series items in the chart. Not
available for Line charts.
Border style
Determines the border style for series items in the chart. Not
available for Line charts.
Line color
Line size
Line style
Symbols
Item tooltip
Item link
Values as percent
Chart area
Primary background color
Gradient
Border color
Border size
Border style
Scale min
Scale max
Ten powers
Reverse Y axis
Plot area
4.
5.
6.
7.
Gradient
Border color
Border size
Border style
8. Click Save.
By default, data is displayed in descending order, i.e. with the newest items at the top of the graph. To create a HTML graph:
1. In the Reporting application, edit a report on the General tab.
2. Click New in the HTML graphs section below the layout editor.
3. Define the properties of the new HTML graph:
HTML graph properties
Default:
Display name
Code name
Enable export
Enable subscription
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, the other columns are used
for values.
Is stored procedure
Connection string
No record text
Title:
Title
Legend:
Legend title
Display legend
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.
Numeric formatting:
Numbers can be formatted using .NET Custom numeric format strings.
Examples:
Item # - X axis descriptions will be displayed as Item 1, Item 2 etc.
{0.00} - numeric X axis descriptions will be displayed with precision of two decimal
places.
Date and time formatting:
The format can be set using singleletter Standard date and time format specifiers
without quotes.
In addition, any custom formatting can be defined. For example, yyyy - MM - dd hh:mm would specify a date and time format like: 2010 - 08 - 19 - 12:30
Sets the format of the text displaying the values of series items on the Y axis of
the graph.
This field supports all types of Kentico macro expressions. The following macros
should be used most frequently:
{%ser%} - resolves into the name of the current item's series, i.e. the type of
the value.
{%xval%} - resolves into the X axis value of the current item.
{%yval%} - resolves into the Y axis value of the current item.
{%pval%} - resolves into the percentage that the value of the current item
represents out of the sum of all values in the graph. If there are multiple types
of Y axis values, they are all included in the total sum.
Examples:
{%ser%} = {%yval%} - displays the name of the series and its value (e.g. Visit
s = 287).
{%pval|(todouble)0.0|(format){0:0.0}%}% - displays the item's percentage
value rounded to one decimal place (e.g. 5.1%).
4.
5.
6.
7.
Item tooltip
Determines the content and format of the tooltip that is displayed when hovering
over a series item in the graph. The macro expressions described in the Item
value format property can also be used in this field.
Item link
Causes the series items in the graph to serve as links to the specified URL when
clicked. The macro expressions described in the Item value format property can
also be used in this field.
8. Click Save.
Code name
Enable subscription
Query
Query
Here you can add the SQL query used to retrieve data to be
displayed by the value.
Is stored procedure
Connection string
Format
Formatting string
4.
5.
6.
7.
8. Click Save.
6. Click Save.
7. Switch to the General tab.
8. Add the parameter to the queries of the report objects (table, graph or value).
All parameters that you define can be used in the query using the @<parametername> expression (e.g., DocumentCreated
ByUserID = @UserIDParameter).
For an example of using parameters in reports, see the Defining report parameters section of Example - simple report.
Context parameters
In your queries, you can use parameters that provide information about the current context when the report is viewed, such as current user,
current site, etc.
@CMSContextCurrentUserID
@CMSContextCurrentUserName
@CMSContextCurrentUserDisplayName
@CMSContextCurrentSiteID
@CMSContextCurrentSiteName
@CMSContextCurrentSiteDisplayName
@CMSContextCurrentDomain
@CMSContextCurrentTime
@CMSContextCurrentURL
@CMSContextCurrentNodeID
@CMSContextCurrentCulture
@CMSContextCurrentDocumentID
@CMSContextCurrentAliasPath
@CMSContextCurrentDocumentName
@CMSContextCurrentDocumentNamePath
For example, if you want to display a list of all expired documents of the current website, you can use a query like this:
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.
5. If the selected report has parameters defined, you can display their values by using the Set parameters button. However, if the Disp
lay filter property is enabled, these settings are ignored, since the parameters are configurable on the live site using the filter.
6. Click OK.
If you view the page on the live site, the report appears just like on the View tab in the Reporting application.
Subscribing to reports
If users are interested in the content of a specific report or want to follow the progress of its data, they can use the subscription feature.
Subscribers will regularly receive e-mails with the uptodate status of the given report. This way, users can easily keep track of the data
provided by the report simply by checking their e-mail, without having to access the website or its administration interface.
Requirements
There are several levels of settings for enabling report subscriptions:
On the General tab of the report editing interface in the Reporting application, the Enable subscription checkbox applies to the
entire report.
Another Enable subscription setting is available when configuring the details of individual components (graphs, tables or values). If
both these settings are enabled, it is possible to subscribe to specific components.
For reports published on the website's pages, subscription also needs to be allowed through the Enable subscription property of
the web part or widget used to display the given report.
Additionally, subscription is only available for users who belong to a role that has the Subscribe or Modify permission for the Reporting mod
ule.
Subscribing to reports
To subscribe to an entire report, click the Subscribe action in the header of the page. This can be done:
On a report's View tab in the Reporting application.
In any section of the administration interface that provides reports (such as Web analytics).
Subject
Allows you to enter the subject that will be used for the subscription
e-mails.
Subscription item
Time range
This setting is only available for reports that offer the possibility of
displaying data from a specific time range, selected using From an
d To parameters (e.g. most web analytics and online marketing
reports in the system).
You can choose from the following options:
All available data - the reports in the subscription e-mails will
always include all possible data with an unlimited time span.
Only chosen period - the reports will only contain the latest
data based on the date and time when they were sent. You
can use the Data from last field below to specify exactly how
many hours, days, weeks, months or years of data should be
included.
Sending interval
Through the interval settings, you can define how often and when
exactly the report subscription emails should be sent.
Condition
Enabled
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. Only
parameters that are configured to be visible when viewing the report can be edited (i.e. those that have the Display attribute in the
editing form checkbox enabled on the Parameters tab of the given report).
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).
The link leads to the ~/CMSModules/Reporting/CMSPages/Unsubscribe.aspx system page, where the user can confirm that
they wish to unsubscribe from the given report. The appropriate subscription to be removed is automatically identified using
parameters passed in the query string of the link's URL.
Site administrators can manage subscriptions of a chosen report in the Reporting application (edit the report on the Subscriptions t
ab).
Users with access to the administration interface can view their report subscriptions in the My profile application on the Subscriptio
ns tab, and manually Unsubscribe ( ) as needed.
All report subscriptions created by the current user are listed here, even if the target e-mail address belongs to someone
else.
For live site users, 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).
After unsubscribing through any of the described ways, the system automatically sends a notification e-mail to the given address.
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, after editing (
E-mail templates
The content of the reporting e-mails sent to subscribers is based on e-mail templates. If you wish to customize the e-mails in some way, you
can edit the templates in the Email templates application. The following templates are available:
Reporting - Subscription template - defines the content of the main subscription e-mails used to send the report status.
Reporting - Subscription confirmation - used for the automatic notification e-mails sent to the recipient when a new subscription is
created.
Reporting - Unsubscription confirmation - used for the notifications that users receive after unsubscribing (or when the
subscription is removed by an administrator).
6. Click Save.
3.
4.
5.
6.
7.
Is stored procedure: no
SkinID: ReportGridAnalytics
Enable paging: yes (checked)
Page size: 10
Page mode: Page numbers
Click Save & Close.
Place the cursor in the layout editor on a new line under the heading.
Select the table from the list in the Tables section.
Click Insert.
The system adds a string like %%control:ReportTable?PagesByPageTemplate.PagesByPageTemplate%% into the text
area.
Click Save.
SELECT COUNT(DocumentID)
FROM View_CMS_Tree_Joined
WHERE DocumentPageTemplateID IS NOT NULL
Is stored procedure: no
Formatting string: Pages with template: {0}
4.
5.
6.
7.
7.
The system adds a string like %%control:ReportValue?PagesByPageTemplate.NumberOfPagesWithPageTemplate%% into
the text area.
8. Click Save.
If you switch to the View tab, you can see the text of the value.
This adds the parameter to the WHERE condition of the query. All parameters that you define can be used in the query
using the @<ParameterFieldName> expression.
The table now only displays template names of pages that were created by the user specified in the filter.
Reporting security
You can configure access to reporting features in the Permissions application. Choose the permission matrix for Module -> Reporting and
assign the available permissions to the appropriate user roles.
Permission
Description
Read
Save reports
Modify
Allows users to create, modify and delete reports. This also grants
permission to subscribe to reports.
Destroy
Subscribe
The system now allows you to display the given report on the live site to non-authenticated (public) users. If the property is disabled, the
report and all of its components (graphs, tables or values) are always hidden from public users
Prepare a user account for your Kentico database with the required security configuration.
Edit your application's web.config file.
Add a new connection string into the <configuration><connectionStrings> section.
Enter authentication information (the user id and password) for the appropriate database user account.
WCF overview
WCF is a component of the .NET Framework that provides a programming model for building service-oriented multi-platform applications that
communicate across the web. For more information on the technology, visit http://msdn.microsoft.com/en-us/netframework/aa663324.
Installing WCF
WCF is automatically installed with .NET 3.0 and any higher version. However, you still need to install the WCF HTTP Activation feature
yourself:
1.
2.
3.
4.
aspnet_regiis.exe -i
Web.config location
Chat
/CMSModules/Chat
Marketing automation
/CMSModules/Automation
Workflow
/CMSModules/Workflows
2. Open the web.config file and uncomment the secure endpoint code. The endpoint is defined in the configuration/system.serviceMod
el/services section.
3. (Optional) If you don't want the service to use the non-secure HTTP, comment out (or delete) the non-secure endpoint code.
The system now communicates with the services defined in the services section using the specified endpoints.
3. In the root folder of your project, create a folder with the same name as the URL path that you chose.
4. Download the attached archive and place the archive's contents inside the folder.
The code in these files redirects requests made to your new URL path to the ~/Admin/CMSAdministration.aspx page, which
handles administration interface requests.
5. Build the solution.
The administration interface is now accessible via <your_website_url>/NewAdministrationPath. The original /admin path returns error 404
page not found. Regardless of the current URL path, you can access the administration interface by requesting the ~/Admin/CMSAdministrati
on.aspx page.
In addition to syntax highlighting, the editor also provides other types of functionality:
Show/hide line numbers - enables or disables the panel that displays line numbers.
Toggle fit-to-window mode - toggles the editor between its normal size and an expanded editor covering the entire window (frame).
Show hide/bookmarks - enables or disables the bookmark panel on the side of the editor. Only available for CSS code by default.
Undo (CTRL+Z) - removes the last change made to the code in the editor, restoring it to its previous state. The editor stores the
history of changes, so you can use the Undo action multiple times.
Redo (CTRL+Y) - reverses one previously made Undo action.
Search - opens a dialog that allows users to search the code in the editor for a word or phrase.
Replace - opens a dialog that allows users to find a word or phrase and replace it with the entered text.
Edit source - opens a resizable dialog where the code can be edited without syntax highlighting or any other advanced functionality.
Indent all - sets the indentation of all code in the editor according to the conventions of the given language.
Insert macro - allows you to add Kentico macro expressions in to the code.
The panel on the right is an alphabetical list of bookmarks that allows users to jump to marked sections in the code. By default, the
bookmarks panel is only displayed when editing CSS stylesheets. You can insert bookmarks using code blocks (regions) following the syntax
of the currently edited language, for example /* #<bookmark name># */ for CSS.
Description
CMSEnableSyntaxHighlighting
Sample value
<add
key="CMSEnableSyntax
Highlighting"
value="false" />
CMSEnableSyntaxHighlighting.<Language
>
<add
key="CMSEnableSyntax
Highlighting.CSS"
value="false" />