<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>pingVision</title>
  <subtitle>Interactive Design + Development for Drupal websites</subtitle>
  <link rel="alternate" type="text/html" href="http://pingv.com/blog/rad/200710/drupal-modules-beginners"/>
  <link rel="self" type="application/atom+xml" href="http://pingv.com/node/3701/atom/feed"/>
  <id>http://pingv.com/node/3701/atom/feed</id>
  <updated>2008-06-09T10:29:41-05:00</updated>
  <entry>
    <title>Drupal Modules for Beginners</title>
    <link rel="alternate" type="text/html" href="http://pingv.com/blog/rad/200710/drupal-modules-beginners" />
    <id>http://pingv.com/blog/rad/200710/drupal-modules-beginners</id>
    <published>2007-10-05T13:04:13-05:00</published>
    <updated>2008-06-09T10:29:41-05:00</updated>
    <author>
      <name>Rad</name>
    </author>
    <category term="beginner" />
    <category term="Drupal" />
    <category term="Modules" />
    <content type="html"><![CDATA[ <p>Being a visual person, the first thing I learned in Drupal was theming. But, a site that worries about looks without addressing content isn't far from Paris Hilton putting out an album - there's just a difference in funding. So let's look at how to use modules for Drupal 5.x and make the site do what we want it to do!</p>
<p>Drupal can make forums, blogs, and articles, allow commenting, create user types and assign them different permissions, and much, much more just from the basic install. Despite the incredible set of functionality built in, chances are your idea isn't exactly covered by the basic install. But you don't need to be a programmer to add functionality. You can add modules that others have written! And someday soon, you can write custom modules for your needs, and contribute them back for others to use!</p>
<h3>Wide World of Modules</h3>
<p>Chances are, someone has already created a module for what you need. It may not work the way you envisioned it, but the beauty of open source is the ability to make your own changes! The massive library of modules people have written for Drupal is nothing short of amazing. Here is one <a href="http://webpodge.com/2007/02/22/top-10-drupal-modules/">opinion of the top ten drupal modules</a> that I tend to agree with. If you find something close, but not exactly what you wanted, find a PHP programmer to customize the module and contribute the changes back to the community. Open source allows you to spend your money exactly where you need it, and feel good about spending it, because others will benefit from your efforts in the same way you are benefiting from theirs.</p>
<p>Modules are called "core" if they come with the Drupal install, and "contributed" (or contrib) modules if you have to download them separately from Drupal or if you write one yourself. Note that not all core modules are enabled by default. You may have to turn them on. Modules are controlled from <code>/?q=admin/build/modules</code> and administered at <code>/?q=admin/by-module</code>.</p>
<p>Although core modules are in <code>/modules</code>, you'll always copy any modules you create or add to <code>/sites/all/modules</code>. Note that you'll have to create the <code>modules</code> folder within <code>/sites/all</code>, just like you hopefully already created a <code>themes</code> folder. If you mix core and contributed modules in the same folder, they'll still work, but you'll open yourself up to lots of trouble when upgrading, and will have a much harder time backing up your project. Adding modules to Drupal is as simple as copying the module to the <code>modules</code> folder - next time you go to the modules admin page (or refresh it if you're already there) your modules will be visible and waiting to be enabled!</p>
<h3>CCK + Views: The Ultimate Combination</h3>
<p>The two most powerful and probably most important modules you need to learn are <a href="http://drupal.org/project/cck">CCK</a> and <a href="http://drupal.org/project/views">Views</a>. CCK allows you to make custom content types and Views lets you display what you need in a wide variety of forms. You can think of CCK as a graphical way to create databases, and Views as a graphical way to design the display of the data. With these two modules, you have some serious database power at the tip of your cursor without having to learn PHP and MySQL.</p>
<p>I found this <a href="http://ventureskills.wordpress.com/2007/01/08/cck-views-the-ultimate-combination-part-1/">basic tutorial</a> that's a nice sampler of some of the most common and most powerful modules: CCK, Views, <a href="http://drupal.org/project/panels">Panels</a>, and <a href="http://drupal.org/project/contemplate">Contemplate</a>. After installing all the modules into the <code>sites/all/modules</code> folder, I went through the tutorial. I learned more CCK basics from this tutorial than I had anywhere else. (<i>Although the tutorial was written for 4.7, the modules are now all available for 5, and I was able to do everything in the tutorial on my 5.1 install without any problems.</i>)</p>
<p>At this point, I had a basic understanding of how Drupal worked and what it could do. I was getting excited! (and depressed, wishing that all my old sites were already in Drupal.)</p>
<h3>Ready to Work</h3>
<p>I still didn't feel ready to begin converting my sites to Drupal, so after asking around a bit, found a friend that needed a simple site, that would need some custom CCK fields and organizing by taxonomy, but not much more - a perfect site for a beginner! I recommend following a similar path. Tutorials show you what capabilities are, but really learning Drupal doesn't start till you make real sites, because that's where problem solving begins.</p></p>
<p>Drupal core includes the upload module that allows you to upload a variety of file types, including images. But the real power comes from contributed modules. <a href="http://drupal.org/project/imagefield">imagefield</a> and <a href="http://drupal.org/project/imagecache">imagecache</a> in conjunction with CCK and Views are very powerful, and allow a surprising amount of automated image control. You can create resizing and cropping rules and name them (e.g. "thumb", "full", "600wide", etc.), then use Views to call the specific sizes in different views. Read more in <a href="http://www.lullabot.com/articles/image_and_image_exact_sizes_vs_imagefield_and_imagecache">this article</a>.</p>
<p>If you're creating a site for a client that hasn't given you any content, or just playing with a blank install to learn Drupal, use the <a href="http://drupal.org/project/devel">devel module</a>'s content generator to create fake nodes, categories, comments, and more. Others have had <a href="http://drupal.org/node/130712">trouble with the devel module</a>, but I didn't, and found the generator invaluable. Having the site populated with content was a big help in seeing the mock-up site as it might look in real life and gave me more understanding as went through tutorials.</p>
<p>In addition to installing drupal, exploring it, and doing tutorials, you should also read <a href="http://www.drupalbook.com/">Pro Drupal Development</a>, <a href="http://drupal.org/handbooks">drupal.org's Handbooks</a>. You can post questions on the drupal.org forums, and you'll be surprised at how quickly you may end up being able to answer other people's questions in addition to asking your own!</p>
<p>A quick note on caching css and html: Keep both off until your site is live! If you turn them on, you'll have a hell of a time troubleshooting as you make small changes to your css or html and they don't show up!</p>
<p><a href="http://pingv.com/blog/rad/200707/birth-drupal-user">part I: Birth of a Drupal User</a></p>
     ]]></content>
  </entry>
</feed>
