<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0" xml:base="http://www.midwesternmac.com">
<channel>
 <title>Midwestern Mac, LLC</title>
 <link>http://www.midwesternmac.com</link>
 <description />
 <language>en</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/midwesternmac" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="midwesternmac" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
 <title>Allowing Organic Groups Administrators the Ability to Unpublish/Publish and Schedule Content</title>
 <link>http://www.midwesternmac.com/blogs/geerlingguy/allowing-organic-groups-admini</link>
 <description>&lt;p&gt;
	One requirement of the Archdiocese of St. Louis&amp;#39; website is that group administrators are able to publish and unpublish the content inside their groups, and they should also be able to schedule posts for automated publishing and unpublishing at a later time.&lt;/p&gt;
&lt;p&gt;
	To do this, I used the following modules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
		&lt;a href="http://drupal.org/project/og_user_roles"&gt;OG User Roles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://drupal.org/project/scheduler"&gt;Scheduler&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://drupal.org/project/publishcontent"&gt;Publish Content&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
		[EDIT: I&amp;#39;m now using the &lt;a href="http://drupal.org/project/override_node_options"&gt;Override Node Options&lt;/a&gt; module rather than Publish Content - it gives more fine-grained control over visibility of node form options.]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	After enabling these modules, I spent a while in the Permissions page, and also created a new user role, &amp;quot;administer nodes.&amp;quot; Ironically, I didn&amp;#39;t assign the &amp;#39;administer nodes&amp;#39; permission to this role, because doing so causes a huge mess (&amp;#39;administer nodes&amp;#39; gives waaay too much power to anyone except the site admin&amp;mdash;it&amp;#39;s best to leave that beast unchecked in most cases).&lt;/p&gt;
&lt;p class="rtecenter"&gt;
	&lt;img alt="Scheduling and Publishing options inside a group" class="noborder" height="289" src="http://www.midwesternmac.com/sites/midwesternmac.com/files/blogpost-images/scheduling-publishing-unpublishing.png" width="600" /&gt;&lt;/p&gt;
&lt;p&gt;
	For the &amp;#39;administer nodes&amp;#39; role, I checked the box next to &amp;#39;schedule (un)publishing of nodes&amp;#39;, which allows users with this role to schedule the publish/unpublish time of a given node. I also checked boxes next to &amp;#39;publish &amp;lt;content type&amp;gt;&amp;#39; and &amp;#39;unpublish &amp;lt;content type&amp;gt;&amp;#39; for each of the content types I wanted users to be able to publish or unpublish (these permissions are under the &amp;quot;publishcontent module&amp;quot; permissions section).&lt;/p&gt;
&lt;p&gt;
	Then I went into the OG User Roles module&amp;#39;s configuration page (at admin/og/og_user_roles), and checked the box to allow the &amp;#39;administer nodes&amp;#39; role to be set per group, and also set that as the default role to be added to any user in a group that is made an admin of that group.&lt;/p&gt;
&lt;p&gt;
	The OG User Roles module basically assigns all the permissions you assign to a given role within a user&amp;#39;s group only. So you can give some permissions that you&amp;#39;d be very cautious giving out otherwise, because those permissions only affect the user&amp;#39;s group, rather than all sections of the website. (However, there are still some permissions that can wreak havoc on your access control, like &amp;#39;administer nodes&amp;#39;&amp;mdash;always test!).&lt;/p&gt;
&lt;p&gt;
	Now, users can schedule content to be posted whenever they&amp;#39;d like, and they can publish or unpublish any content inside their own group(s)!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZC0PJYMT2GsOH2KyYaXDDlLXXzs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZC0PJYMT2GsOH2KyYaXDDlLXXzs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZC0PJYMT2GsOH2KyYaXDDlLXXzs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZC0PJYMT2GsOH2KyYaXDDlLXXzs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/midwesternmac/~4/LdPfr7ZYfEc" height="1" width="1"/&gt;</description>
 <comments>http://www.midwesternmac.com/blogs/geerlingguy/allowing-organic-groups-admini#comments</comments>
 <category domain="http://www.midwesternmac.com/category/tags/administration">administration</category>
 <category domain="http://www.midwesternmac.com/category/tags/drupal">drupal</category>
 <category domain="http://www.midwesternmac.com/category/tags/drupal-planet">drupal planet</category>
 <category domain="http://www.midwesternmac.com/category/tags/organic-groups">organic groups</category>
 <category domain="http://www.midwesternmac.com/category/tags/scheduling">scheduling</category>
 <pubDate>Mon, 08 Mar 2010 16:04:01 +0000</pubDate>
 <dc:creator>geerlingguy</dc:creator>
 <guid isPermaLink="false">98 at http://www.midwesternmac.com</guid>
</item>
<item>
 <title>Better Drupal Comment Forms</title>
 <link>http://www.midwesternmac.com/blogs/geerlingguy/better-drupal-comment-forms</link>
 <description>&lt;p class="rtecenter"&gt;
	&lt;img alt="New Comment form - Drupal - More user-friendly" class="noborder" height="251" src="http://www.midwesternmac.com/sites/midwesternmac.com/files/blogpost-images/comment-form-new.png" width="600" /&gt;&lt;/p&gt;
&lt;p&gt;
	Put this in one of your theme&amp;#39;s stylesheets - it&amp;#39;ll change a clunky, large, and unweildy comment form into a more compact and user-friendly form:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.midwesternmac.com/blogs/geerlingguy/better-drupal-comment-forms" target="_blank"&gt;read more&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZApuuEk2wQYMcnRg9ynh30NVyOQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZApuuEk2wQYMcnRg9ynh30NVyOQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZApuuEk2wQYMcnRg9ynh30NVyOQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZApuuEk2wQYMcnRg9ynh30NVyOQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/midwesternmac/~4/qQmrfEnG2Bo" height="1" width="1"/&gt;</description>
 <comments>http://www.midwesternmac.com/blogs/geerlingguy/better-drupal-comment-forms#comments</comments>
 <category domain="http://www.midwesternmac.com/category/tags/comments">comments</category>
 <category domain="http://www.midwesternmac.com/category/tags/css">css</category>
 <category domain="http://www.midwesternmac.com/category/tags/drupal">drupal</category>
 <category domain="http://www.midwesternmac.com/category/tags/drupal-planet">drupal planet</category>
 <category domain="http://www.midwesternmac.com/category/tags/style">style</category>
 <category domain="http://www.midwesternmac.com/category/tags/user-experience">user experience</category>
 <pubDate>Sat, 06 Mar 2010 15:40:51 +0000</pubDate>
 <dc:creator>geerlingguy</dc:creator>
 <guid isPermaLink="false">97 at http://www.midwesternmac.com</guid>
</item>
<item>
 <title>Getting a Views Page Display to Appear Inside an Organic Group</title>
 <link>http://www.midwesternmac.com/blogs/geerlingguy/getting-views-page-display-app</link>
 <description>&lt;p&gt;
	I have been hitting my head against a wall for a few weeks now, trying to get a few different Views-created pages to appear as if they were normal pages inside an Organic Group (meaning they would appear inside og-menu-enabled menus for that particular group, and group blocks would also appear on the pages.&lt;/p&gt;
&lt;p&gt;
	After reading up on the thread &amp;quot;&lt;a href="http://drupal.org/node/650178"&gt;Organic Groups and Views 2&lt;/a&gt;&amp;quot;, I found that I could use an argument to help solve my dilemma. Here&amp;#39;s how I set up an argument for a particular view:&lt;/p&gt;
&lt;p&gt;
	On the page display (I could&amp;#39;ve also done this as a default), I added an argument (&amp;quot;&lt;strong&gt;Organic groups: Groups&lt;/strong&gt;&amp;quot;) with the following properties:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
		Title: &lt;strong&gt;&amp;lt;none&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
		Breadcrumb: &lt;strong&gt;&amp;lt;none&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
		Action to take if argument is not present: &lt;strong&gt;Provide default argument&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;
				Default argument type: &lt;strong&gt;Fixed entry&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;
						Default Argument: &lt;strong&gt;6116&lt;/strong&gt; (this is the node ID for the organic group under which this view is posted)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
				Validator options
&lt;ul&gt;
&lt;li&gt;
						Validator: &lt;strong&gt;Group nodes&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;
								Argument type: &lt;strong&gt;Node ID&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
								Validate current user: &lt;strong&gt;&amp;lt;unchecked&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
						Action to take if argument is not present: &lt;strong&gt;Hide view / Page not found (404)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
		Allow multiple terms per argument: &lt;strong&gt;&amp;lt;unchecked&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
		Exclude the argument: &lt;strong&gt;&amp;lt;unchecked&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	Doing this allows Organic Groups to treat the Views page display as if it is actually a page within that particular group. Another problem solved! (I&amp;#39;m really beginning to fall in love with Views... and, apparently, Views 3 is going to be even &lt;a href="http://www.angrydonuts.com/views-3-x-roadmap"&gt;&lt;em&gt;more&lt;/em&gt;&lt;/a&gt; full of win!&lt;/p&gt;
&lt;h3&gt;
	Another Option - Embed in Page&lt;/h3&gt;
&lt;p&gt;
	You can also embed a view directly in a page, using the context of that page in your view to grab the items for the group into which the view is embedded.&lt;/p&gt;
&lt;p&gt;
	To do so, create a new page/story/whatever node, with &amp;#39;PHP Code&amp;#39; as the input format. Inside the node, put in &lt;div class="codeblock"&gt;&lt;code&gt;&lt;span style="color: #000000"&gt;&lt;span style="color: #0000BB"&gt;&amp;lt;?php&lt;br /&gt; &lt;/span&gt;&lt;span style="color: #007700"&gt;print &lt;/span&gt;&lt;span style="color: #0000BB"&gt;views_embed_view&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'group_newsletters'&lt;/span&gt;&lt;span style="color: #007700"&gt;); &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;and save your node.&lt;/p&gt;
&lt;p&gt;
	In the view you wish to embed (name it &lt;code&gt;view_name&lt;/code&gt; as you used in the code above), add an argument like the following (with type &lt;strong&gt;Organic Groups: Groups&lt;/strong&gt;):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
		Title: &lt;strong&gt;&amp;lt;none&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
		Breadcrumb: &lt;strong&gt;&amp;lt;none&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
		Action to take if argument is not present: &lt;strong&gt;Provide default argument&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;
				Default argument type: &lt;strong&gt;PHP Code&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;
						PHP Argument Code:&lt;/li&gt;
&lt;li&gt;
&lt;div class="codeblock"&gt;&lt;code&gt;&lt;span style="color: #000000"&gt;&lt;span style="color: #0000BB"&gt;&amp;lt;?php&lt;br /&gt; &lt;/span&gt;&lt;span style="color: #007700"&gt;if (&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$node &lt;/span&gt;&lt;span style="color: #007700"&gt;= &lt;/span&gt;&lt;span style="color: #0000BB"&gt;og_get_group_context&lt;/span&gt;&lt;span style="color: #007700"&gt;()) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$args&lt;/span&gt;&lt;span style="color: #007700"&gt;[&lt;/span&gt;&lt;span style="color: #0000BB"&gt;0&lt;/span&gt;&lt;span style="color: #007700"&gt;] = &lt;/span&gt;&lt;span style="color: #0000BB"&gt;$node&lt;/span&gt;&lt;span style="color: #007700"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;nid&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;return &lt;/span&gt;&lt;span style="color: #0000BB"&gt;$args&lt;/span&gt;&lt;span style="color: #007700"&gt;[&lt;/span&gt;&lt;span style="color: #0000BB"&gt;0&lt;/span&gt;&lt;span style="color: #007700"&gt;];&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;&amp;nbsp; return &lt;/span&gt;&lt;span style="color: #0000BB"&gt;NULL&lt;/span&gt;&lt;span style="color: #007700"&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;					&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
				Validator options
&lt;ul&gt;
&lt;li&gt;
						Validator: &lt;strong&gt;Group nodes&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;
								Argument type: &lt;strong&gt;Node ID&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
								Validate current user: &lt;strong&gt;&amp;lt;unchecked&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
						Action to take if argument is not present: &lt;strong&gt;Hide view / Page not found (404)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
		Allow multiple terms per argument: &lt;strong&gt;&amp;lt;unchecked&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
		Exclude the argument: &lt;strong&gt;&amp;lt;unchecked&amp;gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ri4pjaW_Rm0beaIL3f9faRsAzSA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ri4pjaW_Rm0beaIL3f9faRsAzSA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ri4pjaW_Rm0beaIL3f9faRsAzSA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ri4pjaW_Rm0beaIL3f9faRsAzSA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/midwesternmac/~4/15OUlVIajrQ" height="1" width="1"/&gt;</description>
 <comments>http://www.midwesternmac.com/blogs/geerlingguy/getting-views-page-display-app#comments</comments>
 <category domain="http://www.midwesternmac.com/category/tags/drupal">drupal</category>
 <category domain="http://www.midwesternmac.com/category/tags/drupal-planet">drupal planet</category>
 <category domain="http://www.midwesternmac.com/category/tags/og">og</category>
 <category domain="http://www.midwesternmac.com/category/tags/organic-groups">organic groups</category>
 <category domain="http://www.midwesternmac.com/category/tags/views">views</category>
 <pubDate>Tue, 09 Feb 2010 18:57:56 +0000</pubDate>
 <dc:creator>geerlingguy</dc:creator>
 <guid isPermaLink="false">96 at http://www.midwesternmac.com</guid>
</item>
<item>
 <title>Drupal: Make a Context-Aware User Login Link (PHP Snippet)</title>
 <link>http://www.midwesternmac.com/blogs/geerlingguy/drupal-make-context-aware-user</link>
 <description>&lt;p&gt;
	Many of the sites I design don&amp;#39;t require a user login form on every page, especially if there are only a few people that will ever need to login. Instead, I like to simply provide a &amp;quot;User Login&amp;quot; link somewhere on the page (most often in the footer), so it&amp;#39;s unobtrusive but there for those who might not remember to type in /user after the URL.&lt;/p&gt;
&lt;p&gt;
	This presents a new problem, though: if you put a link to &amp;quot;example.com/user,&amp;quot; then the person who clicks the link will be taken away from the page he was viewing to login, then he&amp;#39;ll be directed to his user account page.&lt;/p&gt;
&lt;p&gt;
	Luckily, Drupal lets you set a login destination in the URL, so you can redirect the user back to the page he was viewing after he logged in.&lt;/p&gt;
&lt;p&gt;
	To do so, create a block with PHP as the input format (or insert this snippet somewhere in your .tpl.php template files), and use the code below:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;a href=&amp;quot;/user?destination=&lt;span style="color: #000000"&gt;&lt;span style="color: #0000BB"&gt;&amp;lt;?php &lt;/span&gt;&lt;span style="color: #007700"&gt;echo &lt;/span&gt;&lt;span style="color: #0000BB"&gt;$_GET&lt;/span&gt;&lt;span style="color: #007700"&gt;[&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'q'&lt;/span&gt;&lt;span style="color: #007700"&gt;]; &lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;quot;&amp;gt;User Login&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;
	Now you have a handy little link that will redirect a user back to the page he was viewing before he logged in.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/L_ABggdIkM4IILT18dPyEPA3kJA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L_ABggdIkM4IILT18dPyEPA3kJA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/L_ABggdIkM4IILT18dPyEPA3kJA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L_ABggdIkM4IILT18dPyEPA3kJA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/midwesternmac/~4/JwoZ5GBF5Kk" height="1" width="1"/&gt;</description>
 <comments>http://www.midwesternmac.com/blogs/geerlingguy/drupal-make-context-aware-user#comments</comments>
 <pubDate>Wed, 20 Jan 2010 20:51:38 +0000</pubDate>
 <dc:creator>geerlingguy</dc:creator>
 <guid isPermaLink="false">95 at http://www.midwesternmac.com</guid>
</item>
<item>
 <title>Drupal 7.0 Alpha Release 1 is Available</title>
 <link>http://www.midwesternmac.com/blogs/geerlingguy/drupal-70-alpha-release-1-avai</link>
 <description>&lt;p&gt;
	As explained on Drupal.org today, &lt;a href="http://drupal.org/drupal-7.0-alpha1"&gt;Drupal 7.0 Alpha 1 has been released&lt;/a&gt;, and it incorporates (among other things) a revamped user interface, custom fields (CCK) in core, image handling in core, an update manager, and a ton of &amp;#39;under the hood&amp;#39; improvements.&lt;/p&gt;
&lt;p&gt;
	This is going to be the best Drupal release to date, for two reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
		&lt;strong&gt;Drupal has reached critical mass&lt;/strong&gt;: &lt;a href="http://www.whitehouse.gov/"&gt;WhiteHouse.gov&lt;/a&gt;, &lt;a href="http://appdeveloper.intel.com/"&gt;Intel&lt;/a&gt;, &lt;a href="http://www.grammy.com/"&gt;The Grammy Awards&lt;/a&gt;, and heck, even &lt;a href="http://pythonline.com/"&gt;Monty Python&lt;/a&gt; are running on Drupal. So is your cousin&amp;#39;s Internet startup. Drupal&amp;#39;s seen a couple years of great press, and it still hasn&amp;#39;t hit the ceiling in potential or mindshare!&lt;/li&gt;
&lt;li&gt;
		&lt;strong&gt;&lt;a href="http://drupal.org/node/550722"&gt;Theming has gotten a whole lot easier&lt;/a&gt;&lt;/strong&gt;: Disregarding the poor english in that description, it will be easier for themers (like me) to crack into designing for Drupal, which means more small businesses and individuals will use Drupal as an out-of-the-box website building solution. Expect a few people who&amp;#39;ve outgrown WordPress or Joomla to cross the pond... (link is to a placeholder page for now).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
	Besides these two points, the administration side of Drupal is much improved, and a lot of ridiculous bugs and weird elements from years past have finally been fixed. A few things will have to wait &amp;#39;till Drupal 8, but for the next few years, I predict Drupal 7 is going to get a lot of traction, especially with the &lt;a href="http://cyrve.com/d7cx"&gt;D7CX pledge&lt;/a&gt;. (I&amp;#39;m going to have to update my Drupal 6 theme, &lt;a href="http://drupal.org/project/airyblue"&gt;Airy Blue&lt;/a&gt;... ugh).&lt;/p&gt;
&lt;p&gt;
	Why don&amp;#39;t you go &lt;a href="http://drupal.org/drupal-7.0-alpha1"&gt;download Drupal 7 now&lt;/a&gt;, and kick the tires a little. It&amp;#39;ll be a nice experience, minus the few critical bugs remaining. Once you&amp;#39;re finished testing, &lt;a href="http://drupal.org/project/issues/search/drupal?version[0]=156281&amp;amp;status[0]=1&amp;amp;status[1]=8&amp;amp;status[2]=13&amp;amp;status[3]=14&amp;amp;priorities[0]=1&amp;amp;categories[0]=bug&amp;amp;categories[1]=task"&gt;dive into the issue queue&lt;/a&gt; and help change Drupal 7 from alpha to beta, and soon to release!&lt;/p&gt;
&lt;p&gt;
	I&amp;#39;m going to be writing up a post on &lt;a href="http://www.lifeisaprayer.com/articles/web-design/building-a-theme-drupal-7"&gt;Building a Theme for Drupal 7&lt;/a&gt; once I get a little time... it&amp;#39;ll be on my other site, lifeisaprayer.com.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9mfjf3YEkk-yM_YfsDzdWm2qEpU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9mfjf3YEkk-yM_YfsDzdWm2qEpU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9mfjf3YEkk-yM_YfsDzdWm2qEpU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9mfjf3YEkk-yM_YfsDzdWm2qEpU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/midwesternmac/~4/QyFuQ0wWUts" height="1" width="1"/&gt;</description>
 <comments>http://www.midwesternmac.com/blogs/geerlingguy/drupal-70-alpha-release-1-avai#comments</comments>
 <category domain="http://www.midwesternmac.com/category/tags/drupal">drupal</category>
 <category domain="http://www.midwesternmac.com/category/tags/drupal-planet">drupal planet</category>
 <category domain="http://www.midwesternmac.com/category/tags/websites">websites</category>
 <pubDate>Fri, 15 Jan 2010 21:45:57 +0000</pubDate>
 <dc:creator>geerlingguy</dc:creator>
 <guid isPermaLink="false">94 at http://www.midwesternmac.com</guid>
</item>
<item>
 <title>Displaying a User's Signature on a Node Page in Drupal</title>
 <link>http://www.midwesternmac.com/blogs/geerlingguy/displaying-users-signature-nod</link>
 <description>&lt;p&gt;
	A project I&amp;#39;m working on required a user&amp;#39;s signature be displayed on the user&amp;#39;s blog posts (only on the page&amp;mdash;not in blog teaser listings), and after much wrangling, I figured out how to put the &amp;#39;Biography&amp;#39; (one of the user profile fields) into the nodes when they were viewed individually.&lt;/p&gt;
&lt;p&gt;
	Here&amp;#39;s the snippet (to be placed into node.tpl.php or node-blog.tpl.php):&lt;/p&gt;
&lt;p&gt;&lt;div class="codeblock"&gt;&lt;code&gt;&lt;span style="color: #000000"&gt;&lt;span style="color: #0000BB"&gt;&amp;lt;?php &lt;/span&gt;&lt;span style="color: #007700"&gt;if (!&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$teaser&lt;/span&gt;&lt;span style="color: #007700"&gt;): &lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &lt;span style="color: #000000"&gt;&lt;span style="color: #0000BB"&gt;&amp;lt;?php $account &lt;/span&gt;&lt;span style="color: #007700"&gt;= &lt;/span&gt;&lt;span style="color: #0000BB"&gt;user_load&lt;/span&gt;&lt;span style="color: #007700"&gt;(array(&lt;/span&gt;&lt;span style="color: #DD0000"&gt;'uid' &lt;/span&gt;&lt;span style="color: #007700"&gt;=&amp;gt; &lt;/span&gt;&lt;span style="color: #0000BB"&gt;$node&lt;/span&gt;&lt;span style="color: #007700"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;uid&lt;/span&gt;&lt;span style="color: #007700"&gt;)); if (!empty(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$account&lt;/span&gt;&lt;span style="color: #007700"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;profile_bio&lt;/span&gt;&lt;span style="color: #007700"&gt;)) { &lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class=&amp;quot;blogger-bio&amp;quot;&amp;gt;&lt;span style="color: #000000"&gt;&lt;span style="color: #0000BB"&gt;&amp;lt;?php &lt;/span&gt;&lt;span style="color: #007700"&gt;print &lt;/span&gt;&lt;span style="color: #0000BB"&gt;check_plain&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$account&lt;/span&gt;&lt;span style="color: #007700"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;profile_bio&lt;/span&gt;&lt;span style="color: #007700"&gt;); &lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp; &lt;span style="color: #000000"&gt;&lt;span style="color: #0000BB"&gt;&amp;lt;?php &lt;/span&gt;&lt;span style="color: #007700"&gt;} &lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&lt;span style="color: #0000BB"&gt;&amp;lt;?php &lt;/span&gt;&lt;span style="color: #007700"&gt;endif; &lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;
	The code basically checks if the user&amp;#39;s account has a bio filled out, and if so, it will place it at the end of the node if the node is viewed by itself (if it&amp;#39;s not showing the teaser).&lt;/p&gt;
&lt;p&gt;See comments below this post for some important security considerations and alternate options.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4cHpp9vxMy4Mk1F-yq_jP5qNpT8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4cHpp9vxMy4Mk1F-yq_jP5qNpT8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4cHpp9vxMy4Mk1F-yq_jP5qNpT8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4cHpp9vxMy4Mk1F-yq_jP5qNpT8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/midwesternmac/~4/rr4qNfif4Dk" height="1" width="1"/&gt;</description>
 <comments>http://www.midwesternmac.com/blogs/geerlingguy/displaying-users-signature-nod#comments</comments>
 <category domain="http://www.midwesternmac.com/category/tags/drupal">drupal</category>
 <category domain="http://www.midwesternmac.com/category/tags/node">node</category>
 <category domain="http://www.midwesternmac.com/category/tags/profile">profile</category>
 <category domain="http://www.midwesternmac.com/category/tags/signature">signature</category>
 <pubDate>Mon, 21 Dec 2009 23:49:40 +0000</pubDate>
 <dc:creator>geerlingguy</dc:creator>
 <guid isPermaLink="false">93 at http://www.midwesternmac.com</guid>
</item>
<item>
 <title>My CVS Workflow for Updating a Theme on drupal.org</title>
 <link>http://www.midwesternmac.com/blogs/geerlingguy/my-cvs-workflow-updating-theme</link>
 <description>&lt;p&gt;&lt;img alt="Drupal CVS &amp;lt;ugh&amp;gt; Druplicon Frown" width="293" height="190" vspace="10" hspace="10" align="right" class="noborder" src="http://www.midwesternmac.com/sites/midwesternmac.com/files/blogpost-images/cvs-ugh.png" /&gt;From time to time, I've had to update my airyblue project in CVS (&lt;a href="http://drupal.org/project/airyblue"&gt;Airy Blue&lt;/a&gt; is a light, airy, Zen subtheme listed on Drupal.org's Themes section). It's always a bother, and I always end up spending about 20 minutes figuring out how to check out the module to my local computer (I use three of them, so even if I have it set up on one, I need to get it going on another sometimes), then another 20 figuring out how to commit my changes, tag a release, etc.&lt;/p&gt;
&lt;p&gt;So, this post might be titled &amp;quot;How to Maintain a Theme on Drupal.org if You're Confounded by the &lt;a href="http://drupal.org/node/262432"&gt;CVS Guide for Theme Maintainers&lt;/a&gt;, and you are on a computer on which you haven't checked out your module yet.&amp;quot;&lt;/p&gt;
&lt;p&gt;Logging in, Setting up CVSROOT&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open up Terminal (on a Mac) and navigate (&lt;code&gt;cd&lt;/code&gt;) to your CVS folder.&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;export CVSROOT=:pserver:&amp;amp;lt;username&amp;amp;gt;@cvs.drupal.org:/cvs/drupal-contrib&lt;/code&gt;&lt;br /&gt;
    (This will set your CVS 'root' to the right directory. Enter your username where it says &amp;lt;username&amp;gt;).&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;cvs login&lt;/code&gt; to login, and type in your CVS password when prompted.&lt;/li&gt;
&lt;li&gt;Type in &lt;code&gt;cvs checkout -l contributions/themes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Type in &lt;code&gt;cvs checkout -d contributions/themes/&amp;amp;lt;themename&amp;amp;gt; contributions/themes/&amp;amp;lt;themename&amp;amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After you do this, you should have the latest version of your module checked out into your local folder. Now, edit the files however you'd like, and test them locally to be sure your changes are correct. Next you have to commit your changes (&lt;em&gt;don't do this yet if you've added or removed any files or folders*&lt;/em&gt;):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In the same Terminal window, type in &lt;code&gt;cvs commit -m &amp;amp;quot;Explanation of changes.&amp;amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Finally, you have to tag your release before you can go to the project page on drupal.org and create a new release of your theme. Type in &lt;code&gt;cvs tag DRUPAL-6--1-1&lt;/code&gt; (or whatever tag you need - in my case, it was DRUPAL-6--1-5 for 6.x-1.5).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now, go back to your project page on drupal.org, and click the 'Add new release' link under the Download section. In the release notes, you should reference all the issues you addressed in this release cycle, by typing them in as follows: [#552912] (the number should be replaced by issue's number as seen on drupal.org).&lt;/p&gt;
&lt;p&gt;*If you added or removed any files, you will need to tell the CVS server what you did:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;For a new directory, type in &lt;code&gt;cvs add &amp;amp;lt;directory&amp;amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;And to get all the files inside that directory added, type in &lt;code&gt;cvs add &amp;amp;lt;directory&amp;amp;gt;/*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;To remove a file or directory, type in &lt;code&gt;cvs remove &amp;amp;lt;filename&amp;amp;gt;&lt;/code&gt; or &lt;code&gt;cvs remove &amp;amp;lt;directory&amp;amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FmydidYYgAnOjt0FeP_I8PL3iQY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FmydidYYgAnOjt0FeP_I8PL3iQY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FmydidYYgAnOjt0FeP_I8PL3iQY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FmydidYYgAnOjt0FeP_I8PL3iQY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/midwesternmac/~4/P9gmokepNow" height="1" width="1"/&gt;</description>
 <comments>http://www.midwesternmac.com/blogs/geerlingguy/my-cvs-workflow-updating-theme#comments</comments>
 <category domain="http://www.midwesternmac.com/category/tags/cvs">cvs</category>
 <category domain="http://www.midwesternmac.com/category/tags/drupal">drupal</category>
 <category domain="http://www.midwesternmac.com/category/tags/terminal">terminal</category>
 <category domain="http://www.midwesternmac.com/category/tags/theming">theming</category>
 <pubDate>Thu, 03 Dec 2009 23:31:42 +0000</pubDate>
 <dc:creator>geerlingguy</dc:creator>
 <guid isPermaLink="false">92 at http://www.midwesternmac.com</guid>
</item>
<item>
 <title>Whoa! Google Using Drupal's Breadcrumbs?</title>
 <link>http://www.midwesternmac.com/blogs/geerlingguy/woah-google-using-drupals-brea</link>
 <description>&lt;p&gt;It would seem &lt;a href="http://googleblog.blogspot.com/2009/11/new-site-hierarchies-display-in-search.html"&gt;Google has rolled out a new indexing/display feature&lt;/a&gt; that finds breadcrumbs and displays them instead of URLs for certain search results. Drupal's already game, it seems, judging by numerous searches I've taken a glance at today:&lt;/p&gt;
&lt;p class="rtecenter"&gt;&lt;img alt="Drupal's Breadcrumb-enabled Search Results" width="547" height="86" src="http://www.midwesternmac.com/sites/midwesternmac.com/files/blogpost-images/drupal-seo-google-search-results.png" /&gt;&lt;/p&gt;
&lt;p class="rteleft"&gt;I guess since Drupal's built towards this kind of data heirarchy, Google quickly and easily indexes the breadcrumbs... any other sites/CMSs already in the index in this manner?&lt;/p&gt;
&lt;p class="rteleft"&gt;Also, I wonder what this will do in terms of eye tracking and such - the first time I noticed it, my eye went to the URL immediately - of course, that could just be due to the novelty of the thing.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UsLDNVAZHz9c4bfoyLUIfZKqwic/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UsLDNVAZHz9c4bfoyLUIfZKqwic/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UsLDNVAZHz9c4bfoyLUIfZKqwic/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UsLDNVAZHz9c4bfoyLUIfZKqwic/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/midwesternmac/~4/QoY5OfJPBCo" height="1" width="1"/&gt;</description>
 <comments>http://www.midwesternmac.com/blogs/geerlingguy/woah-google-using-drupals-brea#comments</comments>
 <category domain="http://www.midwesternmac.com/category/tags/drupal">drupal</category>
 <category domain="http://www.midwesternmac.com/category/tags/google">Google</category>
 <category domain="http://www.midwesternmac.com/category/tags/path">path</category>
 <category domain="http://www.midwesternmac.com/category/tags/search">search</category>
 <category domain="http://www.midwesternmac.com/category/tags/seo">seo</category>
 <pubDate>Fri, 20 Nov 2009 19:54:06 +0000</pubDate>
 <dc:creator>geerlingguy</dc:creator>
 <guid isPermaLink="false">91 at http://www.midwesternmac.com</guid>
</item>
<item>
 <title>Drupal: 2009 Best Open Source PHP CMS!</title>
 <link>http://www.midwesternmac.com/blogs/geerlingguy/drupal-2009-best-open-source-p</link>
 <description>&lt;p&gt;Packt publishing just announced earlier this morning that &lt;a href="http://drupal.org"&gt;Drupal&lt;/a&gt; has won the 2009 Open Source PHP CMS award!&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Packt Publishing is pleased to announce that Drupal has won the Best Open Source PHP CMS Category in the 2009 Open Source CMS Award. This category featured a very close contest between the top three, Drupal, WordPress, and Joomla! in which Drupal ended up as the overall choice for the judges and the public.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Joomla was the second place winner (kudos to them as well!); read &lt;a href="http://www.packtpub.com/article/drupal-wins-2009-best-open-source-php-cms"&gt;the original release here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With &lt;a href="http://buytaert.net/whitehouse-gov-using-drupal"&gt;Drupal being used on Whitehouse.gov&lt;/a&gt;, &lt;a href="http://buytaert.net/att-using-drupal"&gt;AT&amp;amp;T's mobile apps website&lt;/a&gt;, and countless other corporate sites and subsites, it's a good time to be in the Open Source arena!&lt;/p&gt;
&lt;p&gt;More award categories will be announced soon!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Most Promising Open Source CMS: winner to be announced on November 11, 2009&lt;/li&gt;
&lt;li&gt;Hall of Fame: winner to be announced on November 12, 2009&lt;/li&gt;
&lt;li&gt;Best Overall Open Source CMS: winner to be announced on November 13, 2009&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lgQvtUBRWBvSF7BN9nD3cv0s8XA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lgQvtUBRWBvSF7BN9nD3cv0s8XA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lgQvtUBRWBvSF7BN9nD3cv0s8XA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lgQvtUBRWBvSF7BN9nD3cv0s8XA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/midwesternmac/~4/0-CaFm_fFic" height="1" width="1"/&gt;</description>
 <comments>http://www.midwesternmac.com/blogs/geerlingguy/drupal-2009-best-open-source-p#comments</comments>
 <category domain="http://www.midwesternmac.com/category/tags/cms">cms</category>
 <category domain="http://www.midwesternmac.com/category/tags/drupal">drupal</category>
 <category domain="http://www.midwesternmac.com/category/tags/packt">packt</category>
 <category domain="http://www.midwesternmac.com/category/tags/php">php</category>
 <category domain="http://www.midwesternmac.com/category/tags/websites">websites</category>
 <pubDate>Tue, 10 Nov 2009 18:40:26 +0000</pubDate>
 <dc:creator>geerlingguy</dc:creator>
 <guid isPermaLink="false">90 at http://www.midwesternmac.com</guid>
</item>
<item>
 <title>Droid vs. iPhone - Why the Droid has Already Lost</title>
 <link>http://www.midwesternmac.com/blogs/geerlingguy/droid-vs-iphone-why-droid-has-already-lost</link>
 <description>&lt;p&gt;From strictly a hardware perspective, the Droid cannot beat the iPhone. (For those who don't yet know: the Droid is Motorola's 'savior phone,' which they hope will make them a prominent phone handset maker again). How can I be sure? Well, look at the below diagram:&lt;/p&gt;
&lt;p class="rtecenter"&gt;&lt;img alt="Motorola Droid vs. Apple iPhone" width="481" height="362" class="noborder" src="/sites/midwesternmac.com/files/blogpost-images/droid-vs-iphone.jpg" /&gt;&lt;/p&gt;
&lt;p class="rteleft"&gt;Basically, it comes down to originality, memorability, and design.&lt;/p&gt;
&lt;p class="rteleft"&gt;Feature for feature, the Droid competes well with the iPhone. Google Android 2.0 is pretty cool, too. But look at the above marketing images:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Droid screams 'corporate' and 'dull'&lt;/strong&gt; &amp;ndash; look at all those buttons, and squared-off corners! Not to mention the run-of-the-mill icons all along the edge of the screen (undo, menu, home, and search).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The iPhone screams 'iconic' and 'holdable'&lt;/strong&gt; &amp;ndash; even though, for all practical purposes, it's the most boring and simple design&amp;mdash;only &lt;em&gt;one button&lt;/em&gt; on the face&amp;mdash;but take a second glance, and you notice the shiny little indentation in the single button on the bottom. Look further and see the svelte and cool curves on the edges, and the look of a light shining from the top of the phone on all the UI elements.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The reason why Motorola's Razr was so popular was it's physical desirability and simplicity. Doesn't Motorola get that? Is Apple the only consumer company that realizes people would rather use a device that's appealing to them in both features &lt;em&gt;and design&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;I would love for the iPhone to have a good competitor... I really would. But we still haven't reached that point. Someday, maybe, but the Droid isn't the iPhone killer.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/L_UAo7a4oKef02eLn5lGYJ8QOGw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L_UAo7a4oKef02eLn5lGYJ8QOGw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/L_UAo7a4oKef02eLn5lGYJ8QOGw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L_UAo7a4oKef02eLn5lGYJ8QOGw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/midwesternmac/~4/rS0GBNbhrw0" height="1" width="1"/&gt;</description>
 <comments>http://www.midwesternmac.com/blogs/geerlingguy/droid-vs-iphone-why-droid-has-already-lost#comments</comments>
 <category domain="http://www.midwesternmac.com/category/tags/android">android</category>
 <category domain="http://www.midwesternmac.com/category/tags/apple">Apple</category>
 <category domain="http://www.midwesternmac.com/category/tags/design">design</category>
 <category domain="http://www.midwesternmac.com/category/tags/droid">droid</category>
 <category domain="http://www.midwesternmac.com/category/tags/iphone">iphone</category>
 <category domain="http://www.midwesternmac.com/category/tags/motorola">motorola</category>
 <category domain="http://www.midwesternmac.com/category/tags/smartphones">smartphones</category>
 <pubDate>Fri, 30 Oct 2009 13:21:24 +0000</pubDate>
 <dc:creator>geerlingguy</dc:creator>
 <guid isPermaLink="false">89 at http://www.midwesternmac.com</guid>
</item>
</channel>
</rss>
