Overview
This session, run by the authors of Organic Groups and Domain Access, will give an introduction to the workings of Drupal's node access system.
Agenda
* What is Node Access?
* How does it work?
* What modules provide node access?
* Exploring the current API
** Enabling node access
** Defining access realms
** Defining access grants
** hook_node_access_records()
** hook_node_grants()
** db_rewrite_sql()
** Changes from D5 to D6
* Common problems and issues
* Best practices for using node access
Goals
New users should come away with an understanding of the features and limitations of the node access system. Programmers should come away with the ability to write a node access module, using the existing API. Everyone should come away thinking about how to make the system better.
Resources
See the node acccess example module for background.
Overview
The Code Review module (aka coder) is a useful tool for module and theme developers. It allows developers to ensure that their code meets the Drupal coding standards and also assists them in upgrading to newer versions of Drupal. If you write or maintain code (mostly modules, but themes too), you should be using this module.
Agenda
* Discussion of Common Style Problems that Coder identifies for you.
* We’ll run Coder on a module.
* We’ll show how to setup Coder to run it on ALL your modules.
* Overview of using Coder for upgrading modules to Drupal 6, including some examples.
* How to submit coder rules and help make Coder better.
* Floor Discussion on the direction Coder should take.
* Q&A session.
Goals
By the end of this session, attendees will have a good grounding in what the Coder module does and how they can use it to improve their modules / themes.
Resources
Attendees should already be familiar with basic Drupal module development.
* Coder project page - http://drupal.org/project/coder
* Drupal Coding Standards - http://drupal.org/node/318
* Converting 5.x modules to 6.x - http://drupal.org/node/114774
* Writing Coder Rules - http://drupal.org/node/144172
Overview
Ubercart is well on its way to a Drupal 6 release (codenamed Uber Tuber). As of this posting, 26/32 modules have been migrated. However, these are quick API migrations without a lot of retooling that would drag out the update process. Uber Tuber will be similar in functionality to the 1.0 release, just compatible with Drupal 6 and sans a few external dependencies.
As was laid out in our development roadmap, we're planning further core improvements and Drupal 6 API updates for a 3.0 release. We have a good idea of what many of these improvements should be, but we want to do some serious brainstorming with other developers and themers with some planning toward actual implementation. We're excited about the new features Drupal 6 brings to the table and can't wait to fully embrace them in Ubercart.
As such, we invite anyone to attend who is interested in Ubercart on Drupal 6 or has knowledge of how the core changes from Drupal 5 to Drupal 6 might benefit Ubercart. We also aren't ashamed to admit that many of our core systems have proven less helpful for developers and themers than we initially imagined. As such, anyone who wants to see changes in the Ubercore should attend and provide feedback on how things can be easier.
Please see the "Optimization" paragraph related to Drupal 6 in the development roadmap for more information.
Agenda
* Update on the current status of Drupal 6 development.
* Discuss core Ubercart API improvements.
* Discuss theming improvements:
- General core improvements
- Updates for improvements in Drupal 6
- Address invoice templates
- Anything else?
* Discuss performance improvements:
- Using 'file' for menu items
- ... ?
* Discuss internationalization improvements:
- Country/zone system overhaul
- VAT!
* Discuss improvements in the contribution process.
Goals
Drupallers who attend this BoF will get up to speed on the state of Ubercart development in Drupal 6. Further, we'll be planning many improvements for Ubercart that will be worked into Ubercart 3.0 and recruiting as many people as possible to help in the work!
Resources
* Ubercart 2.x-dev - http://drupal.org/node/280820
* Development roadmap - http://www.ubercart.org/forum/development/5115/...
* Migration status - http://support.ubercart.org/discuss/67/...
Related sessions
Drupallers looking for a more general introduction to Ubercart should consider attending Introducing Ubercart instead. Most of the features will be the same for Ubercart 2.0, so that session should prove more helpful!
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.
* This session was posted as a BoF but could be turned into an actual session with enough interest. We would keep the tone informal, but could reach a broader audience with the larger space if necessary.
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
Although MySQL is sometimes perceived as a minimalist DBMS, it has a huge potential for creative hacks. The Federated and Blackhole engine, MySQL Proxy, user variables, and some other hooks allow the imaginative developer to achieve impressive results independently from the client's programming language.
MySQL is commonly perceived as a feature poor DBMS. That may be true if you are looking for specific functions or behavior as found in popular commercial database. While lacking 1 to 1 features, MySQL has a flexibility that allows users to achieve the wanted result with a workaround or some settings. But MySQL has much more. Its modular architecture offer to the user a number of creative ways of implementing features, which is sometimes more powerful and affective than the built-in feature of competing databases.
Agenda
In this session, I will show some creative ways of taking advantage of MySQL hidden pearls, regardless of the programming language used in your client.
Goals
Your imagination is the limit! This session will just give you the raw material and some ideas to get you started.
Overview
The Drupal association is non-profit organization that provides support for the Drupal community via events such as Drupalcon, marketing of Drupal, and support for Drupal.org.
Agenda
* Update on Drupal.org improvements
* Discussion about Drupalcon North America 2008
* Legal update from Bert and Larry
* Marketing from Kieran
* Drupal association permanent members elections Jan 2009
Goals
The purpose of this meeting is to share progress in supporting the Drupal community and to learn about emerging issues in the community that need support.
Resources
Bandwidth for remote Drupal association members.
Overview
MySQL is a popular open source database system and often used as the backend for Drupal installations. This session will give an overview about different solutions and technologies available to make a MySQL Server system highly available.
After the theoretical part, a practical demonstration of a HA cluster for Drupal will be performed. With the help of Red Hat Cluster Suite, we will build a HA solution using MySQL replication. If time permits, we will then extend the solution to use shared storage device.
Agenda
Goals
Attendees will gain more insight into how MySQL Server setups can be made more fault-tolerant and how to ensure high availability. The practical part will provide an insight into how the RHEL Cluster Suite works, what you need to build a High Availability solution and configuration basics.
Overview
The e-Commerce suite of modules (EC) is one of the largest parts of contrib. It is fairly hard to extend, and its main devs are having a hard time evolving it and updating it at the same pace as core.
For most implementers, EC is a turnkey solution, that can work or (too often ?) not, but is not often extended because of its complexity, and possibly the time zone issues with the main developer being located in Oceania whereas most Drupal contributors seem to work in Europe or northern America.
The goal of the session is to identify ways to improve the general experience with EC, by allowing developers wanting to work with/for EC to do so.
Agenda
* Understanding the general operation of the EC suite
* Knowing when to extend EC
* Knowing how to extend EC
* Knowing how to theme EC
Goals
The goal of the session is to enable wannabe EC devs to enter the game, and tempt others who previously renounces to come back to EC.
Resources
Having read the "core" EC source code (product, store, cart) prior to the session would probably go a long way towards making the session helpful for all.
Which version ?
I'm currently planning the session to be based on the (currently alpha) eC 4. Please comment on the proposal if you think we should remain on eC 3 (or for whatever reason).
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