inline tobbogan regisztráció

zeniten képe

Üdv!

A cél: NE kérjen D7 a rendszer felhasználónevet, miközben inline adódik a regisztrációs űrlap a tartalomhoz.

Az inline registration modulban van egy rész, ami elvileg lecseréli az űrlapot, ha telepítve van a logintobbogan (ahol beállítottam, hogy ne kérjen felhasználónevet) de valahogy ez nem aktiválódik, és én nem jöttem rá miért nem, íme a kód, hátha így könnyebb.
(Természetesen az aktuálisan friss modulokkal próbálom, nem a dev verzióval)

Ötlet? mi hiányzik?

köszönöm

F.A.

Ui: még ideálisabb lenne, ha még a profile2 profin is megjelenne, de ezt megoldom a checkprofile-lal.

Íme az inline registration modulocska kódja, a végén vannak a logintobboganra vonatkozó függvények.

<?php
 
/**
 * @file
 *
 */
 
 
/**
* Implementation of hook_form_alter()
*/
function inline_registration_form_alter(&$form, &$form_state, $form_id) {
  global $user;
  if ($user->uid == 0 && isset($form['#node']) && variable_get('inline_registration_' . $form['#node']->type, 0)) {
 
    $form['register'] = array(
      '#type' => 'fieldset',
      '#title' => t('Login or Register as a New User'),
      '#description' => t('You are not currently logged in. In order to post this item please !login or provide the following details to register.', array('!login' => l(t('login now'), 'user/login', array('query' => drupal_get_destination())))),
      '#weight' => variable_get('inline_registration_weight_' . $form['#node']->type, 0),
    );
 
    $form['register']['form'] = drupal_retrieve_form('user_register_form', $form_state);
 
    // Remove the user_register submit button in favor of the node submit button
    unset($form['register']['form']['actions']['submit']);
 
    // Rename the user field to remind the user that this is the registration form and not a login field
    $form['register']['form']['account']['name']['#title'] = t('Choose a Username');
 
    // Add our own validation and submit function to the node_form
    $form['#validate'][] = 'inline_registration_validate';
    $form['#submit'][] = 'inline_registration_submit';
 
    // And ensure our submit function is called first (so the node is authored by the newly created user)
    $form['#submit'] = array_reverse($form['#submit']);
 
  }
 
  if ($form_id == 'node_type_form') {
    $form['inline_registration'] = array(
      '#type'           => 'fieldset',
      '#title'          => t('Registration inline'),
      '#description'    => t('Setting for publishing this content from anonymous user, and automatically create account for this.'),
      '#weight'         => 20,
      '#collapsible'    => TRUE,
      '#collapsed'      => variable_get('inline_registration_' . $form['#node_type']->type, 0) ? FALSE : TRUE,
      '#group'          => 'additional_settings', // put it in the menu settings
    );
    $form['inline_registration']['inline_registration'] = array(
      '#type'           => 'checkbox',
      '#title'          => t('Registration inline'),
      '#default_value'  => variable_get('inline_registration_' . $form['#node_type']->type, 0),
      '#description'    => t('Enable user creation from this content.'),
    );
    $form['inline_registration']['inline_registration_weight'] = array(
      '#type'           => 'weight',
      '#title'          => t('Weight of field'),
      '#default_value'  => variable_get('inline_registration_weight_' . $form['#node_type']->type, -10),
      '#description'    => t("Select weight for this field into content creation form."),
      '#delta' => 50,
    );
  }
 
}
 
/**
 * Validation routine for inline registration form.
 */
function inline_registration_validate($form, &$form_state) {
  $form_state['values']['name'] = $form_state['input']['name']; // for some reason the name is empty and a scrypt works incorrectly so copy it from other variable
 
  unset($form_state['uid']);
  if (module_exists('logintoboggan')) {
    logintoboggan_user_register_validate($form['register']['form'], $form_state);
  }
  else {
    // Validate using user module's validation routine
    user_account_form_validate($form['register']['form'], $form_state);
  }
}
 
/**
 * Submit routine for inline registration form.
 */
function inline_registration_submit($form, &$form_state) {
  if (variable_get('user_email_verification', TRUE)) {
    $status_save = 1;
  }
  else {
    $status_save = $form_state['values']['status'];
  }
 
  unset($form_state['values']['uid']);
//  unset($form_state['values']['status']); // if not unset the user will be logined
 
  if (module_exists('logintoboggan')) {
    logintoboggan_user_register_submit($form['register']['form'], $form_state);
  }
  else {
    user_register_submit($form['register']['form'], $form_state);
  }
 
  $form_state['values']['name'] = $form_state['user']->name;
  $form_state['values']['uid'] = $form_state['user']->uid;
  $form_state['values']['status'] = $status_save;
}
 
/**
* Implementation of hook_node_insert()
*/
function inline_registration_node_insert($node) {
  if (!empty($node->vid)) {
    //db_query('UPDATE {node_revisions} SET uid = %d WHERE vid = %d', $node->uid, $node->vid);
    $num_updated = db_update('node_revision')
    ->fields(array(
      'uid' => $node->uid,
    ))
    ->condition('vid', $node->vid, '=')
    ->execute();
  }
}
Taxonomy upgrade extras: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: