Custom Drupal Module - multistep registration

Encerrado Postado Apr 15, 2009 Pago na entrega
Encerrado Pago na entrega

I need a custom Drupal module to provide multi-step registration. It needs to be configurable from within Drupal administration pages. And the result should be a single CCK content profile node.

## Deliverables

I need a custom Drupal module (for Drupal 6.10) to provide multi-step registration. It needs to be configurable from within Drupal administration pages. And the result should be a single CCK content profile node (as well as any nodes created by the user for the special-taxonomy-block described below).

Some necessary features:

The administrator needs to be able to do the following from within Drupal administration pages:

* select steps to use from some default options

* reorder the steps

* add a new step

* steps can either be automatically named (following a template like "Step [number]") or they can each be manually named

* each step can have an optional title and optional description text to be displayed at the top.

* add custom fields to any step through CCK content profile (to clarify, not all content profile fields should be displayed in registration, only those an administrator selects)

* add a block to any step

* have the first step in a sign up block on an alternate front page, with a customizable button text to take you to the rest of the form

* also have all steps in one form together, in addition to supporting the front page option explained above

* choose for tabs to be horizontal on the right or left, or vertical on top

* can add a title and text descriptions at the top of each step; can configure what words are displayed on every button; basically it should be highly configurable.

* optional percentage complete (via an existing module)

The options for steps needs to include:

* a default step with full Logintobbogin module-like functionality in the first step, including error handling

* a default step with full Legal module-like functionality in the last step, including error handling

* a default step with ability to import contacts from email clients to see who's a member or invite friends to join

* can add a CAPTCHA module-like widget to any step, including error handling

* can upload an image or choose an avatar, using ImageCache module and Image Field module

* can add group registration codes via Organic Groups Registration Codes

* can add a promotional code to be upgraded to a higher role

* can have a special-taxonomy-block to create new sub nodes as described below. Note that the user name associated with these new nodes needs to be updated on the finalization of the user registration submit, just in case the user changed her user name before submitting.

* you can have multiple steps of the special-taxonomy-block type described above (with a different administrator-identified CCK content type for each)

* if a step is defined but not associated with any content (empty), it should not show up on the website.

special-taxonomy-block (please code cleanly-- this code should be independent and not tangled in with registration code)

choose a taxonomy term from within a collapsable tree structure scrollable list box on the left of the page-- when a user selects a leaf term ("folders" cannot be selected), a subform appears on the right for an administrator-identified CCK content type, with the taxonomy automatically assigned to the new node-- after filling it in and hitting submit (the words on the submit button should be configurable), the new node is created and associated with the user, and displayed is the view of that node. And in the taxonomy tree, that term then changes color and has a checkmark to the left to indicate it has been done (the entire tree should be checked and refreshed). The user can then select another term and do the same process to create another node. If a user selects a term that was previously done, then the subform displays the content from the previous submission, which can then be edited and resubmitted or deleted by the user. A count is displayed at the top of the page (as well as kept in an internal field) showing the user's total nodes existing for that CCK content type.

I need to be able to configure everything from within the Drupal administration, so please follow Drupal conventions. The form steps should look seamless, not like a hackish amateur thing. It should be themable, so please code it in such a way that it can be easily themed to change the look and feel.

Some features required, user-side:

* A user needs to be able to jump to any step by selecting the tab for that step

* A user needs to be able to go sequentially through the step with 'next' and 'previous' buttons (text administrator configurable)

* Some fields will be required, and others not-- if a user does not complete all required steps, he is not able to submit; if he tries clicking on the (grayed out) submit button in that case, he will get a message telling him that he needs to fill out all required fields first.

* The result of the registration is a single Content Profile node, not a core profile object. You must use "Content Profile" for user profiles to be CCK nodes [url removed, login to view]

* A user should be able to quit at any point, and then log in later to continue the registration process

* If you use Javascript as part of this implementation, and if the client's browser does not support Javascript, the multi-step registration must gracefully degrade to provide an easy-to-use alternative

