This site is archived.

Programmer

Handler objects: A proposal

Crell's picture
Submitted by Crell on Tue, 07/22/2008 - 18:26.

Session recording

Placement
Session time: 
08/28/2008 - 16:00 - 08/28/2008 - 16:45

Overview

Drupal is very modular "horizontally". You can add modules that inject themselves all over the place to add to the workflow of the page request. However, too many subsystems are inter-related, making it very difficult to separate out and modify one part of the system. Drupal is simply not as modular as it could be, nor as it needs to be.

Better separation between systems would allow for more rapid development, easier testing, greater flexibility, and at least 23% more awesome per square meter.

This hybrid lecture/brainstorm session will examine one proposal for further modularity, Handler objects. Working module code will be included.

Agenda

* Discuss the benefits and limitations of Drupal's hook architecture.
* Introduce a new extension mechanism, handler objects.
* Demonstrate existing uses for handler objects, including inspiration from Views and Panels.
* Discuss a broader vision for where Handler objects could go to transform Drupal.
* Open discussion.

Goals

This session is essentially a meat-space RFC. If all goes well, attendees will come away with lots of new ideas and the presenter will come away with lots of feedback. Best case, we'll have an awesome new roadmap for Drupal architecture. Worst case, attendees will get to see a nifty new module they can use.

Resources

Handlers as discussed in this session are an evolution of the concept documented in this article, after further discussion with other Drupal gurus. Familiarity with that writeup is encouraged, but not required.

The module is now available if you want to look it over before the session!

A Hands-On Guide to Module Development

Ryan's picture
Submitted by Ryan on Tue, 07/22/2008 - 18:10.

Session recording

Co-presenters: 
Placement
Session time: 
08/30/2008 - 09:00 - 08/30/2008 - 10:30

Overview

Drupal module development is a bit like playing Zork. Anyone can play the game, walk around a while, score some points, get eaten by a grue, and try again. Even the most stalwart adventurer will need some help if he is to seriously improve his game. Otherwise, he'll get fed up with Zork and return to playing Duck Hunt.

So it is with module development. You've setup a Drupal site. You've used some contributed modules. You've tweaked some to your liking and even written a couple from scratch... but you need to know how to improve your game before you get frustrated or waste all your time making the same mistakes. Yes... there are plenty of mistakes to be made, and we've made quite a few of them ourselves.

Expect more classic gaming references in this session, but more importantly expect to learn about the things we've done wrong and the things we're starting to do right in our Drupal module development (primarily Ubercart).

This session will be geared toward beginning and intermediate Drupal developers looking to learn more about the module development process and "best practices" that go beyond (but certainly include!) simple adherence to coding and security standards. We will cover the tools we use, the module structures we like to stick by, and how we make the most of our first pass at a module. More importantly, we'll look at code that works with some of the harder to understand parts of the Drupal API, and we'll look at writing modules that integrate not just with Drupal but with other contributed modules like Ubercart and Views.

Sounds like a lot, eh? We think so, too. However, we'll be presenting the information in the following format to try and disseminate as much knowledge as possible:

A Hands-On Guide to Module Development will be an informal lecture session where we say our opening words and move into a time of hands-on learning. Those with laptops can follow along with code examples as we work through the development of a module that demonstrates the topics mentioned above. We'll be accepting quick questions as we go along and use any time at the end to take more questions and hopefully provide some helpful answers.

As always, if we can't get to you in the session, feel free to stop us in the halls or find us around Drupaltown and get your learn on.

We're open to collaborators interested in the topic and the format. Interested developers should contact Ryan or Lyle (Island Usurper). If you just want to contribute your module development best practices, we'd love to have a nice happy list for folks to use as a reference coming out of this session.

Agenda

* Introductory words
* Getting ready to code - think first
* Where to start with a blank file
* Writing those first hooks and callbacks
* Writing smart functions
* Documenting as you go!
* Grokking some more Drupal hooks:
   - hook_form_alter()
   - ... (to be determined)
* Hooking into contributed modules:
   - Ubercart
   - Views
   - ... (to be determined)
* What to do when you're "done" ; )

Goals

Attendees should leave with a greater sense of what it takes to develop Drupal modules successfully. There's no way to pass on a comprehensive understanding of what we know or get to cover, and that is a subset of all there is to know about module development. However, every little bit helps, so we'll try to pass on as many little bits as we can!

We want to help move as many beginner developers as possible toward the intermediate level and entice those intermediate developers to become the experts we know they can be.

Resources

* Drupal 6
* http://api.drupal.org
* http://drupal.org/project/ubercart
* http://drupal.org/project/views
* http://www.infocom-if.org/downloads/downloads.html

We will include a downloadable zip of code examples for session attendees to use to follow along as we write the module, discuss the code, and discuss how we got there.

Website template porting to Drupal 6 - a crash course

Gábor Hojtsy's picture
Submitted by Gábor Hojtsy on Tue, 07/22/2008 - 15:14.

Session recording

Placement
Session time: 
08/30/2008 - 11:00 - 08/30/2008 - 12:00

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...

Contributing to Drupal: The DROP Program

cwgordon7's picture
Submitted by cwgordon7 on Mon, 07/21/2008 - 05:08.

Session recording

Placement
Session time: 
08/28/2008 - 16:00 - 08/28/2008 - 16:45

Overview

The DROP program is an ongoing program that aims at helping people learn Drupal through small, bite-sized tasks that are never too intimidating. This session will discuss the DROP program, including past achievements, future plans, and how you can help and/or participate in it.

Agenda

* Past achievements: what has been done through DROP?
* How can I participate in DROP as a mentor?
* How can I participate in DROP as a student?
* Where is the DROP program going in the future?

