Error message

  • Deprecated function: Array and string offset access syntax with curly braces is deprecated in include_once() (line 1439 of /home/meyncppj/public_html/includes/
  • Notice: Undefined index: default in nivo_slider_block_view() (line 355 of /home/meyncppj/public_html/sites/all/modules/nivo_slider/nivo_slider.module).

Drupal, some useful modules, plugins & settings

Stated before I work with several different Content Management Services. All have their strong and weak points, what's best suited depends on the project, type of web solution, size, functionality and design. So I am fairly agnostic, and abstain from any "religious" notions when it comes to choice of CMS.  

Drupal does however remain a favorite of mine, due to its power and flexibility. Even if it requires a little bit more work in the setup phase than for instance Wordpress. With a good procedure, we talk minutes rather than hours of extra labour.

CKEditor in Drupal

In Drupal you can choose between rich text editors such as Wysiwyg or CKEditor. I mostly use latter, it's flexible, powerful, can be configured in a million ways and comes with a small universe of add-ons that can please even the most demanding. Things that you have to add in other editors, such as TinyMCE in Wordpress, are instantly available in standard version of CKEditor.

No fiddling with code, drag/drop and add a line in a form field, hey presto!

But not everything is well. Things a Wordpress user expect out of the box are extras in Drupal. Or there are things you'd like to get fixed rather quickly. When you install CKEditor the text editor predefined with 200px height. Might be enough for smaller postings, working with larger amount of text/images you'll find yourself scrolling more than you like. The window is easy to expand but why the need to do it all the time? 

You can easily change the default height by going into Configuration >CKEditor >your_profile [Full HTML] >Advanced options >Custom JavaScript. In the configuration box and add the following command: config.height = '600px'. Or any height you like. This will change the static height of the editor but a better method might be to install...

Autogrow - must have plugin

With this plugin you can set up the editor dynamically, plus define things like bottom screen space. And leave the space you want for other functions. Unpack ZIP the file, use a FTP client like this one to upload autogrow directory so the path is: /ckeditor/plugins/autogrow

Once installed you go into Configuration >CKEditor >your_profile [Full html] enable AutoGrow which, if you have placed it correctly is visible on the config page like shown to the right. 

That done, only one thing remains, adding the config for autogrow. This you do on the same Profile (HTML) configuration page at the bottom like shown below. You can use the content of the attached txt file (bottom of page) and change the values to whatever suits you.

So now your Editor will adjust dynamically to amount of text within given (above) height definitions. 

CKEditor link - you want this too

An almost indispensable module, especially if you have or intend to build a website with that will contain lots of documents, publications or pages. You'll find it handy where lots of linking in-between pages will be used. This module ads a particular field in the CKEditor link window that brings up pages or page titles while you type titles.

Arguably this module too could have been a part of the Drupal standard. In for instance Wordpress the function is a standard. But as CKeditor is but one of the editors you can choose to in Drupal use it's easy to understand why it isn't.

If you intend to use CKEditor I recommend it. Install after your CKEditor is ready, set and configured. The plugin offers you a variety of configuration options, such as

  • number of link choices you want to display in the drop-down view while doing type-ahead. Can be very handy since over time the number of document titles popping up while you type ahead will grow over time
  • what content types you would like to tie the function to, i.e. blog entry, a page, or a custom content type/category.
  • Taxonomy terms, if you would like the type ahead to also look at tags and not only titles. And what term or category of tags you would like to implement. In Drupal you can have as many term as you like.
  • Menu items you would like the type ahead to look at (if any).

So in a typical Drupal fashion you have a lot more or more than enough choices to make this function work exactly as you like. Without having to give into PHP code. NB! Like with other plugins remember to enable it for all/any content types you plan to use it with (see screenshot for autogrow enablement above).

Autosave - also a must

For reasons as explained above, i.e. choices with regards to rich text editor, autosave of documents or content types content is not a standard function in Drupal. There is an auto-save plugin (AJAX based) for CKEditor, I chose to use a Drupal module. Once installed you will find it listed on the Configuration page>Content Authoring section looking like this

Notice you can choose time interval for auto save and mode. Stealth mode will remove a notify box at the bottom of the screen some may like to see, others not. Now next step, enable autosave for the content type(s) you want the function to apply to. To to structure>content types>[select content type]. Like for instance structure>content types>Blog entry.

For those not so familiar with Drupal, you can with this CMS build content publication forms with specific functions. This is a tremendous asset especially for more complex sites that involves different sections, user levels or roles and/or assignments. It can also be extremely useful to simplify editing and page publishing, making the job easier for normal editors. Anyhow, enable Autosave like shown below.

Adding these tools and functions to your Drupal site will make working with and editing content a lot easier :)