* Should work on major browsers (IE 7.0, IE 6.0, Firefox 3.0, Firefox 2.0-2.x, Firefox 1.5, Safari 41)

And some additional requirements:

* Please use existing modules as much as possible, as long as they are scalable and can support thousands of simultaneous users. Do not rewrite existing functionality unless necessary.

* Do not modify any modules directly, or the core. Instead, override the functionality in the new module. Please note that you can control the order that different modules' hooks are executed by changing the weight in the system table-- please do this programmatically in the module's install file, as is customary. Do not modify the weight of any other module.

* Please write clean well-documented code, something that can be easily extended if it needs to be. That means write comments explaining what all the functions are, and comments for all the actions inside a function. Also, separate out different functionality into different files. And make as much of the code as generic as possible.

* Make required modules an explicit dependency in the module. If you are relying on certain settings in other modules, please document this in a README that I can easily follow.

* Create a thorough set of unit tests in order to make regression testing quick [url removed, login to view]

* Respect the Drupal concepts-- do not modify at the theme layer what should be modified programmatically in the module.

* Please don't implement something crazy that won't be scalable-- write it expecting 10k simultaneous user registrations.

* Here are some ideas for you to explore for creating the multi-step form. I don't know if any of them would work for my requirements, but it might help you get started:

o use "CCK Fieldgroup Tabs" in order to create a multi-step form [url removed, login to view] [url removed, login to view]

o hook into the form process [url removed, login to view]

o hook into the form process for Multipage Forms with CCK [url removed, login to view]

Please do keep me involved in your development process, showing me a few demos with partial functionality before the final submission, to make sure we're on the same page.

Resources:

Drupal Support [url removed, login to view]

Forms API intro with process diagrams [url removed, login to view]

Creating Drupal Modules [url removed, login to view]

Developer tools [url removed, login to view]

Proposed order for deliverables:

Deliverable 1: Framework and LoginToboggin functionality

• From admin page, select steps to use, reorder steps, add a new step, steps named, step title and description, step fields modified through CCK content profile; steps visible to user, empty steps not shown (and rest are renumbered if relevant); next/prev buttons; ability to add any block to a step

• Default step with full Logintoboggin module-like functionality (“Register ??" Step 1a??)

• Framework including unit tests and automatic installation

Deliverable 2: Legal, Captcha

• Default step with full Legal module-like functionality (“Register ??" Step 5??)

• Default step with CAPTCHA module-like widget (“Register ??" Step 1a??)

Deliverable 3: Special Taxonomy Block

• Default step Special Taxonomy Block “Register ??" Step 3??

Deliverable 4: Alternate front page, email import

• Alternate front page option (“Register ??" Step 0b??, “Register ??" Step 1b??)

• Email import invitation block (“Register ??" Step 4??)

Deliverable 5: Percent complete, tab orientation, groups, continue previous attempt, submit logic

• Option for tabs horizontal/vertical

• Option for percentage complete

• Required fields incomplete does not enable submit button

• If user quits at any point, then can log in later to complete process

• Group Registration Code and promotional code (“Register ??" Step 1a??)

Deliverable 6: Everything else

• Non-Javascript works and looks good

• Ensure works on all major browsers IE 7.0, IE 6.0, Firefox 3.0, Firefox 2.0-2.x, Firefox 1.5, Safari 41

• Ensure everything is highly configurable from admin pages

• Make sure unit tests are comprehensive Unit

• All other requirements in project description that have not yet been done

Engenharia JavaScript MySQL PHP Gestão de projetos Arquitetura de software Teste de Software Hospedagem Web Gestão de Site Teste de Website

ID do Projeto: #3812794

Sobre o projeto

3 propostas Projeto remoto Ativo em May 7, 2009

3 freelancers estão ofertando em média $1485 nesse trabalho

destinylatif

See private message.

$3825 USD in 14 dias
(54 Comentários)
5.9
codexp3rts

See private message.

$552.5 USD in 14 dias
(6 Comentários)
4.5
thespiders

See private message.

$76.5 USD in 14 dias
(1 Comentário)
0.0