<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>NodeQueue</title>
  <link rel="alternate" type="text/html" href="http://pingv.com/tag/nodequeue"/>
  <link rel="self" type="application/atom+xml" href="http://pingv.com/taxonomy/term/268/atom/feed"/>
  <id>http://pingv.com/taxonomy/term/268/atom/feed</id>
  <updated>2008-07-25T16:10:09-05:00</updated>
  <entry>
    <title>Drupal&#039;s Views module unleashes new power for website administrators</title>
    <link rel="alternate" type="text/html" href="http://pingv.com/blog/matt-tucker/2008/drupals-views-module-unleashes-new-power-website-administrators" />
    <id>http://pingv.com/blog/matt-tucker/2008/drupals-views-module-unleashes-new-power-website-administrators</id>
    <published>2008-10-27T17:37:29-05:00</published>
    <updated>2008-11-13T15:53:56-06:00</updated>
    <author>
      <name>Matt Tucker</name>
    </author>
    <category term="Actions" />
    <category term="Drupal" />
    <category term="NodeQueue" />
    <category term="theming" />
    <category term="Triggers" />
    <category term="Views" />
    <category term="workflow" />
    <content type="html"><![CDATA[<p>After the initial official release of <a href="http://drupal.org/project/views">Views 2</a> nearly two weeks ago, we felt the need to give an official rundown of how we have incorporated some of its features into our production sites. There really are too many new features to discuss in one blog post, but I will try to cover a few new features for site administrators, developers, and themers.</p>
<!--break-->
<h3>What is Views?</h3>

<p>If you're not familiar with Views already, it can be a bit challenging to explain. Views is the most <a href="http://drupal.org/project/usage">actively used</a> contributed module in the Drupal repository. On the most basic level, it is used to create lists of data. The majority of a website is built upon two concepts: the first being data, the second being presentation of this data. It is for this reason that views is a vital element of many sites.</p>

<p>Views gives you the option to filter the data outputted by a variety of options -- including but not limited to: node type, author, taxonomy term. It also allows you to sort by a variety of different options, including: post date, updated date, number of page views, etc. The list of data can be unformatted or outputted via a table, grid, list, river-of-news, etc.</p>

<p>Using Views, one can create countless lists of data such as: 
  <ul>
    <li>River of news</li>
    <li>Image gallery</li>
    <li>User lists</li>
    <li>Highest-rated content</li>
  </ul>
</p>

<p>And all this can be done without touching a bit of code.</p>

<h3>A Greatly Improved User Interface</h3>

<p>The most obvious change with the Views 2.0 is the user interface itself. What used to be thousands of pixels in height now fits before the first page fold in a completely revamped interface.</p>

<p><img src="/files/images/views2-user_interface.preview.png" alt="Views 2 User Interface" style="margin-left: -95px; float: left" /></p>

One of the most useful new features is the ability to create multiple displays within one view. Often, one needs to create a block, page, and feed of relatively the same data. Not only does Views 2 give you this functionality, but it also presents the controls in a unified interface that allows you to quickly change configuration settings between multiple displays.<p>
  
<p>For example, if you had a page and a block display both showing the most recent 5 blog entries posted to your site, you could simply change the ‘Default’ display to show the most recent 10 entries, and that setting would trickle down to all other displays. This functionality alone decreases the amount of time needed to create and update views drastically. (Of course, one can set a display to override the default display on a per-configuration setting basis.)</p>

<p>Not only has the interface for creating and editing views improved, but you can now create views which are more complex. To begin, no longer is Views node-centric - meaning that one can create lists of almost any data stored in the database, from users, to comments, files, revisions, and taxonomy terms. This opens up a whole new use for views, which, before, was reserved for custom queries.</p>

<h3>Views as Attachments</h3>

<p>Another new feature of Views is the ability to attach view display to another. By creating a display type of ‘Attachment,’ one has the option to amend or prepend one list of data with another.</p>

<p>For example, creating a gallery-type view which displays the most recent image enlarged with the description to the right, and the next six most recent images’ thumbnails below is entirely too easy with Views 2 and <a href="http://drupal.org/project/imagecache">imagecache</a>. Simply create a display which outputs two fields: the first being the image using a large imagecache preset, the second being the node body (or other description field). Then, create an attachment display, which displays a total of 6 nodes offset by 1 (to account for the first large image), and set the imagecache preset to be a smaller thumbnail. Then, simply select your attachment display to propend to your first display, add a bit of CSS to float the large image to the left and bingo, you have a single view that looks like this:
<img src="/files/images/views2-example_attachment.preview.png" alt="Views 2 - Example Attachment" style="margin-left: -95px; float: left" /><br /><em>Sample images' source: commons.wikimedia.org</em>
</p>

<h3>Relationships in Views, and Advanced Help</h3>

<p>Another fantastic feature is the ability to define relationships in a view. A relationship allows you to expand the original query to include additional objects.</p>

<p>For example, if you are using a <a href="http://drupal.org/project/nodequeue">nodequeue</a> to order your nodes, you might want to create a view which is sorted by order within the nodequeue. Simply add a relationship to the nodequeue within the views interface, and you will see a new sort option appear: <img src="/files/images/views2-example_relationship_nodequeue.preview.png" alt="Views 2 - Example Relationship - Nodequeue" style="margin-left: -95px; float: left" /></p>
 
<p>You will notice notice in the above screenshot that there are question-mark icons next to Relationships and Sort criteria. These were added via the <a href="http://drupal.org/project/advanced_help">Advanced Help</a> module, which makes accessing help much easier. For a feature rich module such as views, this functionality is extremely helpful.</p>

<h3>Easy Views Theming</h3>

<p>Theming a 1.0 View used to be a daunting task. Figuring out which theme functions to override was often difficult and, simply put, was too complicated for beginning themers. Now, Views 2.0 uses a template-based theming system. All of the information as to which <code>tpl</code> files to create is accessible through the user interface under Base Settings > Theme > Information. Moving to a template-based system makes the life of a themer much brighter.<p>

<p>Although all of the discussed features are quite wonderful, the most useful addition to Views 2 is, undoubtedly Live Preview. No longer do you have to save your view, which tabs, and refresh. Instead, everything is handled on one screen, allowing you to work more efficiently.</p>

<h3>Views + [other Drupal modules]</h3>

<p>There are many contributed Drupal modules that integrate well with Views, making Views all the more powerful and useful.</p>

<p>For example, we are using Views to handle some complex workflows. With the combination of <a href="http://drupal.org/project/workflow">Workflow</a>, Actions, Triggers, <a href="http://drupal.org/project/nodequeue">NodeQueue</a>, and <a href="http://drupal.org/project/views">Views</a>, one can create a feature-rich site that handles complex content creation workflows demanding moderation, approval, and promotion stages. Workflow integrates seamlessly with Views, allowing you to create lists of all nodes in a certain state. Integration of Workflow with Views also adds many other useful filters, sorts, and fields.</p>

<p>We have also used Views to create a custom search page with customizable sort options. It seems that almost every week we find a new use for Views that shortens our time spent on these types of tasks, allowing us to spend more time making sites even more functional than before.</p>

<h3>A Valuable Drupal Toolset Created by a Most-Valuable Drupal Player</h3>

<p>A special shout out from all of us at pingVision to Earl Miles (<a href="http://drupal.org/user/26979">merlinofchaos</a>) who was recently voted <a href="http://www.packtpub.com/article/open-source-cms-most-valued-people-announced">Drupal's MVP</a> by Packt Publishing mainly for creating such a wonderful contribution to the Drupal community.</p>    ]]></content>
  </entry>
  <entry>
    <title>Inviting Modules to Drupal 6</title>
    <link rel="alternate" type="text/html" href="http://pingv.com/blog/john-fiala/2008/inviting-modules-drupal-6" />
    <id>http://pingv.com/blog/john-fiala/2008/inviting-modules-drupal-6</id>
    <published>2008-07-25T16:09:39-05:00</published>
    <updated>2008-07-25T16:10:09-05:00</updated>
    <author>
      <name>John Fiala</name>
    </author>
    <category term="Custom Error Module" />
    <category term="Drupal" />
    <category term="Drupal 6" />
    <category term="Invite Module" />
    <category term="Modules" />
    <category term="NodeCarousel" />
    <category term="NodeQueue" />
    <category term="Profile Privacy Module" />
    <category term="Thickbox Module" />
    <category term="Userpoints Module" />
    <content type="html"><![CDATA[ <p>Here at pingVision we've largely switched over to making all of our clients' websites with Drupal 6 - there's a number of advantages in doing that, but sometimes there's one major disadvantage: The website they want would be great with module X, but module X doesn't have a Drupal 6 version yet.</p>
<p>In those cases, we convert 'em ourselves, and post a patch appropriately.  I wrapped up updating the wonderful <a href="http://drupal.org/project/invite">Invite</a> module to Drupal 6, and that made me think back on the various updates we at pingVision have done so far:</p>
<ul>
<li><a href="http://drupal.org/project/nodecarousel">NodeCarousel</a></li>
<li><a href="http://drupal.org/project/nodequeue">NodeQueue</a></li>
<li><a href="http://drupal.org/project/favorite_nodes">Favorite Nodes</a></li>
<li><a href="http://drupal.org/project/customerror">Custom Error</a></li>
<li><a href="http://drupal.org/project/profile_privacy">Profile Privacy</a></li>
<li><a href="http://drupal.org/project/issues/thickbox">Thickbox</a></li>
<li><a href="http://drupal.org/project/drupalvb">DrupalVB</a></li>
<li><a href="http://drupal.org/project/invite">Invite</a></li>
<li>And I'm working on upgrades for a few of the <a href="http://drupal.org/project/userpoints_contrib">User Points Contributed Modules</a>, especially userpoints_invite.</li>
</ul>
<p>It's really kind of fun converting a module to Drupal 6 - for one, you really get a good feeling for how that module works.  You also can learn some interesting features of Drupal's extensive API that you haven't run into before, and when you're done you've helped out the whole community. </p>
<p>Give it a try!  Find a useful module that doesn't have a patch for Drupal 6 yet, get a copy of the most recent code, and open your browser to <a href="http://drupal.org/node/114774">Converting 5.x Modules to 6.x</a> and work your way along.  Also, it can help to get a copy of Coder and use that to look for any changes you've overlooked.</p>
<p>Attached: A slide presentation that I did for a local Drupal meetup on upgrading modules to Drupal 6.</p>
     ]]></content>
  </entry>
</feed>