Goals

You should leave this session knowing what the DROP program is and how to participate in it. As a result, the DROP program should receive a boost of attention and effort, and many new Drupallers will have an easier time learning Drupal.

Resources

http://drop.cwgordon.com/

Strategies for Drupal SME studios

sime's picture
Submitted by sime on Mon, 07/21/2008 - 02:46.
Co-presenters: 

Overview

Running a Drupal business, especially with responsibility for staff and balance sheet, requires a shift in the way you support Drupal open-source.

There is less opportunity to focus on drupal.org, and the result is that SME Drupal enterprises are often in the dark about is happening in similar businesses - even though the attitude towards open-source (knowledge sharing) has not changed.

To be effective, a company must make compromises: the move to D6 will come later, employees are not always open-source enthusiasts, and the lead developers need to justify what they consider best-practice (and document it) rather than 'just doing it'.

This session is based on a review of Em Space's current practices. We seek up to 2 additional companies (5+ employees) who are willing to share and compare.

Agenda

* Preferred contrib modules
* Using a code repository
* Managing live sites
* Ready for Drupal 6?
* Design and theming best practices
* Working with Design and Advertising companies
* Support and training
* Contributing back to Drupal

Goals

To get a clear sense of how other Drupal houses are using Drupal, to un-earth many varied and successful techniques.

Usability Sprint, Day 3

yoroy's picture
Submitted by yoroy on Sat, 07/19/2008 - 02:41.
Placement
Session time: 
08/30/2008 - 13:30 - 08/30/2008 - 14:30

Fleshing out the plans is here: http://groups.drupal.org/node/12972

Looking for co-hosts!

example:
- do a card sort on the admin categories
- discuss the different 'dashboard' approaches people already use
- choose 2 options we want to compare / test

another example:
- let's pick a nice chunk of core interface text: labels, descriptions, help
- rework them for clarity, consistency and brevity.

BoF Usability Sprint Day 2

build prototypes: on paper, in photoshop and/or code
or: further work on interface copy, start documenting the copywriting guidelines we find.

BoF Usability Sprint Day 3

Test conceptcode with the Usability Testing Suite
Or work on concept some more, take it to the Code Sprint.
or: create patch for interface copy and start the guidelines handbook page on drupal.org

Usability Sprint, Day 2

yoroy's picture
Submitted by yoroy on Sat, 07/19/2008 - 02:39.
Placement
Session time: 
08/28/2008 - 16:00 - 08/28/2008 - 16:45

Fleshing out the plans is here: http://groups.drupal.org/node/12972

Looking for co-hosts!

example:
- do a card sort on the admin categories
- discuss the different 'dashboard' approaches people already use
- choose 2 options we want to compare / test

another example:
- let's pick a nice chunk of core interface text: labels, descriptions, help
- rework them for clarity, consistency and brevity.

BoF Usability Sprint Day 2

build prototypes: on paper, in photoshop and/or code
or: further work on interface copy, start documenting the copywriting guidelines we find.

Usability Sprint, Day 1

yoroy's picture
Submitted by yoroy on Sat, 07/19/2008 - 02:36.

Fleshing out the plans is here: http://groups.drupal.org/node/12972

BoF Usability Sprint Day 1

* zoom in on 1 or 2 issues we already decided upon before the conference
(redo admin categories, modules page, permissions page…)
* bring your ideas and proposals
* discuss the options, decide on 1 or 2 things we can work on.

example:
- do a card sort on the admin categories
- discuss the different 'dashboard' approaches people already use
- choose 2 options we want to compare / test

another example:
- let's pick a nice chunk of core interface text: labels, descriptions, help
- rework them for clarity, consistency and brevity.

The Views 2 user interface - retracing the design process

yoroy's picture
Submitted by yoroy on Fri, 07/18/2008 - 22:40.

Session recording

Placement
Session time: 
08/28/2008 - 15:00 - 08/28/2008 - 15:45

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?

Panels - Today, and the Future

sdboyer's picture
Submitted by sdboyer on Fri, 07/18/2008 - 18:42.

Session recording

Placement
Session time: 
08/27/2008 - 11:00 - 08/27/2008 - 12:00

Overview

Over the past few months, we've seen a number of major drupal site rollouts that make extensive use of Panels2 (See, for example, http://drupal.org/node/241344 and http://drupal.org/node/242993). We've also seen a few modules implement the Panels API in rather different ways - most notably, Advanced Profile Kit and Organic Groups Panels - that hint at how flexible Panels can be.

We'll start this session by highlighting these different Panels implementations and providing a birds-eye view of how Panels' moving parts work. We want to make sure attendees have a good sense of what Panels2 can do now - because the second half of the presentation is all about the future of Panels - otherwise known as Panels3.

Panels3 isn't so much about changing the data model (that part already works pretty well) as changing the API and interface. One good way to think about this difference is to consider Panels2's limitations on who can use it. Right now, it's very difficult to scale down the power of Panels to a level that's appropriate for normal users. Panels3 aims to break down that barrier. We'll spend the remainder of the session overviewing some of the current plans for how Panels3 might do that, as well as noting attendee suggestions for some of the large-scale directions we might consider.

Agenda

* Briefly overview Panels2 to bring everyone up to speed on the most recent developments.
* Provide some concrete examples of ways that the Panels API is currently being implemented.
* Present some of the current plans for the future development of Panels
* Gather participant reactions to the proposed ideas, and take general input on possible directions to go as well

Goals

Participants should expect to leave the session with a grasp of Panels' capabilities in the present, and a sense of what to expect in the future.

Resources

None needed. Just bring yourself!