Ejemplo n.º 1
0
 * solo si el script puede continuar
 */
if ($psContinue) {
    $username = $_GET['user'];
    //obtenemos los datos de la db
    $consulta = "SELECT user_id, user_name, user_activo, user_baneado FROM u_miembros WHERE LOWER(user_name) = :uname";
    $valores = array('uname' => $username);
    $usuario = $psDb->db_execute($consulta, $valores, 'fetch_assoc');
    //comprobamos si el usuario existe
    if (empty($usuario['user_id']) || $usuario['user_activo'] != 1 && !$psUser->permisos['movcud'] && !$psUser->admod || $usuario['user_baneado'] != 0 && !$psUser->permisos['movcus'] && !$psUser->admod) {
        $psPage = 'aviso';
        $psAjax = 0;
        $smarty->assign("psAviso", array('titulo' => 'Error!', 'mensaje' => empty($usuario['user_id']) ? 'El usuario no existe' : 'La cuenta de ' . $usuario['user_name'] . ' se encuentra suspendida', 'but' => 'Ir a la página principal', 'link' => "{$psCore->settings['url']}"));
    } else {
        include '../class/c.cuenta.php';
        $psCuenta =& psCuenta::getInstance();
        include '../extra/datos.php';
        $psInfo = $psCuenta->cargarInfo($usuario['user_id']);
        $psInfo['uid'] = $usuario['user_id'];
        //comprobamos si el usuario está online
        $online = time() - $psCore->settings['c_last_active'] * 60;
        $inactive = $online * 2;
        //inactivo será el doble del online
        if ($psInfo['user_lastactive'] > $online) {
            $psInfo['status'] = array('t' => 'Online', 'css' => 'online');
        } elseif ($psInfo['user_lastactive'] > $inactive) {
            $psInfo['status'] = array('t' => 'Inactivo', 'css' => 'inactive');
        } elseif ($psInfo['user_baneado'] > 0) {
            $psInfo['status'] = array('t' => 'Suspendido', 'css' => 'banned');
        } else {
            $psInfo['status'] = array('t' => 'Offline', 'css' => 'offline');
Ejemplo n.º 2
0
 /**
  * @funcionalidad creamos una nueva publicación en el muro
  * @return [type] devolvemos un array con los datos obtenidos si todo ok, sino devolvemos un string con el error obtenido
  */
 public function pubMuro()
 {
     global $psDb, $psCore, $psMonitor, $psUser, $psActividad;
     //obtenemos los datos del formulario
     $pid = filter_input(INPUT_POST, 'pid');
     $datos = filter_input(INPUT_POST, 'data');
     $adjunto = filter_input(INPUT_POST, 'adj');
     $type = filter_input(INPUT_GET, 'type');
     //comprobamos si el usuario permite compartir en su muro
     //añadimos la clase cuenta para obtener los datos de seguidos y seguidores
     include 'c.cuenta.php';
     $psCuenta =& psCuenta::getInstance();
     $privado = $this->getPrivacidad($pid, $psUser->getUserName($pid), $psCuenta->siguiendo($pid), $psCuenta->seguidores($pid));
     //comprobamos si permite firmar en su muro
     if ($privado['mf']['v'] == false) {
         return '0: ' . $privado['mf']['m'];
     }
     //realizamos la acción según el tipo de publicación
     switch ($type) {
         //publicar estado
         case 'status':
             //reemplazamos los saltos de línea y las tabulaciones
             $texto = str_replace(array('\\n', '\\t', ' '), '', $datos);
             //comprobamos si está vacío el campo
             if (strlen($texto) == 0) {
                 return '0: Tu publicación no puede estar vacía';
             }
             //cargamos el antiflood para evitar sobrecargar el servidor con demasiadas peticiones en poco tiempo
             $psCore->antiFlood();
             //ahora insertamos los datos
             $insert = "INSERT INTO u_muro (p_user, p_user_pub, p_body, p_date, p_type, p_ip) VALUES (:user, :pub, :body, :dat, :type, :ip)";
             $valores = array('user' => $pid, 'pub' => $psUser->user_id, 'body' => $texto, 'dat' => time(), 'type' => 1, 'ip' => $_SERVER['REMOTE_ADDR']);
             if ($psDb->db_execute($insert, $valores)) {
                 $pub = $psDb->getLastInsertId();
                 //obtenemos el tipo, estado o publicacion en el muro
                 $type = $pid == $psUser->user_id ? 'status' : 'mpub';
                 $datos = array('pub_id' => $pub, 'p_user' => $pid, 'p_user_pub' => $psUser->user_id, 'p_body' => $psCore->badWords($psCore->setMenciones($datos), true), 'p_date' => time(), 'p_likes' => 0, 'p_type' => 1, 'likes' => array('link' => 'Me gusta esto!'));
             }
             break;
             //publicar un enlace
         //publicar un enlace
         case 'enlace':
             //comprobamos el enlace
             $enlace = $this->comprobarEnlaces(true, $adjunto);
             //comprobamos si nos devuelve un error o no
             if (substr($enlace, 0, 1) == '0') {
                 return $enlace;
             }
             //cargamos el antiflood para evitar sobrecargar el servidor con demasiadas peticiones en poco tiempo
             $psCore->antiFlood();
             //ahora insertamos los datos
             $insert = "INSERT INTO u_muro (p_user, p_user_pub, p_body, p_date, p_type, p_ip) VALUES (:user, :pub, :body, :dat, :type, :ip)";
             $valores = array('user' => $pid, 'pub' => $psUser->user_id, 'body' => $datos, 'dat' => time(), 'type' => 3, 'ip' => $_SERVER['REMOTE_ADDR']);
             if ($psDb->db_execute($insert, $valores)) {
                 $pub = $psDb->getLastInsertId();
                 //ahora añadimos en la tabla adjuntos el enlace
                 $insert2 = "INSERT INTO u_muro_adjuntos (pub_id, a_title, a_url) VALUES (:pid, :title, :url)";
                 $valores2 = array('pid' => $pub, 'title' => $enlace['title'], 'url' => $enlace['url']);
                 if ($psDb->db_execute($insert2, $valores2)) {
                     //obtenemos el tipo
                     $type = 'menlace';
                     $datos = array('pub_id' => $pub, 'p_user' => $pid, 'p_user_pub' => $psUser->user_id, 'p_body' => $psCore->setMenciones($datos), 'p_date' => time(), 'p_likes' => 0, 'p_type' => 3, 'likes' => array('link' => 'Me gusta esto!'), 'a_title' => $enlace['title'], 'a_url' => $enlace['url']);
                 }
             }
             break;
             //publicar una foto
         //publicar una foto
         case 'foto':
             //comprobamos la foto
             $foto = $this->comprobarEnlaces(true, $adjunto);
             //comprobamos si nos devuelve un error o no
             if (substr($foto, 0, 1) == '0') {
                 return $foto;
             }
             //cargamos el antiflood para evitar sobrecargar el servidor con demasiadas peticiones en poco tiempo
             $psCore->antiFlood();
             //ahora insertamos los datos
             $insert = "INSERT INTO u_muro (p_user, p_user_pub, p_body, p_date, p_type, p_ip) VALUES (:user, :pub, :body, :dat, :type, :ip)";
             $valores = array('user' => $pid, 'pub' => $psUser->user_id, 'body' => $datos, 'dat' => time(), 'type' => 2, 'ip' => $_SERVER['REMOTE_ADDR']);
             if ($psDb->db_execute($insert, $valores)) {
                 $pub = $psDb->getLastInsertId();
                 //ahora añadimos en la tabla adjuntos la foto
                 $insert2 = "INSERT INTO u_muro_adjuntos (pub_id, a_url, a_img) VALUES (:pid, :url, :img)";
                 $valores2 = array('pid' => $pub, 'url' => $foto, 'img' => $foto);
                 if ($psDb->db_execute($insert2, $valores2)) {
                     //obtenemos el tipo
                     $type = 'mfoto';
                     $datos = array('pub_id' => $pub, 'p_user' => $pid, 'p_user_pub' => $psUser->user_id, 'p_body' => $psCore->setMenciones($datos), 'p_date' => time(), 'p_likes' => 0, 'p_type' => 2, 'likes' => array('link' => 'Me gusta esto!'), 'a_url' => $foto, 'a_img' => $foto);
                 }
             }
             break;
             //publicar un video
         //publicar un video
         case 'video':
             //comprobamos el video
             $video = $this->comprobarEnlaces(true, $adjunto);
             //comprobamos si nos devuelve un error o no
             if (substr($video, 0, 1) == '0') {
                 return $video;
             }
             //cargamos el antiflood para evitar sobrecargar el servidor con demasiadas peticiones en poco tiempo
             $psCore->antiFlood();
             //ahora insertamos los datos
             $insert = "INSERT INTO u_muro (p_user, p_user_pub, p_body, p_date, p_type, p_ip) VALUES (:user, :pub, :body, :dat, :type, :ip)";
             $valores = array('user' => $pid, 'pub' => $psUser->user_id, 'body' => $datos, 'dat' => time(), 'type' => 4, 'ip' => $_SERVER['REMOTE_ADDR']);
             if ($psDb->db_execute($insert, $valores)) {
                 $pub = $psDb->getLastInsertId();
                 //ahora añadimos en la tabla adjuntos el video
                 $insert2 = "INSERT INTO u_muro_adjuntos (pub_id, a_title, a_url, a_img, a_desc) VALUES (:pid, :title, :url, :img, :des)";
                 $valores2 = array('pid' => $pub, 'title' => $video['title'], 'url' => $video['id'], 'img' => '', 'des' => $psCore->badWords($video['desc']));
                 if ($psDb->db_execute($insert2, $valores2)) {
                     //obtenemos el tipo
                     $type = 'menlace';
                     $datos = array('pub_id' => $pub, 'p_user' => $pid, 'p_user_pub' => $psUser->user_id, 'p_body' => $psCore->setMenciones($datos), 'p_date' => time(), 'p_likes' => 0, 'p_type' => 4, 'likes' => array('link' => 'Me gusta esto!'), 'a_title' => $video['title'], 'a_url' => $video['id'], 'a_desc' => $video['desc']);
                 }
             }
             break;
         default:
             $datos = '0: El campo <strong>tipo</strong> es requerido para esta operaci&oacute;n';
     }
     $datos['user_name'] = $psUser->nick;
     //mandamos la notificacion
     $psMonitor->setNotificacion(12, $pid, $psUser->user_id, $pub);
     //creamos la actividad
     $yo = $pid == $psUser->user_id ? 0 : 2;
     $psActividad->setActividad(10, $pub, $yo);
     return $datos;
 }