¡Bienvenido a PHPost!

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

Descarga Risus Nova 2.0   (Ver notas de la versión) (ACT-15/06/2026- 21:00 ESP)

Regístrate Descargar Risus Nova
Calificación:
  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5

COMPLEMENTOS Referidos v1 + Admin (Act 1.3)
#1

5
Mejor respuesta del mensaje Referidos v1 + Admin (Act 1.3)
[img]Registrate o inicia tu sesión para ver este contenido[/img]

[img]Registrate o inicia tu sesión para ver este contenido[/img]

[img]Registrate o inicia tu sesión para ver este contenido[/img]



Ejecutar estas consultas

ALTER TABLE `u_miembrosADD `user_referidosINT11 NOT NULL DEFAULT '0' 

CREATE TABLE IF NOT EXISTS `referidos` (
`
idint(11NOT NULL AUTO_INCREMENT,
`
user_referidovarchar(60CHARACTER SET latin1 NOT NULL,
`
user_namevarchar(60CHARACTER SET latin1 NOT NULL,
`
fechaint(12NOT NULL,
PRIMARY KEY (`id`)
ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=16 


En c.admin.php --> inc --> class --> c.admin.php

Buscar:

/*
    getNoticias()
    */
    
function getNoticias()
    { 


Arriba agregar:

/*
     getReferidos()
    */
    
function getReferidos()
    {
        
//
        
$query db_exec(array(__FILE____LINE__), 'query''SELECT u.user_id, u.user_name, r.* from referidos AS r LEFT JOIN u_miembros AS u ON r.user_referido = u.user_name ORDER BY r.id DESC');
        
$data result_array($query);
        
//
        
return $data;
    }

    
/*
     getReferido()
    */
    
function getReferido()
    {
    global 
$tsCore;
    
//
    
$id $tsCore->setSecure($_GET['id']);
    
//
    
$query db_exec(array(__FILE____LINE__), 'query''SELECT `id`, `user_name`, `user_referido`, `fecha` FROM referidos WHERE id = \'' .
   (int)
$id '\' LIMIT 1');
    
$data db_exec('fetch_assoc'$query);
    
//
    
return $data;
    }

    
/*
      deReferidos();
    */
    
function delReferido()
    {
    
$id $_GET['id'];
    if(!
db_exec('num_rows'db_exec(array(__FILE____LINE__), 'query''SELECT `id` FROM `referidos` WHERE `id` = \'' .
    (int)
$id '\' LIMIT 1'))) {
    return 
'El id ingresado no existe.';
    }
    
db_exec(array(__FILE____LINE__), 'query''DELETE FROM `referidos` WHERE `id` = \'' . (int)$id '\'');
    } 


En c.cuenta.php --> inc --> class --> c.cuenta.php

Buscar:

/*
        loadHeadInfo($user_id)
    */
    
function loadHeadInfo($user_id){
        global 
$tsUser$tsCore;
        
// INFORMACION GENERAL
        
$query db_exec(array(__FILE____LINE__), 'query''SELECT u.user_id, u.user_name, u.user_registro, u.user_lastactive, u.user_activo, u.user_baneado, u.user_referidos, p.user_sexo, p.user_pais, p.p_nombre, p.p_avatar, p.p_mensaje, p.p_socials, p.p_empresa, p.p_configs FROM u_miembros AS u, u_perfil AS p WHERE u.user_id = \''.(int)$user_id.'\' AND p.user_id = \''.(int)$user_id.'\'');
        
$data db_exec('fetch_assoc'$query); 


Después de:

u.user_baneado


Agregar:

u.user_referidos


En c.registro.php --> inc --> class --> c.registro.php

Buscar:

} else $valid '0: Faltan datos y no se puede procesar tu solicitud.';
        
// retornar valor
        
return $valid;
    } 


Debajo agregar:

/**
    * @name referidos by tutan-kabron
    * @access public
    * @param
    * @return string
    */
   
public function checkUserEmail2(){
   global 
$tsCore;
       
// Variables
       
$referido strtolower($_POST['referido']);
       
$which = empty($referido) ? 'referido' 'referido';
       
// MENSAJE
       
$valid '1: El '.$which.' no existe .'// DEFAULT
      // 
      
if(!empty($referido)){
          
$query db_exec(array(__FILE____LINE__), 'query''SELECT `user_id` FROM `u_miembros` WHERE LOWER(user_name) = \''.$tsCore->setSecure($referido).'\' LIMIT 1');
          if(
db_exec('num_rows'$query) > 0$valid '0: El '.$which.' si existe.'// EXISTE
      
} else $valid '0: Este Campo no es obligatorio.';
      
// retornar valor
      
return $valid;
   } 


Buscar:

function registerUser(){
        global 
$tsCore$tsUser;
        
// DATOS NECESARIOS 


Debajo agregar:

$referido=$_POST['referido'];
          if(empty(
$referido)){
          
$referido='1';
        }else{
          
$referido$tsCore->setSecure($_POST['referido']);
        } 


Buscar:

'user_email' => $_POST['email'], 


Debajo agregar:

'user_referido' => $referido


Buscar:

// MENSAJE PARA DAR LA BIENVENIDA BIENVENIDA 


Arriba agregar:

if($referido != '1'){
              
db_exec(array(__FILE____LINE__), 'query''UPDATE u_miembros SET user_referidos = user_referidos + 1 WHERE user_name = \''.$tsData['user_referido'].'\'');
              
db_exec(array(__FILE____LINE__), 'query''INSERT INTO `referidos` (`user_referido`, `user_name`, `fecha`) VALUES (\''.$tsData['user_referido'].'\', \''.$tsData['user_nick'].'\', \''.time().'\')');
            } 


En admin.php --> inc --> php --> admin.php

Buscar:

/** NOTICIAS **/
    
} elseif($action == 'news'){ 


Arriba agregar:

/** REFERIDOS by tutan-kabron**/
    
} elseif($action == 'referidos'){
        if(empty(
$act)) $smarty->assign("tsReferidos",$tsAdmin->getReferidos());
        elseif(
$act == 'borrar'){
            if(
$tsAdmin->delReferido()) $tsCore->redirectTo($tsCore->settings['url'].'/admin/referidos?borrar=true');
    } 


En ajax.registro.php --> inc --> php --> ajax --> ajax.registro.php

Buscar:

'registro-check-nick' => array('n' => 1'p' => ''), 


Debajo agregar:

'registro-check-referido' => array('n' => 1'p' => ''), 


Buscar:

case 'registro-geo'


Arriba agregar:

case 'registro-check-referido':

           
//<---
           
               
echo $tsReg->checkUserEmail2();

          
//--->

        
break; 


En t.admin.tpl --> themes --> default --> templates --> t.admin.tpl

Buscar:

{/if} 


Arriba agregar:

{elseif $tsAction == 'referidos'}
                                {include 
file='admin_mods/referidos.tpl'


En p.registro.form.tpl --> themes --> default --> templates --> t.php_files --> p.registro.form.tpl

Buscar:

<div class="form-line">
            <
label for="email">E-mail</label>

            <
input name="email" type="text" id="email" tabindex="4" title="Ingresa tu direcci&oacute;n de email" onfocus="registro.focus(this)" onblur="registro.blur(this)" onkeydown="registro.clear_time(this.name)" onkeyup="registro.set_time(this.name)" autocomplete="off" /> <div class="help"><span><em></em></span></div>
        </
div


Debajo agregar:

<div class="form-line">
            <
label for="referido">Ingresa tu referido (opcional)</label>
            <
input name="referido" type="text" id="referido" tabindex="1" title="Ingrese el nick del referido" onfocus="registro.focus(this)" onblur="registro.blur(this)" onkeydown="registro.clear_time(this.name)" onkeyup="registro.set_time(this.name)" autocomplete="off" /> <div class="help"><span><em></em></span></div>
        </
div


En registro.js --> themes --> default --> js --> registro.js

Buscar:

//Un elemento pierde el foco
    
blur: function(el) {
        var 
name = $(el).attr('name');
        switch (
name) {
            case 
'nick':
            case 
'email':
                
this.clear_time(name);
                $(
el).removeClass('selected');
                
this.check_campo(elfalsetrue);
                break;
            default:
                $(
el).removeClass('selected');
                
this.check_campo(elfalsetrue);
                break;
        }
    }, 


Reemplazar por:

//Un elemento pierde el foco
    
blur: function(el){
        var 
name = $(el).attr('name');
        switch(
name){
            case 
'nick':
            case 
'referido':
            case 
'email':
               
this.clear_time(name);
               $(
el).removeClass('selected');
               
this.check_campo(elfalsetrue);
               break;
           default:
               $(
el).removeClass('selected');
               
this.check_campo(elfalsetrue);
               break;
       }  
   }, 


Buscar:

/* password */
            
case 'password'


Arriba agregar:

/* referido by tutan-kabron */
               
case 'referido':
               
//Si ya paso por aca y no hubieron cambios, devuelvo el mismo status       
                
if(!force_check && this.datos[campo] === value)
                if(
this.datos_status[campo]=='empty')
                return 
no_empty this.show_status(elthis.datos_status[campo], this.datos_text[campo]) : this.hide_status(elthis.datos_status[campo], this.datos_text[campo]);
                else
                return 
this.show_status(elthis.datos_status[campo], this.datos_text[campo]);
                
//Almaceno el dato
                
this.datos[campo] = value;
                
//Caracteres validos
                
if(/[^a-zA-Z0-9_]/.test(value))
                return 
this.show_status(el'error''Sólo se permiten letras, números y guiones(_)');
                
//Compruebo si ya esta en uso
                //Compruebo el Cache
                
var value_lower value.toLowerCase();
                if(!
this.cache[campo]){
                
this.cache[campo] = new Array();
                
this.cache[campo][value_lower] = new Array();
                }else if(
this.cache[campo][value_lower]){
                if(
this.cache[campo][value_lower]['status'])
                return 
registro.show_status(el'ok'this.cache[campo][value_lower]['text']);
                else
                return 
registro.show_status(el'error'this.cache[campo][value_lower]['text']);
                }
                
this.show_status(el'loading''Comprobando referido...');
                $(
'#loading').fadeIn(250);
                $.
ajax({
                
type'POST',
                
urlglobal_data.url '/registro-check-referido.php?t=nombre de usuario',
                
data'referido='+value,
                
success: function(h){
                
registro.cache[campo][value_lower] = new Array();
                
registro.cache[campo][value_lower]['text'] = h.substring(3);
                switch(
h.charAt(0)){
                case 
'0'//Estaba en uso
                
registro.cache[campo][value_lower]['status'] = true;
                
registro.show_status(el'ok'h.substring(3));
                break;
                case 
'1'//No esta en uso
                
registro.cache[campo][value_lower]['status'] = false;
                
registro.show_status(el'error'h.substring(3));
                break;
                }
                $(
'#loading').fadeOut(350);
                },

                
error: function(){
                
registro.show_status(el'error''Hubo un error al intentar procesar lo solicitado');
                
registro.datos[campo] = '';
                }
                });
                break;
              
/* termina campo referido */ 


En m.admin_sidemenu.tpl --> themes --> default --> templates --> admin_mods --> m.admin_sidemenu.tpl

Al final agregar:

<h4>Utilidades</h4>
                                    <
ul class="cat-list">
                                        <
li id="a_users"><span class="cat-title"><a href="{$tsConfig.url}/admin/referidos">Referidos</a></span></li>
                                    </
ul


En m.perfil_headinfo.tpl --> themes --> default --> templates --> modules --> m.perfil_headinfo.tpl

Buscar:

<li>
                                    <
strong>{$tsInfo.stats.user_comentarios}</strong>
                                    <
span>Comentarios</span>
                                </
li


Debajo agregar:

<li>
                                   <
strong>{$tsInfo.user_referidos}</strong>
                                   <
span>Referidos</span>
                                </
li



Y suben esta carpeta

Mega
Debes agradecer para ver el contenido...

Google Drive
Debes agradecer para ver el contenido...

Mediafire
Debes agradecer para ver el contenido...




Creditos: Debes agradecer para ver el contenido...
Responder


Compartir en:

Mensajes en este tema
Referidos v1 + Admin (Act 1.3) - por Chctrpgo - 01-26-2021, 08:56 AM
RE: Referidos v1 + Admin (Act 1.3) - por Absol - 05-21-2024, 07:52 AM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)