¡Bienvenido al Foro! ¿Aún no estás registrado?, deberás registrarte antes de poder usar el Chat, Comentar y Descargar en el Foro.
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Inicio dual (login & registro)
#1

8
Mejor respuesta del mensaje Inicio dual (login & registro)Este "mod" es dual ya que tiene el login y registro, esta realizado de forma que al ingresar a al sitio tengas que registrarte o loguearte de forma obligatoria...

una vista previa de como quedará
[img]Registrate o inicia tu sesión para ver este contenido[/img]

Bueno comencemos 
1 - En header.php buscamos
   define('TS_TEMA'$tsTema); 

y debajo agregamos
   # El tipo de inicio 
   define('INICIO_DUAL'TRUE); 

2 - Buscamos en index.php
// Checamos...
if($tsCore->settings['c_allow_portal'] == && $tsUser->is_member == true && $_GET['do'] == 'portal') {
   // Portal/mi
   include('inc/php/portal.php');
} else {
   // Home
   include('inc/php/posts.php');


y la reemplazamos por
/**
 * Dependiendo de la configuración
 * Solo aplicará el dual si ambos son "TRUE"
*/
if(INICIO_DUAL AND !$tsUser->is_member) include 'inc/php/dual.php';
else {
   // Checamos...
   if(intval($tsCore->settings['c_allow_portal']) == && $tsUser->is_member == true && $_GET['do'] == 'portal') {
      // Portal/mi
      include('inc/php/portal.php');
   } else {
      // Home
      include('inc/php/posts.php');
   }



3 - Debes agradecer para ver el contenido... y los ponen en las rutas correspondientes
 * dual.php en inc/php/
 * dual.css en tema/css/
 * dual.js en tema/js/
 * t.dual.tpl en tema/templates/

4 - Ir a inc/class/c.registro.php y buscan
        $tsData = array(
            'user_nick' => $tsCore->parseBadWords($_POST['nick']),
            'user_password' => $tsCore->parseBadWords($_POST['password']),
            'user_email' => $_POST['email'],
            'user_dia' => $_POST['dia'],
            'user_mes' => $_POST['mes'],
            'user_anio' => $_POST['anio'],
            'user_sexo' => $_POST['sexo'] == 'f' '0' 1,
            'user_pais' => strtoupper($_POST['pais']),
            'user_estado' => $_POST['estado'],
            'user_terminos' => $_POST['terminos'],
            'user_captcha' => $_POST['g-recaptcha-response'],
            'user_registro' => time(),
        ); 

y la reemplazan por
        $tsData = array(
            'user_nick' => $tsCore->parseBadWords($_POST['nick']),
            'user_password' => $tsCore->parseBadWords($_POST['password']),
            'user_email' => $_POST['email'],
            'user_sexo' => $_POST['sexo'] == 'f' '0' 1,
            'user_terminos' => $_POST['terminos'],
            'user_captcha' => $_POST['response'],
            'user_registro' => time(),
        ); 

un poco más abajo buscan (Cabe recalcar que deben tener las claves del reCaptcha v3 agregadas)
        /** reCAPTCHA **/
        $recaptcha 'Registrate o inicia tu sesión para ver este contenido . $tsCore->settings['skey'] . '&response=' . $tsData['user_captcha'] . '&remoteip=' . $tsCore->getIP();
        // Obtener respuesta
        $response = file_get_contents($recaptcha);
        // Extraer resultado
        $ext1 = explode('"success"
:', $response);
        $ext2 = explode('
,', $ext1[1]);
        // Comprobar resultado
        $valid = trim($ext2[0]);
        // Devolver respuesta si es incorrecta
        if ($valid == '
false') {
            return '
recaptchaNo hemos podido validar tu humanidad';
        } 

y la reemplazan por
        /**
         * Comprobamos el recaptcha v3
        */
      $response $tsCore->reCaptcha($tsData['user_captcha']);
      if (!$response) return 'recaptcha: No hemos podido validar tu humanidad'

más abajo buscamos
            // INSERTAMOS EL PERFIL
            db_exec(array(__FILE____LINE__), 'query''INSERT INTO `u_perfil` (`user_id`, `user_dia`, `user_mes`, `user_ano`, `user_pais`, `user_estado`, `user_sexo`) VALUES (\''.(int)$tsData['user_id'].'\', \''.(int)$tsData['user_dia'].'\', \''.(int)$tsData['user_mes'].'\', \''.(int)$tsData['user_anio'].'\', \''.$tsCore->setSecure($tsData['user_pais']).'\', \''.$tsCore->setSecure($tsData['user_estado']).'\', \''.(int)$tsData['user_sexo'].'\')');
            db_exec(array(__FILE____LINE__), 'query''INSERT INTO `u_portal` (`user_id`) VALUES (\''.$tsData['user_id'].'\')'); 

y la reemplazamos por
         db_exec([__FILE____LINE__], "query""INSERT INTO u_perfil (user_id, p_avatar, user_sexo) VALUES({$tsData['user_id']}, 1, {$tsData['user_sexo']})");
         db_exec([__FILE____LINE__], "query""INSERT INTO u_portal (user_id) VALUES({$tsData['user_id']})");
         
         
# Generamos automaticamente un avatar
         $avatar "Registrate o inicia tu sesión para ver este contenido";
         $copy "../../files/avatar/$2_$3.jpg";
         $sizes = [50120];
         foreach ($sizes as $size) {
             copy(
                 str_replace('$1'$tsData['user_nick'], $avatar), 
                 str_replace
(['$2''$3'], [$tsData['user_id'], $size], $copy)
             )
         

5 - Luego en inc/class/c.core.php buscamos
   /*
       getIP
   */
   function getIP(){ 

y arriba agregamos
   # Función para comprobar reCaptcha v3
    public function reCaptcha(string $publico '') {
       $http http_build_query([
           'secret' => $this->settings["skey"], 
           
'response' => $publico, 
           
'remoteip' => $this->getIP()
       ]);
       $init curl_init();
      curl_setopt($initCURLOPT_URL"Registrate o inicia tu sesión para ver este contenido");
      curl_setopt($initCURLOPT_POST1);
      curl_setopt($initCURLOPT_POSTFIELDS$http);
      curl_setopt($initCURLOPT_RETURNTRANSFERtrue);
      $response curl_exec($init);
      curl_close($init);
      return json_decode($responsetrue);
    

Y eso sería todo, espero no olvidarme de nada!
Cualquier problema o duda comenten!
Responder
#2

1
Gracias, vale para cualquier tema?, uso el tema identi.
Responder
#3

2
(02-16-2022, 09:30 PM)Ezequiel escribió: Debes agradecer para ver el contenido...Gracias, vale para cualquier tema?, uso el tema identi.

Todo excepto el diseño, lo tendrías que adaptar un poco...y tiene el dual.css el cual trate de hacerlo de forma neutra, o sea valida para todo los temas.
Responder
#4

0
Hola, gracias por el complemento.
¿Se puede poner que no sea obligatorio al entrar en la web?, que se vea cuando le des al bóton logín o registro.
Saludos
Responder
#5

1
(04-11-2022, 07:28 AM)Viyumo escribió: Debes agradecer para ver el contenido...Hola, gracias por el complemento.
¿Se puede poner que no sea obligatorio al entrar en la web?, que se vea cuando le des al bóton logín o registro.
Saludos

Hola, si esta detallado en el punto 1 y 2... Al hacer desde un botón tienes que agregar esto al .htaccess, buscas 
#EXTRAS 
y arriba pegas
RewriteRule ^registro/$ inc/php/duo.php?pagina=registro [QSA,L]
RewriteRule ^login/$ inc/php/duo.php?pagina=login [QSA,L
Responder
#6

0
(04-13-2022, 02:42 PM)Miguel92 escribió: Debes agradecer para ver el contenido...
(04-11-2022, 07:28 AM)Viyumo escribió: Debes agradecer para ver el contenido...Hola, gracias por el complemento.
¿Se puede poner que no sea obligatorio al entrar en la web?, que se vea cuando le des al bóton logín o registro.
Saludos

Hola, si esta detallado en el punto 1 y 2... Al hacer desde un botón tienes que agregar esto al .htaccess, buscas 
 
#EXTRAS 
y arriba pegas
RewriteRule ^registro/$ inc/php/duo.php?pagina=registro [QSA,L]
RewriteRule ^login/$ inc/php/duo.php?pagina=login [QSA,L

Gracias
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)