Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
1TSR4SC11

["Fix"] Respetar privacidad en mod "últimos shouts en el home"

Recommended Posts

Hola a todos.

Me di cuenta que el mod de "Últimos shouts en el home" no respetaba la configuración de privacidad del usuario.

Entonces lo modifiqué 😛 

 

Instalan todo el mod pero...

Exceptuando esta función:

/* Ultimos Shouts en la home */
    function getNews($start = 0, $limit = 10){
        global $tsUser, $tsCore;
        // OBTENEMOS LAS ULTIMAS PUBLICACIONES    
    	$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT *,u.* FROM u_muro LEFT JOIN u_miembros AS u ON p_user = u.user_id ORDER BY p_date DESC LIMIT '.$start.','.$limit.'');
        while($row = db_exec('fetch_array', $query)){
            // MENCIONES
            $row['p_body'] = $tsCore->parseBadWords($tsCore->parseBBCode($tsCore->setMenciones($row['p_body'])), true);
            // CARGAR ADJUNTOS
            if($row['p_type'] != 1){
                $queryDos = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM u_muro_adjuntos WHERE pub_id = \''.$row['pub_id'].'\' LIMIT 1');
                $adj = db_exec('fetch_assoc', $queryDos);                
                //
                $data[] = array_merge($row,$adj); 
            } else $data[] = $row;
            //
        }
        // RETORNAMOS
        return array('total' => count($data), 'data' => $data);
    }

La cuál vamos a remplazar por:

/* Ultimos Shouts en la home */
    public function getNews($start = 0, $limit = 20){
        global $tsUser, $tsCore;
        // OBTENEMOS LAS ULTIMAS PUBLICACIONES    
    	$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT *,u.* FROM u_muro LEFT JOIN u_miembros AS u ON p_user = u.user_id ORDER BY p_date DESC LIMIT '.$start.','.$limit.'');

        //Incluimos Archivos
        include 'c.cuenta.php';
        include 'c.muro.php';

        //Instancias de las clases
	    $tsCuenta = new tsCuenta();
	    $tsMuro = new tsMuro();
        
        //Accedemos a los datos (se podria haber usado result_array pero el mod es viejo :p)
        while($row = db_exec('fetch_array', $query)){
            //Verificamos Privacidad
            $verifyPrivacy = $tsMuro->getPrivacity($row['p_user'], '__USER__', $tsCuenta->iFollow($row['p_user']), $tsCuenta->yFollow($row['p_user']));
            
            //Tiene permisos?
            if($verifyPrivacy['m']['v'] == true) {
                // MENCIONES
                $row['p_body'] = $tsCore->parseBadWords($tsCore->parseBBCode($tsCore->setMenciones($row['p_body'])), true);
                // CARGAR ADJUNTOS
                if($row['p_type'] != 1){
                    $queryDos = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM u_muro_adjuntos WHERE pub_id = \''.$row['pub_id'].'\' LIMIT 1');
                    $adj = db_exec('fetch_assoc', $queryDos);                
                    //
                    $data[] = array_merge($row,$adj); 
                } else $data[] = $row;
            }
        }
        
        //Eliminamos Variables
        unset($tsCuenta, $tsMuro);
        
        // RETORNAMOS
        return (isset($data) && !empty($data)) ? array('total' => count($data), 'data' => $data) : false;
    }

Y listo! Espero que les sirva :)

Edited by 1TSR4SC11
había puesto un $this xd
  • Like 2
  • Thanks 3

Share this post


Link to post
Share on other sites

Para los que quieran que los últimos shouts solo muestren publicaciones propias (y no publicaciones en el muro de un usuario a otro) sustituyen el código por este. (solo agregué un if)

 

/* Ultimos Shouts en la home */
    public function getNews($start = 0, $limit = 6){
        global $tsUser, $tsCore;
        // OBTENEMOS LAS ULTIMAS PUBLICACIONES    
    	$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT *,u.* FROM u_muro LEFT JOIN u_miembros AS u ON p_user = u.user_id ORDER BY p_date DESC LIMIT '.$start.','.$limit.'');

        //Incluimos Archivos
        include 'c.cuenta.php';
        include 'c.muro.php';

        //Instancias de las clases
	    $tsCuenta = new tsCuenta();
	    $tsMuro = new tsMuro();
        
        //Accedemos a los datos (se podria haber usado result_array pero el mod es viejo :p)
        while($row = db_exec('fetch_array', $query)){
            //Verificamos Privacidad
            $verifyPrivacy = $tsMuro->getPrivacity($row['p_user'], '__USER__', $tsCuenta->iFollow($row['p_user']), $tsCuenta->yFollow($row['p_user']));
            
            //Tiene permisos?
            if ($row['p_user'] == $row['p_user_pub']) {
            if($verifyPrivacy['m']['v'] == true) {
                // MENCIONES
                $row['p_body'] = $tsCore->parseBadWords($tsCore->parseBBCode($tsCore->setMenciones($row['p_body'])), true);
                // CARGAR ADJUNTOS
                if($row['p_type'] != 1){
                    $queryDos = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM u_muro_adjuntos WHERE pub_id = \''.$row['pub_id'].'\' LIMIT 1');
                    $adj = db_exec('fetch_assoc', $queryDos);                
                    //
                    $data[] = array_merge($row,$adj); 
                } else $data[] = $row;
            }
            }
        }
        
        //Eliminamos Variables
        unset($tsCuenta, $tsMuro);
        
        // RETORNAMOS
        return (isset($data) && !empty($data)) ? array('total' => count($data), 'data' => $data) : false;
    }
	
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Patrocinador



  • ×