Anuncio

Colapsar

Consultas clonadas

Estimados Usuarios:

Hemos notado que algunos de los usuarios que participan en este foro, tienen la modalidad de clonar sus consultas en varios sitios de soporte vBulletin, queremos informarle que esta metodologia es perjudial para este sitio y para el resto ya que se está generando contenido Duplicado. por lo tanto les pedimos encarecidamente que si van a efectuar la misma consulta por lo menos escriban un texto genuino en cada una o que consulten en los demas foros de soporte vBulletin y si no encuentran la respuesta recien ahi creen un mensaje con contexto distinto al que están haciendo en los demas sitios.

Entendemos que todos quieren resolver la consulta lo más rapido posible, pero les pedimos que por favor cuiden a este sitio y a los demás, como se merecen, porque es aqui donde evacuan sus dudas.

Les pedimos reflexion sobre este tema, no queremos cerrar o llegar al extremo de tener que eliminar temas que detectemos duplicados o incluso suspender cuentas a los que realizen esta practica.
Ver más
Ver menos

Asignar grupo de usuario segun campo de perfil.

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • Asignar grupo de usuario segun campo de perfil.

    Holas
    mi duda es la siguiente , como logro que los usuarios que elijan una opcion de capo de perfil al registrarse sean agregados a un grupo por defecto ..
    Por ejemplo :
    Que al elejir el genero masculino valla al grupo Hombres y si se elije femenino va al grupo Mujer..
    Muchas gracias espero puedan darme una respuesta .
    Pd: uso vB 4.1.4.

  • #2
    Pasa por http://www.vbulletin.org/forum/showthread.php?t=267585

    Salud2

    Comentario


    • #3
      Originalmente escrito por snake23
      Hola lms con respecto a este Thread, lamentablemente no poseo licensia de vbulletin y mi ingles es malo, es posible que puedas explicarme las instrucciones en este foro por favor . muchas gracias
      Salud2

      Comentario


      • #4
        Bien, aquí está la explicación de como vBulletin 4.x selecciona un grupo al registrarse.
        Lo voy a demostrar usándolo para hombres y mujeres.
        1. Ve a Campos personales de usuario ---> Crea un nuevo campo para el perfil ---> Selección simple
          [TIP]Título: Selecciona tu género
          Descripción: aquí seleccionas tu género
          Opciones:
          Hombre
          Mujer
          Predeterminar: Sí, incluyendo una primera opción en blanco
          Campo editable por el usuario: Sólo al registrarse
          (Deja todo lo demás por defecto como está, o ponlo según tu opinión)[/TIP]
        2. Abre el archivo register.php (está ubicado en el directorio raíz de tu foro)
        3. Busca:
          Código PHP:
          if ($vbulletin->options['verifyemail'])
              {
                  
          $newusergroupid 3;
              }
              else if (
          $vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser'])
              {
                  
          $newusergroupid 4;
              }
              else
              {
                  
          $newusergroupid 2;
              } 
          Reemplazalo por:
          Código PHP:
          if ($vbulletin->options['verifyemail'])
              {
                  
          $newusergroupid 3;
              }
              else if (
          $vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser'])
              {
                  
          $newusergroupid 4;
              }
              else if (
          $vbulletin->userinfo['fieldX'] == "Women")
              {
                  
          $newusergroupid W;
              }
              else
              {
              
          $newusergroupid 2;
              } 
          [NOTA]NOTA: Donde aquí la X supone el número de id del campo creado
          Aquí puedes ver el número del campo:

          Y donde la W supone el ID del grupo de usuario de destino, que en este caso es mujer.
          Aquí te dice el número de ID, que en este caso se corresponde con el grupo de usuarios Mujer.

          En esta línea está la X:
          Código PHP:
          else if ($vbulletin->userinfo['fieldX'] == "Women"
          En esta línea está la W:
          Código PHP:
          $newusergroupid W
          [/NOTA]
        4. [NOTA]NOTA: Con todo lo echo aquí, siempre que alguien se registre y si está seleccionado NO email de confirmación, los hombres que se registren se les asignará el grupo de usuarios predeterminado que es el número de ID 2, y cuando una mujer se registre se seleccionará el grupo de usuarios en el que has colocado la identificación correspondiente.
          Sin embargo, cuando la opción de correo electrónico de confirmación está activada, debes también reemplazar en register.php:
          (Ambos pasos son recomendables para poder tener la opción de confirmar la cuenta por email)[/NOTA]Busca:
          Código PHP:
          if ($vbulletin->options['verifyemail'])
                      {
                          
          $activateid build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 2), 0);

                          eval(
          fetch_email_phrases('activateaccount'));

                          
          vbmail($email$subject$messagetrue);

                      } 
          Reemplaza por:
          Código PHP:
          if ($vbulletin->options['verifyemail'])
                      {
                          if (
          $vbulletin->userinfo['fieldX'] == "Mujer")
                          {
                              
          $activateid build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 16), 0);
                          }
                          else
                          {    
                              
          $activateid build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 2), 0);
                          }

                          eval(
          fetch_email_phrases('activateaccount'));

                          
          vbmail($email$subject$messagetrue);
                      } 
          [NOTA]NOTA: la X supone el número de id del campo creado
          Aquí puedes ver el número del campo:

          En esta línea está la X:
          Código PHP:
          if ($vbulletin->userinfo['fieldX'] == "Mujer"
          [/NOTA]
        5. Reemplaza el archivo register.php por el modificado y listo, en el momento del registro, al elegir el género se les asigna un grupo. Si eligen Hombre o no eligen sexo, se les asigna el grupo predeterminado que es el de hombres



        [INFO]Artículo original de lympboy en http://www.vbulletin.org/forum/showthread.php?t=267585.
        Traducido por lms.[/INFO]

        Salud2

        Comentario


        • #5
          lsm hice todo al pie de la letra pero a la hora de registrar un usuario femenino salta el siguiente aviso
          [ATTACH]386.vB[/ATTACH]
          gracias.
          Archivos adjuntos

          Comentario


          • #6
            Eso es que al modificar el código, te ha tomado el grupo de excluidos o baneados como grupo donde los "coloca".
            Repasa los IDs de grupo de tu foro y corrige según proceda.

            Salud2

            Comentario


            • #7
              estube viendo y lo que hace es mandar el usuario nuevo al grupo " (COPPA) Users Awaiting Moderation "
              intente cambiando el id de ese grupo al de Registradas.. pero el resultado es el mismo ..
              acontinuacion adjunto mi register.php ya que no se que es lo que estoy haciendo mal ... disculpa las molestias ..

              Código:
              <?php/*======================================================================*\
              || #################################################################### ||
              || # vBulletin 4.1.4
              || # ---------------------------------------------------------------- # ||
              || # Copyright ©2000-2011 vBulletin Solutions Inc. All Rights Reserved. ||
              || # This file may not be redistributed in whole or significant part. # ||
              || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
              || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
              || #################################################################### ||
              \*======================================================================*/
              
              
              // ####################### SET PHP ENVIRONMENT ###########################
              error_reporting(E_ALL & ~E_NOTICE);
              
              
              // #################### DEFINE IMPORTANT CONSTANTS #######################
              define('THIS_SCRIPT', 'register');
              define('CSRF_PROTECTION', true);
              define('CONTENT_PAGE', false);
              
              
              // ################### PRE-CACHE TEMPLATES AND DATA ######################
              // get special phrase groups
              $phrasegroups = array('timezone', 'user', 'register', 'cprofilefield');
              
              
              // get special data templates from the datastore
              $specialtemplates = array(
                  'smiliecache',
                  'bbcodecache',
                  'banemail',
                  'ranks',
              );
              
              
              // pre-cache templates used by all actions
              $globaltemplates = array(
                  'humanverify',
                  'register',
                  'register_rules',
                  'register_verify_age',
                  'register_coppaform',
                  'userfield_textbox',
                  'userfield_checkbox_option',
                  'userfield_optional_input',
                  'userfield_radio',
                  'userfield_radio_option',
                  'userfield_select',
                  'userfield_select_option',
                  'userfield_select_multiple',
                  'userfield_textarea',
                  'userfield_wrapper',
                  'modifyoptions_timezone',
                  'modifyprofile_birthday',
                  'facebook_associate',
                  'facebook_disassociate',
                  'facebook_importregister',
              );
              
              
              // pre-cache templates used by specific actions
              $actiontemplates = array(
                  'requestemail' => array(
                      'activate_requestemail'
                  ),
                  'none' => array(
                      'activateform'
                  )
              );
              
              
              // ######################### REQUIRE BACK-END ############################
              require_once('./global.php');
              require_once(DIR . '/includes/functions_user.php');
              require_once(DIR . '/includes/functions_misc.php');
              
              
              // #######################################################################
              // ######################## START MAIN SCRIPT ############################
              // #######################################################################
              
              
              $vbulletin->input->clean_gpc('r', 'a', TYPE_NOHTML);
              $vbulletin->input->clean_gpc('r', 'u', TYPE_NOHTML);
              $coppaage = $vbulletin->input->clean_gpc('c', COOKIE_PREFIX . 'coppaage', TYPE_STR);
              
              
              if (empty($_REQUEST['do']) AND $vbulletin->GPC['a'] == '')
              {
                  $_REQUEST['do'] = 'register';
              }
              
              
              if (defined('VB_API') AND VB_API === true)
              {
                  $vbulletin->options['usecoppa'] = false;
              }
              
              
              ($hook = vBulletinHook::fetch_hook('register_start')) ? eval($hook) : false;
              
              
              // ############################### start checkdate ###############################
              if ($_POST['do'] == 'checkdate')
              {
                  // check their birthdate
                  $vbulletin->input->clean_array_gpc('r', array(
                      'month' => TYPE_UINT,
                      'year'  => TYPE_UINT,
                      'day'   => TYPE_UINT,
                  ));
              
              
                  $current['year'] = date('Y');
                  $current['month'] = date('m');
                  $current['day'] = date('d');
              
              
                  if ($vbulletin->GPC['month'] == 0 OR $vbulletin->GPC['day'] == 0 OR !preg_match('#^\d{4}$#', $vbulletin->GPC['year']) OR $vbulletin->GPC['year'] < 1901 OR $vbulletin->GPC['year'] > $current['year'])
                  {
                      eval(standard_error(fetch_error('select_valid_dob', $current['year'])));
                  }
              
              
                  ($hook = vBulletinHook::fetch_hook('register_checkdate')) ? eval($hook) : false;
              
              
                  if ($vbulletin->options['usecoppa'] AND $vbulletin->options['checkcoppa'] AND $coppaage)
                  {
                      $dob = explode('-', $coppaage);
                      $month = $dob[0];
                      $day = $dob[1];
                      $year = $dob[2];
                  }
              
              
                  if ($vbulletin->GPC['year'] < 1970 OR (mktime(0, 0, 0, $vbulletin->GPC['month'], $vbulletin->GPC['day'], $vbulletin->GPC['year']) <= mktime(0, 0, 0, $current['month'], $current['day'], $current['year'] - 13)))
                  {
                      $_REQUEST['do'] = 'register';
                  }
                  else
                  {
                      if ($vbulletin->options['checkcoppa'] AND $vbulletin->options['usecoppa'])
                      {
                          vbsetcookie('coppaage', $vbulletin->GPC['month'] . '-' . $vbulletin->GPC['day'] . '-' . $vbulletin->GPC['year'], 1);
                      }
              
              
                      if ($vbulletin->options['usecoppa'] == 2)
                      {
                          // turn away as they're under 13
                          eval(standard_error(fetch_error('under_thirteen_registration_denied')));
                      }
                      else
                      {
                          $_REQUEST['do'] = 'register';
                      }
                  }
              }
              // if the page was refreshed after birthday has been checked and cookied,
              // then simply perform the register action, #37319
              else if ($_REQUEST['do'] == 'checkdate')
              {
                  $_REQUEST['do'] = 'register';
              }
              
              
              // ############################### start add member ###############################
              if ($_POST['do'] == 'addmember')
              {
                  $vbulletin->input->clean_array_gpc('p', array(
                      'agree'               => TYPE_BOOL,
                      'options'             => TYPE_ARRAY_BOOL,
                      'username'            => TYPE_STR,
                      'email'               => TYPE_STR,
                      'emailconfirm'        => TYPE_STR,
                      'parentemail'         => TYPE_STR,
                      'password'            => TYPE_STR,
                      'password_md5'        => TYPE_STR,
                      'passwordconfirm'     => TYPE_STR,
                      'passwordconfirm_md5' => TYPE_STR,
                      'referrername'        => TYPE_NOHTML,
                      'coppauser'           => TYPE_BOOL,
                      'day'                 => TYPE_UINT,
                      'month'               => TYPE_UINT,
                      'year'                => TYPE_UINT,
                      'timezoneoffset'      => TYPE_NUM,
                      'dst'                 => TYPE_UINT,
                      'userfield'           => TYPE_ARRAY,
                      'showbirthday'        => TYPE_UINT,
                      'humanverify'         => TYPE_ARRAY
                  ));
              
              
                  if (!$vbulletin->GPC['agree'])
                  {
                      eval(standard_error(fetch_error('register_not_agreed', fetch_seo_url('forumhome', array()))));
                  }
              
              
                  if (!$vbulletin->options['allowregistration'])
                  {
                      eval(standard_error(fetch_error('noregister')));
                  }
              
              
                  // check for multireg
                  if ($vbulletin->userinfo['userid'] AND !$vbulletin->options['allowmultiregs'])
                  {
                      eval(standard_error(fetch_error('alreadyregistered', $vbulletin->userinfo['username'], $vbulletin->session->vars['sessionurl'])));
                  }
              
              
                  // init user datamanager class
                  $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_ARRAY);
              
              
                  // coppa option
                  if ($vbulletin->options['usecoppa'])
                  {
                      $current['year'] = date('Y');
                      $current['month'] = date('m');
                      $current['day'] = date('d');
              
              
                      $month = $vbulletin->GPC['month'];
                      $year = $vbulletin->GPC['year'];
                      $day = $vbulletin->GPC['day'];
              
              
                      if ($year > 1970 AND mktime(0, 0, 0, $month, $day, $year) > mktime(0, 0, 0, $current['month'], $current['day'], $current['year'] - 13))
                      {
                          if ($vbulletin->options['checkcoppa'])
                          {
                              vbsetcookie('coppaage', $month . '-' . $day . '-' . $year, 1);
                          }
              
              
                          if ($vbulletin->options['usecoppa'] == 2)
                          {
                              standard_error(fetch_error('under_thirteen_registration_denied'));
                          }
              
              
                          $vbulletin->GPC['coppauser'] = true;
              
              
                      }
                      else
                      {
                          $vbulletin->GPC['coppauser'] = false;
                      }
                  }
                  else
                  {
                      $vbulletin->GPC['coppauser'] = false;
                  }
              
              
                  $userdata->set_info('coppauser', $vbulletin->GPC['coppauser']);
                  $userdata->set_info('coppapassword', $vbulletin->GPC['password']);
                  $userdata->set_bitfield('options', 'coppauser', $vbulletin->GPC['coppauser']);
                  $userdata->set('parentemail', $vbulletin->GPC['parentemail']);
              
              
                  // check for missing fields
                  if (empty($vbulletin->GPC['username'])
                      OR empty($vbulletin->GPC['email'])
                      OR empty($vbulletin->GPC['emailconfirm'])
                      OR ($vbulletin->GPC['coppauser'] AND empty($vbulletin->GPC['parentemail']))
                      OR (empty($vbulletin->GPC['password']) AND empty($vbulletin->GPC['password_md5']))
                      OR (empty($vbulletin->GPC['passwordconfirm']) AND empty($vbulletin->GPC['passwordconfirm_md5']))
                  )
                  {
                      $userdata->error('fieldmissing');
                  }
              
              
                  // check for matching passwords
                  if ($vbulletin->GPC['password'] != $vbulletin->GPC['passwordconfirm'] OR (strlen($vbulletin->GPC['password_md5']) == 32 AND $vbulletin->GPC['password_md5'] != $vbulletin->GPC['passwordconfirm_md5']))
                  {
                      $userdata->error('passwordmismatch');
                  }
              
              
                  // check for matching email addresses
                  if ($vbulletin->GPC['email'] != $vbulletin->GPC['emailconfirm'])
                  {
                      $userdata->error('emailmismatch');
                  }
                  $userdata->set('email', $vbulletin->GPC['email']);
              
              
                  $userdata->set('username', $vbulletin->GPC['username']);
              
              
                  // set password
                  $userdata->set('password', ($vbulletin->GPC['password_md5'] ? $vbulletin->GPC['password_md5'] : $vbulletin->GPC['password']));
              
              
                  // check referrer
                  if ($vbulletin->GPC['referrername'] AND !$vbulletin->userinfo['userid'])
                  {
                      $userdata->set('referrerid', $vbulletin->GPC['referrername']);
                  }
              
              
                  // Human Verification, not neccessary if user is logged into facebook
                  if (fetch_require_hvcheck('register') AND (!is_facebookenabled() OR (is_facebookenabled() AND !vB_Facebook::instance()->userIsLoggedIn())))
                  {
                      require_once(DIR . '/includes/class_humanverify.php');
                      $verify =& vB_HumanVerify::fetch_library($vbulletin);
                      if (!$verify->verify_token($vbulletin->GPC['humanverify']))
                      {
                          $userdata->error($verify->fetch_error());
                      }
                  }
              
              
                  // Set specified options
                  if (!empty($vbulletin->GPC['options']))
                  {
                      foreach ($vbulletin->GPC['options'] AS $optionname => $onoff)
                      {
                          $userdata->set_bitfield('options', $optionname, $onoff);
                      }
                  }
              
              
                  // assign user to usergroup 3 if email needs verification
                  if ($vbulletin->options['verifyemail'])
                  {
                      $newusergroupid = 3;
                  }
                  else if ($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser'])
                  {
                      $newusergroupid = 4;
                  }
                  else if ($vbulletin->userinfo['field5'] == "Mujer")
                  {
                      $newusergroupid = 14;
                  }
                  else
                  {
                  $newusergroupid = 2;
                  }  
                  // set usergroupid
                  $userdata->set('usergroupid', $newusergroupid);
              
              
                  // set languageid
                  $userdata->set('languageid', $vbulletin->userinfo['languageid']);
              
              
                  // set user title
                  $userdata->set_usertitle('', false, $vbulletin->usergroupcache["$newusergroupid"], false, false);
              
              
                  // set profile fields
                  $customfields = $userdata->set_userfields($vbulletin->GPC['userfield'], true, 'register');
              
              
                  // set birthday
                  $userdata->set('showbirthday', $vbulletin->GPC['showbirthday']);
                  $userdata->set('birthday', array(
                      'day'   => $vbulletin->GPC['day'],
                      'month' => $vbulletin->GPC['month'],
                      'year'  => $vbulletin->GPC['year']
                  ));
              
              
                  // set time options
                  $userdata->set_dst($vbulletin->GPC['dst']);
                  $userdata->set('timezoneoffset', $vbulletin->GPC['timezoneoffset']);
              
              
                  // register IP address
                  $userdata->set('ipaddress', IPADDRESS);
              
              
                  // check if we are associating the new user with a facebook account
                  if (is_facebookenabled() AND vB_Facebook::instance()->userIsLoggedIn())
                  {
                      save_fbdata($userdata);
                  }
              
              
                  ($hook = vBulletinHook::fetch_hook('register_addmember_process')) ? eval($hook) : false;
              
              
                  $userdata->pre_save();
              
              
                  // check for errors
                  if (!empty($userdata->errors))
                  {
                      $_REQUEST['do'] = 'register';
              
              
                      $errorlist = '';
                      if (!VB_API)
                      {
                          foreach ($userdata->errors AS $index => $error)
                          {
                              $errorlist .= "<li>$error</li>";
                          }
                      }
                      else
                      {
                          $errorlist = $userdata->errors;
                      }
              
              
                      $username = htmlspecialchars_uni($vbulletin->GPC['username']);
                      $email = htmlspecialchars_uni($vbulletin->GPC['email']);
                      $emailconfirm = htmlspecialchars_uni($vbulletin->GPC['emailconfirm']);
                      $parentemail = htmlspecialchars_uni($vbulletin->GPC['parentemail']);
                      $selectdst = array($vbulletin->GPC['dst'] => 'selected="selected"');
                      $sbselected = array($vbulletin->GPC['showbirthday'] => 'selected="selected"');
                      $show['errors'] = true;
                  }
                  else
                  {
                      $show['errors'] = false;
              
              
                      // save the data
                      $vbulletin->userinfo['userid']
                          = $userid
                          = $userdata->save();
              
              
                      if ($userid)
                      {
                          $userinfo = fetch_userinfo($userid);
                          $userdata_rank =& datamanager_init('User', $vbulletin, ERRTYPE_SILENT);
                          $userdata_rank->set_existing($userinfo);
                          $userdata_rank->set('posts', 0);
                          $userdata_rank->save();
              
              
                          // force a new session to prevent potential issues with guests from the same IP, see bug #2459
                          require_once(DIR . '/includes/functions_login.php');
                          $vbulletin->session->created = false;
                          process_new_login('', false, '');
              
              
                          // send new user email
                          if ($vbulletin->options['newuseremail'] != '')
                          {
                              $username = $vbulletin->GPC['username'];
                              $email = $vbulletin->GPC['email'];
              
              
                              if ($birthday = $userdata->fetch_field('birthday'))
                              {
                                  $bday = explode('-', $birthday);
                                  $year = vbdate('Y', TIMENOW, false, false);
                                  $month = vbdate('n', TIMENOW, false, false);
                                  $day = vbdate('j', TIMENOW, false, false);
                                  if ($year > $bday[2] AND $bday[2] > 1901 AND $bday[2] != '0000')
                                  {
                                      require_once(DIR . '/includes/functions_misc.php');
                                      $vbulletin->options['calformat1'] = mktimefix($vbulletin->options['calformat1'], $bday[2]);
                                      if ($bday[2] >= 1970)
                                      {
                                          $yearpass = $bday[2];
                                      }
                                      else
                                      {
                                          // day of the week patterns repeat every 28 years, so
                                          // find the first year >= 1970 that has this pattern
                                          $yearpass = $bday[2] + 28 * ceil((1970 - $bday[2]) / 28);
                                      }
                                      $birthday = vbdate($vbulletin->options['calformat1'], mktime(0, 0, 0, $bday[0], $bday[1], $yearpass), false, true, false);
                                  }
                                  else
                                  {
                                      // lets send a valid year as some PHP3 don't like year to be 0
                                      $birthday = vbdate($vbulletin->options['calformat2'], mktime(0, 0, 0, $bday[0], $bday[1], 1992), false, true, false);
                                  }
              
              
                                  if ($birthday == '')
                                  {
                                      // Should not happen; fallback for win32 bug regarding mktime and dates < 1970
                                      if ($bday[2] == '0000')
                                      {
                                          $birthday = "$bday[0]-$bday[1]";
                                      }
                                      else
                                      {
                                          $birthday = "$bday[0]-$bday[1]-$bday[2]";
                                      }
                                  }
                              }
              
              
                              if ($userdata->fetch_field('referrerid') AND $vbulletin->GPC['referrername'])
                              {
                                  $referrer = unhtmlspecialchars($vbulletin->GPC['referrername']);
                              }
                              else
                              {
                                  $referrer = $vbphrase['n_a'];
                              }
                              $ipaddress = IPADDRESS;
                              $memberlink = fetch_seo_url('member|nosession|bburl', array('userid' => $userid, 'username' => htmlspecialchars_uni($vbulletin->GPC['username'])));
              
              
                              eval(fetch_email_phrases('newuser', 0));
              
              
                              $newemails = explode(' ', $vbulletin->options['newuseremail']);
                              foreach ($newemails AS $toemail)
                              {
                                  if (trim($toemail))
                                  {
                                      vbmail($toemail, $subject, $message);
                                  }
                              }
                          }
              
              
                          $username = htmlspecialchars_uni($vbulletin->GPC['username']);
                          $email = htmlspecialchars_uni($vbulletin->GPC['email']);
              
              
                          // sort out emails and usergroups
                          if ($vbulletin->options['verifyemail'])
                          if ($vbulletin->options['verifyemail'])
                          {
                              if ($vbulletin->userinfo['field5'] == "Mujer")
                              {
                                  $activateid = build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 4 : 16), 0);
                              }
                              else
                              {    
                                  $activateid = build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 4 : 2), 0);
                              }
              
              
                              eval(fetch_email_phrases('activateaccount'));
              
              
                              vbmail($email, $subject, $message, true);
                          }  
                          else if ($newusergroupid == 2)
                          {
                              if ($vbulletin->options['welcomemail'])
                              {
                                  eval(fetch_email_phrases('welcomemail'));
                                  vbmail($email, $subject, $message);
                              }
                          }
              
              
                          ($hook = vBulletinHook::fetch_hook('register_addmember_complete')) ? eval($hook) : false;
              
              
                          if ($vbulletin->GPC['coppauser'])
                          {
                              $_REQUEST['do'] = 'coppaform';
                          }
                          else
                          {
                              if ($vbulletin->options['verifyemail'])
                              {
                                  eval(standard_error(fetch_error('registeremail', $username, $email, create_full_url($vbulletin->url . $vbulletin->session->vars['sessionurl_q'])), '', false));
                              }
                              else
                              {
                                  $vbulletin->url = str_replace('"', '', $vbulletin->url);
                                  if (!$vbulletin->url)
                                  {
                                      $vbulletin->url = fetch_seo_url('forumhome', array());
                                  }
                                  else
                                  {
                                      $vbulletin->url = (strpos($vbulletin->url, 'register.php') !== false ? 
                                          fetch_seo_url('forumhome', array()) : $vbulletin->url);
                                  }
              
              
                                  if ($vbulletin->options['moderatenewmembers'])
                                  {
                                      eval(standard_error(fetch_error('moderateuser', $username, fetch_seo_url('forumhome', array())), '', false));
                                  }
                                  else
                                  {
                                      eval(standard_error(fetch_error('registration_complete', $username, 
                                          $vbulletin->session->vars['sessionurl'], fetch_seo_url('forumhome', array())), '', false));
                                  }
                              }
                          }
                      }
                  }
              }
              else if ($_GET['do'] == 'addmember')
              {
                  // hmm, this probably happened because of a template edit that put the login box in the header.
                  exec_header_redirect(fetch_seo_url('forumhome|nosession', array()));
              }
              
              
              // ############################### start facebook dis-associate ###############################
              // process facebook dis-association
              if ($_REQUEST['do'] == 'fbdisconnect')
              {
                  // only disconnect registered vb users, (not facebook only users, because they will not be able to login anymore)
                  if (is_facebookenabled() AND !empty($vbulletin->userinfo['userid']) AND $vbulletin->userinfo['logintype'] == 'vb')
                  {
                      $vbulletin->input->clean_array_gpc('p', array(
                          'confirm' => TYPE_NOHTML,
                          'deny'    => TYPE_NOHTML,
                      ));
              
              
                      // user has confirmed dis-association, so modify the data and logout of fb
                      if ($vbulletin->GPC['confirm'])
                      {
                          // instantiate the data manager class
                          $userdata =& datamanager_init('user', $vbulletin, ERRTYPE_STANDARD);
                          $userdata->set_existing($vbulletin->userinfo);
              
              
                          // uset the fbuserid association and save
                          $userdata->set('fbuserid', null);
                          $userdata->save();
              
              
                          // logout of facebook connect
                          do_facebooklogout();
              
              
                          // redirect to the forum home
                          exec_header_redirect(fetch_seo_url('forumhome|nosession', array()));
                      }
              
              
                      // user clicked 'No' for dis-association, so direct them back to the forums page
                      else if ($vbulletin->GPC['deny'])
                      {
                          $vbulletin->url = fetch_seo_url('forumhome', array());
                          eval(print_standard_redirect('action_cancelled'));
                      }
              
              
                      // otherwise, make sure current FB account is associated with vb account
                      // and display the confirmation form if so
                      else if (vB_Facebook::instance()->userIsLoggedIn() AND $vbulletin->userinfo['userid'] == vB_Facebook::instance()->getVbUseridFromFbUserid())
                      {
                          $navbits = construct_navbits(array(
                              'register.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['register']
                          ));
                          $navbar = render_navbar_template($navbits);
              
              
                          $fb_userinfo = vB_Facebook::instance()->getFbUserInfo();
                          $fbname = $fb_userinfo['name'];
                          $fbprofileurl = get_fbprofileurl();
                          $fbprofilepicurl = !empty($fb_userinfo['pic']) ? $fb_userinfo['pic'] : get_fbprofilepicurl();;
              
              
                          $templater = vB_Template::create('facebook_disassociate');
                          $templater->register_page_templates();
                          $templater->register('navbar', $navbar);
                          $templater->register('userinfo', $vbulletin->userinfo);
                          $templater->register('fbuserid', vB_Facebook::instance()->getLoggedInFbUserId());
                          $templater->register('fbname', $fbname);
                          $templater->register('fbprofileurl', $fbprofileurl);
                          $templater->register('fbprofilepicurl', $fbprofilepicurl);
                          print_output($templater->render());
                      }
                  }
              
              
                  // if we dont meet any of the above action criteria, display regular registration form
                  $_REQUEST['do'] = 'register';
              }
              
              
              // ############################### start facebook associate ###############################
              // process facebook association
              if ($_POST['do'] == 'fbconnect')
              {
                  $vbulletin->input->clean_array_gpc('p', array(
                      'link'   => TYPE_NOHTML,
                      'nolink' => TYPE_NOHTML,
                  ));
              
              
                  // if facebook is not enabled, we we somehow lost either the fb or vb session,
                  // display regular registration form
                  if (!is_facebookenabled()
                      OR empty($vbulletin->userinfo['userid'])
                      OR !vB_Facebook::instance()->userIsLoggedIn())
                  {
                      $_REQUEST['do'] = 'register';
                  }
              
              
                  else if ($vbulletin->GPC['link'])
                  {
                      // instantiate the data manager class
                      $userdata =& datamanager_init('user', $vbulletin, ERRTYPE_ARRAY);
                      $userdata->set_existing($vbulletin->userinfo);
              
              
                      // save the fb data
                      save_fbdata($userdata, false);
              
              
                      // if there were errors in the association code
                      // go back to the association form and display errors
                      $userdata->pre_save();
                      if (!empty($userdata->errors))
                      {
                          $_REQUEST['do'] = 'register';
                          $errorlist = '';
                          if (!VB_API)
                          {
                              foreach ($userdata->errors AS $index => $error)
                              {
                                  $errorlist .= "<li>$error</li>";
                              }
                          }
                          else
                          {
                              $errorlist = $userdata->errors;
                          }
                          
                          $show['errors'] = true;
                      }
              
              
                      // otherwise, we can save the association and redirect someplace nice
                      else
                      {
                          $userdata->save();
                          $vbulletin->url = $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'];
                          eval(print_standard_redirect('redirect_updatethanks'));
                      }
                  }
              
              
                  // user does not want to link accounts, redirect to forum page
                  else if ($vbulletin->GPC['nolink'])
                  {
                      $vbulletin->url = $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'];
                      eval(print_standard_redirect('redirect_updatethanks'));
                  }
              }
              
              
              // ############################### start register ###############################
              if ($_REQUEST['do'] == 'register')
              {
                  // check the conditions are right for auto-register, logged in fb user/
                  // not logged into vB, no associated account, and email permissions available
                  if (is_facebookenabled()
                      AND vB_Facebook::instance()->userIsLoggedIn()
                      AND empty($vbulletin->userinfo['userid'])
                      AND !vB_Facebook::instance()->getVbUseridFromFbUserid()
                      AND $vbulletin->options['facebookautoregister']
                      AND check_emailpermissions()
                  )
                  {
                      // instantiate the data manager class
                      $userdata =& datamanager_init('user', $vbulletin, ERRTYPE_ARRAY);
              
              
                      // populate the datamanager with auto reg data
                      save_fbautoregister($userdata);
              
              
                      ($hook = vBulletinHook::fetch_hook('register_addmember_process')) ? eval($hook) : false;
              
              
                      // if there were errors in the association code
                      // go back to the association form and display errors
                      $userdata->pre_save();
                      if (!empty($userdata->errors))
                      {
                          $_REQUEST['do'] = 'register';
                          $errorlist = '';
                          foreach ($userdata->errors AS $index => $error)
                          {
                              $errorlist .= "<li>$error</li>";
                          }
                          $show['errors'] = true;
                      }
              
              
                      // if no errors, auto-register user
                      else
                      {
                          $show['errors'] = false;
              
              
                          // save the data
                          $vbulletin->userinfo['userid']
                              = $userid
                              = $userdata->save();
              
              
                          if ($userid)
                          {
                              $username = $userdata->fetch_field('username');
                              $email = $userdata->fetch_field('email');
              
              
                              $userinfo = fetch_userinfo($userid);
                              $userdata_rank =& datamanager_init('User', $vbulletin, ERRTYPE_SILENT);
                              $userdata_rank->set_existing($userinfo);
                              $userdata_rank->set('posts', 0);
                              $userdata_rank->save();
              
              
                              // force a new session to prevent potential issues with guests from the same IP, see bug #2459
                              require_once(DIR . '/includes/functions_login.php');
                              $vbulletin->session->created = false;
                              process_new_login('', false, '');
              
              
                              // send new user email
                              if ($vbulletin->options['newuseremail'] != '')
                              {
                                  $referrer = 'Facebook Connect';
                                  $ipaddress = IPADDRESS;
                                  $memberlink = fetch_seo_url('member|nosession', array('userid' => $userid, 'username' => htmlspecialchars_uni($vbulletin->GPC['username'])));
              
              
                                  eval(fetch_email_phrases('newuser', 0));
              
              
                                  $newemails = explode(' ', $vbulletin->options['newuseremail']);
                                  foreach ($newemails AS $toemail)
                                  {
                                      if (trim($toemail))
                                      {
                                          vbmail($toemail, $subject, $message);
                                      }
                                  }
                              }
              
              
                              if ($newusergroupid == 2 AND $vbulletin->options['welcomemail'])
                              {
                                  eval(fetch_email_phrases('welcomemail'));
                                  vbmail($email, $subject, $message);
                              }
              
              
                              ($hook = vBulletinHook::fetch_hook('register_addmember_complete')) ? eval($hook) : false;
              
              
                              // now redirect the user to the home page
                              $vbulletin->url = str_replace('"', '', $vbulletin->url);
                              if (!$vbulletin->url)
                              {
                                  $vbulletin->url = fetch_seo_url('forumhome', array());
                              }
                              else
                              {
                                  $vbulletin->url = iif(strpos($vbulletin->url, 'register.php') !== false, fetch_seo_url('forumhome', array()), $vbulletin->url);
                              }
              
              
                              if ($vbulletin->options['moderatenewmembers'])
                              {
                                  eval(standard_error(fetch_error('moderateuser', $username, fetch_seo_url('forumhome', array())), '', false));
                              }
                              else
                              {
                                  eval(standard_error(fetch_error('registration_complete', $username, 
                                      $vbulletin->session->vars['sessionurl'], fetch_seo_url('forumhome', array())), '', false));
                              }
                          }
                      }
                  }
                  // if facebook connect is enabled and user is logged into both vb and facebook
                  // but accounts arent associated, display the association form instead of register form
                  else if (is_facebookenabled()
                      AND    !empty($vbulletin->userinfo['userid']) /* logged into vb */
                      AND    vB_Facebook::instance()->userIsLoggedIn() /* logged into facebook */
                      AND    $vbulletin->userinfo['fbuserid'] != vB_Facebook::instance()->getLoggedInFbUserId() /* not already associated */
                  )
                  {
                      // generate the form for importing facebook data
                      $fbimportform = construct_fbimportform();
              
              
                      $fb_userinfo = vB_Facebook::instance()->getFbUserInfo();
                      $fbname = $fb_userinfo['name'];
                      $fbprofileurl = get_fbprofileurl();
                      $fbprofilepicurl = !empty($fb_userinfo['pic']) ? $fb_userinfo['pic'] : get_fbprofilepicurl();;
              
              
                      // check if user already has a different fb account, and inform them if so
                      $show['fb_alreadyassociated'] = !empty($vbulletin->userinfo['fbuserid']);
              
              
                      $navbits = construct_navbits(array(
                          'register.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['link_accounts']
                      ));
                      $navbar = render_navbar_template($navbits);
              
              
                      $templater = vB_Template::create('facebook_associate');
                      $templater->register_page_templates();
                      $templater->register('navbar', $navbar);
                      $templater->register('userinfo', $vbulletin->userinfo);
                      $templater->register('fbuserid', vB_Facebook::instance()->getLoggedInFbUserId());
                      $templater->register('fbname', $fbname);
                      $templater->register('fbprofileurl', $fbprofileurl);
                      $templater->register('fbprofilepicurl', $fbprofilepicurl);
                      $templater->register('fbimportform', $fbimportform);
                      $templater->register('currentfbuserid', $vbulletin->userinfo['fbuserid']);
                      $templater->register('currentfbname', $vbulletin->userinfo['fbname']);
                      $templater->register('errorlist', $errorlist);
                      print_output($templater->render());
                  }
              
              
                  $vbulletin->input->clean_array_gpc('p', array(
                      'year'    => TYPE_UINT,
                      'month'   => TYPE_UINT,
                      'day'     => TYPE_UINT,
                      'options' => TYPE_ARRAY_BOOL,
                  ));
              
              
                  $url = $vbulletin->url;
              
              
                  $navbits['register.php' . $vbulletin->session->vars['sessionurl_q']] = $vbphrase['register'];
                  $navbits = construct_navbits($navbits);
              
              
                  if (!$vbulletin->options['allowregistration'])
                  {
                      eval(standard_error(fetch_error('noregister')));
                  }
              
              
                  if ($vbulletin->userinfo['userid'] AND !$vbulletin->options['allowmultiregs'])
                  {
                      eval(standard_error(fetch_error('alreadyregistered', $vbulletin->userinfo['username'], $vbulletin->session->vars['sessionurl'])));
                  }
              
              
                  // if neccessary validate COPPA info
                  if ($vbulletin->options['usecoppa'])
                  {
                      if ($vbulletin->options['checkcoppa'] AND $coppaage)
                      {
                          $dob = explode('-', $coppaage);
                          $month = $dob[0];
                          $day = $dob[1];
                          $year = $dob[2];
                      }
                      else
                      {
                          $month = $vbulletin->input->clean_gpc('r', 'month', TYPE_UINT);
                          $year = $vbulletin->input->clean_gpc('r', 'year', TYPE_UINT);
                          $day = $vbulletin->input->clean_gpc('r', 'day', TYPE_UINT);
                      }
              
              
                      if (!$month OR !$day OR !$year)
                      {
                          $navbar = render_navbar_template($navbits);
                          // Show age controls
                          $templater = vB_Template::create('register_verify_age');
              
              
                          $templater->register_page_templates();
                          $templater->register('url', $url);
                          $templater->register('navbar', $navbar);
                          print_output($templater->render());
                      }
                      else    // verify age
                      {
                          $current['year'] = date('Y');
                          $current['month'] = date('m');
                          $current['day'] = date('d');
              
              
                          if ($year < 1970 OR (mktime(0, 0, 0, $month, $day, $year) <= mktime(0, 0, 0, $current['month'], $current['day'], $current['year'] - 13)))
                          {    // this user is >13
                              $show['coppa'] = false;
                          }
                          else if ($vbulletin->options['usecoppa'] == 2)
                          {
                              if ($vbulletin->options['checkcoppa'])
                              {
                                  vbsetcookie('coppaage', $month . '-' . $day . '-' . $year, 1);
                              }
                              eval(standard_error(fetch_error('under_thirteen_registration_denied')));
                          }
                          else
                          {
                              if ($vbulletin->options['checkcoppa'])
                              {
                                  vbsetcookie('coppaage', $month . '-' . $day . '-' . $year, 1);
                              }
                              $show['coppa'] = true;
                          }
                      }
                  }
                  else
                  {
                      $show['coppa'] = false;
                  }
              
              
                  ($hook = vBulletinHook::fetch_hook('register_form_start')) ? eval($hook) : false;
              
              
                  if ($errorlist)
                  {
                      $checkedoff['adminemail'] = iif($vbulletin->GPC['options']['adminemail'], 'checked="checked"');
                      $checkedoff['showemail'] = iif($vbulletin->GPC['options']['showemail'], 'checked="checked"');
                  }
                  else
                  {
                      $checkedoff['adminemail'] = iif(bitwise($vbulletin->bf_misc_regoptions['adminemail'], $vbulletin->options['defaultregoptions']), 'checked="checked"');
                      $checkedoff['showemail'] = iif(bitwise($vbulletin->bf_misc_regoptions['receiveemail'], $vbulletin->options['defaultregoptions']), 'checked="checked"');
                  }
              
              
                  $htmlonoff = ($vbulletin->options['allowhtml'] ? $vbphrase['on'] : $vbphrase['off']);
                  $bbcodeonoff = ($vbulletin->options['allowbbcode'] ? $vbphrase['on'] : $vbphrase['off']);
                  $imgcodeonoff = ($vbulletin->options['allowbbimagecode'] ? $vbphrase['on'] : $vbphrase['off']);
                  $smiliesonoff = ($vbulletin->options['allowsmilies'] ? $vbphrase['on'] : $vbphrase['off']);
              
              
                  // human verification, which we can bypass if user has been verified on facebook
                  if (fetch_require_hvcheck('register') AND (!is_facebookenabled() OR (is_facebookenabled() AND !vB_Facebook::instance()->userIsLoggedIn())))
                  {
                      require_once(DIR . '/includes/class_humanverify.php');
                      $verify =& vB_HumanVerify::fetch_library($vbulletin);
                      $human_verify = $verify->output_token();
                  }
              
              
                  // Referrer
                  if ($vbulletin->options['usereferrer'] AND !$vbulletin->userinfo['userid'])
                  {
                      exec_switch_bg();
                      if ($errorlist)
                      {
                          $referrername = $vbulletin->GPC['referrername'];
                      }
                      else if ($vbulletin->GPC[COOKIE_PREFIX . 'referrerid'])
                      {
                          if ($referrername = $db->query_first_slave("SELECT username FROM " . TABLE_PREFIX . "user WHERE userid = " . $vbulletin->GPC[COOKIE_PREFIX . 'referrerid']))
                          {
                              $referrername = $referrername['username'];
                          }
                      }
                      $show['referrer'] = true;
                  }
                  else
                  {
                      $show['referrer'] = false;
                  }
              
              
                  // get extra profile fields
                  if ($show['coppa'])
                  {
                      $bgclass1 = 'alt1';
                  }
              
              
                  // get facebook profile data to pre-populate custom profile fields
                  $fb_importform_skip_fields = array();
                  $fb_profilefield_info = array();
                  if (is_facebookenabled() AND vB_Facebook::instance()->userIsLoggedIn())
                  {
                      $fb_profilefield_info = get_vbprofileinfo();
                  }
              
              
                  if ($vbulletin->options['reqbirthday'] AND !$vbulletin->options['usecoppa'])
                  {
                      $fb_importform_skip_fields[] = 'birthday';
                      
                      if ($vbulletin->options['fb_userfield_birthday'] AND !empty($fb_profilefield_info['birthday']) AND !$vbulletin->GPC['day'] AND !$vbulletin->GPC['month'] AND !$vbulletin->GPC['year'])
                      {
                          list($bd_month, $bd_day, $bd_year) = explode('/', $fb_profilefield_info['birthday']);
                          $vbulletin->GPC['day'] = intval($bd_day);
                          $vbulletin->GPC['month'] = intval($bd_month);
                          $vbulletin->GPC['year'] = intval($bd_year);
                      }
                      
                      $show['birthday'] = true;
                      $monthselected[str_pad($vbulletin->GPC['month'], 2, '0', STR_PAD_LEFT)] = 'selected="selected"';
                      $dayselected[str_pad($vbulletin->GPC['day'], 2, '0', STR_PAD_LEFT)] = 'selected="selected"';
                      $year = !$vbulletin->GPC['year'] ? '' : $vbulletin->GPC['year'];
              
              
                      // Default Birthday Privacy option to show all
                      if (empty($errorlist))
                      {
                          $sbselected = array(2 => 'selected="selected"');
                      }
                      $templater = vB_Template::create('modifyprofile_birthday');
                          $templater->register('birthdate', $birthdate);
                          $templater->register('dayselected', $dayselected);
                          $templater->register('monthselected', $monthselected);
                          $templater->register('sbselected', $sbselected);
                          $templater->register('year', $year);
                      $birthdayfields = $templater->render();
                  }
                  else
                  {
                      $show['birthday'] = false;
              
              
                      $birthdayfields = '';
                  }
              
              
                  $customfields_other = '';
                  $customfields_profile = '';
                  $customfields_option = '';
              
              
                  $profilefields = $db->query_read_slave("
                      SELECT *
                      FROM " . TABLE_PREFIX . "profilefield
                      WHERE editable > 0 AND required <> 0
                      ORDER BY displayorder
                  ");
                  while ($profilefield = $db->fetch_array($profilefields))
                  {
                      $profilefieldname = "field$profilefield[profilefieldid]";
                      $optionalname = $profilefieldname . '_opt';
                      $optionalfield = '';
                      $optional = '';
                      $profilefield['title'] = $vbphrase[$profilefieldname . '_title'];
                      $profilefield['description'] = $vbphrase[$profilefieldname . '_desc'];
                      $profilefield['currentvalue'] = '';
              
              
                      if ($errorlist AND isset($vbulletin->GPC['userfield']["$profilefieldname"]))
                      {
                          $profilefield['currentvalue'] = $vbulletin->GPC['userfield']["$profilefieldname"];
                      }
                      
                      // add profile data from facebook as a default if available
                      if ($profilefield['type'] == 'input' OR $profilefield['type'] == 'textarea')
                      {
                          switch($profilefieldname)
                          {
                              case $vbulletin->options['fb_userfield_biography']:
                                  $profilefield['data'] = $fb_profilefield_info['biography'];
                                  $fb_importform_skip_fields[] = 'biography';
                                  break;
              
              
                              case $vbulletin->options['fb_userfield_location']:
                                  $profilefield['data'] = $fb_profilefield_info['location'];
                                  $fb_importform_skip_fields[] = 'location';
                                  break;
              
              
                              case $vbulletin->options['fb_userfield_interests']:
                                  $profilefield['data'] = $fb_profilefield_info['interests'];
                                  $fb_importform_skip_fields[] = 'interests';
                                  break;
              
              
                              case $vbulletin->options['fb_userfield_occupation']:
                                  $profilefield['data'] = $fb_profilefield_info['occupation'];
                                  $fb_importform_skip_fields[] = 'occupation';
                                  break;
                          }
                      }
              
              
                      $custom_field_holder = '';
              
              
                      if ($profilefield['type'] == 'input')
                      {
                          if (empty($profilefield['currentvalue']) AND !empty($profilefield['data']))
                          {
                              $profilefield['currentvalue'] = $profilefield['data'];
                          }
                          else
                          {
                              $profilefield['currentvalue'] = htmlspecialchars_uni($profilefield['currentvalue']);
                          }
                          $templater = vB_Template::create('userfield_textbox');
                              $templater->register('profilefield', $profilefield);
                              $templater->register('profilefieldname', $profilefieldname);
                          $custom_field_holder = $templater->render();
                      }
                      else if ($profilefield['type'] == 'textarea')
                      {
                          if (empty($profilefield['currentvalue']) AND !empty($profilefield['data']))
                          {
                              $profilefield['currentvalue'] = $profilefield['data'];
                          }
                          else
                          {
                              $profilefield['currentvalue'] = htmlspecialchars_uni($profilefield['currentvalue']);
                          }
                          $templater = vB_Template::create('userfield_textarea');
                              $templater->register('profilefield', $profilefield);
                              $templater->register('profilefieldname', $profilefieldname);
                          $custom_field_holder = $templater->render();
                      }
                      else if ($profilefield['type'] == 'select')
                      {
                          $data = unserialize($profilefield['data']);
                          $selectbits = '';
                          foreach ($data AS $key => $val)
                          {
                              $key++;
                              $selected = '';
                              if (isset($profilefield['currentvalue']))
                              {
                                  if (trim($val) == $profilefield['currentvalue'])
                                  {
                                      $selected = 'selected="selected"';
                                      $foundselect = 1;
                                  }
                              }
                              else if ($profilefield['def'] AND $key == 1)
                              {
                                  $selected = 'selected="selected"';
                                  $foundselect = 1;
                              }
              
              
                              $templater = vB_Template::create('userfield_select_option');
                                  $templater->register('key', $key);
                                  $templater->register('selected', $selected);
                                  $templater->register('val', $val);
                              $selectbits .= $templater->render();
                          }
              
              
                          if ($profilefield['optional'])
                          {
                              if (!$foundselect AND $profilefield['currentvalue'])
                              {
                                  $optional = htmlspecialchars_uni($profilefield['currentvalue']);
                              }
                              $templater = vB_Template::create('userfield_optional_input');
                                  $templater->register('optional', $optional);
                                  $templater->register('optionalname', $optionalname);
                                  $templater->register('profilefield', $profilefield);
                                  $templater->register('tabindex', $tabindex);
                              $optionalfield = $templater->render();
                          }
                          if (!$foundselect)
                          {
                              $selected = 'selected="selected"';
                          }
                          else
                          {
                              $selected = '';
                          }
                          $show['noemptyoption'] = iif($profilefield['def'] != 2, true, false);
                          $templater = vB_Template::create('userfield_select');
                              $templater->register('optionalfield', $optionalfield);
                              $templater->register('profilefield', $profilefield);
                              $templater->register('profilefieldname', $profilefieldname);
                              $templater->register('selectbits', $selectbits);
                              $templater->register('selected', $selected);
                          $custom_field_holder = $templater->render();
                      }
                      else if ($profilefield['type'] == 'radio')
                      {
                          $data = unserialize($profilefield['data']);
                          $radiobits = '';
                          $foundfield = 0;
              
              
                          foreach ($data AS $key => $val)
                          {
                              $key++;
                              $checked = '';
                              if (!$profilefield['currentvalue'] AND $key == 1 AND $profilefield['def'] == 1)
                              {
                                  $checked = 'checked="checked"';
                              }
                              else if (trim($val) == $profilefield['currentvalue'])
                              {
                                  $checked = 'checked="checked"';
                                  $foundfield = 1;
                              }
                              $templater = vB_Template::create('userfield_radio_option');
                                  $templater->register('checked', $checked);
                                  $templater->register('key', $key);
                                  $templater->register('profilefieldname', $profilefieldname);
                                  $templater->register('val', $val);
                              $radiobits .= $templater->render();
                          }
                          if ($profilefield['optional'])
                          {
                              if (!$foundfield AND $profilefield['currentvalue'])
                              {
                                  $optional = htmlspecialchars_uni($profilefield['currentvalue']);
                              }
                              $templater = vB_Template::create('userfield_optional_input');
                                  $templater->register('optional', $optional);
                                  $templater->register('optionalname', $optionalname);
                                  $templater->register('profilefield', $profilefield);
                                  $templater->register('tabindex', $tabindex);
                              $optionalfield = $templater->render();
                          }
                          $templater = vB_Template::create('userfield_radio');
                              $templater->register('optionalfield', $optionalfield);
                              $templater->register('profilefield', $profilefield);
                              $templater->register('profilefieldname', $profilefieldname);
                              $templater->register('radiobits', $radiobits);
                          $custom_field_holder = $templater->render();
                      }
                      else if ($profilefield['type'] == 'checkbox')
                      {
                          $data = unserialize($profilefield['data']);
                          $radiobits = '';
                          foreach ($data AS $key => $val)
                          {
                              if ($profilefield['currentvalue'] & pow(2,$key))
                              {
                                  $checked = 'checked="checked"';
                              }
                              else
                              {
                                  $checked = '';
                              }
                              $key++;
                              $templater = vB_Template::create('userfield_checkbox_option');
                                  $templater->register('checked', $checked);
                                  $templater->register('key', $key);
                                  $templater->register('profilefieldname', $profilefieldname);
                                  $templater->register('val', $val);
                              $radiobits .= $templater->render();
                          }
                          $templater = vB_Template::create('userfield_radio');
                              $templater->register('optionalfield', $optionalfield);
                              $templater->register('profilefield', $profilefield);
                              $templater->register('profilefieldname', $profilefieldname);
                              $templater->register('radiobits', $radiobits);
                          $custom_field_holder = $templater->render();
                      }
                      else if ($profilefield['type'] == 'select_multiple')
                      {
                          $data = unserialize($profilefield['data']);
                          $selectbits = '';
                          $selected = '';
              
              
                          if ($profilefield['height'] == 0)
                          {
                              $profilefield['height'] = count($data);
                          }
              
              
                          foreach ($data AS $key => $val)
                          {
                              if ($profilefield['currentvalue'] & pow(2, $key))
                              {
                                  $selected = 'selected="selected"';
                              }
                              else
                              {
                                  $selected = '';
                              }
                              $key++;
                              $templater = vB_Template::create('userfield_select_option');
                                  $templater->register('key', $key);
                                  $templater->register('selected', $selected);
                                  $templater->register('val', $val);
                              $selectbits .= $templater->render();
                          }
                          $templater = vB_Template::create('userfield_select_multiple');
                              $templater->register('profilefield', $profilefield);
                              $templater->register('profilefieldname', $profilefieldname);
                              $templater->register('selectbits', $selectbits);
                          $custom_field_holder = $templater->render();
                      }
              
              
                      if ($profilefield['required'] == 2)
                      {
                          // not required to be filled in but still show
                          $profile_variable =& $customfields_other;
                      }
                      else // required to be filled in
                      {
                          if ($profilefield['form'])
                          {
                              $profile_variable =& $customfields_option;
                          }
                          else
                          {
                              $profile_variable =& $customfields_profile;
                          }
                      }
              
              
                      $templater = vB_Template::create('userfield_wrapper');
                          $templater->register('custom_field_holder', $custom_field_holder);
                          $templater->register('profilefield', $profilefield);
                      $profile_variable .= $templater->render();
                  }
              
              
                  $usecoppa = $show['coppa'];
                  $show['customfields_profile'] = ($customfields_profile OR $show['birthday']) ? true : false;
                  $show['customfields_option'] = ($customfields_option) ? true : false;
                  $show['customfields_other'] = ($customfields_other) ? true : false;
                  $show['email'] = ($vbulletin->options['enableemail'] AND $vbulletin->options['displayemails']) ? true : false;
              
              
                  $vbulletin->input->clean_array_gpc('p', array(
                      'timezoneoffset' => TYPE_NUM
                  ));
              
              
                  // where do we send in timezoneoffset?
                  if ($vbulletin->GPC['timezoneoffset'])
                  {
                      $timezonesel = $vbulletin->GPC['timezoneoffset'];
                  }
                  else
                  {
                      $timezonesel = $vbulletin->options['timeoffset'];
                  }
              
              
                  // if applicable, set up some facebook data
                  if (is_facebookenabled())
                  {
                      // make sure current user is logged in
                      if (vB_Facebook::instance()->userIsLoggedIn())
                      {
                          // if users are allowed to import info from facebook, generate the form
                          $fbimportform = construct_fbimportform('register', $fb_importform_skip_fields);
              
              
                          // populate form fields with information from facebook if its available
                          $fb_userinfo = vB_Facebook::instance()->getFbUserInfo();
                          if (!empty($fb_userinfo))
                          {
                              $show['fb_email'] = (!empty($fb_userinfo['email']) ? true : false);
                              $username = (!empty($fb_userinfo['name']) ? htmlspecialchars_uni($fb_userinfo['name']) : $username);
                              $email = (!empty($fb_userinfo['email'])?$fb_userinfo['email']:$email);
                              $emailconfirm = (!empty($fb_userinfo['email'])?$fb_userinfo['email']:$emailconfirm);
                              $timezonesel = (!empty($fb_userinfo['timezone'])?$fb_userinfo['timezone']:$timezonesel);
                              $fbname = $fb_userinfo['name'];
                              $fbprofileurl = get_fbprofileurl();
                              $fbprofilepicurl = !empty($fb_userinfo['pic']) ? $fb_userinfo['pic'] : get_fbprofilepicurl();;
                          }
                      }
                  }
              
              
                  require_once(DIR . '/includes/functions_misc.php');
                  $timezoneoptions = '';
                  foreach (fetch_timezone() AS $optionvalue => $timezonephrase)
                  {
                      $optiontitle = $vbphrase["$timezonephrase"];
                      $optionselected = iif($optionvalue == $timezonesel, 'selected="selected"', '');
                      $timezoneoptions .= render_option_template($optiontitle, $optionvalue, $optionselected, $optionclass);
                  }
                  $templater = vB_Template::create('modifyoptions_timezone');
                      $templater->register('selectdst', $selectdst);
                      $templater->register('timezoneoptions', $timezoneoptions);
                  $timezoneoptions = $templater->render();
              
              
                  $navbits['register.php' . $vbulletin->session->vars['sessionurl_q']] = $vbphrase['register'];
                  $navbar = render_navbar_template($navbits);
              
              
                  ($hook = vBulletinHook::fetch_hook('register_form_complete')) ? eval($hook) : false;
              
              
                  $templater = vB_Template::create('register');
                      $templater->register_page_templates();
                      $templater->register('navbar', $navbar);
                      $templater->register('birthdayfields', $birthdayfields);
                      $templater->register('checkedoff', $checkedoff);
                      $templater->register('customfields_option', $customfields_option);
                      $templater->register('customfields_other', $customfields_other);
                      $templater->register('customfields_profile', $customfields_profile);
                      $templater->register('day', $day);
                      $templater->register('email', $email);
                      $templater->register('emailconfirm', $emailconfirm);
                      $templater->register('errorlist', $errorlist);
                      $templater->register('human_verify', $human_verify);
                      $templater->register('month', $month);
                      $templater->register('parentemail', $parentemail);
                      $templater->register('password', $password);
                      $templater->register('passwordconfirm', $passwordconfirm);
                      $templater->register('referrername', $referrername);
                      $templater->register('timezoneoptions', $timezoneoptions);
                      $templater->register('url', $url);
                      $templater->register('username', $username);
                      $templater->register('year', $year);
                      $templater->register('fbname', $fbname);
                      $templater->register('fbprofileurl', $fbprofileurl);
                      $templater->register('fbprofilepicurl', $fbprofilepicurl);
                      $templater->register('fbimportform', $fbimportform);
                  print_output($templater->render());
              }
              
              
              // ############################### start activate form ###############################
              if ($vbulletin->GPC['a'] == 'ver')
              {
                  // get username and password
                  if (!$vbulletin->userinfo['userid'])
                  {
                      $vbulletin->userinfo['username'] = '';
                  }
              
              
                  if ($permissions['forumpermissions'] & $vbulletin->bf_ugp_forumpermissions['canview'])
                  {
                      $navbits = construct_navbits(array('' => $vbphrase['activate_your_account']));
                      $navbar = render_navbar_template($navbits);
                  }
                  else
                  {
                      $navbar = '';
                  }
              
              
                  ($hook = vBulletinHook::fetch_hook('register_activateform')) ? eval($hook) : false;
              
              
                  $templater = vB_Template::create('activateform');
                      $templater->register_page_templates();
                      $templater->register('navbar', $navbar);
                  print_output($templater->render());
              }
              
              
              // ############################### start activate ###############################
              if ($_REQUEST['do'] == 'activate')
              {
                  $vbulletin->input->clean_array_gpc('r', array(
                      'username'        => TYPE_NOHTML,
                      'activateid'    => TYPE_STR,
              
              
                      // These three are cleaned so that they will exist and not be overwritten in the next step
              
              
                      'u'                => TYPE_UINT,
                      'a'                => TYPE_NOHTML,
                      'i'                => TYPE_STR,
                  ));
              
              
                  if ($userinfo = $db->query_first("SELECT userid FROM " . TABLE_PREFIX . "user WHERE username='" . $db->escape_string($vbulletin->GPC['username']) . "'"))
                  {
                      $vbulletin->GPC['u'] = $userinfo['userid'];
                      $vbulletin->GPC['a'] = 'act';
                      $vbulletin->GPC['i'] = $vbulletin->GPC['activateid'];
                  }
                  else
                  {
                      eval(standard_error(fetch_error('badlogin', $vbulletin->options['bburl'], $vbulletin->session->vars['sessionurl'], $strikes)));
                  }
              }
              
              
              if ($vbulletin->GPC['a'] == 'act')
              {
                  $vbulletin->input->clean_array_gpc('r', array(
                      'u'        => TYPE_UINT,
                      'i'        => TYPE_STR,
                  ));
              
              
                  $userinfo = verify_id('user', $vbulletin->GPC['u'], 1, 1);
              
              
                  ($hook = vBulletinHook::fetch_hook('register_activate_start')) ? eval($hook) : false;
              
              
                  if ($userinfo['usergroupid'] == 3)
                  {
                      // check valid activation id
                      $user = $db->query_first("
                          SELECT activationid, usergroupid, emailchange
                          FROM " . TABLE_PREFIX . "useractivation
                          WHERE activationid = '" . $db->escape_string($vbulletin->GPC['i']) . "'
                              AND userid = $userinfo[userid]
                              AND type = 0
                      ");
                      if (!$user OR $vbulletin->GPC['i'] != $user['activationid'])
                      {
                          // send email again
                          eval(standard_error(fetch_error('invalidactivateid', $vbulletin->session->vars['sessionurl'], $vbulletin->options['contactuslink'])));
                      }
              
              
                      // delete activationid
                      $db->query_write("DELETE FROM " . TABLE_PREFIX . "useractivation WHERE userid=$userinfo[userid] AND type=0");
              
              
                      /*
                      This shouldn't be needed any more since we handle this during registration
                      if ($userinfo['coppauser'] OR ($vbulletin->options['moderatenewmembers'] AND !$userinfo['posts']))
                      {
                          // put user in moderated group
                          $user['usergroupid'] = 4;
                      }*/
              
              
                      if (empty($user['usergroupid']))
                      {
                          $user['usergroupid'] = 2; // sanity check
                      }
              
              
                      // ### DO THE UG/TITLE UPDATE ###
              
              
                      $getusergroupid = iif($userinfo['displaygroupid'] != $userinfo['usergroupid'], $userinfo['displaygroupid'], $user['usergroupid']);
              
              
                      $user_usergroup =& $vbulletin->usergroupcache["$user[usergroupid]"];
                      $display_usergroup =& $vbulletin->usergroupcache["$getusergroupid"];
              
              
                      // init user data manager
                      $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
                      $userdata->set_existing($userinfo);
                      $userdata->set('usergroupid', $user['usergroupid']);
                      $userdata->set_usertitle(
                          $user['customtitle'] ? $user['usertitle'] : '',
                          false,
                          $display_usergroup,
                          ($user_usergroup['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canusecustomtitle']) ? true : false,
                          ($user_usergroup['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['cancontrolpanel']) ? true : false
                      );
              
              
                      require_once(DIR . '/includes/functions_ranks.php');
                      if ($user['userid'] == $vbulletin->userinfo['userid'])
                      {
                          $vbulletin->userinfo['usergroupid'] = $user['usergroupid'];
                          $vbulletin->userinfo['displaygroupid'] = $user['usergroupid'];
                      }
              
              
                      // see 3.6.x bug #176
                      //$userinfo['usergroupid'] = $user['usergroupid'];
              
              
                      ($hook = vBulletinHook::fetch_hook('register_activate_process')) ? eval($hook) : false;
              
              
                      if ($userinfo['coppauser'] OR ($vbulletin->options['moderatenewmembers'] AND !$userinfo['posts']))
                      {
                          // put user in moderated group
                          $userdata->save();
                          eval(standard_error(fetch_error('moderateuser', $userinfo['username'], fetch_seo_url('forumhome', array())), '', false));
                      }
                      else
                      {
                          // activate account
                          $userdata->save();
              
              
                          // rebuild stats so new user displays on forum home
                          require_once(DIR . '/includes/functions_databuild.php');
                          build_user_statistics();
              
              
                          $username = unhtmlspecialchars($userinfo['username']);
                          if (!$user['emailchange'])
                          {
                              if ($vbulletin->options['welcomemail'])
                              {
                                  eval(fetch_email_phrases('welcomemail'));
                                  vbmail($userinfo['email'], $subject, $message);
                              }
              
              
                              $userdata->send_welcomepm();
                          }
              
              
                          if ($user['emailchange'])
                          {
                              eval(standard_error(fetch_error('emailchanged', htmlspecialchars_uni($userinfo['email'])), '', false));
                          }
                          else
                          {
                              
                              eval(standard_error(fetch_error('registration_complete', $userinfo['username'], 
                                  $vbulletin->session->vars['sessionurl'], fetch_seo_url('forumhome', array())), '', false));
                          }
                      }
                  }
                  else
                  {
                      if ($userinfo['usergroupid'] == 4)
                      {
                          // In Moderation Queue
                          eval(standard_error(fetch_error('activate_moderation'), '', false));
                      }
                      else
                      {
                          // Already activated
                          eval(standard_error(fetch_error('activate_wrongusergroup')));
                      }
                  }
              
              
              }
              
              
              // ############################### start request activation email ###############################
              if ($_REQUEST['do'] == 'requestemail')
              {
                  $email = $vbulletin->input->clean_gpc('r', 'email', TYPE_NOHTML);
              
              
                  if ($vbulletin->userinfo['userid'] AND $vbulletin->GPC['email'] === '')
                  {
                      $email = $vbulletin->userinfo['email'];
                  }
                  else
                  {
                      $email = $vbulletin->GPC['email'];
                  }
              
              
                  if ($permissions['forumpermissions'] & $vbulletin->bf_ugp_forumpermissions['canview'])
                  {
                      $navbits = construct_navbits(array(
                          'register.php?' . $vbulletin->session->vars['sessionurl'] . 'a=ver' => $vbphrase['activate_your_account'],
                          '' => $vbphrase['email_activation_codes']
                      ));
                      $navbar = render_navbar_template($navbits);
                  }
                  else
                  {
                      $navbar = '';
                  }
              
              
                  ($hook = vBulletinHook::fetch_hook('register_requestemail')) ? eval($hook) : false;
              
              
                  $url =& $vbulletin->url;
                  $templater = vB_Template::create('activate_requestemail');
                      $templater->register_page_templates();
                      $templater->register('email', $email);
                      $templater->register('navbar', $navbar);
                      $templater->register('url', $url);
                  print_output($templater->render());
              }
              
              
              // ############################### process request activation email #############################
              if ($_POST['do'] == 'emailcode')
              {
                  $vbulletin->input->clean_gpc('r', 'email', TYPE_NOHTML);
              
              
                  $users = $db->query_read_slave("
                      SELECT user.userid, user.usergroupid, username, email, activationid, languageid
                      FROM " . TABLE_PREFIX . "user AS user
                      LEFT JOIN " . TABLE_PREFIX . "useractivation AS useractivation ON(user.userid = useractivation.userid AND type = 0)
                      WHERE email = '" . $db->escape_string($vbulletin->GPC['email']) . "'"
                  );
              
              
                  if ($db->num_rows($users))
                  {
                      while ($user = $db->fetch_array($users))
                      {
                          if ($user['usergroupid'] == 3)
                          { // only do it if the user is in the correct usergroup
                              // make random number
                              if (empty($user['activationid']))
                              { //none exists so create one
                                  $user['activationid'] = build_user_activation_id($user['userid'], 2, 0);
                              }
                              else
                              {
                                  $user['activationid'] = fetch_random_string(40);
                                  $db->query_write("
                                      UPDATE " . TABLE_PREFIX . "useractivation SET
                                          dateline = " . TIMENOW . ",
                                          activationid = '$user[activationid]'
                                      WHERE userid = $user[userid]
                                          AND type = 0
                                  ");
                              }
              
              
                              $userid = $user['userid'];
                              $username = $user['username'];
                              $activateid = $user['activationid'];
              
              
                              ($hook = vBulletinHook::fetch_hook('register_emailcode_user')) ? eval($hook) : false;
              
              
                              eval(fetch_email_phrases('activateaccount', $user['languageid']));
              
              
                              vbmail($user['email'], $subject, $message, true);
                          }
                      }
              
              
                      eval(print_standard_redirect('redirect_lostactivatecode', true, true));
                  }
                  else
                  {
                      eval(standard_error(fetch_error('invalidemail', $vbulletin->options['contactuslink'])));
                  }
              
              
              }
              
              
              // ############################### start coppa form ###############################
              if ($_REQUEST['do'] == 'coppaform')
              {
                  if ($vbulletin->userinfo['userid'])
                  {
                      $vbulletin->userinfo['signature'] = nl2br($vbulletin->userinfo['signature']);
              
              
                      if ($vbulletin->userinfo['showemail'])
                      {
                          $vbulletin->userinfo['showemail'] = $vbphrase['no'];
                      }
                      else
                      {
                          $vbulletin->userinfo['showemail'] = $vbphrase['yes'];
                      }
                  }
                  else
                  {
                      $vbulletin->userinfo['username'] = '';
                      $vbulletin->userinfo['homepage'] = 'http://';
                  }
              
              
                  ($hook = vBulletinHook::fetch_hook('register_coppaform')) ? eval($hook) : false;
              
              
                  $templater = vB_Template::create('register_coppaform');
                  print_output($templater->render());
              }
              
              
              // ############################### start delete activation request ###############################
              if ($_REQUEST['do'] == 'deleteactivation')
              {
                  $vbulletin->input->clean_array_gpc('r', array(
                      'u'        => TYPE_UINT,
                      'i'        => TYPE_STR,
                  ));
              
              
                  $userinfo = verify_id('user', $vbulletin->GPC['u'], 1, 1);
              
              
                  if ($userinfo['usergroupid'] == 3)
                  {
                      // check valid activation id
                      $user = $db->query_first("
                          SELECT userid, activationid, usergroupid
                          FROM " . TABLE_PREFIX . "useractivation
                          WHERE activationid = '" . $db->escape_string($vbulletin->GPC['i']) . "'
                              AND userid = $userinfo[userid]
                              AND type = 0
                      ");
              
              
                      if (!$user OR $vbulletin->GPC['i'] != $user['activationid'])
                      {
                          eval(standard_error(fetch_error('invalidactivateid', $vbulletin->session->vars['sessionurl'], $vbulletin->options['contactuslink'])));
                      }
              
              
                      eval(standard_error(fetch_error('activate_deleterequest', $user['activationid'], $user['userid'])));
                  }
                  else
                  {
                      eval(standard_error(fetch_error('activate_wrongusergroup')));
                  }
              }
              
              
              // ############################### start kill activation request ###############################
              if ($_REQUEST['do'] == 'killactivation')
              {
                  $vbulletin->input->clean_array_gpc('r', array(
                      'u'        => TYPE_UINT,
                      'i'        => TYPE_STR,
                  ));
              
              
                  $userinfo = verify_id('user', $vbulletin->GPC['u'], 1, 1);
              
              
                  if ($userinfo['usergroupid'] == 3)
                  {
                      // check valid activation id
                      $user = $db->query_first("
                          SELECT activationid, usergroupid
                          FROM " . TABLE_PREFIX . "useractivation
                          WHERE activationid = '" . $db->escape_string($vbulletin->GPC['i']) . "'
                              AND userid = $userinfo[userid]
                              AND type = 0
                      ");
              
              
                      if (!$user OR $vbulletin->GPC['i'] != $user['activationid'])
                      {
                          eval(standard_error(fetch_error('invalidactivateid', $vbulletin->session->vars['sessionurl'], $vbulletin->options['contactuslink'])));
                      }
              
              
                      $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_SILENT);
                      $userdata->set_existing($userinfo);
                      $userdata->set_bitfield('options', 'receiveemail', 0);
                      $userdata->set_bitfield('options', 'noactivationmails', 1);
                      $userdata->save();
              
              
                      eval(standard_error(fetch_error('activate_requestdeleted')));
                  }
                  else
                  {
                      eval(standard_error(fetch_error('activate_wrongusergroup')));
                  }
              }
              
              
              /*======================================================================*\
              || ####################################################################
              || # CVS: $RCSfile$ - $Revision: 42666 $
              || ####################################################################
              \*======================================================================*/

              Comentario


              • #8
                Hice todo y no me sale , al crearme el usuario sigue siendo USUARIO hombre , y no mujer con su respectivo color.
                Dejo el code me dicen si hice algo mal

                if ($vbulletin->options['verifyemail']) {
                $newusergroupid = 3;
                }
                else if ($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser'])
                {
                $newusergroupid = 4;
                }
                else if ($vbulletin->userinfo['field17'] == "Mujer")
                {
                $newusergroupid = 9;
                }
                else
                {
                $newusergroupid = 2;

                }


                mi field es 17 y mi id de las mujeres es 9.

                vB version 4.1.8

                Comentario


                • #9
                  Originalmente escrito por snake23, post: 11206
                  estube viendo y lo que hace es mandar el usuario nuevo al grupo " (COPPA) Users Awaiting Moderation "
                  intente cambiando el id de ese grupo al de Registradas.. pero el resultado es el mismo ..
                  acontinuacion adjunto mi register.php ya que no se que es lo que estoy haciendo mal ... disculpa las molestias ..

                  Código:
                  <?php/*======================================================================*\
                              $username = htmlspecialchars_uni($vbulletin->GPC['username']);
                              $email = htmlspecialchars_uni($vbulletin->GPC['email']);
                  
                  
                              // sort out emails and usergroups
                              if ($vbulletin->options['verifyemail'])
                              if ($vbulletin->options['verifyemail'])
                              {
                                  if ($vbulletin->userinfo['field5'] == "Mujer")
                                  {
                                      $activateid = build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 4 : 16), 0);
                                  }
                                  else
                                  {    
                                      $activateid = build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 4 : 2), 0);
                                  }
                  
                  
                                  eval(fetch_email_phrases('activateaccount'));
                  
                  
                                  vbmail($email, $subject, $message, true);
                              }  
                              else if ($newusergroupid == 2)
                              {
                                  if ($vbulletin->options['welcomemail'])
                                  {
                                      eval(fetch_email_phrases('welcomemail'));
                                      vbmail($email, $subject, $message);
                                  }
                              }
                  
                  
                              ($hook = vBulletinHook::fetch_hook('register_addmember_complete')) ? eval($hook) : false;
                  Esta expresión $activateid = build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 4 : 16), 0); hace que el usuario vaya al grupo 4 (usuario coppa) o al 16 si no lo es y si se cumple la condición if ($vbulletin->userinfo['field5'] == "Mujer") ya que en caso contrario lo manda al grupo 2.

                  Repasa que la expresión esté correcta para la expresión Mujer que hayas puesto en el campo, que el id del campo sea el 5 y que el grupo de Mujer sea el id 16.

                  Salud2

                  Comentario


                  • #10
                    Originalmente escrito por Yhooon, post: 0
                    Hice todo y no me sale , al crearme el usuario sigue siendo USUARIO hombre , y no mujer con su respectivo color.
                    Dejo el code me dicen si hice algo mal
                    Código:
                    if ($vbulletin->options['verifyemail']) {
                    $newusergroupid = 3;
                    }
                    else if ($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser'])
                    {
                    $newusergroupid = 4;
                    }
                    else if ($vbulletin->userinfo['field17'] == "Mujer")
                    {
                    $newusergroupid = 9;
                    }
                    else
                    {
                    $newusergroupid = 2;
                    
                    }


                    mi field es 17 y mi id de las mujeres es 9.

                    vB version 4.1.8
                    Siguiendo las instrucciones, éste es el código:
                    Código:
                    if ($vbulletin->options['verifyemail'])
                                {
                                    if ($vbulletin->userinfo['field17'] == "Mujer")
                                    {
                                        $activateid = build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 4 : 9), 0);
                                    }
                                    else
                                    {    
                                        $activateid = build_user_activation_id($userid, (($vbulletin->options['moderatenewmembers'] OR $vbulletin->GPC['coppauser']) ? 4 : 2), 0);
                                    }
                    
                                    eval(fetch_email_phrases('activateaccount'));
                    
                                    vbmail($email, $subject, $message, true);
                                }
                    Salud2

                    Comentario


                    • #11
                      Lastima que no funcione en vbulletin 4.2.0

                      Comentario


                      • #12
                        Intentaré hacerlo rular.

                        Salud2

                        Comentario


                        • #13
                          buenas, lo habeis podido hacer funcionar en 4.2 ??

                          Comentario

                          Trabajando...
                          X