For the past 5 years I have been using Kentico CMS and was a fan from the very first project I worked on. Every release is full of features and functionality that make development and configuration a breeze. I thought this blog article would be on a few of the features / techniques I’ve used over the years and how they’ve helped produce award winning sites.
Using the List feature
In many sites, there’s never a shortage of content to enter and display. When managing a couple thousand pages of information with the CMS Desk, listing and displaying them can be a challenge. The “List” feature in the CMS Desk is a great option when you deal with a lot of things at once. If you need to publish an entire section of the site, simply use the List option to display them all (or chunks of 25/50/100) and you can manipulate them all at once. Need to wipe out a whole section of pages? The context menu at the bottom gives several helpful actions to do just that. I’ve used this feature in nearly every project, especially when dealing with a lot of data.
List View 1 List View 2
Making a custom report
Nearly every site I’ve developed has some sort of custom data, whether it’s bios of the staff (nice throwback to the Kentico CMS training material!) or college and university information from around the US. With that structured information comes the need to see it, often in a graphical interface or chart. Custom reports within Kentico CMS are a synch to create and a great way to present the content to both admins and site users. Reports can give on-demand access to business data and can even be configured for “public” access using the Report configuration options.
Kentico's reporting interface is very straightforward and easy to use. Just figure out the data you want to see (SQL) and add it to the report. There are several chart options, as well as the ability to supply parameters for an interactive experience for your users.
Custom Report 1 Custom Report 2
Delete / Destroy
OK, this is kind of a big one. No matter what safeguards, backups, or saber-tooth tiger tooth-lined barbed-wire fencing you put in from of your client’s data, someone is going to delete something they shouldn’t have. While there is no substitute for a solid backup and recovery plan, Kentico offers 2 great features that add an additional layer of security. Using the Permissions and UI Personalization, users can be allowed to “Delete” items, but not fully “Destroy” them. Making this distinction is important because much like “New Coke” and Hollywood having an original idea, “Destroyed” content is GONE. Making sure only the appropriate parties have this options can save a lot of headaches and heartbreak for any project.
Often, we will only grant the “Destroy” permission to site administrators and “Delete” to everyone else. While this won’t prevent every accident, it cuts down on a lot and keeps our client’s info a little safer.
Destroy Permission 1 Destroy Permission Destroy Permission 3
Resetting scheduled task counters
Anyone that’s ever talked with me about Kentico knows I’m a huge fan of “Scheduled Tasks.” As such, having the ability to “Reset Counters” (new in v 7) is a nice touch to an already awesome feature. I’ve used tasks for all kinds of things and while not a critical issue with most things, knowing how many times something has been executed is a handy bit of info for certain tasks. Managing the counter for the job is a great way to keep track of what’s happening (or what’s NOT happening, depending on the task logic). In the Site Manager, you can reset an individual task counter or all of them quickly.
Reset Counters 1 Reset Counters 2
Writing to the event log
With my over-zealous affinity for “Scheduled Tasks” comes an insatiable desire to write things to a log. Enter the Kentico API. With a few simple lines of code, information can be written to the Event Log and viewable from within the site. I’ve used this feature in Scheduled Tasks, custom modules, web parts, and all other parts of the system. For tasks, I often use “Task Data” to pass a Boolean to the code to turn logging on/off as I need. It’s a simple and easy way to see system level information and to flood your “Exception email” with all sorts of fun info.
EventLogProvider ev = new EventLogProvider();Event Log 1
ev.LogEvent (EventLogProvider.EVENT_TYPE_INFORMATION, DateTime.Now, "CRM Integration Task", "Execute", null, "Lots of interesting system information...");
Configuring password security
Another v7 enhancement! There’s never a shortage of idiots that are trying to break into your site and then brag to their friends about how they erased your code and added links to awesomely-designed WoW guild site. Keeping your content secure is paramount in preventing this and configuring password security is a great start. We routinely add expiration dates, password complexity requirements, and encryption to every site to help keep our client’s info safe. Oh, and while I like Andy Jones and think he’s a great guy, I don’t think he needs access to the CMS Desk. Be sure to remove him, or at least change his password.
Registering Tools in the Site Manager
I haven’t used this feature a ton but found it quite useful when developing the Bit-Wizards SQL Execution Module. Given the security implications of allowing ANY SQL code to be sent to the database, registering the module to only be accessible within the CMS Site Manager was essential. By checking a single box within the module configuration we were able to make the module only available to Site Administrators to minimize the risk.
Site Manager Tool 1 Site Manager Tool 2