Tuesday, April 24, 2012
Workbench: Managing Content Management-1
* NodeOne Drupal Learning Library: nodeone.se/learn-drupal
* The Workbench overview series: nodeone.se/node/1021
* The Workbench main project page: drupal.org/project/workbench
Thursday, April 19, 2012
30+ Essential Drupal Modules
The Big Three
"The big three" are important enough that they deserve a category of their own. Most drupal modules worth using have integrated with one of these three. Their importance simply can't be stressed enough.
- Content Construction Kit (CCK) - Part of drupal 7; still a contrib in drupal 6. Allows you to define new content types (e.g. blog entry, event, or employee record...) and add "fields" to them. A field could be plain text, an image, a flash video, or whatever. You can also adjust how these fields display in the live view. No drupal install should be without this module.
- Views - Broadly speaking, this module empowers non programmers to build dynamic streams of content displaying any number of fields. The content may come from nodes (a.k.a. content types and fields), users, system log entries, etc. You can display this stream in any number of formats including RSS feeds, tables, or just the vanilla view for a content type. You can also create pages or blocks -- its very tightly interwoven with drupal. Nearly every drupal module worth using is integrated with this module. Extremely powerful when used in combination with CCK.
- Panels -
I believe Panels + CCK & Views is a hint at what drupal will look like 3 years into the future. I had to change my pants after the first time I witnessed it. At a very simple level, you could think of it as a layout manager. Create a 1,2,3 column layout. Or a 3 column layout with a full width footer and header, and plop pieces of content in them -- say a view, a block, or a node. That description, however does not do it justice. Since version 3, its positioned itself as a replacement for drupal core's clunky block system. It can now override a node page, and can be used to place content all over the place. It also introduced a concept of contexts, selections rules, and relationships. These are concepts that deserve a series of blog posts, but lets just say its solving some of the weirdest, mind numbing, bug creating problems found in advanced websites. Ironically, I used to hate this module, but after version 3 I will defend its awesomeness to the death!
For Administration Sanity
- Admin Menu - Quick Dropdown menu to all admin areas. Makes any setting only a click away, instead of 3 to 6 clicks away.
- RootCandy - A theme specially designed for administration. Drupal 7 comes with an admin theme included, but this is still highly recommended in drupal 6.
Content and SEO
- Pathauto - Automatically create human readable URLS from tokens. A token is a piece of data from content, say the author's username, or the content's title. So if you set up a blog entry to use tokens like [author-name]/[title] then a blog entry by "Phil Withersppon" titled "my great day" will be rewritten example.com/phil-witherspoon/my-great-day.
- Printer, email, and PDF Versions - There are still people out there who prefer to print out content to read later. This module does just that, and also lets them send your content via email.
- NodeWords - A very poorly named module that's great at letting you edit meta tags.
- Page Title - Lets you set an alternative title for the
tags and for the tags on a node. - Global Redirect - Enforces numerous well thought out SEO rules, for example since I don't use this module you could access my content at "http://www.nicklewis.org/node/1062". This module however will search for the alias and 301 to the proper URL http://www.nicklewis.org/40-essential-drupal-6-modules. (thanks Jeff!)
- Path Redirect - Simple idea: make it easy to redirect from one path to another. Does a good job at it.
- Taxonomy manager - Makes large additions, or changes to taxonomy really really easy and painless.
- Node Import - Made it shockingly easy to import 2000 csv rows, tie rows to CCK fields (or locations), and even will file it under the right taxonomy terms in hierarchy so long as you plan ahead.
Navigation
- Menu Block - Lets you split menus into separate blocks based on depth. Say you have a top level menu link "Articles" with sub menu links "Politics", "Technology", "lifestyle". This block would let you show the sub menus in the right sidebar, and the top level "article" as tabs in the header.
- Taxonomy Menu - Automatically generate menu items for categories. Handles syncing between taxonomy and menus, and is ready to be used in conjunction with views or panels.
- Custom Breadcrumbs - Set up custom breadcrumb paths for content so that every page doesn't just have a breadcrumb back to "home". (note: i've used menu_trails a lot too.)
- Nice Menus - Drop down menus (for people who are into that kind of thing).
WYSIWYG Editors + Image Uploading
- WYSIWYG API - The standard integration module.
- CKEditor - Currently my favorite WYSIWYG editor. WYSIWYG API only supports CKEditor on its dev version (at the time of this writing). For the time being, I use this module instead of WYSIWYG api. Regardless, the rest of the world probably uses WYSIWYG api.
- IMCE - File browser / image inclusion for WYSIWYG editors. CKeditor is integrated out of the box, WYSIWYG API implementations require a bridge module.
Video and Image Handling
- Filefield - Base CCK file upload field. Useful on its own, but also required by other essential modules.
- ImageAPI, ImageCache, Imagefield - These three work together. ImageAPI handles low level integration with server side image processing (e.g ImageMagick). ImageCache allows you to set up presets for automatic resizing, cropping, and a host of other operations you'll probably never need to use. ImageField then provides an upload field to a piece of content, which you can use imagecache presets to resize in the display. Imagefield is very well integrated with Views and CCK. The paintings on the right show a bunch of images automatically resized using this technique.
- Lightbox2 - If you've set up your imagefields, lightbox2 lets you add another layer of options. For example, display image resized at 300px wide on the page, but blow it up to full size when clicked. Like Imagefield, lightbox 2 is well integrated with Views and CCK. Very powerful combination.
- Embedded Media Field - Embed video and audio files from dozens of third party providers ranging from youtube, to services you've probably never heard of.
User Profile, Ratings & Notifications
- Content Profile - The core profile module sort of sucks. This turns profiles into nodes allowing you all the options of views and CCK.
- Voting API + Fivestar - The standard voting widget of Drupal.
- Notifications - Provides the ability to send emails when someone comments, or replies to a comment. Has a host of other features.
- Captcha + Recaptcha - Standard Antispam system. In use on this very site.
Stuff Marketers Will Love
- Webform - We all know visitors love filling out forms. This module lets your marketing team create custom forms, and collect whatever info they want.
- Google Analytics - Simple integration of drupal with google Analytics.
- Service Links - Easy "share this" links for content. Supports digg, facebook, delicous and a bunch of other social web 2.0 services.
Events and Calendars
- Date - CCK field for handling dates, and date ranges.
- Calendar - Integrated and controlled by views.
Location and Mapping
- Location - Standard API for collecting addresses and lat/long. Integrated with Views and CCK. Somewhat difficult to use, but its a somewhat difficult problem it solves.
- Gmap - Display locations in GMap.
Ecommerce
- Ubercart -- All ecommerce in drupal should use this module. Has its own universe of hundreds of contribs for some of the really weird stuff.
For Developers
- Devel - Offers an enormous amount of information for developers, including: theme template variables, and overrides, browsable data structures, and datasets for performance-tuning. Just the debug function dsm(); makes it worth the download.
- Backup & Migrate -- Greatly eases the pain of moving changes from your local development environment to the live server and vice versa.
- Drush - Its actually not really module, but a "Swiss army knife" set of tools that are run from a command line. One example command is "drush dl views": running it will automatically download the latest version of views and place it in the right drupal folder. 1 second command instead of a 1 minute process of downloading from drupal, uploading via FTP. There's many other commands that are just as useful.
Conlusion
Lists like this can be outdated within six months. Always be on the look out for better and better modules.
Sunday, April 1, 2012
How to Mirror Your WordPress Blog to Blogger
Creating a mirror of your blog is a good way to backup your content. In the event that your blog/web host/domain went down, you know that there is another site that is still running, and serving the exact same content.
This tutorial shows you how to mirror your WordPress blog to Blogger.
Why Blogger?
There are plenty of free blog services out there, why choose Blogger? The reason is because Blogger is free and is owned by Google. In term of reliability and stability, it is the best. Since you are backing up your content, isn’t it logical to get it on the most reliable platform around?
Migrating your existing WP blog
The migration from WordPress to Blogger is easy. Log into your WordPress dashboard as Administrator. Go to “Tools -> Export”. Export all your WordPress posts/categories and settings to an xml file.
Go to WordPress2Blogger site. Convert the wordpress.201x-xx-xx.xml to blogger-export.xmlfile.
Login to your Blogger account and go to “Settings -> Import Blog“. Upload the blogger-export.xml file and Import your whole WP blog in.
If everything goes well, all your previously published posts should now be imported into Blogger.
Update Blogger whenever you publish a post
Now that you have imported your previously published posts into Blogger, it’s time to configure your Blogger’s blog to auto-update itself whenever you publish a post in WP.
First, in Blogger, go to “Settings -> Email & Mobile“. Create a new secret email address. This will be the email address that you mail to publish your post. Remember to check the box “Publish emails immediately”. Once done, click “Save Settings”.
Next, I am going to assume that you are using feedburner.com to manage your WP feed, and you have activated the “Email Subscription” option. What you need to do is to subscribe yourself to your own mailing list (preferably with a Gmail address) so that Feedburner can email you whenever you publish a new post.
The last and final thing is to setup your email account to forward the feedburner mail to your Blogger Publish email. In Gmail, this can be done by setting up a forwarding email address and a filter.
That’s it. Whenever you publish a new post in your WP blog, it will be auto-updated on your Blogger blog as well.
What other ways do you use to mirror your WP blog to Blogger?
-------------------------
-------------------------
Instructions
Ever wanted to move your WordPress blogs over to Blogger? This site can aid in the process!
Instructions
|
Friday, March 30, 2012
Creating a New Vocabulary for Drupal Taxonomy
It is important to note that content can belong to several vocabularies at once. Also vocabulary relations can be modified dynamically as new content or new vocabularies are added. This saves the trouble to manually update the relationships each time.
The taxonomy module in Drupal allows multiple lists of categories for classification. It offers the possibility of creating thesauri (terms with horizontal relationships) and taxonomies (terms with hierarchical relationships). Basically, the taxonomy deals with a hierarchy of information and the thesaurus deals with relationships between terms. Taxonomy is what affects how exactly the content is organized.
Settings for the taxonomy module can be found at Administer >> Content Management >> Taxonomy.
With a fresh Drupal installation no vocabularies will be shown in the list.
You can add a new vocabulary using the "Add vocabulary" button.
In the next video we will show you how to create a new vocabulary.
Custom Search Module for Drupal
The Drupal core provides a Search module which is great for many sites. However, it doesn't provide some of the more sophisticated features that some sites need. The Custom Search module is a good alternative if you want more control over what gets searched, who gets to search, and what results you see.
The Custom Search module adds layers of control and sophistication to the core search module. It's easy to install and understand, and will give you more control over the search functions on your site. It also integrates with other search modules and APIs.
The core search function and the Custom Search module
The basic elements of the core search module are:
- A block for front-end display. There is very little configuration available for this block. I've named this one "Core Search Block" to make it easy to distinguish from the customized one We'll be creating.
- Advanced search is available on search results page. If a user clicks Advanced Search on the results page, a form opens up so you can refine your search. (When using the Garland Template).
This gives you a sophisticated search, but little control over how it's implemented throughout the site. A good way to expand on this is to add the Custom Search Module. Here's a summary of the added options.
Basic options:
- Select which content type(s) to search,
- Select which specific module search to use (node, help, user or any module that implements search),
- advanced criteria
Advanced options:
- change the default search box label,
- add a default text in the search box,
- add advanced search criteria,
- change the default submit button text,
- use an image instead of the submit button,
- change the order of all the elements,
- include some elements in a popup block,
- add a filter to the results page,
- show/hide basic and/or advanced search in the results page,
- show/hide meta data in the results page,
- multiple search paths
Step 1. Download and install the module
Step 2. Enable the module and its sub-modules
There are three included sub-modules:
- Custom Search Taxonomy: taxonomy options for the search block.
- Custom Search Blocks: provides additional search blocks, with different settings.
- Custom Search Internationalization.
Step 3. Set Permissions for users and administrators
- The confirmation message will have a link to the permissions. Click it to go directly to the permission settings.
- Set user and admin permissions for two modules. I wanted everyone to be able to search so I gave anonymous users and authenticated users permissions by checking the boxes
- You have four sets of permissions to set.
- Custom Search
- Admin
- User
- Custom Search Blocks
- Admin
- User
- Custom Search
Step 4. Configure the module
- Return to the Modules page and click Configure. You can also get to the configuration screen by going to Configure > Custom Search
- When you land on the configuration page the selected tab will be highlighted. You will be going through all the tabs to complete the full configuration. So when you complete the first page, choose another tab and continue
- I'm not going to go through every single configuration step. The choices are easy. If you have a need to create refined searches, they will make sense to you. If not, trial and error is the best way to get familiar with them. In this demo I'm going to enable everything.
- There is one section that may need a little explanation - the Search Blocks tab:
- Select the number of blocks. One of the great things about this module is that every block can have it's own configuration settings. Suppose you wanted a block on the home page that searched the entire site, but not the forum. On the forum page you want a block that only searches the forum. In that case you would create two blocks. If you wanted anonymous users to be able to search just some forum topics, and registered users to have more option, you would create 3 blocks, and control which one shows by who's logged in.
- I'm just going to create one for this demo. Once you decide on this, add blocks to your site.
- Be sure to save before moving on.
Step 5. Add blocks to your site
- Go to Structure > Blocks.
Step 6. Assign blocks to regions
- The custom search blocks you created will be visible and numbered.
- Choose the regions for the blocks.
- The new block is added.
- The original block created by the core is still there. It's default label is Search Form. I can't think of a reason why you would want both of them on the same page unless you're writing a tutorial, so you can remove the original if you want.
- Be sure to Save Blocks before you try any configuration.
Step 7. Customize the blocks from the front end
Here are both blocks, the original core search block and the one I just added. Compare the look of the Core one with the first image. You'll see that some custom features have been added. The first picture just shows an entry field and a search button. Now we can search tags and forums. This is because the new module makes those capabilities available to all the modules.
It also makes customization very simple. When you are viewing the module from the front end, mouse over the title and you will see an icon that looks like a cog from a gear.
This will give you access to the configuration for this particular module. It makes it much simpler if you are going to have multiple search boxes with different types of search. You can define each one while you are on it's page. It saves time and prevents mistakes.
Step 8. Configure Visibility
- Clicking Configure will allow you to change the visibility and normal block function.
- Clicking Custom Search configuration will give you access to define the search box itself.
Step 9. Configure each block to have custom features
From here you can configure what's include and what type of search you want.
Result
Above you can see what the original search block looks like after I've configured some additional elements to show. This will allow you to present a highly customized search experience to your the public and authorized users.
Multiple Categories with the Drupal Contact Module
It all depends on knowing how to create categories and blocks.
Step 1. Make sure the Contact module is enabled
- Click Modules
- Click Save configuration.
- Click Configure next to Contact.
Step 2. Add and edit categories.
Click Add category to add a new one.
There is a default category called Website feedback that you can use as well, but we are showing you how to add extra ones. You can edit the default category later if you need to.
Step 3. Configure the category
- Give the category a name.
- Specify the Recipients
- Create an Auto-reply message.
- Set Selected. Yes means it will be the default contact form. Since this is a new category, you probably want this to be No. You can only have one default.*
- Be sure to click the Save button.
*Selected: When a visitor clicks on the link to the contact form, the categories will show in a drop down list. Whichever one is chosen with a "Yes" will show automatically If you want your visitor to be forced to choose a category before submitting the form, make all of these fields "No"
Continue repeating the process until you have all the categories you want. A "category" can be a different department, a group or individual.
Step 4. Enable the menu link
Jump to the Menus administration page by clicking the blue link in the instruction paragraph. Alternatively you can get their via the admin menu and clicking Structure then Menus.
Step 5. List the links
A Contact menu item (disabled by default) is added to the Navigation menu, which you can modify on the Menus administration page. Click list links next to Navigation.
Step 6. Enable the link
This menu link will go directly to the site-wide contact form. You will see a Contact menu item that is disabled. You can use this one as a guide for creating other menu links.
Step 7. Configure the link
- Edit the link title if needed.
- Enable the link so it appears on the menu.
- Choose the parent link if you want it to be different from the default "Navigation".
Step 8. Add a block with instructions for the user
Go to Structure > Blocks.
Step 9. Add a block
Step 10. Add the block information
- Enter a Block Description. This will not be seen by the public.
- Enter a Block Title. This will be seen by the public.
- Write your instructions. This will also be visible to the public,
Scroll down the page.
Step 11. Set the visibility settings by assigning it to the Contacts page
- Choose "Only listed pages". The only page we want to have these instructions is the Contact page.
- Write "contact" in the text field.
- Save the block.
Specify pages by using their paths. Enter one path per line. The '*' character is a wild card. Example paths are blog for the blog page and blog/* for every personal blog.is the front page.
There are other parameters and settings on this page, but for the purpose of this tutorial we only need the basics.
Step 12. Enable the block
You will be returned to the Blocks page. You will find the block you added in the Disabled list with the title you created. To enable it, choose the position from the drop down box.
Choose Help.
This box lists all of the regions available on the template you are using. On the Bartik template, the Help region is right where we want it. You may have a different idea or location on your website.
Step 13. Final configuration then save.
As soon as you choose the region, the block title will now be visible at the top of the page that shows the enabled modules. The will be grouped by region, so this one will be under Help.
Remember to Save - scroll to the bottom of the page
No changes will be saved until you click Save blocks.
Your result
If you followed all these steps you will have a contact form that looks something like this.
- There is a link on the menu to the form.
- The instructions are in the Help Region in a block you added.
- The correct email address shows. (this will change to the right one when the category is selected).
- There is a drop down list with the categories you created.
Getting Started With Drupal's Webform Module
After a submission, you can send users a thank-you email as well as sending a notification to administrators. Results can be exported into Excel or other spreadsheet applications. Webform also provides some basic statistical review and has an extensive API for expanding its features.
If you need to build a lot of customized, one-off forms, Webform is a more suitable solution than creating content types and using the CCK or Field modules.
Download the Webform Module
Go to this url http://drupal.org/project/webform, and download the Webform Module.
There are some additional modules that add some functionality and make some operations easier. You can download the optional modules as well. To keep things simple, we'll use the basic module and show you how to create a simple survey of registered users.
- Options Element Module - http://drupal.org/project/options_element
- Select (or other) - http://drupal.org/project/select_or_other
- Date - http://drupal.org/project/date
- Mollom - http://drupal.org/project/mollom OR Catpcha - http://drupal.org/project/captcha
- Webform Validation - http://drupal.org/project/webform_validation
- Arrange Fields module -http://drupal.org/project/arrange_fields
Download the correct version. They may have changed since we wrote this, so be sure to check.
Install the Webform Module
Enable the module
Go to the Modules page and scroll down to Webform and click the check box. Click Save configuration.
Access the form fields
Go to Structure > Content types
Scroll down to Webform and look the right for the links to edit and manage fields and the display.
Click Edit
If you are familiar with CCK in Drupal 6, or Fields, which is now part of D7 core, you will see a familiar interface for adding and managing new fields.
This is not the place where you will be creating forms. Editing here is exactly the same as editing Fields in Content Types, which is a way to make fields available to this content type. From here you can edit fields, manage existing fields, the display and the comment functions by clicking on the appropriate tabs. But creating the actual form is done by adding content in the same way you would add an article.
You won't need to do much here but review all your choices and see if there is anything you feel you must change. The default values will work for the purposes of our demonstration. After you create your first form and understand the module you might want to revisit the configuration.
Now that the module is installed and the configuration is checked, you can begin building your survey form.
Create your first webform by adding it as content
Go to Content > Add Content > Webform
Don't get confused over Poll vs Webform. We are creating a form with various types of questions, not taking a Poll. Poll is another content type that is similar, but restricted to multiple selection fields and gathering the statistics on the responses. Webform is a form submission module, and collects the actual responses and stores them in a table for you to review. You can collect almost any type of data using Webform.
Create the basic form details
Give it a title and make the decisions on all basic options. Save this with the save button at the bottom of the page.
Add form components
Now you will see the controls for creating and editing the rest of the form elements. Start adding Form components on the WEBFORM tab.
Give the component a label, choose textfield and then click Add.
We're surveying registered users, so we are going to automatically fill in their username. A name is basic text field, but we want our registered users to show up on the textfield, so we're going to make use of Tokens. Using Tokens is just an optional feature.
Enter the token %username in the Default value field.
This will pull the username from the data base and fill it in automatically.
If you don't see the TOKEN VALUES, you probably don't have the Token module installed. You only need Token if you want to fill in the default values taken from the data base. If this is going to be a blank field that the user will fill in when they visit the page, you can just leave the Default value blank. I used Token here to illustrate the possibilities available to you.
If you need the Token module you can download it here http://drupal.org/project/token
Scroll down the rest of the page and make any configuration selections you need then click Save Component at the very bottom of the page.
Create a "Select" field
Fill in a new label and choose the Select options type from the drop down. Click Add and complete the options on the next screen
Create the list of options
Go to Options and create Key Value Pairs. These pairs consist of a machine readable key and a plain language value separated by a "|" - This character is called a "pipe" and you can find it by holding shift while pressing the backslash key "\" key on most keyboards.
Key-value pairs MUST be specified as "safe_key|Some readable option". Use of only alphanumeric characters and underscores is recommended in keys. One option per line.
Save the Component.
Repeat this step for the flavor of the jelly and type of peanut butter.
When you are creating lists, the default type is radio buttons. If you want check boxes or a listbox the choices are farther down on the page. You can also set the field as mandatory or optional. If you click the "Multiple" check box at the top, the list will appear as check boxes. If you choose "Listbox" under DISPLAY you will have a drop down box. Selecting "Multiple" and "Listbox" will allow users to make multiple selections from a dropdown box.
When you create the Jelly type, add Other as a choice. Then add a text field so people can write in their suggestions.
Add a Text field
You can add a text field, or a textarea. A text field is for short entries like names. A textarea will be a large area for entering more extensive written responses.
Other field types you might want to add for your purposes are an E-Mail field or Date Field. You can choose thees types from the dropdown "Type" box.
You can choose other field types from the Type drop down.
Add a preset field type
There is a convenience feature you may want to use. You can create pre-built option lists and add them to your form. The module comes with several default lists. Add one for States if you want to see how this looks on your form. Label it State and then choose the Select Options type and when you get to the next screen, make your selection.
Choose US States from the drop down.
Check your form
At this point your form will look similar to this. You can change the locations of the descriptions by clicking the WEBFORM tab and editing each item and making different configuration selections. Once you have the form ordered the way you like it and all the questions and fields correct. Go back to the WEBFORM tab EMAIL tab and set the EMAIL options.
You can use drag and drop to move form elements to different positions.
Configure the E-Mail options.
Go back to the WEBFORM tab and look for the E-mails sub-tab. Fill in an address and click Add.
Set the email address if you want to receive an email when the form is submitted. You can add multiples.
There are lots of choices to make. Be sure you check every one of them so they are correct for your form. Be sure to save the changes.
Configure the Form Settings
From the WEBFORM tab Click the Form Settings sub-tab at the top of the page. Check and modify settings as needed. Save your changes.
Now you can publish your form exactly like you would publish any other content item on your site. After you've had a chance to collect submissions, you will see the results when you are logged in as a user with the correct permissions.
Click Content > Find Content and select the form from the content list and you can find the results tab. This will allow you to see the collection of data you have as well as give you some simple analysis.