Drupaling a Devleopment Plan
Upcoming SlideShare
Loading in...5
×
 

Drupaling a Devleopment Plan

on

  • 3,322 views

Thinking about a composition in terms of drupal development. Creating a development plan with drupal in mind.

Thinking about a composition in terms of drupal development. Creating a development plan with drupal in mind.

Statistics

Views

Total Views
3,322
Views on SlideShare
3,305
Embed Views
17

Actions

Likes
2
Downloads
37
Comments
0

2 Embeds 17

http://infowonders.posterous.com 12
http://www.slideshare.net 5

Accessibility

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Introduction. <br /> <br /> Today going to talk about building a drupal development plan. After talking with clients about what want, and going through a design phase (often w/o drupal in mind) how do we plan to build that out in drupal. <br /> <br /> This is a large part of my job, &#x2018;digesting&#x2019; a composition into a complete list of steps that a developer can take and implement. Dividing and conquering. <br />
  • Today we are going to be working with a comp from the SF mag 7x7. <br /> <br /> 7x7 is a SF culture magazine focusing on food, fashion and events. It&#x2019;s a good idea of a &#x2018;drupal kill zone&#x2019; site - blog content centric with some bells and wistles to make it interesting. <br /> <br /> <br />
  • We create a document with the goal that this could be handed to a developer or shop and be turned into a website by following the steps. <br /> <br /> You should do this for every site. I even did it for my personal blog site informal way. <br />
  • going through this mental exercise will let you..., <br /> <br /> - know where the hard parts, know where you are going to spend a lot of your time. and get an idea how you are going to solve them. <br /> <br /> - know how to solve problems once once. know what you can generalize to give greater control to the user <br /> <br /> - give yourself time to explore the contrib modules. sometimes a referral to a module comes out of small talk at user groups, etc. if you have it the back of your mind, someone might make a random comment how to solve your problem. <br /> <br /> - clients like to know 1) that you&#x2019;ll solve their problem and 2) how you are going to solve it (even if you they don&#x2019;t understand.) It will also help you when you need to work with other developers. <br /> <br /> - you are writing yourself a to-do list. it&#x2019;ll keep you focused. <br /> <br />
  • Let&#x2019;s take a look at the front page comp to get started. <br /> <br /> - iterative process, and you&#x2019;ll want to understand every comp you get so that you can recognize all the connections the website can have. (This page references the Article entry, this search box shows up on all pages, etc). but we&#x2019;ll step through serially so we&#x2019;re not here. <br /> <br />
  • Our first cut. Notice the layout. <br /> <br /> Since this site is rather simple, all pages share the same layout. <br />
  • <br /> <br /> (stacked means there that section at the top) <br /> <br />
  • Take a look at your page, and divide it up. <br /> <br /> What are the independent elements? What elements will appear on other pages of the site? <br /> <br />
  • So write it down. <br /> <br /> before we start building each of these blocks, we keep hearing a word &#x201C;blog&#x201D;, let&#x2019;s figure out what that is. <br />
  • <br />
  • So write it down. <br /> <br /> before we start building each of these blocks, we keep hearing a word &#x201C;blog&#x201D;, let&#x2019;s figure out what that is. <br />
  • - nodequeue allows administrators to create a orderable list of nodes and allows views to use it <br />
  • Usual ones on the left, we add our new ones on the right <br />
  • So write it down. <br /> <br /> before we start building each of these blocks, we keep hearing a word &#x201C;blog&#x201D;, let&#x2019;s figure out what that is. <br />
  • <br />
  • Add to dev plan <br />
  • Depending on the client&#x2019;s pick, we would integrate or use a contributed module <br />
  • So write it down. <br /> <br /> before we start building each of these blocks, we keep hearing a word &#x201C;blog&#x201D;, let&#x2019;s figure out what that is. <br />
  • Custom drupal form could be used to integrate with other services <br />
  • Custom drupal form could be used to integrate with other services <br />
  • Usual ones on the left, we add our new ones on the right <br />
  • node.statistics will give you rudimentary node view statistics. <br /> <br /> also google analytics is a possible solution <br />
  • Usual ones on the left, we add our new ones on the right <br />
  • Add to dev plan <br />
  • Take a look at your page, and divide it up. <br /> <br /> What are the independent elements? What elements will appear on other pages of the site? <br /> <br />
  • Now there are a lot of ways you can glue things together in drupal. I&#x2019;m particular to the module panels. Provides this interface: <br /> <br /> - reflective of the the actual layout, more intuitive to admins <br /> - see it looks like the layout <br /> - each one of those boxes are pieces of content (i.e. &#x201C;most popular&#x201D; is the view created) <br />
  • Let&#x2019;s take a look at the front page comp to get started. <br /> <br /> - iterative process, and you&#x2019;ll want to understand every comp you get so that you can recognize all the connections the website can have. (This page references the Article entry, this search box shows up on all pages, etc). but we&#x2019;ll step through serially so we&#x2019;re not here. <br /> <br />
  • Now lets talk about this &apos;blog&apos; entry we were talking about. <br /> <br /> We&#x2019;ll start with the central idea of the 7x7 site, the blog entry. This is the design for the view for a single entry &#x2018;when you&#x2019;re reading one&#x2019;. <br /> <br /> So now we start to dissect the composition- <br /> <br /> <br /> <br />
  • <br /> We&apos;ll strip it down so that we ignroe all the extra pieces. (we can build those like <br /> <br /> <br />
  • So we simply write these down into our plan. <br /> <br /> Title, body come from node. <br /> CCK (content construction kit) is a module to allow us to tell Drupal the type of stuff we are saying here. &#x201C;I want to have a content type called Article with an image, title and body. I want to be able to enter URLs. I want to reference other Articles&#x201D;. <br /> CCK will be on every site you build you build in drupal 6. it&#x2019;s called &#x2018;fields&#x2019; in drupal 7. <br /> <br /> We use a cck text area because we can easily imagine a long caption. Also, in the comp, we can use html. Text areas are better suited for that. <br />
  • Looking over the comp more, we see the body needs to have to able to accept some html. <br /> <br /> We also know (from our talks with them) that they would like to be able to specify the author for a blog entry. They also want to be able to link to their user page bio. The best solution for us is to use a cck user reference field and a theme preprocess to place. <br /> <br /> We also see that they want to categorize their blog entries. Again, from our talks they would liek a free tagging vocabulary. <br /> <br /> Let&#x2019;s update our dev plan <br /> <br /> <br />
  • So we update out content type dev plan. <br /> <br /> But we can also distill more information <br />
  • Contributed modules. These are the ones we&#x2019;ll depend on for the blog entry view. <br />
  • We have two types of categories for each blog entry, free tagging which can be anything and a category which was specified by the client. <br />
  • Now we rinse and repeat. <br /> <br /> <br />
  • So now we have to begin to put this together. <br /> <br /> <br /> <br />
  • Introduction. <br /> <br /> Today going to talk about building a drupal development plan. After talking with clients about what want, and going through a design phase (often w/o drupal in mind) how do we plan to build that out in drupal. <br /> <br /> This is a large part of my job, &#x2018;digesting&#x2019; a composition into a complete list of steps that a developer can take and implement. Dividing and conquering. <br />

Drupaling a Devleopment Plan Drupaling a Devleopment Plan Presentation Transcript

  • Drupaling a Development Plan Jon Skulski Drupal Architect, Chapter Three http://twitter.com/jonskulski
  • Hello, 7x7.
  • Hello, Development Plan
  • Plan. Organize. Structure. • Discover the hard parts, know your enemies. • Identify repeated patterns, solve problems once. • Explore contributed modules, don’t write code if you don’t have to. • Communicate your methods, clients and developers like it. • Determine your approach, create a to-do list.
  • Hello, Home Page.
  • Home Page. Top Region Main Region Right Region
  • Dev Plan: Layout • 3 region, 2 column ‘stacked’ layout
  • Home Page. Logo, Menu, Search Blog carousel Ad Newsletter subscription Sharing Blog entries (all) List of most popular blog entries
  • Dev Plan: Pages • •Homepage Front page of the site: /home • 2-column ‘stacked’ layout • Top: logo, menu and search pane • Main: • Blog carousel • All Blog entries • Right: • Ad • Newsletter • Share this • Most Popular view
  • Top: Logo, Menu, Search • Drupal menu • Search.module or apachesolr • Theme the menu to include logo • Since this is on every page, do a custom block or panel pane.
  • Dev Plan: Custom Block/Pane • Logo, Menu, Search
  • Main: Blog Carousel • Views + Views Carousel • Filter by ‘blog’ type and sort by random or most viewed • Potential editorial control with nodequeue
  • Modules • node • wysiwyg • cck • textarea • userreference • • imagefield imagecache (resizes images • views_carousel • nodequeue dynamically) • taxonomy • taxonomy_menu • search • views • panels • ctools
  • Dev Plan:Views • Front Page Carousel • Filter by ‘blog’ type • Sort by nodequeue
  • Main: All Blog Entries • Views • Filter by type ‘blog’ • Sort by most recent
  • Dev Plan:Views • Main Page Blog List • all blog entries, sorted by most recent • use pager after 10 • Front Page Carousel • Filter by ‘blog’ type, sort by nodequeue
  • Right: Advertisement • Custom or contributed integration with embedded ads service (TBD!)
  • Dev Plan: Custom Block/Pane • Advertisement integration (tbd, possible contrib module) • Logo, Menu, Search
  • Right: Newsletter • Constant Contact module provides integration and block. • If the form is not themable enough, we’ll have to write a custom form.
  • Right: ShareThis • ShareThis module provides a block and very themable.
  • Modules • node • wysiwyg • cck • textarea • userreference • • imagefield imagecache (resizes images • constant_contact • dynamically) taxonomy • share_this • taxonomy_menu • search • panels • ctools
  • Right: Most Popular • View + statistics • Filtered by all ‘blog’ posts • Sorted by most views
  • Modules • node • wysiwyg • cck • • statistics (core) textarea • userreference • imagefield • imagecache (resizes images dynamically) • constant_contact • • taxonomy taxonomy_menu • share_this • search • panels • ctools
  • Dev Plan:Views • Most Popular Blog Entries list • all blog entries, sorted by most viewed • limit to 5, no pager • use statistics.module for ‘most viewed’ metric • Main Page Blog List • all blog entries, sorted by most recent • use pager after 10 • Front Page Carousel • Filter by ‘blog’ type, sort by nodequeue
  • Home Page. Logo, Menu, Search Blog carousel Ad Newsletter subscription Sharing Blog entries (all) List of most popular blog entries
  • Hello, Panels.
  • Hello, Home Page.
  • Hello, Blog Entry.
  • Blog Entry, simplified. Title Image (specific width) Image caption (html capable) Body
  • Content Types • Blog Entry • Title (node) • Body (node) • Image (cck, imagefield, imagecache) • Image caption w/ html (cck, textarea)
  • Blog Entry, continued. Body (html capable) Categories (tags)
  • Content Types • Blog Entry • Title (node) • Body w/ html (node, wysiwyg, tinymce) • Image (cck, imagefield, imagecache) • Image caption w/ html (cck, textarea) • Category and Free tagging (taxonomy)
  • Dev Plan: Modules • node • wysiwyg • cck • textarea • userreference • imagefield • imagecache (resizes images dynamically) • taxonomy • taxonomy_menu • search
  • Taxonomies • Free tags • Category • Eat & Drink • Lifestyle • Arts & Entertainment • Fashion
  • Rinse & Repeat. For every distinct group of content.
  • Hello, Website.
  • Thank you! Jon Skulski Drupal Architect, Chapter Three http://twitter.com/jonskulski