Really useful Drupal modules: Plugin Manager
Among the abundance of contributed modules for Drupal, there are a few gems that are worth some extra praise. One of these is the plugin manager module. It makes it really easy to navigate among the contributed modules and themes available online, as well as downloading and installing them in your local Drupal system.
When I do Drupal website development, I almost always install plugin manager as the first module. In most cases, it is the only module that I install the "normal" way, i.e. download the code, unzip, untar and dropping it into my sites/all/modules directory. All the subsequent modules and contributed themes are pulled down via the plugin manager.
The plugin manager module doesn't just download selected modules and twiddle around with the file system. To add some security, it uses an authenticated method for dropping the contents into the right directory. This method is either FTP or SSH running on the local machine. In all honesty, I have never managed to get the SSH variant going, but then again, FTP has done the job excellently for me.
To use plugin manager with FTP, you need to have an FTP server running on your local machine. If you're using a Linux machine, then that should be a breeze setting up. If you develop on a Windows-based machine, then packages such as XAMPP include FTP servers like FileZilla. I normally set up a new user for my Drupal instance and configure the home directory of the user to be the root directory of my Drupal instance. When configuring the plugin manager module, I need to feed it the hostname/IP of the FTP server, the username and (optionally) the file path to the Drupal root. If your FTP user has the root of the Drupal instance as the home directory, then plugin manager will find the instance by itself.
One little thing to keep in mind: The plugin manager module is by default configured to always go for the latest version of the module or theme that you are trying to download. This is not always the optimal choice. I usually untick that checkbox in the plugin manager settings to ensure that I can select which version of the module/theme I want.
The first time you fire up plugin manager, you will get a message saying something like "Repository out of date. Click here to reload". Clicking that link causes the plugin manager to start interrogating the drupal.org website. Many times I've done this, the process has timed out and I've received an error message. Without knowing exactly what is going on under the bonnet of the module, it still appears as if it has chewed away on updating its internal repository. So, you can in worst case repeat the process again a few times, and eventually you will have a fully up-to-date repository. (You can also tweak the settings in your php.ini file and increase the maximum script execution time.)
The plugin manager features a categorised list of modules and themes, where you can expand each category by clicking on the link. I mainly use the search box to find the modules I'm looking for. If you search for e.g. "node", you will get a pretty long list of modules (and themes) that match that query. On each row in the result set, you will find a link to the project page. If I find a module that I want to have a closer look at, I often open that page in a new window. Once you've found the module or theme that you want to download, then just click the "Add" button to add the module/theme to your download list.
Once you've finished picking out the stuff that you want to install, then click on the "Install Queued Plugins" button. This will take you to the install part of the module. Provided that you previously unticked the "choose latest version" tickbox in the plugin manager settings, you will now be able to select the desired release for each of the items you've selected for installation. When you're done, click the "Continue to Step 2" button. Now you will need to have your FTP account details ready. You have to enter the host name, username and password in the form. I usually tick the box "Save Username" as I'm always using the same FTP account for the particular Drupal instance. If all goes well, then you should get a confirmation text about the install (which usually takes a little bit of time due to the communication involved).
All done now? Well, not quite. The plugin manager downloads and installs the module or theme, but it does not enable it. To enable a module, you need to go to Site Building>Modules and explicitly enable the newly installed module. Similar for a theme, where you would go to Site Building>Themes and enable the new theme.
When should you use the module and when should you not? In my case, I normally have three instances of each Drupal site: (1) a development environment, (2) a staging/testing environment and (3) a production environment. I use Subversion to manage files and code, as well as synchronizing the files between the different environments. I always use the plugin manager module in the development environment, but never in staging or production. I suppose the general rule of thumb is to keep the production (and the testing environment that should mirror production as close as possible) should be as "lean" as possible, i.e. only have the absolute minimum set of modules and themes needed to run the site.
There is actually more goodies around the plugin manager module. It does have built-in functionality that makes it easier for you to update existing modules and themes as well. All in all, the plugin manager definitely is one of the most useful modules I have found!
