¡Bienvenido a PHPost!

Para participar en el foro, descargar complementos y acceder al chat, es necesario tener una cuenta activa. Regístrate con un correo válido para completar la activación.

⚖️ Aviso Legal y Normas de Contenido

PHPost.es es una comunidad dedicada al soporte, desarrollo y difusión de software libre para la creación y administración de comunidades en línea.

Compromiso con la legalidad: No se permite la publicación, promoción o distribución de software pirateado, contenido warez ni material que infrinja derechos de autor o cualquier otra normativa aplicable.

Responsabilidad: Cada usuario es responsable del contenido alojado en su propio sitio web y del uso que haga del software. Los administradores y desarrolladores de Risus Nova no controlan ni supervisan los servidores o contenidos gestionados por terceros.

⚠️ Aviso de seguridad

Risus Nova se distribuye únicamente a través de phpost.es, que es la fuente oficial del proyecto donde publicamos las versiones verificadas.

Recomendamos no utilizar copias obtenidas desde sitios de terceros, ya que podrían haber sido modificadas y no contar con la integridad del código original, lo que puede suponer riesgos de seguridad en la instalación.

Para garantizar una instalación segura y actualizada, descarga siempre la versión oficial desde el botón disponible en esta página.

Importante: No pediremos donaciones en ningún momento ni en ninguna plataforma (Ko-fi, PayPal, redes sociales u otras). Si encuentras campañas de donación que utilicen el nombre de Risus Nova o PHPost, no tienen ninguna relación con el proyecto.

🔄 Desarrollo activo

Risus Nova forma parte de una nueva etapa del proyecto PHPost, en evolución constante con mejoras, correcciones y nuevas funciones. Puedes seguir el progreso y los cambios oficiales a través del changelog y la comunidad.

Risus Nova 2.1 Estable Desarrollo activo Última actualización: 14/07/2026 Ver Demo Changelog 263 Desarrollo del tema: 75% (fase actual de desarrollo) Descargar
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Inicio dual (login & registro)
#1

9
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 Compartir
#2

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

2
(02-16-2022, 11: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 Compartir
#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 Compartir
#5

1
(04-11-2022, 09: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 Compartir
#6

0
(04-13-2022, 04:42 PM)Miguel92 escribió: Debes agradecer para ver el contenido...
(04-11-2022, 09: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


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)