1

I have a current Drupal and CiviCRM installation running LoginToboggan, Panopoly and Multiple Register.

CiviCRM Profiles Creation

I can toggle the original Name & Address Profile included with the installation, but when I set the checkbox for Drupal User Registration to true on the custom Profile Settings page, the form doesn't appear on the Drupal User registration form.

user/register

Additional registration forms built with Multiple Registration

register/supporter
register/volunteer

Clearing cache and running has no effect.

What's the best way to debug this problem?

2 Answers 2

2

My guess is the problem is with Multiple Register since many folks have integrated LoginToboggin and CiviCRM. Turn off all of the three Drupal modules you mention, then reenable them one at a time to isolate which is causing the problem.

You can probably benefit by examining the source of the page with and without the troublesome module enabled in your browser using Firebug or something similar. You may end up needing to provide a patch to Multiple Register or making a custom extension in CiviCRM to help CiviCRM and Multiple Register play nicely with each other.

1

This isn't possible with Multiple Registration because they don't use the standard user/register page (and I'm guessing they override the core user/register functionality). You would need to hack or override civicrm.module. Below is relevant code from the module showing how it checks the path, note how it only understands "user/register", and "admin/people/create":

  // check for either user/register or admin/people/create
  $register =
    ((arg(0) == 'user' && arg(1) == 'register') ||
    (arg(0) == 'admin' && arg(1) == 'people' && arg(2) == 'create')
  ) ? TRUE : FALSE;
  $userID = NULL;
  if (!empty($form['#user'])) {
    $userID = CRM_Core_BAO_UFMatch::getContactId($form['#user']->uid);
  }
  $errors = CRM_Core_BAO_UFGroup::isValid($userID, $form['#user_category'], $register);
  if ($errors && is_array($errors)) {
    foreach ($errors as $name => $error) {
      form_set_error($name, $error);
    }
    return FALSE;
  }
  return TRUE;
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.