For new, improving, and prospective module maintainers.
What's expected
You're not forced to do anything. However, if you post it, you're endorsing it. At that point, you have some responsibility. You'll need to work with the security team on fixing vulnerabilities, and support your code. Clearly communicating your intentions to your users is good, too. Poorly maintained projects give us a bad name.
Best practices: Community Management
How to enlist help:
Testing done to answer these questions:
Flexinode was available from 2004-2007, versions 4.4-4.7. It introduced the idea of custom content types. Problem: it didn't work at all in Views. Was rewritten to scale better. CCK, the successor, lived from 2007-2010, in versions 4.7 to 6.x.
Early on, it was table-segregated by type of data: text, integer, etc. Didn't last long. Now: if the same field exists in multiple content types, it all goes in the same table.
Field data architecture: change settings or share a field after data was created could lead to potential data loss. They settled on using a per-field storage for all fields, so that data never moves.
Notes: http://dave-cohen.com/
Facebook Application Development Platform
Facebook has done some basic verification on the users, with email addresses or CAPTCHA, so you're somewhat more assured of reaching real people. Obviously, you can tap into these users' social networks.
Dev platform was created in 2007. Allows anyone to add features to facebook.com. Early apps were aggressively viral; this has calmed down recently. Today it supports
Collection of tools. Intended to be zero-dependency. One step above core, in Earl's view.
Code from this session is at http://drupal.org/Project/jQ4DaT
Slides are at http://tinyurl.com/jQuery-Designers - fingers crossed I'm typing all of this right.
-
jQuery: a selector engine. Supports CSS & XPath. Example:
$('body .view a.read_more');
-
A library for anipulating DOM (DOM is like live-and-manipulatable HTML but not persistent)
Demo: altering the user register form
-
In your module's .info file, add a line to declare a script. scripts[] = namehere.js
-
Get the element's ID. IDs are unique -- guarantees no collisions. Don't forget to clear your cache; otherwise it won't do anything!
Drupal.behaviors.myHacks = function(context) {
$(#user-register #edit-name-wrapper').hide();
}
(No, PHP, your ass doesn't look fat in that. Honest.)
Presented by the technical lead from Trellon.
APIs let your code interface with other codes - core or contrib.
if you write code, other developers will want to interfact with yours. If you think in terms of Apis, your code quality improves.
Which APIs should you know?
-
hooks
-
theme system
-
forms API
-
taxonomy
-
node API
-
CCK
-
Views
-
Ctools
-
token
-
relationships
-
activity
-
organic groups
-
services API
-
apacheSolr
-
feeds
-
WYSIWYG
-
domain access
-
triggers and actions
-
messaging / notifications
-
voting API