News Articles

Articles from Tickle My Fancy

Using the Telerik Rad Editor with DNN

I really wanted the title of this blog post to be “Customizing the Telerik Rad Editor with DNN to Reinforce Consistent Content Administration Practices for your Content Editors and Other Implications of using Telerik Rad Editor as your Default HTML Editor in DNN” but that may have been a tad too long.

In DotNetNuke 5.4.0, the community edition of the platform included the Telerik RAD Editor. This is an exciting new development for the community edition of DNN. The flexibility of the HTML editor in DNN is one of the most commonly overlooked features. For most content editors, the HTML editor might be their only interaction with the system. For this reason, customizing the HTML editor for your content administrators is crucial to user adoption and creating a friendly workspace for your editors.

This blog entry is going to apply some of the same concepts from a previous blog entry for the FCKEditor, Optimizing the FCKEditor for DNN, but as an evaluation of the Telerik RAD Editor for DNN. Chris Hammond introduced how to include these features on your site in a blog on DNN Daily. I’m going to build upon his implementation instruction with some opinionated configuration recommendations.

The Standard Toolbars

The Telerik HTML Editor has a very robust toolbar and many of the features function better than the features of the FCKEditor, but I’m still a firm believer that too many options just causes confusion.

The Telerik HTML Editor comes with a default toolbar configuration called “ToolsDefault.” This default toolbar has every feature turned on and looks like the figure below.

default-toolbar

There is a second toolbar configuration file included with the Telerik HTML editor called “ToolsMinimal". This is nice attempt at paring down the toolbar and for demonstration purposes shows how far you can go, but it goes too far and still ignores some large problems (mainly the ability to add inline styling to content).

minimal-toolbar

I like to create a streamlined, reorganized toolbar for users to group like functions and edit out unnecessary features. But first we should look at how you can plug new toolbars into DNN.

*One side note. Switching over to the Telerik provider does exclude you from some of the lesser used features of the FCKEditor. Most notably is the feature to have multiple toolbar configurations based on your role permissions.

To include a modified toolbar in your instance of DNN, you’ll need to do two things 1) create a new toolbar, 2) modify the web.config (create a backup) to use your new toolbar.

Creating a New Toolbar

The toolbar configuration files are located in your DNN file system at the following path [site root]\Providers\HtmlEditorProviders\Telerik\Config. You can simply create a copy of the ToolsDefault.xml file and rename it to your liking.

Setting the New Toolbar as Your Default

To set your new toolbar as default, you simply need to modify the HTMLEditor provider section of your web.config to set the path of the “ToolsFile.”

web-config-setting

I combed through the toolbar options and created a custom toolbar that I find most fitting for content administrators. It eliminates the features that would create inline styles, and reorganizes features with like functions. You can download this configuration file here.

(Bonus) Define Custom CSS Selectors

One of the major misnomers of HTML editors is that they are perceived to be WYSIWYG. This is true if you can style your site to only use straight HTML tags or if your content editors have a basic, nearing advanced, understanding of HTML and CSS. The Telerik RAD editor now provides you as the site administrator the ability to define a list of CSS classes for which your content editors can apply to content.

The RadEditor now can inherit CSS classes from your site OR, find only classes you define for use. I’d strongly recommend explicitly defining the custom classes you want your editors to use. If you use the ToolsFile to specify the classes, Telerik RadEditor will search only for them, but will list them in the dropdown only if they exist.

To specify the classes you want your editors to use, there is a section in the ToolsFile for <classes> in which you can define the classes your wish to use in rich text editing and give them a friendly name.

custom-class

If you’re going to provide a list of classes for editors to use, I would also recommend discretely calling these classes out in your skin.css. This is primarily for organization, but it can also serve as a way for you to explicitly define the styles you want your users to add/use from the rich text editor. The classes drop down will wrap your content in a span, so be aware that you’re going to be wrapping content in more markup. I’d recommend using this for special styling and try to style semantically correct markup to meet your needs as much as possible.

If you’ve read this far, I’d like your input. When you create a list of classes, should you create list of selectors that are only used by content editors in the rich text editor? Should you reuse classes you’re using for styles throughout the style sheet? Should you use the classes throughout the style sheet, but add a level of specificity – like .editor .button? I’d like to hear from you – leave your comments.

Google AJAX Search in my DNN Site

A good search is a prevalent theme in all of the websites I implement. Google has set the bar high in terms of expectations for what search can do. The core search in DotNetNuke doesn’t come close. So as the phrase goes “if you can’t beat ‘em, join ‘em.”

Previously, I have written about how you can use the core search in DNN to integrate with a Google Custom Search engine API. If you’re interested in this approach, check out my blog post on integrating DNN search with the Google Site Search. This approach is nice, but it also is a little clunky to setup and the results launch in a new window. My new favorite way to use Google in a DNN site is to utilize the AJAX search feature provided by Google.

Have you ever typed “site:www.patrickrenner.com” into Google? It allows you to simply search a single site using the indexing of Google. The AJAX search basically does the same thing. It takes the URL you wish to search and appends your search parameters on to the request to Google.

