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

COMPLEMENTOS Referidos más puntos por referido (Act 1.3)
#1

2
Mejor respuesta del mensaje Referidos más puntos por referido (Act 1.3)Hola, os dejo el mod de Tutan-kabron fixeado y actualizado a la versión 1.3, lo he instalado y probado en el tema default de risus, pero tiene que funcionar en cualquier tema, lo que cambia es el diseño.

 
[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]
 
[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]



Ejecutan estas consultas
ALTER TABLE `u_miembros` ADD `user_referidos` INT( 11 ) NOT NULL DEFAULT '0'

ALTER TABLE w_configuracion ADD p_p_refs INT(11) NOT NULL;

CREATE TABLE IF NOT EXISTS `referidos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_referido` varchar(60) CHARACTER SET latin1 NOT NULL,
`user_name` varchar(60) CHARACTER SET latin1 NOT NULL,
`fecha` int(12) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=16 ;


En 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.';
    }
    $query = db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `referidos` WHERE `id` = \'' . (int)$id . '\'');
    }


Buscar:
'offline_message' => $tsCore->setSecure($tsCore->parseBadWords($_POST['offline_message'])),


Debajo agregar:
'p_p_refs' => $tsCore->setSecure($_POST['p_p_refs']),


Buscar:
'\', `offline_message` = \'' . $c['offline_message'] .


Al lado agregar:
'\', `p_p_refs` = \'' . $c['p_p_refs'] .


En 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, 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_lastactive,


Agregar
u.user_referidos,


/*
        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_referidos, u.user_activo, u.user_baneado, 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);


En 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:
/**
     * @name registerUser()
     * @access public
     * @param
     * @return string
     */
    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_puntos = user_puntos + \''.(int)$tsCore->settings['p_p_refs'].'\' WHERE user_name = \''.$tsData['user_referido'].'\'');
               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().'\')');
               $aviso = 'Tu referido <a href="'.$tsCore->settings['url'].'/perfil/'.$tsData['user_nick'].'"><b>'.$tsData['user_nick'].'</b></a>se ha registrado. <br /><br/>  Dale la bienvenida! <br />Obtentienes '.(int)$tsCore->settings['p_p_refs'].' puntos por tu referido';
               db_exec(array(__FILE__, __LINE__), 'query', 'INSERT INTO `u_avisos` (`user_id`, `av_subject`, `av_body`, `av_date`, `av_type`) VALUES (\''.$tsUser->getUserId($tsData['user_referido']).'\', \'Nuevo referido\', \''.$aviso.'\', \''.'\', \''.time().'\', \'4\')');
            }


En 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 inc --> php --> ajax --> ajax.registro.php

Buscar:
case 'registro-geo':


Arriba agregar:
case 'registro-check-referido':

            //<---

                echo $tsReg->checkUserEmail2();

            //--->

        break;


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


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


En 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 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(el, false, true);
                break;
            default:
                $(el).removeClass('selected');
                this.check_campo(el, false, true);
                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(el, false, true);
                break;
            default:
                $(el).removeClass('selected');
                this.check_campo(el, false, true);
                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(el, this.datos_status[campo], this.datos_text[campo]) : this.hide_status(el, this.datos_status[campo], this.datos_text[campo]);
               else
               return this.show_status(el, this.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',
                url: global_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 */


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.';
    }
    $query = db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM `referidos` WHERE `id` = \'' . (int)$id . '\'');
    }


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

Buscar:


Arriba agregar:
{elseif $tsAction == 'referidos'}
                                {include file='admin_mods/m.admin_referidos.tpl'}


themes --> default --> templates --> admin_mods --> m.admin_configs.tpl

Buscar:
<dl>
                <dt>
                    <label for="ai_max_com">Comentarios por post:</label>
                    <br /><span>N&uacute;mero m&aacute;ximo de comentarios por p&aacute;gina en los post.</span></dt>
                <dd>
                    <input type="text" id="ai_max_com" name="max_com" style="width:10%" maxlength="3" value="{$tsConfig.c_max_com}" />
                </dd>
            </dl>


Arriba agregar:
<dl>
                <dt><label for="p_p_refs">Puntos por referido</label><br /><span>Puntos que recibira como bonificacion un user al subir un posts.</span></dt>
                <dd><input type="text" id="p_p_refs" name="p_p_refs" style="width:10%" maxlength="3" value="{$tsConfig.p_p_refs}" /></dd>
            </dl>


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

Al final agregar esto:
<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>


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...

Googe drive
Debes agradecer para ver el contenido...

Mediafire
Debes agradecer para ver el contenido...



Debes agradecer para ver el contenido...

Us2r3pruebas

sdrfhM?gh567?gbsj




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


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)