[development] SoC Proposal - Drag Drop and Sort API
vacantspaces at gmail.com
Mon Mar 19 18:19:23 UTC 2007
Drupal stresses ease of use. To that end, I will be submitting an API to
offer dragging, dropping, and sorting functionality to modules. This will
greatly enhance not only the ease of making changes to the user interface,
but also the development of associated drop and drag projects. To highlight
the abilities of the API, I will also be creating a module to drag and drop
One of my main considerations in designing the Drag Drop and Sort API is
flexibility. Namely, I would like the API to be usable by all content
elements within drupal. The API will achieve this flexibility by performing
1. Identifying appropriate positioning information to be altered by
the API (i.e. weight and region).
2. Querying the database for the relevant positioning information for
each element that will be affected by the change.
will make them draggable, droppable, and sortable.
4. Providing the framework for a user interface to use this
5. After each sort, the API will recalculate weights of all relevant
elements and reassign position information that has changed.
6. Finally, using an AJAX submit process, it will update the position
information in the database without reloading the page.
In order to test the API, I will also build a Blocks DnD module that will
incorporate the drag, drop, and sort functionality. This module will allow
users with the right permissions to sort blocks within each region, as well
as moving blocks from region to region.
*How does this benefit Drupal?*
- By enhancing ease of use, we open the door to a wider range of
would-be users and developers.
- By de-emphasizing the need for complex programming, we allow users
and developers to focus on style and content.
- Easily integrated Web 2.0 features makes for an easier sell to
prospective clients or a boss.
- Since drag and drop features mimic such popular operating systems as
Windows and OS X, it makes the user interface more familiar and intuitive to
users that are already familiar with functionality.
- And let's be honest: Drag and drop is really cool!
*Criteria for Success*
- Creation of the above specified modules.
- Successful functionality on all the most widely used browsers,
including Internet Explorer 6 and 7, Mozilla Firefox and other similar
browsers, Opera 8 and up, as well as Safari.
- Graceful degradation in browsers that don't support these features.
1. *Now to the end of April* - Submit my plans to the Drupal community
to generate feedback and suggestions on how I might enhance this project and
make it truly universal in scope. Completely familiarize myself with the
Drupal structure to ensure that my code is in line with Drupal coding
standards, and to enhance continuity with the core. Discuss my proposal with
developers who engaged in similar or complimentary work. Examples include
the Panels Module <http://www.drupal.org/project/panels>, Mysite
Module <http://www.drupal.org/project/mysite>, and any other projects
that might be affected or enhanced by this project.
2. *Beginning of May to the end of June* - Complete initial
development of Drag Drop and Sort API and Blocks DnD module. Release for
testing and improvement.
3. *Beginning of July to the end of August* - Implement bug fixes and
*Who am I?*
Ever since I was young, I have been fascinated with web design. Having no
skill in building things with my hands, I loved the idea of being able to
manipulate a virtual space to suit my fancy or needs. Ever since then, I
have tried to hone my skills and reach for ever greater control over the
My love affair with Drupal began more than a year ago. After building many
discovered the concept of a CMS. I began searching for the best CMS to build
my online t-shirt store with. I quickly learned that although a CMS can
greatly enhance productivity, they can also be very difficult to learn. Then
I discovered Drupal. Within a couple of days, I was able to build an initial
test store that I was quite happy with. Since then I have honed my skills
and endeavored to learn as much about Drupal as I could. I have provided
feedback for several projects and have been aching for some time to get my
hands dirty with actually developing a module for Drupal.
I now run several websites off the same code base (a feature I am quite
enamored with). I am ready to take the next step and ride the web 2.0 tidal
wave that is sweeping the internet. I am interested in making Drupal easier
to use so that more people will have the opportunity that I have had to work
with such amazing software. I think that my success in creating the above
mentioned enhancements to Drupal will help me accomplish that goal.
I would appreciate any feedback that you might have for me.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the development