To make this happen in DNN, there are three things you’ll need to do.

  1. Insert an input into your skin. This will act as the search input for your site. The values included in the input will be the values past to the search query.
  2. Include an empty <div> in which you wish to place the results of your search.
  3. Add the JavaScript to your skin which allows for the input, the results div, and Google to all cooperate.

Instead of spelling out the code, I’ve included a text file for you to download to reuse this code for your site. Download the example code here. Feel free to inspect my site as well to see the code in action.

DotNetNuke 5 User’s Guide Reviews

This week has been exciting, aside from the lame mid-summer head cold I’m suffering, because of a few positive reviews of the book I wrote with Chris Hammond. The reviews have been right in line with the goals we had for the book – simple, focused, “Get Your Websites Up and Running.”

Joe Brinkman reviewed the book and reiterated our goals with one of the first topic sentences of his review. “This book is very clear in that it is targeted specifically at DotNetNuke Administrators and it does a very good job of staying focused on the topic.”

One of the common tests Chris and I used as we wrote our book was, “would your mom understand this?” Put aside all “your momma” jokes and don’t take it as an attack on moms or women. The biggest eye opener I had in working with DNN, and prompted me to want to write this book, was when I worked to overhaul my mom’s website – imagethreads.com. As I worked through her site, I realized how three-letter abbreviations, jargon, and technology I take for granted on a daily basis, can be significant barriers to doing something easy like maintaining a blog.

Will Strohl also gave our book some lip service this week and is putting our work to the test by encouraging his girlfriend to read DotNetNuke 5: A User’s Guide. I’m anxious to hear the outcome because if someone new to DNN can follow the book, I’ll consider it a success (just need sales to fall into line).

Sincere Customer Service

I don’t want to turn this blog post into preaching about what makes good customer service, but I do want to make a “shout out” to Josephotography. Joe, shot our wedding photos almost two years ago, but just yesterday we received a CD in the mail with a movie he put together with our photos. Sure, I may have laid down a guilt-trip when we saw him two weeks ago at our friend’s wedding, but his follow through still deserves recognition for great customer service. He didn’t owe us anything. We were already very happy and he had our vote of approval (and recommendations), but he still took the time to do something thoughtful for us.

This movie is a case study in modern-day archiving. A month ago I was in Minnesota sorting through my Grandma’s house as she prepares to move from her house. There was a treasure of sentimental items. Most of her artifacts are wrapped in tissue paper or bubble wrap. But what do you do with a flash movie of your wedding pictures? In the age of digital everything, we need to come up with new ways to store/archive sentimental items. I guess my bubble wrap and tissue paper is a blog which is primarily read by me.

[FLASH MOVIE TO BE INCORPORATED SOON]

Integrating DNN Search with Google Site Search

It's no secret that DotNetNuke's core search leaves a lot to be desired. When implementing DNN sites or any site for that matter, search is typically a top requirement. To be perfectly honest, I have conveniently tried to leave off search functions from design comps or implementation plans because I dread the discussion that much (my conscience typically gets the better of me and we find a solution).

For more info on how the core search works check out this blog entry on DNN core search by Chris Hammond.

Well, I have found a solution that I'm pretty happy with and can confidently recommend as an implementation approach for DotNetNuke implementations - integrate a Google Site Search account with the core DNN skin object.

How is it done?

First, the core search token has a lesser known attribute UseWebForSite that allows you to integrate the core search token with your unique identifier with Google Site Search.

Setup Steps

  1. Create a custom search engine with Google Site Search. With the Site Search created, go to the Advanced section of the Control Panel for your custom search and grab the unique identifier (in a section titled “Advanced presentation using the Custom Search Element”)
  2. Add the search token to your skin and define UseWebForSite as “True” (see below). You can either do this through your HTML skin’s accompanying XML file or directly in the ASCX.
  3. Modify the resource file for the core search. You can reference the file directly from the file system (\admin\Skins\App_LocalResources), but it is better to go in through the Language Editor as a site administrator and modifying the Search.ascx.resx for just your portal (in case you have multiple sites in your instance of DNN).
  4. There is a field titled URL.Text. In this field, you can modify the existing URL to include the unique identifier for your custom search. The default uses the DNN project ID and should be something like: http://www.google.com/custom?hl=en&client=pub-9770992166002654&sitesearch=[DOMAIN]&q=[TEXT]

One thing to note is that I ran into some issues with the default URL in the resx file. So instead of modifying the existing URL, I went into my custom search engine home (with Google) and tested the search there. Then I took the URL created by Google and replace the search input with [TEXT]. This accomplishes the same result. Example: http://www.google.com/cse?cx=005560045880849113066:aqsy2ovgo00&ie=UTF-8&q=test&sa=Search and replaced q=test with q=[TEXT]

Other Notes

  • The search launches the results in a separate window and some browsers will block this as a pop-up.
  • The results can be styled using the Control Panel (Look & Feel) in Google Custom Search
  • The results you get are the results Google indexes. So if you don’t like your Google results, you won’t like your Google Custom Search results.

Does Having a Blog make this Hypocritical?

