02-16-2022, 09:21 PM
8
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
y debajo agregamos
2 - Buscamos en index.php
y la reemplazamos por
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
y la reemplazan por
un poco más abajo buscan (Cabe recalcar que deben tener las claves del reCaptcha v3 agregadas)
y la reemplazan por
más abajo buscamos
y la reemplazamos por
5 - Luego en inc/class/c.core.php buscamos
y arriba agregamos
Y eso sería todo, espero no olvidarme de nada!
Cualquier problema o duda comenten!
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
Código PHP: ( Seleccionar Todo )
define('TS_TEMA', $tsTema);
y debajo agregamos
Código PHP: ( Seleccionar Todo )
# El tipo de inicio
define('INICIO_DUAL', TRUE);
2 - Buscamos en index.php
Código PHP: ( Seleccionar Todo )
// Checamos...
if($tsCore->settings['c_allow_portal'] == 1 && $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
Código PHP: ( Seleccionar Todo )
/**
* 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']) == 1 && $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
Código PHP: ( Seleccionar Todo )
$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
Código PHP: ( Seleccionar Todo )
$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)
Código PHP: ( Seleccionar Todo )
/** 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 'recaptcha: No hemos podido validar tu humanidad';
}
y la reemplazan por
Código PHP: ( Seleccionar Todo )
/**
* Comprobamos el recaptcha v3
*/
$response = $tsCore->reCaptcha($tsData['user_captcha']);
if (!$response) return 'recaptcha: No hemos podido validar tu humanidad';
más abajo buscamos
Código PHP: ( Seleccionar Todo )
// 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
Código PHP: ( Seleccionar Todo )
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 = [50, 120];
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
Código PHP: ( Seleccionar Todo )
/*
getIP
*/
function getIP(){
y arriba agregamos
Código PHP: ( Seleccionar Todo )
# 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($init, CURLOPT_URL, "Registrate o inicia tu sesión para ver este contenido");
curl_setopt($init, CURLOPT_POST, 1);
curl_setopt($init, CURLOPT_POSTFIELDS, $http);
curl_setopt($init, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($init);
curl_close($init);
return json_decode($response, true);
}
Y eso sería todo, espero no olvidarme de nada!
Cualquier problema o duda comenten!