PageRenderTime 41ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/vdl-include/vdl-core/core_profile.class.php

https://github.com/ivansoriasolis/Vidali
PHP | 502 lines | 419 code | 61 blank | 22 comment | 48 complexity | f867a565ca319f9f4ea5c45ebf50bb05 MD5 | raw file
Possible License(s): AGPL-3.0
  1. <?php
  2. require_once 'core_user.class.php';
  3. class CORE_PROFILE extends CORE_USER{
  4. /*Private*/
  5. private function acept_friend($_id,$_idsender,$_not){
  6. $connection = parent::connect();
  7. $query = ("UPDATE vdl_friend_of SET status=1 WHERE user2=$_id AND user1=$_idsender AND status=0");
  8. $result = $connection->query($query) or die(mysql_error('Ups, algo falla a la hora de postear...prueba luego.'));
  9. if($result){
  10. $query = "UPDATE vdl_notify SET (checked) VALUES ('1') WHERE id= $_not";
  11. $result = $connection->query($query,$connection) or die(mysql_error('Ups, algo falla a la hora de postear...prueba luego.'));
  12. return true;
  13. }
  14. else
  15. return false;
  16. }
  17. private function add_friend($_main,$_candidate,$_range){
  18. $connection = parent::connect();
  19. $query = ("INSERT INTO vdl_friend_of (user1,user2,status) VALUES ('$_main','$_candidate','0')");
  20. $result = $connection->query($query) or die(mysql_error('Ups, algo falla a la hora de postear...prueba luego.'));
  21. if($result){
  22. $query = ("INSERT INTO vdl_notify (user_id,user_sender,type,checked) VALUES ('$_candidate','$_main','1','0')");
  23. $result = $connection->query($query) or die(mysql_error('Ups, algo falla a la hora de postear...prueba luego.'));
  24. return true;
  25. }
  26. else
  27. return false;
  28. }
  29. private function delete_friend($_main,$_friend){
  30. $connection = parent::connect();
  31. $query = ("DELETE FROM vdl_friend_of
  32. WHERE (vdl_friend_of.user1 ='$_main' AND vdl_friend_of.user2='$_friend')
  33. OR (vdl_friend_of.user1 ='$_friend' AND vdl_friend_of.user2='$_main')");
  34. $result = $connection->query($query);
  35. if (!$result) {
  36. $message = 'Invalid query: ' . mysql_error() . "\n";
  37. $message = $message.' Whole query: ' . $query;
  38. die($message);
  39. return false;
  40. }
  41. return true;
  42. }
  43. private function block_enemy($_main,$_friend){
  44. $connection = parent::connect();
  45. $query = ("UPDATE vdl_friend_of SET status='2' WHERE vdl_friend_of.user1 ='$_main' AND vdl_friend_of.user2='$_friend'");
  46. $result = $connection->query($query) or die(mysql_error('Ups, algo falla a la hora de postear...prueba luego.'));
  47. parent::close($connection);
  48. if(!result)
  49. return false;
  50. else
  51. return true;
  52. }
  53. private function add_trend($text){
  54. preg_match_all('/[#]+([A-Za-z0-9-_]+)/',$text, $hash);
  55. $hashtag = $hash[1];
  56. foreach($hashtag as $key => $hash){
  57. $ht=ucwords(strtolower($hash));
  58. $connection = parent::connect();
  59. $query = ("SELECT topic FROM vdl_trending WHERE topic='$ht'");
  60. $result = $connection->query($query) or die(mysql_error('Ups, algo falla a la hora de postear...prueba luego.'));
  61. if(!$result)
  62. return false;
  63. if($result->num_rows == 0){
  64. $query = ("INSERT INTO vdl_trending (topic,count) VALUES ('$ht',1)");
  65. $result = $connection->query($query) or die(mysql_error('Ups, algo falla a la hora de postear...prueba luego.'));
  66. if(!$result)
  67. return false;
  68. }
  69. else{
  70. $query = ("UPDATE vdl_trending SET count =count+1 WHERE topic='$ht'");
  71. $result = $connection->query($query) or die(mysql_error('Ups, algo falla a la hora de postear...prueba luego.'));
  72. if(!$result)
  73. return false;
  74. }
  75. }
  76. return true;
  77. }
  78. private function checkstyle($text){
  79. //Comprobamos las Negritas
  80. preg_match_all ("/\*([A-Za-z0-9-_\s]+)\*/",$text, $blacks);
  81. foreach($blacks[1] as $key => $black){
  82. $find = '*'.$black.'*';
  83. $replace = '<b>'.$black.'</b>';
  84. $text = str_replace($find, $replace, $text);
  85. }
  86. //Comprobamos las cursivas
  87. preg_match_all ("/_([A-Za-z0-9-_\s]+)_/",$text, $blacks);
  88. foreach($blacks[1] as $key => $black){
  89. $find = '_'.$black.'_';
  90. $replace = '<i>'.$black.'</i>';
  91. $text = str_replace($find, $replace, $text);
  92. }
  93. //Comprobamos los tachados
  94. preg_match_all ("/-([A-Za-z0-9-_\s]+)-/",$text, $blacks);
  95. foreach($blacks[1] as $key => $black){
  96. $find = '-'.$black.'-';
  97. $replace = '<strike>'.$black.'</strike>';
  98. $text = str_replace($find, $replace, $text);
  99. }
  100. return $text;
  101. }
  102. /*Public*/
  103. public function __construct ($_USER,$_SUSER){
  104. if($_USER == $_SUSER)
  105. parent::__construct($_USER);
  106. else
  107. return false;
  108. }
  109. public function create($_user_id,$_passwd,$_nickname,$_name,$_location,$_genre,$_bday,$_email,$_bio){
  110. $query = ("INSERT INTO vdl_user (user_id,passwd,nickname,name,location,genre,bday,email,bio,img_prof) VALUES
  111. ('$_user_id','$_passwd','$_nickname','$_name','$_location','$_genre','$_bday','$_email','$_bio','prof_def')");
  112. $result = $connection->query($query);
  113. if (!$result) {
  114. $message = 'Invalid query: ' . mysql_error() . "\n";
  115. $message = 'Whole query: ' . $query;
  116. die($message);
  117. }
  118. }
  119. public function get_friends($_user){
  120. $connection = parent::connect();
  121. $query = sprintf("SELECT vdl_user.id FROM vdl_user WHERE vdl_user.nick='%s'", $_user);
  122. $result= $connection->query($query);
  123. $id = $result->fetch_assoc();
  124. $a_result2 = array();
  125. $query = "SELECT * FROM vdl_friend_of WHERE (user1='".$id["id"]."' OR user2='".$id["id"]."') LIMIT 0,10";
  126. $result = $connection->query($query);
  127. if (!$result) {
  128. $message = 'Invalid query: ' . mysql_error() . "\n";
  129. $message = $message . ' Whole query: ' . $query;
  130. die($message);
  131. }
  132. while ($row = $result->fetch_assoc()){
  133. if($row["status"] != 0){
  134. if($row["user1"]==$id["id"]){
  135. $query = "SELECT nick,avatar_id,email FROM vdl_user WHERE id='".$row["user2"]."'";
  136. $result2 = $connection->query($query);
  137. }
  138. else{
  139. $query = "SELECT nick,avatar_id,email FROM vdl_user WHERE id='".$row["user1"]."'";
  140. $result2 = $connection->query($query);
  141. }
  142. while($row2 = $result2->fetch_assoc())
  143. array_push($a_result2,$row2);
  144. }
  145. }
  146. return $a_result2;
  147. }
  148. public function get_profile($_user,$_refer){
  149. $connection = parent::connect();
  150. $query = sprintf("SELECT vdl_user.id FROM vdl_user WHERE vdl_user.nick='%s'", $_user);
  151. $result= $connection->query($query);
  152. $id = $result->fetch_assoc();
  153. $a_result1 = array();
  154. $query = sprintf("SELECT vdl_u_belong.group_id FROM vdl_u_belong WHERE vdl_u_belong.user_id='%s'", $id["id"]);
  155. $result=$connection->query($query);
  156. while ($rowa = $result->fetch_assoc()){
  157. $query1 = ("SELECT group_name FROM vdl_group WHERE vdl_group.group_name='".$rowa["group_id"]."'");
  158. $result1 = $connection->query($query1);
  159. while ($row = $result1->fetch_assoc()){
  160. array_push($a_result1,$row);
  161. }
  162. }
  163. if($_user != $_refer){
  164. $query = ("UPDATE vdl_user a SET `n_views` = `n_views` + 1 WHERE a.nick ='$_user'");
  165. $result = $connection->query($query);
  166. if (!$result) {
  167. $message = 'Invalid query: ' . mysql_error() . "\n";
  168. $message = $message. ' Whole query: ' . $query;
  169. die($message);
  170. }
  171. }
  172. $result = array();
  173. array_push($result,$a_result1);
  174. array_push($result,$a_result2);
  175. array_push($result,$id);
  176. return $result;
  177. }
  178. public function get_networks($_user){
  179. $connection = parent::connect();
  180. $query = sprintf("SELECT vdl_user.id FROM vdl_user WHERE vdl_user.user_id='%s'", $_user);
  181. $result= $connection->query($query);
  182. $id = $result->fetch_assoc();
  183. $a_result1 = array();
  184. $query = sprintf("SELECT vdl_u_belong.id_net FROM vdl_u_belong WHERE vdl_u_belong.id_user='%s'", $id["id"]);
  185. $result= $connection->query($query);
  186. while ($rowa = $result->fetch_assoc()){
  187. $query1 = ("SELECT net_name FROM vdl_net WHERE vdl_net.id='".$rowa["id_net"]."'");
  188. $result1 = $connection->query($query1);
  189. while ($row = $result->fetch_assoc()){
  190. array_push($a_result1,$row);
  191. }
  192. }
  193. return $a_result1;
  194. }
  195. public function get_updates($_user){
  196. $connection = parent::connect();
  197. $query = sprintf("SELECT id, nick, b.avatar_id,email,date_published,text
  198. FROM vdl_publish a
  199. JOIN vdl_user b ON b.id = id_user
  200. JOIN vdl_group ON vdl_group.group_name = id_group
  201. JOIN vdl_msg ON vdl_msg.id_msg = a.id_msg
  202. WHERE b.nick = '%s'
  203. ORDER BY `vdl_msg`.`date_published` DESC
  204. LIMIT 0 , 30", $_user);
  205. $result=$connection->query($query);
  206. if (!$result) {
  207. $message = 'Invalid query: ' . mysql_error() . "\n";
  208. $message .= 'Whole query: ' . $query;
  209. die($message);
  210. }
  211. //mostrar resultado
  212. $arresult=array();
  213. while ($row = $result->fetch_array()) {
  214. array_push($arresult,$row);
  215. }
  216. return $arresult;
  217. }
  218. public function get_home_wall($_user){
  219. $connection = parent::connect();
  220. $query = "SELECT id from vdl_user WHERE nick = '$_user'";
  221. $result= $connection->query($query);
  222. $id = $result->fetch_assoc();
  223. $query = "SELECT id, nick, b.avatar_id,email, date_published,text
  224. FROM vdl_publish a
  225. JOIN vdl_user b ON b.id = id_user
  226. JOIN vdl_group ON vdl_group.group_name = id_group
  227. JOIN vdl_msg ON vdl_msg.id_msg = a.id_msg
  228. WHERE b.id
  229. IN ( SELECT a.id
  230. FROM vdl_user a
  231. INNER JOIN vdl_friend_of b
  232. WHERE (a.id = b.user1 OR a.id = b.user2)
  233. AND ( b.user1 ='".$id["id"]."' OR b.user2 ='".$id["id"]."')
  234. AND ( b.status != 0)
  235. )
  236. ORDER BY `vdl_msg`.`date_published` DESC
  237. LIMIT 0 , 30";
  238. $result = $connection->query($query);
  239. if (!$result) {
  240. $message = 'Invalid query: ' . mysql_error() . "\n";
  241. $message .= 'Whole query: ' . $query;
  242. die($message);
  243. }
  244. //mostrar resultado
  245. $arresult=array();
  246. while ($row = $result->fetch_array()) {
  247. array_push($arresult,$row);
  248. }
  249. return $arresult;
  250. }
  251. public function delete(){
  252. //eliminación de usuario...
  253. }
  254. public function modify(){
  255. //ajustes de perfil, cambio edad, nick, contraseña etc...
  256. }
  257. public function set_privacy(){
  258. //ajustes de seguridad del usuario
  259. }
  260. public function update($_user,$_message,$_s_id){
  261. $connection = parent::connect();
  262. date_default_timezone_set('Europe/London');
  263. $date = date("Y-m-d G:i:s");
  264. $text = $_message;
  265. // $text = htmlentities($_message,ENT_QUOTES,"UTF-8");
  266. $query = ("SELECT id,nick FROM `vdl_user` WHERE `session_id` = '".$_s_id."'");
  267. $result = $connection->query($query);
  268. if (!$result) {
  269. $message = 'Invalid query: ' . mysql_error() . "\n";
  270. $message .= 'Whole query: ' . $query;
  271. die($message);
  272. return false;
  273. }
  274. $this->add_trend($text);
  275. preg_match_all('/[#]+([A-Za-z0-9-_]+)/',$text,$hash);
  276. $hashtag = $hash[1];
  277. foreach($hashtag as $key => $hash){
  278. //Aqui podemos hacer que lo agrege a la database
  279. $find = '#'.$hash;
  280. $replace = '#'.ucwords(strtolower($hash));
  281. $text = str_replace($find, $replace, $text);
  282. }
  283. $user = $result->fetch_assoc();
  284. $query = ("INSERT INTO vdl_msg (date_published,text) VALUES ('$date', '$text')");
  285. $result = $connection->query($query) or die(mysql_error('Ups, algo falla a la hora de postear...prueba luego.'));
  286. if (!$result) {
  287. $message = 'Invalid query: ' . mysql_error() . "\n";
  288. $message .= 'Whole query: ' . $query;
  289. die($message);
  290. return false;
  291. }
  292. if( $user["nick"] == $_user){
  293. $user = $user["id"];
  294. $msg_id = $connection->insert_id;
  295. $query = ("INSERT INTO vdl_publish (id_user,id_msg,id_group) VALUES ('$user', '$msg_id','Vidali')");
  296. $result = $connection->query($query);
  297. if (!$result) {
  298. $message = 'Invalid query: ' . mysql_error() . "\n";
  299. $message .= 'Whole query: ' . $query;
  300. die($message);
  301. return false;
  302. }
  303. }
  304. else
  305. return false;
  306. return true;
  307. }
  308. public function join_network(){
  309. }
  310. public function manage_friend($_req,$_main,$_candidate,$_range){
  311. $connection = parent::connect();
  312. if($_req == "add"){
  313. $sucess = $this->add_friend($_main, $_candidate, $_range);
  314. }
  315. if($_req == "delete" || $_req == "reject"){
  316. $sucess = $this->delete_friend($_main, $_candidate);
  317. }
  318. if($_req == "acept"){
  319. $sucess = $this->acept_friend($_main, $_candidate,$range);
  320. }
  321. if($_req == "block"){
  322. $sucess = $this->block_enemy($_main, $_candidate);
  323. }
  324. if ($sucess == true)
  325. return true;
  326. else
  327. return false;
  328. }
  329. public function add_note(){
  330. }
  331. public function add_file(){
  332. }
  333. public function get_notify($_user){
  334. $connection = parent::connect();
  335. $query = "SELECT a.id,a.user_id,a.user_sender,a.type,a.checked
  336. FROM vdl_notify a
  337. JOIN vdl_user b ON a.user_id = b.id WHERE b.nick = '$_user' AND a.checked = 0";
  338. $result=$connection->query($query);
  339. if (!$result) {
  340. $message = 'Invalid query: ' . mysql_error() . "\n";
  341. $message .= 'Whole query: ' . $query;
  342. die($message);
  343. }
  344. //mostrar resultado
  345. $arresult=array();
  346. while ($row = $result->fetch_array()) {
  347. array_push($arresult,$row);
  348. }
  349. return $arresult;
  350. }
  351. public function meta_text($text){
  352. $text = html_entity_decode($text);
  353. //Comprobamos las Menciones
  354. preg_match_all ("/[@]+([A-Za-z0-9-_]+)/",$text, $users);
  355. foreach($users[1] as $key => $user){
  356. $find = '@'.$user;
  357. $replace = '<b><a href="'.BASEDIR.'/u/'.$user.'/" >@'.$user.'</a></b>';
  358. $text = str_replace($find, $replace, $text);
  359. }
  360. //Comprobamos los Hashtag
  361. $text = preg_replace('/[#]+([A-Za-z0-9-_]+)/',
  362. '<b><a href="?pg=g&!=all&q=%23\1">#\1</a></b>',
  363. $text);
  364. //Comprobamos las redes
  365. preg_match_all('/[!]+([A-Za-z0-9-_]+)/',$text, $ntag);
  366. foreach($ntag[1] as $key => $net){
  367. //Aqui podemos hacer que lo agrege a la database
  368. $find = '!'.$net;
  369. $replace = '<b><a href="'.BASEDIR.'/g/'.$net.'"/>!'.$net.'</a></b>';
  370. $text = str_replace($find, $replace, $text);
  371. }
  372. //Comprobamos los t�tulos
  373. preg_match_all ("/>\*([A-Za-z0-9-_\s]+)\*</",$text, $blacks);
  374. foreach($blacks[1] as $key => $black){
  375. $find = '>*'.$black.'*<';
  376. $replace = '<u><h1>'.$black.'</h1></u>';
  377. $text = str_replace($find, $replace, $text);
  378. }
  379. $text = $this->checkstyle($text);
  380. //Comprobamos los links youtube
  381. preg_match_all ("/http:\/\/www\.youtube\.com\/watch\?v=([A-Za-z0-9-_]+)/",$text, $blacks);
  382. foreach($blacks[1] as $key => $black){
  383. $find = 'http://www.youtube.com/watch?v='.$black;
  384. $replace = '<br/><iframe width="420" height="315" src="http://www.youtube.com/embed/'.$black.'?wmode=transparent" frameborder="0" allowfullscreen></iframe><br/>';
  385. $text = str_replace($find, $replace, $text);
  386. }
  387. //http://img.youtube.com/vi/sEhy-RXkNo0/default.jpg para la vista previa de la imagen
  388. //Comprobamos los links youtube https
  389. preg_match_all ("/https:\/\/www\.youtube\.com\/watch\?v=([A-Za-z0-9-_]+)/",$text, $blacks);
  390. foreach($blacks[1] as $key => $black){
  391. $find = 'https://www.youtube.com/watch?v='.$black;
  392. $replace = '<br/><iframe width="420" height="315" src="http://www.youtube.com/embed/'.$black.'?wmode=transparent" frameborder="0" allowfullscreen></iframe><br/>';
  393. $text = str_replace($find, $replace, $text);
  394. }
  395. //http://img.youtube.com/vi/sEhy-RXkNo0/default.jpg para la vista previa de la imagen
  396. return $text;
  397. }
  398. public function id(){
  399. return $this->_id;
  400. }
  401. public function nickname(){
  402. return $this->_nickname;
  403. }
  404. public function name(){
  405. return $this->_name;
  406. }
  407. public function location(){
  408. return $this->_location;
  409. }
  410. public function sex(){
  411. return $this->_sex;
  412. }
  413. public function bday(){
  414. return $this->_bday;
  415. }
  416. public function age(){
  417. return $this->_age;
  418. }
  419. public function email(){
  420. return $this->_email;
  421. }
  422. public function site(){
  423. return $this->_site;
  424. }
  425. public function bio(){
  426. return $this->_bio;
  427. }
  428. public function img_prof(){
  429. return $this->_img_prof;
  430. }
  431. public function prof_visits(){
  432. return $this->_prof_visits;
  433. }
  434. public function prof_friends(){
  435. return $this->_prof_friends;
  436. }
  437. public function prof_groups(){
  438. return $this->_prof_groups;
  439. }
  440. }
  441. ?>