I laughed, I cried, I seriously doubted myself. I'm still holding out against Twitter and seriously reconsidering Facebook.

Commercial Investigations, Inc.

I received a call today from Ken Burns, from the Offices of Commercial Investigation.

Apparently, I owe $1,311.97 to Century Restoration, but if I "make some soft of good faith effort" I can avoid "legal action that can adversely affect my credit."

Does this sound like a call you received? I think this is the first time I recognize openly a scam. I know I've been scammed before, and I have even been dubbed out of $20 by a guy saying he needed money for a tow truck to move his car, but this is the first time I legitimately encountered one of the scams you watch on Dateline or 20/20.

In looking at Commercial Investigation's website, I feel a little sick to my stomach because of how obvious they're going to take you for a ride. The sick part is that it probably works.

Remember the old warning from your parents "don't take candy from strangers?" Their site and this phone call reeks of stranger's candy. They collect card information if you're inclined to pay your "debts" or make "good faith efforts" promptly.

The most comical part is Commercial Investigation's letter the Better Business Bureau. In the letter there are a number of great lines, but here are some of my favorites.

It [the collections industry] is one of those overlooked and arcane topics, like Maritime Law—the Law of the Sea—a highly complex yet under-researched area warranting more careful analysis than most journalists have time for.

This is claiming the "article" by the BBB was journalistic in nature and out of touch because they are just writing editorials on how business should be done. Since they don't know the industry, their "article" is like a travel writer's article on a foreign country.

Another gem...

The reality of our economy is that the collections industry plays a necessary role. No one company should be held accountable for being in an industry overlooked by the media and by the disinterested public. Law firms have a bad reputation when they are regarded as “ambulance chasers” or tax lawyers or collection lawyers. They still have a job to do.

Scamming people is up there with protecting laws, justice and equality. The true injustice is the lack of passion people have for scamming old grandmas.

More information on these schmucks from the Better Business Bureau's Alerts.

Since there's not really much I can do to combat these jerks, I wanted to post to inform anyone else who may recieve a call from Ken or someone from Commercial Investigations. On the side, I wanted to say SCREW YOU to all the jerks out there willing to participate in scams like this.

Calendar in Out of Office: Outlook

I would lable myself a bit of a Microsoft Office nerd. I really like finding news ways to overcomplicate the way I use Outlook, Excel, Word, and PowerPoint.

Today, I found a post by the product managers for Outlook on how to incorporate a visual indication of when you'll be out of office in your auto out of office response.

This blog is often a rant, sometimes a reflection, and occasionally a way for me to remember cool things so I can search my own blog rather than redoing the searches I've done in the past.

I'm going to outline the process for including a mini calendar in out of office messages because I find myself overcomplicating the message I use each time I got out of the office. Should it be "returning on Monday, December 29th" or "I'll be out until the Friday, December 26th and assume they know I'll be back on Monday"

So here's what I'm going to do when I go out of the office for my trip to Cancun over New Years.

  1. Act as though I'm sending my calendar in an email by right clicking on my calendar title and selecting "Send via Email..."
    Send Calendar vis Email
  2. Select the date range for which I'll be out of the office. This way the dates will be highlighted in the HTML calendar created.
    Calendar HTML
  3. Copy the calendar created in the body of the email
  4. Past this calendar into my out of office message

 

Mutts Like Me

Well maybe not like me. I'm thinking mutt, more in terms of diversity in backgrounds. My parents went to the same high school and raised me in a neighboring city.

I am interested in the attention the seemingly unimportant comment Barrack Obama made when talking about the kind of dog his family was going to get.

“There are a number of breeds that are hypoallergenic, but on the other hand our preference is to get a shelter dog, but obviously, a lot of the shelter dogs are mutts like me,”

I love this comment for a couple of reasons. First, it is a lighthearted comment that belies an overarching social tension regarding race that ran throughout the elections. Without going into this in great detail. I felt there was a lot of race tension in the past election. But not the tension of two sides pulling apart. More like the static electricity in the air. It was electric, apparent, but not tangible and not easy to point out why it was felt.

The second side of this comment is the strength that comes with a mutt. As dogs go, mutts are more resilient, heartier, and less prone to genetic flaws. In politics, Obama was dubbed "Teflon." Did his diverse upbringing, both in race and experience, cultivate the Telfon shell?

Is the age of the pedigree dead? Does coming from a long line of Kennedys or Delanos really mean that much in our society? Does it really even help? Sure as a safety net being a Kennedy out weighs the bad, but look at the case of Caroline Kennedy. The pedigree of being a Kennedy opens doors, but the stigma of nepotism is going to close it right back in her face. She may assume a Senate seat on name recognition and family ties, but her merit will always be shroud in presumed entitlement. The first article I found in search results echos this perception

When it comes down to it, I guess I wouldn't pass on a Kennedy upbringing, but the original intent of my entry was more to celebrate diversity than to discuss political lineage. Going back to my discussion on the lowest common denominator, comfort in the known and familiar real is only comfortable. Reaching out, embracing diversity is really the path to becoming exceptional.