<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>IBM</title>
  <link rel="alternate" type="text/html" href="http://pingv.com/tag/ibm"/>
  <link rel="self" type="application/atom+xml" href="http://pingv.com/taxonomy/term/125/atom/feed"/>
  <id>http://pingv.com/taxonomy/term/125/atom/feed</id>
  <updated>2006-07-11T11:20:52-05:00</updated>
  <entry>
    <title>IBM&#039;s Internet Technology Group explains the Drupal basics</title>
    <link rel="alternate" type="text/html" href="http://pingv.com/blog/laura/200608/ibms-internet-technology-group-explains-the-drupal-basics" />
    <id>http://pingv.com/blog/laura/200608/ibms-internet-technology-group-explains-the-drupal-basics</id>
    <published>2006-08-30T10:17:38-05:00</published>
    <updated>2006-08-30T11:35:15-05:00</updated>
    <author>
      <name>Laura</name>
    </author>
    <category term="Partners" />
    <category term="Drupal" />
    <category term="IBM" />
    <content type="html"><![CDATA[ <p>IBM's Internet Technology Group has written <a href="http://pingv.com/blog/laura/200607/big-blue-drop-ibm-goes-with-drupal">a very nice series of articles on Drupal</a>, the latest of which gives <a href="http://www-128.ibm.com/developerworks/ibm/library/i-osource5/">a fabulous introduction to the basics of Drupal</a>.</p>
<blockquote><p>This article gives you an overview of the Drupal content management system. We'll describe the common building blocks and discuss some common assumptions of the Drupal approach. It is helpful to understand core concepts and basic Drupal terminology as you go through this article and beyond.</p></blockquote>
<p>The article starts off by explaining much of the Drupal jargon, and does so without falling back on other jargon, which is the first step for anyone wanting to understand the basic structures behind how Drupal works. For example, explaning nodes:</p>
<blockquote><p>An important concept in Drupal is that all content is stored as a node. They are the basic building blocks for the system, and provide a foundation from which content stored in Drupal can be extended. Creating new node modules allows developers to define and store additional fields in the database that are specific to your site's needs. Nodes are classified according to a type. Each type of node can be manipulated and rendered differently based on its use case.</p></blockquote>
<p>Or taxonomy:</p>
<blockquote><p>The Drupal taxonomy system allows the classification of nodes, which enables the organization of node content on a displayed Web page. This categorization can also be used to modify Web site navigation.</p>
<p>Categories are defined by tags, or <i>terms</i>, and sets of terms can be grouped into a vocabulary. Drupal can automatically classify node content with terms, or node content can be manually classified using associated vocabularies. Drupal also allows <i>free tagging</i>, letting users define their own terms for node content.</p></blockquote>
<p>Even the concept of program hooks is covered.</p>
<p>The authors also spend a fair amount on Drupal theming and template construction, going through various functions and node presentation hooks available to customize the look and feel of your Drupal content to however you like.</p>
<blockquote><p>The PHPtemplate engine allows you to map templates to specific <a href="http://api.drupal.org/api/4.7/group/themeable" target="new">theme functions</a>. Theme functions provide generic methods to build Web content that is used by modules providing core functions in Drupal, or by your own modules to extend Drupal.</p>
<p>One example is the <code>theme_links</code> function. Given an array of xHTML anchor elements (links), <code>theme_links</code> will return a string containing these links delimited by a given character. This is an example of a very simple building block....</p>
<div class="codeblock"><code>				<br />function phptemplate_links($links, $delimiter = &#039; | &#039;) {<br />&nbsp; if (!is_array($links)) {<br />&nbsp;&nbsp;&nbsp; return &#039;&#039;;<br />&nbsp; }<br />&nbsp; $content = &#039;&amp;lt;div class=&quot;links&quot;&amp;gt;&#039;;<br />&nbsp; $content .= implode($delimiter, $links);<br />&nbsp; $content .= &#039;&amp;lt;/div&amp;gt;&#039;;<br />&nbsp; return $content;<br />}</code></div>
</p>
</p></blockquote>
<p>Okay, so the writing tends to be a little on the geeky side, but this article admittedly is for the geek reader -- probably someone who is either interested in learning how to develop with or theme for Drupal -- but the post is clear enough that it could also be of interest to anyone interested in getting more than the most simplistic sense of how Drupal works.</p>
<p>I find myself hoping that <a href="http://www-128.ibm.com/developerworks/ibm/library/i-osource5/#author">authors</a> Alister Lewis-Bowen, Stephen Evanchik and Louis Weitzman have the time to join the <a href="http://drupal.org/node/14205">Drupal documentation team</a>.</p>
<p><i>Hat tip to <a href="http://willy.boerland.com/myblog/new_ibm_drupal_howto">Bert Boerland</a> and <a href="http://www.langemark.com/node/2336">Gunnar Langemark</a>.</i></p>
     ]]></content>
  </entry>
  <entry>
    <title>Big Blue Drop: IBM goes with Drupal</title>
    <link rel="alternate" type="text/html" href="http://pingv.com/blog/laura/200607/big-blue-drop-ibm-goes-with-drupal" />
    <id>http://pingv.com/blog/laura/200607/big-blue-drop-ibm-goes-with-drupal</id>
    <published>2006-07-11T11:16:48-05:00</published>
    <updated>2006-07-11T11:20:52-05:00</updated>
    <author>
      <name>Laura</name>
    </author>
    <category term="Drupal" />
    <category term="IBM" />
    <content type="html"><![CDATA[ <p>Actually, it's only a fictitious web project the IBM Internet Technology Group team developed, but it's quite interesting that they used Drupal for the chosen platform to facilitate <a href="http://www-128.ibm.com/developerworks/ibm/library/i-osource1/index.html?ca=drs-">Using open source software to design, develop, and deploy a collaborative Web site</a>:</p>
<blockquote><p>Drupal is a relative youngster compared to other content management systems (CMSs). However, we got the impression the framework was well written, robust, very extensible, and seemed to have a thriving development community that was generating a lot of adoption and support....</p>
<p>... Drupal is known for scalability, or ease of growing a Web site from a small set of users to an enterprise level. The framework also has the ability to 'throttle' areas of the site that could cause potential problems during heavy traffic situations.</p>
<p>There is still an apparent learning curve to the "Drupal Way" of creating sites, but significantly less compared with other CMSs. The ability to use PHP to move freely between the business logic layer and the presentation layer (using the PHP template engine) was also very appealing.</p></blockquote>
<p>They compare Drupal with some other  popular CMS platforms, and then get into some detail. Check out this comparison chart, and what the IBM engineers have to say:</p>
<p><a href="http://www-128.ibm.com/developerworks/ibm/library/i-osource1/index.html?ca=drs-#fig3"><img src="/system/files/IBM_cms_comparison.gif" alt="IBM chart" title="IBM analyzed and compared CMS platforms and created this comparison chart" border="1" /></a></p>
<blockquote><p> Drupal contains many built-in features and is easily extensible with a vibrant community supporting and adding to the portfolio of additional features. The basic features include:</p>
<ul>
<li>Friendly URLs using Apache's mod_rewrite capability</li>
<li>Easily extensible using Drupal's module framework (The community has developed many useful modules that provide functions such as taxonomy display, jabber authentication, private messages, bookmarks, and so on.)</li>
<li>A personalization environment for individualized content and presentation based on user preferences</li>
<li>Role-based permission system to define access to the viewing and editing of content</li>
<li>Content is fully indexed to support search</li>
<li>Drupal is written on top of a database abstraction layer, so the framework can be easily extended to other database back ends</li>
<li>Support for other content forms such as polls, threaded comments, and discussions and content syndication</li>
<li>Separation of content from styling in a templating system that uses HTML, CSS, and PHP</li>
<li>Administrative support for logging, analysis, and Web-based administration</li>
<li>Online help</li>
</ul>
</p></blockquote>
<p>They then go on to list some of the ways they extended Drupal.</p>
     ]]></content>
  </entry>
</feed>
