Overview
Web design is hard. I am not at all a designer or graphic magician, but would like to see great themes on my Drupal sites, so I am continuously on the lookout for great templates to adapt to Drupal. Whoever professional you ask will tell you that building a website on an existing template is a bad idea and of course you should architect the look and feel and interaction of the website for the specific need at hand. Unfortunately lots of people just lack the professional resources. And starting from an existing template still allows you to tweak it further (if the license grants you to do so).
Therefore this session is about picking a template (the Modern World template from Solucija) and converting it to a fully functional Drupal 6 theme with blocks, menus, a screenshot for the theme selector and all live from the ground up in 45 minutes, instructions included. Make sure to drink some coffee so you can grok every part of this quick flowing live tutorial!
Agenda
* Starting from template vs. custom research/process/architecture/design
* Template licensing, what should you consider
* Downloading and starting off with the theme
* Several steps, while the theme will be horribly broken, but we keep going
* A glamourous end result
* More on licensing, how to contribute the theme to drupal.org or elsewhere if drupal.org is not applicable
Goals
Attendees will leave with a recipe to port existing templates to Drupal 6 and hopefully even contributing them to Drupal.org (but this last item will not be obligatory).
Resources
Also check out my blog post: http://hojtsy.hu/blog/2008-jul-22/i-will-teach-you-port-templates-drupal...
Overview
Version 2 of the popular Views module was rewritten from scratch to make it even more flexible and powerful. With more flexibility comes more complexity and quite some time was spent working out a user interface that could expose all these powerful features without becoming an enormous scrolling form. This session retraces the process that led to the current interface, showcasing how developers and interface designers worked together to find a working solution to a complex problem.
Agenda
- Views1 to Views 2: adding multiple dimensions of infinite flexibility.
- Concepts, wireframes, and other false starts.
- Two basic concepts: sentences and summaries.
- The end result. Do you like it? What could be better? How can we translate the good bits to other use cases?
Goals
First of all, this presentation wants to provide an overview of the design process for this particular user interface. The larger picture is that the web is rapidly evolving from websites into web applications. The Drupal UI toolkit has to be extended with smarter and more complex form widgets to build the interfaces for these web apps. Ideally the good stuff in Views 2 can find it's way into other Drupal applications as well.
Resources
Bring your own feedback on the new interface! What do you like, what do you think could be improved?
Overview
The Context and Spaces modules are tools to make complex site building tasks easier. This session will cover the approach of the Context and Spaces suites, and show developers how they can be used and extended. The examples in the presentation will focus on 'Communities of Practice'-style online collaboration, Sites-within-sites, and Intranet projects.
Background
The Context suite provides a way of mapping various architectures on top of Drupal's components. Allowing developers to define what panels, views, content-types, menus, blocks, etc comprise the recognizable 'sections' of their sites. Spaces extends this concept by integrating with Organic Groups. This allows you to associate 'sections' with groups and provides a way to enabled and customize these features on a group by group basis.
Agenda
Goals
To give developers and advanced Drupal administrators an idea of the advantages of using context and spaces on their projects. We'll review the standard set of problems the context and spaces aim to address and look at sites where it's been used.
Resources
http://drupal.org/project/context
http://drupal.org/project/spaces
http://www.developmentseed.org/tags/context-ui
Introducing Ubercart:
Where it is and where it's headed...
Overview
Ubercart is an exciting e-commerce module package for Drupal. It is a flexible, easy to use system that is already working across the web to sell physical goods, file downloads, site memberships, node access, and much more! This session will be all about exposure... presenting as much of Ubercart to as many new (and experienced) users as possible. The nature and size of the module package means there is always more to learn and share, and we couldn't be more excited about the rapid pace of the Drupal 6 migration.
The session will briefly cover the project's history, basic feature set, and points of integration with Drupal and other contributed modules. It will then showcase some of the advanced features Ubercart provides with demonstrations for setting up dynamic shipping quotes, selling paid file downloads, and selling role promotions. Each of these will be accompanied with real life use cases and demonstrations on live sites where possible.
The formal session will wrap up with a word about Ubercart's development roadmap. In Drupal 5, a foundation was laid in both code and community development. In Drupal 6, we'll focus on optimization - refining the core, making it easier for developers to contribute, and taking advantage of Drupal 6's updated APIs wherever possible. Work on a D6 compatible Uber Tuber is well underway and will be reported on in this session.
If times permits, the session will close with a question and answer period.
As always, the developers are available after the session for further inquiries and are always interested in meeting new people. Feel free to stop any of the Uberdevs in the halls for a word or a high five.
Agenda
* Brief history of Ubercart.
* Ubercart features overview.
* Integration with Drupal core and contributed modules.
* Configuration demonstrations and examples:
- Advanced shipping with Workflow-ng
- File downloads
- Role promotions
- Setting up PayPal
* Development roadmap for Drupal 6 and beyond.
* Q/A if time permits.
Goals
Session attendees should leave with a broad understanding of what Ubercart is and what it enables them to do. Attendees will gain an initial familiarity with various parts of the administrative interfaces through the demonstrations, and they should know where to go to find help when they start their next Ubercart project. Finally, everyone will be brought up to speed on the current state of Ubercart development and find out how they can get involved!
Resources
* Ubercart project page - http://drupal.org/project/ubercart
* Community site/support forums - http://www.ubercart.org
* Documentation - http://www.ubercart.org/docs
* Live sites directory - http://www.ubercart.org/site
* Livetest (front end demo) - http://livetest.ubercart.org
* Admin demo - http://demo.ubercart.org
* Development roadmap - http://www.ubercart.org/forum/development/5115/...
More resources to follow... check back for updates!
Related sessions
Drupallers interested in more of the Drupal 6 work should consider attending at least the first part of the Ubercart in Drupal 6 session.
We'll also be performing A Hands On Guide to Module Development in which we will discuss the things we've done wrong and are starting to do right in module development. The session will include an example of developing a module that integrates with Ubercart.
Overview
Messaging and Notifications are two complete frameworks for handling subscriptions, notifications about site events, or simply sending out messages using any kind of delivery method. The goal of this presentation is to show the new developments we've been building on top of these frameworks and the new and exciting possibilities that have happened in just the past couple of months since the first beta was introduced at DrupalCon Boston.
Background
Your Drupal site is generating all kinds of mail for all kinds of reasons: You have giant announcement list, a few dozen group discussions, automated content notifications, send-to-friend messages, petitions and postcards.
Now there is the Messaging framework that attempts to abstract all the needs of other modules regarding the sending of user messages, adding also a centralized way to manage all your message templates, filtering, and delivery settings. The Messaging framework accepts different kinds of plug-ins for different sending methods, like different email modules (mimemail, phpmailer), SMS, web notifications, etc..
The Notifications framework, which in turn uses Messaging as the delivery layer, attempts to simplify building subscriptions-like systems in Drupal. It is a collection of modules that provide a core set of notification types and developers API for building specialized user interfaces, use multiple message delivery methods (including email, sms and IM) and developing custom subscription types.
Agenda
* Moving beyond 'e-mail only'; let the users decide how to interact with your site.
* Enabling round-trip email discussions for any content type or topic
* The Messaging Framework - More than just email, IM & SMS plugins.
* Building on the Messaging framework: free message templating and sending for other modules
* Extending the framework with your own modules or distribution types
* Notifications modules - How to configure & use subscriptions and notifications.
* Integration example: Organic Groups now using the Notifications framework
* Real life usage: Some examples of live sites using this solution.
Goals
* Show you we can move beyond the mail only paradigm to sending and receiving messages through different methods.
* Raise awareness about new and exciting possibilities for user interaction or why just sending emails is not enough nowadays.
* Let other developers know how they can build on this framework and abstract message sending from their modules.
* Overview for site builders of how to set up a full featured subscriptions/notifications solution
* Present the latest developments built on these two frameworks and some new plug-in modules
Resources
http://drupal.org/project/messaging
http://drupal.org/project/notifications
http://www.developmentseed.org/tags/messaging
Overview
Panels2 is a powerful system for organizing and marshaling drupal sites, but the API has a steep learning curve. This session is about breaking the API down into manageable pieces. So, if you've ever wanted to:
then this may be the session for you! We'll divide the 90 minutes into two parts:
In the first half, Sam Boyer (sdboyer) will provide a fast-but-structured overview of how the Panels API works, and where your module can plug in.
In the second half, participants will be free to ask questions about techniques and approaches to implementing the Panels API; Sam (and/or other participants) will respond with comments & suggestions on how to bend Panels to your particular module's need.
Agenda
Goals
Panels is a complicated beast; trying to cover the API in detail would be an exercise in futility. Instead, this session should provide participants with a framework for approach Panels in a productive way. Each half of the session should do that in a different way:
Ideally, the combination of the two should provide all participants with a decent grounding in how to 'Panelize' drupal.
Resources
The only thing people need to bring is IDEAS! The second half will crash and burn if people don't bring big thoughts on how to implement Panels in new and different ways.
Important Note: this session is primarily geared towards developers writing modules that are or will be kept in the official Drupal CVS repository. If you have client-specific Panels needs that are unlikely to be genericized for use by the whole drupal community, please find another venue to raise those questions.
Overview
The Facebook Platform allows anyone to create applications which tightly integrate with the Facebook.com website. These Applications can write content to a Facebook user's Profile, News Feed, and also Canvas Pages. This content can be as rich and complex as any website, so Drupal is a natural choice for developing on this platform.
This session will introduce the Drupal for Facebook project, and the best ways to use it. We will include a demo of one or more live Facebook Applications powered by Drupal and show some of the basic configuration behind them. And we'll discuss some of the differences of developing for Canvas Pages versus regular web pages.
Agenda
* Brief introduction to the Facebook API
* Brief introduction to Drupal for Facebook
* Demo of live Facebook Application
* Behind the scenes configuration of that Application
* Canvas Pages (FBML) vs. HTML
* Question and Answer
Goals
This session will give a basic understanding of the Facebook Platform for those new to it. We'll talk about why one might make a Facebook Application a part of a Drupal-powered website; or why one might build a Facebook App from scratch using Drupal.
We'll also demonstrate how the Drupal for Facebook modules work. Those familiar with Drupal will leave with a sense of how easy (or difficult) it will be to configure one of these applications.
Resources
* Facebook Platform
* Drupal for Facebook project
* Drupal for Facebook canvas pages
* Drupal for Facebook HTML pages
Overview
Drupal 7 will feature a newly rewritten database layer providing improved database abstraction, portability, and scalability features. This session will cover the thinking and architecture behind the new layer, with an eye toward understanding how it fits into the larger scheme of high-performance Drupal sites. There will be some discussion of code, as well as words of advice for others looking to revamp one of Drupal's core systems.
There will be some code in this session, but you should not need to be a hard-core coder to follow it. This session will also serve as a lead-in to this code track session, which is aimed more at programmers.
Agenda
* Database abstraction: Why it's hard and even an unsolvable problem.
* The old Drupal approach, and why it's not good.
* The new Drupal approach, and why it's awesome.
* Leveraging the database on your own deployments.
* Request for feedback on some of the more big-iron-targeted parts of the new feature set.
* Recommendations for other core developers on how to (not) revamp Drupal subsystems.
Goals
After attending this session, you should have a good idea of ways to leverage the new, modernized database system for your own sites as well as how to go about making major changes to Drupal's infrastructure.
Resources
Knowing the basics of SQL servers before attending would be a good idea, for context.
Overview
This session will discuss how Drupal finds and renders pages. In other words, how a Drupal path (like node/4) is used to deliver a page to your screen. This will be a high level discussion, but with some reference to implementation details.
Agenda
Goals
This session should give the participant an overview of how these central Drupal systems work in Drupal 6, and how they may change in Drupal 7. We will focus on how page rendering may change, and what other advances those changes enable.
Resources
It would be helpful to have a basic familiarity with how pages are defined using Drupal 6 hook_menu, and what a Drupal path is.
Overview
This session will focus on strategic tips and tricks for creating visually stunning and highly functional Drupal sites in collaboration with creative partners and colleagues. We will discuss various dos and don’ts associated with designing for Drupal and building custom Drupal themes.
Agenda
* What best practices should you follow when designing for Drupal or building Drupal themes?
* How to communicate with in-house and external design teams when building sites in Drupal
* What’s a good process workflow for building Drupal themes?
* What things can you do to make your life easier when developing Drupal sites? What things will make your life more difficult?
Goals
The goal of this session will be to help people involved in Drupal theme development and/or creating designs for Drupal sites understand the unique challenges of the system and learn how to develop a good workflow and set of best practices that will enable them to create sites that work and look their very best.